Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Tokenização | Fundamentos do Pré-Processamento de Texto
Introdução ao PLN

bookTokenização

Antes de realmente mergulharmos no processo de tokenização, precisamos primeiro definir o que são tokens.

Note
Definição

Tokens são componentes de texto independentes e mínimos, que possuem uma sintaxe e semântica específicas.

Consequentemente, tokenização é o processo de dividir o texto em tokens. Por exemplo, um parágrafo de texto, um documento de texto ou um corpus de texto consiste em vários componentes que podem ser divididos em sentenças, frases e palavras. Na verdade, os métodos de tokenização mais populares incluem tokenização de sentenças e palavras, que é utilizada para dividir um documento de texto (ou corpus) em sentenças e cada sentença em palavras.

Note
Definição

Um corpus de texto (plural: corpora) é um conjunto grande e estruturado de textos utilizado em pesquisas de linguística e linguística computacional. Essencialmente, trata-se de uma coleção abrangente de material escrito ou falado que serve como uma amostra representativa de um determinado idioma, dialeto ou área temática.

Tokenização de Sentenças

Vamos começar com a tokenização de sentenças. Felizmente, o nltk fornece a função sent_tokenize() no módulo tokenize. O principal objetivo dessa função é dividir um texto fornecido em uma lista de sentenças.

O sent_tokenize() utiliza um modelo pré-treinado, normalmente um modelo de aprendizado de máquina treinado em um grande corpus de texto, para identificar os limites entre sentenças. Ele considera vários indícios no texto, como marcas de pontuação (por exemplo, pontos finais, pontos de exclamação, pontos de interrogação), capitalização e outros padrões linguísticos que normalmente indicam o fim de uma sentença e o início de outra.

123456789
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
copy

Como pode ser observado, não há nada de complicado aqui. Basta passar uma string com seu texto como argumento de sent_tokenize() para obter uma lista de sentenças. Em relação ao nltk.download('punkt_tab'), este comando faz o download especificamente dos modelos de tokenização "Punkt". Ao baixar os modelos Punkt, você garante que o NLTK possua os dados necessários para realizar a tokenização precisa de sentenças e palavras.

Note
Nota

Os sinais de pontuação ao final de cada sentença estão incluídos na sentença.

Tokenização de Palavras

Na tokenização de palavras, existem vários métodos comuns para realizá-la; no entanto, discutiremos apenas os dois mais prevalentes.

O método mais direto e simples é utilizar a função split() da classe string, que utiliza, por padrão, símbolos de nova linha, espaços e tabulações como delimitadores. No entanto, também é possível passar uma string arbitrária como argumento para servir como delimitador.

123456
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy
Note
Nota

Para garantir que tokens como 'This' e 'this' sejam tratados como iguais, é importante converter a string para letras minúsculas antes da tokenização.

Uma abordagem mais flexível, no entanto, é utilizar a função word_tokenize() do módulo tokenize da biblioteca nltk. Essa função identifica e separa palavras com base em espaços e sinais de pontuação, segmentando frases em suas palavras constituintes. Assim como sent_tokenize(), essa função requer uma string como argumento.

Vamos comparar essa abordagem com o uso do método split(). O exemplo abaixo utiliza word_tokenize():

12345678
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
copy

Agora, vejamos como o método split() se comporta com o mesmo texto:

12345
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy

No nosso exemplo, word_tokenize(), ao contrário de split(), identifica corretamente pontuação e caracteres especiais como tokens separados. Ele separa corretamente o símbolo de dólar do número e reconhece pontos finais como tokens independentes. Essa tokenização detalhada é fundamental para muitas tarefas de PLN, onde a delimitação precisa de palavras e pontuação pode impactar significativamente a precisão da análise e os insights obtidos.

question mark

Dada a frase "It wasn't me, I swear!", qual será o resultado ao aplicar o método split() nela?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain the difference between sentence and word tokenization?

Why is it important to use the Punkt tokenizer models in NLTK?

