NLTK Tokenize: tokenizador de palavras e frases com exemplo

โšก Resumo Inteligente

O NLTK Tokenize divide textos longos em unidades menores chamadas tokens, uma etapa fundamental no processamento de linguagem natural. O conjunto de ferramentas fornece o word_tokenize para dividir frases em palavras e o sent_tokenize para dividir o texto em frases individuais.

  • โœ‚๏ธ Tokenizaรงรฃo: Divide textos longos em unidades menores chamadas tokens para anรกlise.
  • ๐Ÿง  PNL Foundation: Serve como etapa bรกsica para stemming, lematizaรงรฃo e conversรฃo de texto em numรฉrico.
  • ๐Ÿ”ค word_tokenize(): Divide uma frase em palavras individuais, separando a pontuaรงรฃo.
  • ๐Ÿ“ sent_tokenize(): Divide uma passagem em frases separadas.
  • ๐Ÿ“Š Caso de uso: A combinaรงรฃo de ambos permite calcular caracterรญsticas como a mรฉdia de palavras por frase para aprendizado de mรกquina.

Tokenizar NLTK

O que รฉ tokenizaรงรฃo?

tokenization รฉ o processo pelo qual uma grande quantidade de texto รฉ dividida em partes menores chamadas tokens. Esses tokens sรฃo muito รบteis para encontrar padrรตes e sรฃo considerados uma etapa base para lematizaรงรฃo e lematizaรงรฃo. A tokenizaรงรฃo tambรฉm ajuda a substituir elementos de dados confidenciais por elementos de dados nรฃo confidenciais.

O processamento de linguagem natural รฉ usado para construir aplicativos como classificaรงรฃo de texto, chatbot inteligente, anรกlise sentimental, traduรงรฃo de idiomas, etc. Torna-se vital compreender o padrรฃo do texto para atingir o propรณsito declarado acima.

Por enquanto, nรฃo se preocupe com lematizaรงรฃo e lematizaรงรฃo, mas trate-as como etapas para limpeza de dados textuais usando PNL (processamento de linguagem natural). Discutiremos lematizaรงรฃo e lematizaรงรฃo posteriormente neste tutorial. Tarefas como Classificaรงรฃo de texto ou filtragem de spam faz uso de PNL junto com bibliotecas de aprendizagem profunda, como Keras e Tensorflow.

O kit de ferramentas Natural Language possui um mรณdulo NLTK muito importante tokenize frases que compreendem ainda submรณdulos

  1. palavra tokenizar
  2. tokenizaรงรฃo de frase

Tokenizaรงรฃo de palavras

Usamos o mรฉtodo palavra_tokenize() dividir uma frase em palavras. A saรญda da tokenizaรงรฃo de palavras pode ser convertida em Data Frame para melhor compreensรฃo do texto em aplicativos de aprendizado de mรกquina. Tambรฉm pode ser fornecido como entrada para outras etapas de limpeza de texto, como remoรงรฃo de pontuaรงรฃo, remoรงรฃo de caracteres numรฉricos ou lematizaรงรฃo. Os modelos de aprendizado de mรกquina precisam de dados numรฉricos para serem treinados e fazerem previsรตes. A tokenizaรงรฃo de palavras torna-se uma parte crucial da conversรฃo de texto (string) em dados numรฉricos. Por favor, leia sobre Saco de palavras ou CountVectorizer. Consulte o exemplo de tokenizaรงรฃo de palavras NLTK abaixo para entender melhor a teoria.

from nltk.tokenize import word_tokenize
text = "God is Great! I won a lottery."
print(word_tokenize(text))

Output: ['God', 'is', 'Great', '!', 'I', 'won', 'a', 'lottery', '.']

Tokenizaรงรฃo de palavras

Code Explicaรงรฃo

  1. O mรณdulo word_tokenize รฉ importado da biblioteca NLTK.
  2. Uma variรกvel โ€œtextoโ€ รฉ inicializada com duas sentenรงas.
  3. A variรกvel de texto รฉ passada no mรณdulo word_tokenize e imprime o resultado. Este mรณdulo divide cada palavra com pontuaรงรฃo que vocรช pode ver na saรญda.

Tokenizaรงรฃo de sentenรงas

O submรณdulo disponรญvel para o acima รฉ sent_tokenize. Uma pergunta รณbvia em sua mente seria por que a tokenizaรงรฃo de frases รฉ necessรกria quando temos a opรงรฃo de tokenizaรงรฃo de palavras. Imagine que vocรช precisa contar a mรฉdia de palavras por frase, como vocรช irรก calcular? Para realizar tal tarefa, vocรช precisa tanto do tokenizer de frase NLTK quanto do tokenizer de palavra NLTK para calcular a proporรงรฃo. Essa saรญda serve como um recurso importante para o treinamento da mรกquina, pois a resposta seria numรฉrica.

Verifique o exemplo do tokenizador NLTK abaixo para saber como a tokenizaรงรฃo de frases รฉ diferente da tokenizaรงรฃo de palavras.

from nltk.tokenize import sent_tokenize
text = "God is Great! I won a lottery."
print(sent_tokenize(text))

Output: ['God is Great!', 'I won a lottery ']

Nรณs temos 12 palavras e duas sentenรงas para a mesma entrada.

Tokenizaรงรฃo de sentenรงas

Explicaรงรฃo do programa

  1. Em uma linha como no programa anterior, importou o mรณdulo sent_tokenize.
  2. Tomamos a mesma sentenรงa. O tokenizador de frase adicional no mรณdulo NLTK analisou essas frases e mostrou a saรญda. ร‰ claro que esta funรงรฃo quebra cada frase.

Acima do tokenizador de palavra Python exemplos sรฃo boas pedras de configuraรงรฃo para entender a mecรขnica da tokenizaรงรฃo de palavras e frases.

Perguntas Frequentes

A tokenizaรงรฃo de palavras divide o texto em palavras e pontuaรงรฃo individuais usando `word_tokenize()`, enquanto a tokenizaรงรฃo de sentenรงas divide o texto em sentenรงas separadas usando `sent_tokenize()`. Ambas sรฃo frequentemente combinadas para obter caracterรญsticas como o nรบmero de palavras por sentenรงa.

A tokenizaรงรฃo รฉ o primeiro passo que transforma o texto bruto em unidades gerenciรกveis, permitindo a detecรงรฃo de padrรตes, a lematizaรงรฃo (ou stemming) e a conversรฃo em caracterรญsticas numรฉricas que os modelos de aprendizado de mรกquina exigem para tarefas como classificaรงรฃo e traduรงรฃo.

Sim. O NLTK suporta vรกrios idiomas carregando o modelo Punkt apropriado, por exemplo, `sent_tokenize(text, language='french')`. O suporte varia conforme o idioma, e alguns scripts podem precisar de tokenizadores especializados.

Grandes modelos de linguagem convertem o texto em tokens, frequentemente fragmentos de subpalavras, antes do processamento. O modelo prevรช o prรณximo token com base nos anteriores, portanto a tokenizaรงรฃo afeta diretamente o comprimento do contexto, o custo e a qualidade da saรญda.

Sim. Os tokenizadores de IA modernos usam mรฉtodos de subpalavras, como a codificaรงรฃo de pares de bytes ou o WordPiece, dividindo palavras raras em partes menores. Isso mantรฉm os vocabulรกrios compactos, ao mesmo tempo que representa palavras desconhecidas ou compostas.

Resuma esta postagem com: