Stemming e lematização em Python: qual usar?

Publicados: 2021-02-09

O Processamento de Linguagem Natural (PLN) é uma técnica de processamento de comunicação que envolve a extração de características importantes da linguagem. É um avanço na Inteligência Artificial que envolve a construção de agentes inteligentes com experiência anterior. A experiência anterior aqui se refere ao treinamento que é realizado em enormes conjuntos de dados envolvendo dados textuais de fontes, incluindo mídias sociais, web scraping, formulários de pesquisa e muitas outras técnicas de coleta de dados.

O passo inicial após a coleta de dados é a limpeza desses dados e a conversão para a forma legível por máquina, a forma numérica que a máquina pode interpretar. Enquanto o processo de conversão é outra coisa, o processo de limpeza é o primeiro passo a ser realizado. Nesta tarefa de limpeza, a inflexão é um conceito importante que precisa de uma compreensão clara antes de passar para a derivação e a lematização.

Índice

Inflexão

Sabemos que os dados textuais compreendem frases com palavras e outros caracteres que podem ou não afetar nossas previsões. As frases compreendem palavras e as palavras que são comumente usadas, como is, there e, são chamadas de palavras de parada. Estes podem ser removidos facilmente formando um corpus para eles, mas e as diferentes formas da mesma palavra?

Você não quer que sua máquina considere 'estudar' e 'estudar' como palavras diferentes, pois a intenção por trás dessas palavras permanece a mesma e ambas transmitem o mesmo significado. Lidar com esse tipo de caso é uma prática comum em PNL, e isso é conhecido como inflexão. Esta é a ideia base de stemming e lematização com diferentes abordagens. Vamos descobrir as diferenças entre eles e ver qual é melhor usar.

Derivação

É uma das técnicas de normalização de texto que se concentra em reduzir a ambiguidade das palavras. A derivação concentra-se em retirar a palavra arredondada para a palavra-tronco. Ele faz isso removendo os prefixos ou sufixos, dependendo da palavra em consideração. Essa técnica reduz as palavras de acordo com o conjunto de regras definido.

As palavras resultantes podem ou não ter qualquer raiz significativa real. Seu principal objetivo é formar grupos de palavras semelhantes para que o pré-processamento possa ser otimizado. Por exemplo, palavras como play, play e play pertencem à palavra-tronco “play”. Isso também ajuda a reduzir o tempo de busca nos motores de busca, pois agora é dado mais foco no elemento chave.

Dois casos precisam ser discutidos em relação ao stemming, ou seja, over steaming e under stemming . Embora a remoção dos prefixos e sufixos da palavra resolva alguns casos, algumas palavras são removidas mais do que os requisitos.

Isso pode levar a mais palavras inúteis sem significados. Embora esta seja a desvantagem do stemming como um todo, e se isso acontecer de forma mais drástica, é conhecido como over stemming. Sob stemming é o inverso, onde o processo de stemming resulta em muito pouca ou diferença nas palavras.

Lematização

Outra abordagem para normalizar o texto e convertê-lo em significados de raiz é a Lematização. Isso tem o mesmo motivo de agrupar palavras de intenção semelhantes em um grupo, mas a diferença é que aqui as palavras resultantes são significativas.

Eles não são despojados com regras pré-definidas, mas são formados usando um dicionário ou nós o chamamos de Lema. Aqui, o processo de conversão leva mais tempo porque, primeiro, as palavras são combinadas com suas partes do discurso, o que é um processo demorado.

Isso garante que a palavra raiz tenha um significado literal que ajude a obter bons resultados na análise. Isso é útil quando não queremos gastar muito tempo na limpeza de dados e são necessários dados mais limpos para análise posterior. Uma desvantagem dessa técnica é que, como ela se concentra mais na gramática das palavras, linguagens diferentes exigiriam corpora separados, levando a uma manipulação de dados cada vez maior.

Checkout: ideias de projetos de aprendizado profundo para iniciantes

Qual Usar?

Agora vem o ponto de escolher aquele entre os dois. É altamente subjetivo escolher qualquer pessoa, pois o caso de uso que você está direcionando desempenha um papel importante aqui.

