Blog

Postado em em 28 de novembro de 2023

Como Converter Texto para Número com Python

Aprenda a converter texto para número com Python! Transforme o texto “vinte e um” no número 21 usando Python.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Como Converter Texto para Número com Python

Na aula de hoje, vou te mostrar como converter texto para número com Python. Isso mesmo! Você aprenderá a transformar um número escrito por extenso, como “vinte e um”, no número 21 usando Python.

Utilizaremos a biblioteca Numerizer do Python, responsável por essa conversão de texto para número.

Com este código, você conseguirá converter texto para número com Python de forma fácil e prática. Faça o download do material disponível na aula e venha comigo aprender, pois vou te ensinar o passo a passo para esse conversor.

Importância da Transcrição de Texto para Número com Python

Por que é tão importante conseguir converter texto para número com Python? Imagine que você esteja analisando uma base de dados e queira extrair os valores de contratos dela. No entanto, esses valores estão escritos por extenso.

Fazer essa transcrição de texto para número não será uma tarefa fácil. Isso ocorre porque é necessário fazer com que o Python identifique que o padrão de texto corresponde a um número.

Em alguns casos, como “um”, “dez” e “duzentos”, a correspondência é mais direta, pois uma única palavra corresponde a um número.

Contudo, em outros cenários, como “mil quinhentos e trinta e sete“, cada palavra individualmente corresponde a um número, mas juntas elas se referem a um único número: 1537.

Criar a lógica para esse código seria muito trabalhoso. No entanto, a biblioteca Numerizer em Python já faz isso para nós.

Instalando e Importando a Biblioteca Numerizer e Deep-Translator

Para nos auxiliar no processo de converter texto para número com Python, utilizaremos a biblioteca Numerizer.

No entanto, essa biblioteca opera apenas com textos em inglês. Portanto, faremos uso da biblioteca Deep-Translator, que exploramos em uma aula anterior, para nos ajudar a traduzir o texto para inglês antes de realizar a conversão.

Então, vamos instalar essas duas bibliotecas. No terminal do seu editor de código, execute o comando:

pip install numerizer deep-translator

Feito isso, podemos importá-las para o nosso código.

from numerizer import numerize
from deep_translator import GoogleTranslator

Da biblioteca Numerizer, importaremos a função numerize, responsável pela conversão do texto por extenso para número.

E da Deep-Translator, importaremos o GoogleTranslator, que será o serviço de tradução que utilizaremos para traduzir nosso texto do português para o inglês antes de realizar a conversão para número.

Como a Função Numerize Funciona

A aplicação da função numerize é bastante simples; basta passar o texto que você deseja transformar em número, e pronto. Lembre-se de que esse texto precisa estar em inglês para que o numerize possa realizar a conversão.

from numerizer import numerize
from deep_translator import GoogleTranslator

texto = "twenty nine"

numero = numerize(texto)
print(numero)
print(type(numero))
Convertendo número

Observe que, junto com o print do número, verifiquei também o tipo da variável numero. Apesar de ser representado numericamente (29), ele ainda é uma variável de texto (str).

No entanto, o Python consegue converter facilmente essa string para um número inteiro utilizando a função int() ou float().

Dessa forma, podemos adaptar o nosso código da seguinte maneira.

from numerizer import numerize
from deep_translator import GoogleTranslator

texto = "twenty nine"

numero = int(numerize(texto))
print(numero)
print(type(numero))

Convertendo número para tipo int

O numerize não realiza a conversão direta do número para int porque pode ser usado para converter números que estão escritos por extenso dentro de um texto. Por exemplo:

from numerizer import numerize
from deep_translator import GoogleTranslator

texto = "I have twenty-nine computers"

texto_numerizado = numerize(texto)
print(texto_numerizado)
Convertendo frase com número escrito por extenso para número numerico

Nesse caso, ele não poderia converter todo o texto para inteiro, pois isso resultaria em erro.

Converter Texto para Número com Python – Numerizer e Deep-Translator

Já vimos que a biblioteca Numerizer consegue realizar de forma eficiente a conversão de textos em inglês para textos em inglês com números, ou simplesmente converter o número por extenso para a forma numérica.

No entanto, provavelmente, você desejará utilizar essa biblioteca para trabalhar com textos em português ou com uma base de dados em português. Para esses casos, utilizaremos a biblioteca deep_translator.

No início da aula, deixei um link para que você possa rever as etapas detalhadas dessa biblioteca. De forma resumida, precisamos apenas criar um tradutor a partir dessa biblioteca, especificando o idioma original do texto (source) e o idioma para o qual você deseja traduzir (target).

from numerizer import numerize
from deep_translator import GoogleTranslator

texto = "Oi, eu sou o Lira, tenho vinte e nove anos e ganho dois mil reais."

tradutor = GoogleTranslator(source="pt", target="en")
texto_traduzido = tradutor.translate(texto)

texto_numerizado = numerize(texto_traduzido)
print(texto_numerizado)

Aqui, estamos criando nosso tradutor, passando os idiomas que iremos utilizar. Traduzimos esse texto de português para inglês e, em seguida, “numerizamos” o texto, ou seja, convertemos o texto para número com Python.

O resultado será a mesma frase, só que escrita em inglês e com os números representados numericamente.

Convertendo frase em português com número escrito por extenso para número numerico

Provavelmente, você desejará seu texto em português também. Nesse caso, podemos criar um segundo tradutor que irá pegar esse texto com os números escritos de forma correta e traduzir para o português novamente.

from numerizer import numerize
from deep_translator import GoogleTranslator

texto = "Oi, eu sou o Lira, tenho vinte e nove anos e ganho dois mil reais."

tradutor = GoogleTranslator(source="pt", target="en")
texto_traduzido = tradutor.translate(texto)

texto_numerizado = numerize(texto_traduzido)
print(texto_numerizado)

tradutor2 = GoogleTranslator(source="en", target="pt")
texto_numerizado_pt = tradutor2.translate(texto_numerizado)
print(texto_numerizado_pt)
Convertendo frase em português com número escrito por extenso para número numerico com resultado em português

Entretanto, esse processo adicional só é necessário caso esteja trabalhando com algum texto que precise ser mantido.

Se estiver lidando com uma base de dados em que uma coluna contenha apenas os números escritos por extenso, não será necessário traduzir novamente para o português. Basta traduzir para o inglês e, em seguida, converter para número.

from numerizer import numerize
from deep_translator import GoogleTranslator

texto = "vinte e nove"

tradutor = GoogleTranslator(source="pt", target="en")
texto_traduzido = tradutor.translate(texto)

texto_numerizado = numerize(texto_traduzido)
numero = float(texto_numerizado)

print(numero)
print(type(numero))
Convertendo número extenso por numérico

Dessa forma, você conseguiria tratar a coluna de uma tabela que contenha os números escritos por extenso, convertendo-os para o formato numérico.

Conclusão – Como Converter Texto para Número com Python

Nessa aula, você aprendeu como converter texto para número com Python. Utilizando a biblioteca Numerizer do Python, foi possível transformar um número escrito por extenso em uma representação numérica.

Além disso, junto com essa biblioteca, você aprendeu a utilizar a Deep-Translator para traduzir seus textos de inglês para português e vice-versa, permitindo a conversão de texto para número em qualquer idioma necessário.

Essa ferramenta pode ser extremamente útil em situações em que seja necessário analisar contratos que contenham valores escritos por extenso ou mesmo bases de dados com colunas preenchidas dessa forma.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?