Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Lematização | Stemming e Lematização
Introdução ao PLN com Python

Lematização

Deslize para mostrar o menu

Compreendendo a Lemmatização

Note
Definição

Lemmatização é uma técnica de normalização de texto utilizada em PLN para reduzir palavras à sua forma de dicionário, conhecida como lema.

Diferente do stemming, que remove afixos de forma bruta, a lematização considera o contexto e converte a palavra para sua forma de dicionário. Por exemplo, 'am', 'are' e 'is' são todos lematizados para 'be'. Essa abordagem pode reduzir significativamente o tamanho do vocabulário (o número de palavras únicas) em grandes corpora de texto, aumentando assim a eficiência durante o treinamento de modelos.

Por outro lado, embora a lematização seja mais precisa, ela também é mais custosa computacionalmente e pode ser demorada em conjuntos de dados grandes. Além disso, para obter ainda mais precisão, recomenda-se realizar análise morfológica e etiquetagem de classe gramatical antes da lematização.

Note
Nota

Não se preocupe com a marcação de parte do discurso por enquanto, pois este será o próximo tópico que você irá aprender.

Lematização com NLTK

O WordNet Lemmatizer, fornecido pela biblioteca NLTK, utiliza o corpus WordNet para realizar a lematização.

Note
Aprofunde-se

O WordNet é um banco de dados lexical semanticamente rico para o inglês que vai muito além de um simples corpus. Ele agrupa palavras em conjuntos de sinônimos, ou synsets, cada um representando um conceito distinto e acompanhado de definições e exemplos de uso. Além disso, o WordNet codifica relações significativas entre esses synsets — como hiperônimos (termos mais amplos e gerais) e hipônimos (termos mais restritos e específicos) — oferecendo uma estrutura poderosa para explorar e desambiguar significados de palavras.

Ao utilizar o WordNet Lemmatizer, ele consulta a base de dados WordNet para encontrar o lema mais apropriado da palavra.

Como mencionado acima, devido ao fato de que as palavras podem ter significados diferentes em diferentes contextos (por exemplo, "running" como verbo vs. "running" como substantivo), o lematizador pode exigir que você especifique a classe gramatical (por exemplo, verbo, substantivo, adjetivo). Isso o ajuda a selecionar o lema correto com base na função da palavra na frase.

1234567891011
from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
Descrição do Código
expand arrow
from nltk.stem import WordNetLemmatizer

Esta linha importa a classe WordNetLemmatizer.

nltk.download('wordnet')

Esta linha faz o download do corpus WordNet e, assim, garante que todas as funcionalidades relacionadas ao WordNet, como lematização, possam ser utilizadas.

lemmatizer = WordNetLemmatizer()

Esta linha cria uma instância da classe WordNetLemmatizer utilizada para realizar a lematização.

parts_of_speech = ['v', 'n']

Esta linha cria uma lista de classes gramaticais que serão utilizadas na lematização.

lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]

Esta linha cria uma lista de palavras lematizadas utilizando list comprehension. O processo de lematização é realizado por meio do método lemmatize() do objeto lemmatizer. A string que representa a palavra deve ser o primeiro argumento e a classe gramatical desejada como o segundo argumento opcional ('v' para verbo, 'a' para adjetivo, 'n' para substantivo, etc.).

Você pode omitir a especificação da classe gramatical ao chamar lemmatizer.lemmatize("running"), mas como pode ver, diferentes classes gramaticais produzem resultados diferentes. Por isso, o ideal é realizar a marcação de classe gramatical previamente.

question mark

Qual é o principal benefício de usar lematização em comparação com stemming?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

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