Se você deseja analisar um pedaço de texto, mas o tempo é uma restrição, você pode optar pelo stemming, pois ele executa essa ação em menos tempo, mas com uma baixa taxa de sucesso, e os stems são fornecidos por meio de uma forma algorítmica que pode não ter nenhum significado.

Adotar a Lematização oferece uma vantagem adicional de obter palavras-raiz significativas e precisas de diferentes formas. Se você puder pagar bons recursos de computação com mais tempo, essa pode ser uma escolha melhor. Isso deve ser adotado onde queremos uma análise precisa. Também pode ser o caso de algumas técnicas de busca nos motores de busca onde a palavra raiz é suficiente para buscar os resultados que o usuário deseja.

Implementação do Python

O pacote NLTK (Natural Language Tool Kit) é a implementação Python das tarefas em torno do NLP. Esta biblioteca possui todas as ferramentas necessárias, como Stemmers. Lematizadores, remoção de palavras de parada, criação de árvores de analisador personalizadas e muito mais. Ele também contém os dados do corpus de fontes proeminentes incluídas no próprio pacote.

A técnica de stemming tem muitas implementações, mas a mais popular e mais antiga é o algoritmo Porter Stemmer. O leme de bola de neve também é usado em alguns projetos. Para entender a diferença entre lematização e lematização com mais clareza, veja o código abaixo e a saída do mesmo:

importar nltk

de nltk.stem importação PorterStemmer

de nltk.stem importar WordNetLemmatizer

word_stemmer = PorterStemmer()

lematizer = WordNetLematizer()

print(lemmatizer.lemmatize('moscas'))

print(word_stemmer.stem('moscas'))

Saída:

mosca

fli

A primeira saída é do lematizador e a segunda do lematizador. Você pode ver a diferença que o lematizador deu a palavra raiz como saída enquanto o lematizador apenas aparou a palavra do final.

Aprenda cursos de ciência de dados das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Leia também: Ideias de projetos de aprendizado de máquina

Conclusão

A PNL está crescendo a cada dia e novos métodos evoluem com o tempo. A maioria deles se concentra em como extrair com eficiência as informações corretas dos dados de texto com perda mínima e eliminando todos os ruídos. Ambas as técnicas são usadas popularmente. Tudo o que importa é que a análise seja realizada em dados limpos.

Quais são os dois tipos de algoritmos de IA usados ​​para agrupar documentos?

Agrupamento hierárquico e agrupamento não hierárquico são os dois tipos de algoritmos de IA usados ​​para agrupar textos. O algoritmo de agrupamento hierárquico divide e agrega documentos de acordo com um conjunto de regras. Os pares de clusters de itens de dados da hierarquia são então conectados. Embora essa técnica seja simples de ler e compreender, pode não ser tão eficaz quanto o agrupamento não hierárquico. Quando há muitas falhas nos dados, o agrupamento pode ser difícil. O clustering não hierárquico envolve a fusão e a quebra de clusters existentes para criar novos. Essa é uma abordagem de agrupamento comparativamente mais rápida, mais confiável e mais estável.

A lematização é preferida para análise de sentimentos?

Lematização e stemming são procedimentos altamente eficazes. Quando convertido em forma de raiz, no entanto, a lematização sempre produz o termo de significado do dicionário. Quando o significado do termo não é crítico para o estudo, recomenda-se a derivação. Quando o significado de uma palavra é vital para a análise, aconselha-se a lematização. Como resultado, se você tivesse que escolher uma abordagem para análise de sentimentos, a lematização seria a melhor.

Como a lematização e a lematização são usadas para agrupamento de documentos?

Agrupamento de documentos, também conhecido como agrupamento de texto, é um método de análise de textos textuais agrupando-os. Suas aplicações vão desde a organização automatizada de documentos até a extração de tópicos e até a rápida recuperação de informações. Stemming e lematização são usados ​​para reduzir o número de tokens necessários para comunicar a mesma informação, melhorando assim a técnica geral. Após essa etapa de pré-processamento, os recursos são calculados medindo a frequência de cada token, seguido pelas abordagens de clustering mais eficientes.