Pergunta

Quando uso cada um?

Também ... a lematização NLTK depende de partes da fala? Não seria mais preciso se fosse?

Foi útil?

Solução

Curto e denso: http://nlp.stanford.edu/ir-book/html/htmledition/stemming-and-lemmatization-1.html

O objetivo de Stemming e Lemmatização é reduzir as formas flexionadas e, às vezes, formas relacionadas derivacionalmente de uma palavra a uma forma base comum.

No entanto, as duas palavras diferem em seu sabor. O Stemming geralmente se refere a um processo heurístico bruto que corta as pontas das palavras na esperança de alcançar esse objetivo corretamente na maioria das vezes e geralmente inclui a remoção de afixos derivacionais. A lematização geralmente se refere a fazer as coisas corretamente com o uso de uma análise de vocabulário e morfológica de palavras, normalmente com o objetivo de remover apenas as terminações flexionadas e devolver a forma base ou dicionário de uma palavra, que é conhecida como lema.

Do NLTK Docs:

A lematização e o candidato são casos especiais de normalização. Eles identificam um representante canônico para um conjunto de formulários de palavras relacionados.

Outras dicas

Lemmatização está intimamente relacionado a Stemming. A diferença é que um tronco opera em uma única palavra sem conhecimento do contexto e, portanto, não pode discriminar entre palavras que têm significados diferentes, dependendo da parte da fala. No entanto, os Stemmers são normalmente mais fáceis de implementar e executar mais rápido, e a precisão reduzida pode não importar para alguns aplicativos.

Por exemplo:

  1. A palavra "melhor" tem "bom" como seu lema. Este link é perdido por Stemming, pois requer uma pesquisa de dicionário.

  2. A palavra "Walk" é a forma básica para a palavra "caminhada" e, portanto, isso é comparado tanto na partida quanto na lemmatização.

  3. A palavra "reunião" pode ser a forma base de um substantivo ou uma forma de um verbo ("para conhecer"), dependendo do contexto, por exemplo, "em nossa última reunião" ou "Estamos nos reunindo novamente amanhã". Diferentemente do Stemming, a lemmatização pode, em princípio, selecionar o lema apropriado, dependendo do contexto.

Fonte: https://en.wikipedia.org/wiki/lemmatisation

O objetivo da partida e da lematização é reduzir a variação morfológica. Isso contrasta com os procedimentos mais gerais de "conflito", que também podem abordar variações léxico-semânticas, sintáticas ou ortográficas.

A diferença real entre Stemming e Lemmatização é três vezes:

  1. O cais reduz as formas de palavras a (pseudo) hastes, enquanto a lematização reduz as formas de palavras para lemas lingüisticamente válidos. Essa diferença é aparente em idiomas com morfologia mais complexa, mas pode ser irrelevante para muitas aplicações de RI;

  2. A lematização lida apenas com variação flexional, enquanto o caule também pode lidar com a variação derivacional;

  3. Em termos de implementação, a lemmatização é geralmente mais sofisticada (especialmente para idiomas morfologicamente complexos) e geralmente requer algum tipo de léxica. A caia satisfatória, por outro lado, pode ser alcançada com abordagens simples baseadas em regras.

A lemmatização também pode ser apoiada por um tagger de parte da fala, a fim de desambiguar os homônimos.

Existem dois aspectos para mostrar suas diferenças:

  1. UMA Stemmer retornará o caule de uma palavra, que não precisa ser idêntica à raiz morfológica da palavra. Geralmente é suficiente que as palavras relacionadas mapemem para o mesmo caule, mesmo que o caule não seja por si só uma raiz válida, enquanto em Lemmatização, ele retornará a forma do dicionário de uma palavra, que deve ser uma palavra válida.

  2. Dentro Lemmatização, a parte do discurso de uma palavra deve ser determinada pela primeira vez e as regras de normalização serão diferentes para parte diferente da fala, enquanto o Stemmer opera em uma única palavra sem conhecimento do contexto e, portanto, não pode discriminar entre palavras que têm significados diferentes, dependendo da parte da fala.

Referência http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lematization

Como Myyn apontou, Stemming é o processo de remoção de afixos flexionados e, às vezes, derivacionais para uma forma base a que todas as palavras originais provavelmente estão relacionadas. A lematização está preocupada em obter a única palavra que permite agrupar um monte de formas flexionadas. Isso é mais difícil do que resultar, porque requer levar em consideração o contexto (e, portanto, o significado da palavra), enquanto o decorrente ignora o contexto.

Quanto a quando você usaria um ou outro, é uma questão de quanto seu aplicativo depende de obter o significado de uma palavra no contexto correta. Se você está fazendo tradução para a máquina, provavelmente deseja lematização para evitar a mal -traduzida por uma palavra. Se você estiver fazendo uma recuperação de informações em um bilhão de documentos com 99% de suas perguntas que variam de 1 a 3 palavras, poderá se contentar com o Stemming.

Quanto ao NLTK, o WordNetleMmatizer usa a parte do discurso, embora você precise fornecê -lo (caso contrário, os padrões são os substantivos). Passar "pomba" e "v" rendem "mergulhar" enquanto "pomba" e "n" rendem "pomba".

Uma explicação orientada a exemplo sobre os diferentes diferentes

Lemmatização alças Combinando "Car" com "carros", juntamente com o "carro" combinando com "automóvel".

Stemming alças combinando "carro" para "carros" .

A lematização implica um escopo mais amplo de correspondência de palavras difusas que ainda é tratada pelos mesmos subsistemas. Isso implica certas técnicas para o processamento de baixo nível dentro do motor e também pode refletir uma preferência de engenharia pela terminologia.

...] Tomando rápido como exemplo, o motor de lemmatização lida não apenas variações básicas de palavras como singular vs. plural, mas também os operadores de sinônimos, como ter um jogo "quente" "quente".

Isso não quer dizer que outros motores não lidam com sinônimos, é claro que o fazem, mas a implementação de baixo nível pode estar em um subsistema diferente daqueles que lidam com a base de base.

http://www.ideaeng.com/stemming-lemmatization-0601

Ianacl
Mas acho que Stemming é um hack difícil que as pessoas usam para obter todas as diferentes formas da mesma palavra até uma forma base que não precisa ser uma palavra legítima por conta própria
Algo como o Porter Stemmer pode usar regexes simples para eliminar sufixos de palavras comuns

A lematização traz uma palavra à sua forma base real que, no caso de verbos irregulares, pode não se parecer com a palavra de entrada
Algo como Morpha, que usa FSTs para trazer substantivos e verbos para sua forma base

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top