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))

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))

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)

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.

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)

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))

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!

Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.