Você está visualizando atualmente Tokenização de palavras e sentenças em Python

Tokenização de palavras e sentenças em Python

Nesse artigo vamos um pouco sobre a tokenização de palavras e sentenças usando a linguagem Python. Essa tarefa é importantíssima no contexto de PLN e permite que os profissionais dessa área executem várias outras tarefas. Nesse artigo você vai entender o que é tokenização e também como implementar um exemplo funcional usando Python e a biblioteca NLTK.

Você gosta de aprender sobre Processamento de Linguagem Natural? Veja nosso conteúdo gratuito.

O que é tokenização

O primeiro passo para descobrir informações em textos construídos em linguagem natural é a tokenização. Essa palavra vêm da palavra “Token” da língua inglesa onde os brasileiros adaptaram para a nossa língua.  Tokenizar já pode ser encontrado pela web e em alguns casos com definição. O IBM knowledge center define a tokenização é uma operação que é utilizada pelo mecanismo Analítica de Texto para conduzir a análise morfológica, como detectar os limites de token e partes do discurso.    

Realizando o processo na “força bruta”

Este processo é bem simples de se imaginar como é implementado. As palavras são divididas graças a cada espaço entre elas. Sendo assim, para tokenizar uma sentença separando em um array de palavras é simplesmente a quebra de uma sentença usando os espaços como separador. 

Já para as frases é preciso utilizar a pontuação do texto para “compreender” quais os delimitadores de uma sentença. O ponto final é o principal indicador do fim de uma sentença, no entanto, podem existir diversas formas de expressão da linguagem escrita.

Usando o NLTK para tokenizar

O NTLK possui algumas ferramentas que ajudam na tokenização de sentenças. O primeiro passo é importar o NLTK para o código:    

# Para importar o nltk 
import nltk

O próximo passo é chamar o NLTK para tokenizar sentenças:  

# inserimos um texto aleatório
texto = """France, in Western Europe, encompasses medieval cities, alpine villages and Mediterranean beaches. Paris, its capital, is famed for its fashion houses, classical art museums including the Louvre and monuments like the Eiffel Tower. The country is also renowned for its wines and sophisticated cuisine. Lascaux’s ancient cave drawings, Lyon’s Roman theater and the vast Palace of Versailles attest to its rich history."""

# separamos cada sentença
tokenized_sentences = nltk.sent_tokenize(texto)
print(tokenized_sentences)
['France, in Western Europe, encompasses medieval cities, alpine villages and Mediterranean beaches.', 'Paris, its capital, is famed for its fashion houses, classical art museums including the Louvre and monuments like the Eiffel Tower.', 'The country is also renowned for its wines and sophisticated cuisine.', 'Lascaux’s ancient cave drawings, Lyon’s Roman theater and the vast Palace of Versailles attest to its rich history.']

Para separar cada palavra e gerar um “token” único fazemos:    

# separamos cada palavra
tokenized_words = nltk.word_tokenize(texto)
print(tokenized_words)     
['France', ',', 'in', 'Western', 'Europe', ',', 'encompasses', 'medieval', 'cities', ',', 'alpine', 'villages', 'and', 'Mediterranean', 'beaches', '.', 'Paris', ',', 'its', 'capital', ',', 'is', 'famed', 'for', 'its', 'fashion', 'houses', ',', 'classical', 'art', 'museums', 'including', 'the', 'Louvre', 'and', 'monuments', 'like', 'the', 'Eiffel', 'Tower', '.', 'The', 'country', 'is', 'also', 'renowned', 'for', 'its', 'wines', 'and', 'sophisticated', 'cuisine', '.', 'Lascaux', '’', 's', 'ancient', 'cave', 'drawings', ',', 'Lyon', '’', 's', 'Roman', 'theater', 'and', 'the', 'vast', 'Palace', 'of', 'Versailles', 'attest', 'to', 'its', 'rich', 'history', '.']         

Quer ver o código completo?  

Acesse nosso github

Vinicius dos Santos

Apenas um apaixonado por Ciência da Computação e a forma com que ela pode transformar vidas!

Deixe um comentário

2 × dois =