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.

Há duas formas de converter texto para número em Python. Se o texto é um número em formato de string (como “21”), use as funções nativas int("21") ou float("3.14"). Se o texto está por extenso (como “vinte e um”), use a biblioteca numerizer (em inglês) junto de um tradutor como o deep-translator, que ajuda a converter a expressão para o número 21.

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

O que você aprende neste vídeo

Resposta rápida: Nesta aula, o instrutor ensina a converter texto por extenso em número com Python, pegar um número escrito (“vinte e um”) e transformar no número real. Ele usa uma biblioteca pronta (numerizer) que faz isso automaticamente, inclusive identificando os números dentro de uma frase, e mostra como instalá-la e usá-la para depois fazer contas com esses valores.

Neste vídeo (14 min):

  • 0:00 - O objetivo: converter um número escrito por extenso no número real.
  • 2:00 - A biblioteca pronta (numerizer) que faz a conversão automaticamente.
  • 6:00 - Identificar os números dentro de uma frase inteira.
  • 8:00 - Instalar a biblioteca (pip install) e usá-la.
  • 12:00 - Fazer contas com os números convertidos.

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:

Codigo
pip install numerizer deep-translator

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

Python
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.

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

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.

Python
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.

Python
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:

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

Python
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.

Python
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.

Python
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.

Perguntas frequentes

1. Como converter texto para número em Python?

Para texto que já é um número (string ’21’), use int() ou float(). Para números por extenso (‘vinte e um’), use a biblioteca numerizer, que interpreta a expressão em palavras e devolve o valor numérico correspondente.

2. Qual a diferença entre int() e float() em Python?

int() converte para número inteiro, sem casas decimais (int(’21’) vira 21). float() converte para número com casas decimais (float(‘3.14’) vira 3.14). Use int para contagens e float quando houver parte fracionária.

3. Como converter número por extenso em Python?

Use a biblioteca numerizer: numerize(‘twenty one’) retorna ’21’. Como ela trabalha em inglês, números em português podem ser traduzidos antes com o deep-translator e então convertidos para o valor numérico.

4. O que fazer se o texto não for um número válido?

int() e float() geram um erro (ValueError) quando o texto não representa um número. Para tratar isso, use try/except ao redor da conversão e trate o caso inválido, evitando que o programa pare inesperadamente.

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?