Can you give more examples of when precise tokenization is necessary?

Awesome!

Completion rate improved to 3.45

bookTokenização

Deslize para mostrar o menu

Antes de realmente mergulharmos no processo de tokenização, precisamos primeiro definir o que são tokens.

Note
Definição

Tokens são componentes de texto independentes e mínimos, que possuem uma sintaxe e semântica específicas.

Consequentemente, tokenização é o processo de dividir o texto em tokens. Por exemplo, um parágrafo de texto, um documento de texto ou um corpus de texto consiste em vários componentes que podem ser divididos em sentenças, frases e palavras. Na verdade, os métodos de tokenização mais populares incluem tokenização de sentenças e palavras, que é utilizada para dividir um documento de texto (ou corpus) em sentenças e cada sentença em palavras.

Note
Definição

Um corpus de texto (plural: corpora) é um conjunto grande e estruturado de textos utilizado em pesquisas de linguística e linguística computacional. Essencialmente, trata-se de uma coleção abrangente de material escrito ou falado que serve como uma amostra representativa de um determinado idioma, dialeto ou área temática.

Tokenização de Sentenças

Vamos começar com a tokenização de sentenças. Felizmente, o nltk fornece a função sent_tokenize() no módulo tokenize. O principal objetivo dessa função é dividir um texto fornecido em uma lista de sentenças.

O sent_tokenize() utiliza um modelo pré-treinado, normalmente um modelo de aprendizado de máquina treinado em um grande corpus de texto, para identificar os limites entre sentenças. Ele considera vários indícios no texto, como marcas de pontuação (por exemplo, pontos finais, pontos de exclamação, pontos de interrogação), capitalização e outros padrões linguísticos que normalmente indicam o fim de uma sentença e o início de outra.

123456789
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
copy

Como pode ser observado, não há nada de complicado aqui. Basta passar uma string com seu texto como argumento de sent_tokenize() para obter uma lista de sentenças. Em relação ao nltk.download('punkt_tab'), este comando faz o download especificamente dos modelos de tokenização "Punkt". Ao baixar os modelos Punkt, você garante que o NLTK possua os dados necessários para realizar a tokenização precisa de sentenças e palavras.

Note
Nota

Os sinais de pontuação ao final de cada sentença estão incluídos na sentença.

Tokenização de Palavras

Na tokenização de palavras, existem vários métodos comuns para realizá-la; no entanto, discutiremos apenas os dois mais prevalentes.

O método mais direto e simples é utilizar a função split() da classe string, que utiliza, por padrão, símbolos de nova linha, espaços e tabulações como delimitadores. No entanto, também é possível passar uma string arbitrária como argumento para servir como delimitador.

123456
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy
Note
Nota

Para garantir que tokens como 'This' e 'this' sejam tratados como iguais, é importante converter a string para letras minúsculas antes da tokenização.

Uma abordagem mais flexível, no entanto, é utilizar a função word_tokenize() do módulo tokenize da biblioteca nltk. Essa função identifica e separa palavras com base em espaços e sinais de pontuação, segmentando frases em suas palavras constituintes. Assim como sent_tokenize(), essa função requer uma string como argumento.

Vamos comparar essa abordagem com o uso do método split(). O exemplo abaixo utiliza word_tokenize():

12345678
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
copy

Agora, vejamos como o método split() se comporta com o mesmo texto:

12345
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy

No nosso exemplo, word_tokenize(), ao contrário de split(), identifica corretamente pontuação e caracteres especiais como tokens separados. Ele separa corretamente o símbolo de dólar do número e reconhece pontos finais como tokens independentes. Essa tokenização detalhada é fundamental para muitas tarefas de PLN, onde a delimitação precisa de palavras e pontuação pode impactar significativamente a precisão da análise e os insights obtidos.

question mark

Dada a frase "It wasn't me, I swear!", qual será o resultado ao aplicar o método split() nela?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 3
some-alt