Como reduzir uma palavra para sua forma básica em Python (Lemmatização)

Como reduzir uma palavra para sua forma básica em Python (Lemmatização)

Nessa aula você vai compreender o que é a lematização em processamento de linguagem natural e como você pode implementar um exemplo funcional em python.

O que é lematização?

 A lematização é o processo, efetivamente, de deflexionar uma palavra para determinar o seu lema (as flexões chamam-se lexemas). Por exemplo, as palavras gato, gata, gatos, gatas são todas formas do mesmo lema: gato. Igualmente, as palavras tiver, tenho, tinha, tem são do mesmo lema ter. E bom, melhor e ótimo são lexemas do lema bom.  

A lematização é útil quando queremos ver os usos de palavras em contextos sem importância das flexões. Por exemplo, para a criação e uso de índices ou na investigação linguística. Ninguém quer ficar obrigado a pesquisar todas as formas duma palavra para encontrá-la num texto.

Se pesquisássemos gato, seria melhor ter quaisquer das quatro formas como resultado, não só a forma masculina singular. Ou ao investigar as preferências entre «ter de» e «ter que», seria possível pesquisar as ocorrências em toda flexão do verbo com uma pesquisa como TER lema de em vez de construir uma pesquisa como ter de + tenho de + tens de + tem de + temos de + …  

Lematização versus Stemming

  As duas técnicas possuem o mesmo objetivo de inflexionar uma palavra, no entanto, os outputs de uma mesma palavra são diferentes. O stemming não se importa com a legibilidade da palavra gerada como output. Já a lematização resulta em uma palavra no infinitivo (geralmente – não obrigatóriamente).   Veja um exemplo da palavra andando:   Porter stemmer: and Lematização: anda

3- Lematizando com NLTK

# se queremos extrair o "lemma" de uma palavra estaremos reduzindo essa palavra a sua forma raiz
# por exemplo: intelligently - inteligent

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()

for i in range (len(sentences)):
    words = nltk.word_tokenize(sentences[i])
    newwords = [lemmatizer.lemmatize(word) for word in words]
    sentences[i] = ' '.join(newwords)
print (sentences)
['France , in Western Europe , encompasses medieval city , alpine village and Mediterranean beach .', 'Paris , it capital , is famed for it fashion house , classical art museum including the Louvre and monument like the Eiffel Tower .', 'The country is also renowned for it wine and sophisticated cuisine .', 'Lascaux ’ s ancient cave drawing , Lyon ’ s Roman theater and the vast Palace of Versailles attest to it rich history .']

Vinicius dos Santos

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

Deixe uma resposta