Lematização
Deslize para mostrar o menu
Compreendendo a Lemmatizaçã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.
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.
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.
1234567891011from 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)
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.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo