Qual é a diferença entre lematização vs stemming?

131

Quando uso cada um?

Além disso ... a lematização do NLTK depende de partes do discurso? Não seria mais preciso se fosse?

TIMEX
fonte
2
Isso está na minha cabeça, mas por que existe uma tag python?
24410 Jimmy Jimmy
7
@jimmy: marcado python b / c ele está falando sobre a biblioteca python nltk
ealdent
2
Aqui está um ótimo artigo que responde a essa exata questão
Jacob
2
Veja também: Stemmers vs Lemmatizers
hippietrail

Respostas:

130

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

O objetivo da derivação e da lematização é reduzir as formas flexionadas e, às vezes, derivadas de uma palavra para uma forma básica comum.

No entanto, as duas palavras diferem em seu sabor. O stemming geralmente se refere a um processo heurístico bruto que corta o final das palavras na esperança de atingir esse objetivo corretamente na maioria das vezes, e geralmente inclui a remoção de afixos derivativos. A lematização geralmente se refere a fazer as coisas corretamente com o uso de uma análise de vocabulário e morfologia das palavras, normalmente com o objetivo de remover apenas terminações flexionadas e retornar a forma básica ou de dicionário de uma palavra, conhecida como lema.

Nos documentos do NLTK:

Lematização e stemming são casos especiais de normalização. Eles identificam um representante canônico para um conjunto de formas de palavras relacionadas.

miku
fonte
curioso para saber o que a duração média da lematização nos diz sobre um documento?
sAguinaga
1
Isso não responde totalmente à pergunta. Você não explica quando usar qual. Ambos podem servir para normalização, mas geralmente o que você escolhe é uma troca entre precisão e velocidade.
dzieciou
1
@dzieciou, obrigado pela contribuição - você pode editar a resposta; e tentarei adicionar um pouco mais de contexto também.
Miku #
79

A lematização está intimamente relacionada à derivação . A diferença é que um derivador opera em uma única palavra sem conhecimento do contexto e, portanto, não pode discriminar entre palavras que têm significados diferentes, dependendo de parte da fala. No entanto, os stemmers geralmente são mais fáceis de implementar e executar mais rapidamente, e a precisão reduzida pode não ser importante para algumas aplicações.

Por exemplo:

  1. A palavra "melhor" tem "bom" como lema. Este link é perdido ao se originar, pois requer uma pesquisa no dicionário.

  2. A palavra "andar" é a forma básica da palavra "andar" e, portanto, é comparável tanto na derivação quanto na lematização.

  3. A palavra "reunião" pode ser a forma base de um substantivo ou a forma de um verbo ("conhecer"), dependendo do contexto, por exemplo, "em nossa última reunião" ou "Vamos nos encontrar novamente amanhã". Ao contrário do stemming, o lematisização pode, em princípio, selecionar o lema apropriado, dependendo do contexto.

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

Mukesh Chapagain
fonte
24

Existem dois aspectos para mostrar suas diferenças:

  1. Um stemmer retornará o radical de uma palavra, que não precisa ser idêntico à raiz morfológica da palavra. Geralmente, basta que as palavras relacionadas sejam mapeadas para o mesmo radical, mesmo que o radical não seja em si uma raiz válida, enquanto no lematismo , ele retornará a forma de dicionário de uma palavra, que deve ser uma palavra válida.

  2. Na lematização , a parte do discurso de uma palavra deve ser determinada primeiro e as regras de normalização serão diferentes para diferentes partes do discurso, enquanto o derivador opera em uma única palavra sem o conhecimento do contexto e, portanto, não pode discriminar entre palavras com diferentes significados dependendo de parte do discurso.

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

Liang Zhang
fonte
18

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

A diferença real entre derivação e lematização é tríplice:

  1. O stemming reduz as formas de palavras a (pseudo) hastes, enquanto a lematização reduz as formas de palavras a lemas válidos linguisticamente. 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 a variação flexional, enquanto a derivação também pode lidar com a variação derivacional;

  3. Em termos de implementação, a lematização é geralmente mais sofisticada (especialmente para linguagens morfologicamente complexas) e geralmente requer algum tipo de léxico. Por outro lado, a obtenção satisfatória pode ser alcançada com abordagens bastante simples baseadas em regras.

A lematização também pode ser apoiada por um marcador de parte da fala para desambiguar homônimos.

Jan Snajder
fonte
13

Como MYYN apontou, stemming é o processo de remover afixos flexionados e, às vezes, derivativos para uma forma básica com a qual todas as palavras originais provavelmente estão relacionadas. A lematização está relacionada à obtenção da palavra única que permite agrupar várias formas flexionadas. Isso é mais difícil do que derivar, porque exige levar em conta o contexto (e, portanto, o significado da palavra), enquanto ignora o contexto.

Quanto a quando você usaria um ou outro, é uma questão de quanto o seu aplicativo depende da obtenção correta do significado de uma palavra no contexto. Se você estiver fazendo tradução automática, provavelmente desejará que a lematização evite a tradução incorreta de uma palavra. Se estiver recuperando informações em mais de um bilhão de documentos, com 99% das suas consultas variando de 1 a 3 palavras, você pode se contentar com a stemming.

Quanto ao NLTK, o WordNetLemmatizer usa a parte da fala, embora você precise fornecê-la (caso contrário, o padrão é substantivos). Passá-lo "pomba" e "v" produz "mergulho" enquanto "pomba" e "n" produz "pomba".

ealdent
fonte
12

Uma explicação orientada a exemplo sobre as diferenças entre lematização e derivação:

A lematização lida com a correspondência "carro" para "carros", juntamente com a correspondência "carro" para "automóvel".

A haste manipula a correspondência entre "carro" e "carros" .

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

[...] Tomando o FAST como exemplo, seu mecanismo de lematização lida não apenas com variações básicas de palavras como singular versus plural, mas também com operadores de tesauro como "quente" e "quente".

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

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

majom
fonte
3

ianacl,
mas acho que Stemming é um hack áspero que as pessoas usam para obter todas as formas diferentes da mesma palavra em uma forma básica que não precisa ser uma palavra legítima por si só
Algo como o Porter Stemmer pode usar expressões simples para eliminar sufixos de palavras comuns

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

Aditya Mukherji
fonte
Eu acho que o Porter Stemmer é implementado sem o recurso às Expressões Regulares, porque muitos idiomas mais antigos não os possuem, mas, caso contrário, você tem a idéia certa.
21909 Ken Bloom
3

O caule apenas remove ou origina os últimos caracteres de uma palavra, geralmente levando a significados e ortografia incorretos. A lematização considera o contexto e converte a palavra em sua forma básica significativa, chamada lema. Às vezes, a mesma palavra pode ter vários lemas diferentes. Devemos identificar a tag Part of Speech (POS) da palavra nesse contexto específico. Aqui estão os exemplos para ilustrar todas as diferenças e casos de uso:

  1. Se você deixar a palavra ' Cuidar ', ela retornará ' Cuidado '. Se você esticar, ele retornará ' Car ' e isso é errado.
  2. Se você deixar a palavra ' Listras ' no contexto do verbo , ela retornará ' Faixa '. Se você o deixar no contexto substantivo , ele retornará ' Stripe '. Se você apenas contê-lo, ele retornará ' Strip '.
  3. Você obteria os mesmos resultados se lematizasse ou derivasse palavras como caminhar, correr, nadar ... caminhar, correr, nadar etc.
  4. A lematização é computacionalmente cara, pois envolve tabelas de consulta e o que não. Se você tem um conjunto de dados grande e o desempenho é um problema, vá com Stemming. Lembre-se de que você também pode adicionar suas próprias regras ao Stemming. Se a precisão é primordial e o conjunto de dados não é exagerado, vá em Lematização.
Sumit Pokhrel
fonte
2

Stemming é o processo de remover os últimos caracteres de uma determinada palavra, para obter uma forma mais curta, mesmo que essa forma não tenha nenhum significado.

Exemplos,

"beautiful" -> "beauti"
"corpora" -> "corpora"

Mais exemplos de stemming

O caule pode ser feito muito rapidamente.

A lematização, por outro lado, é o processo de conversão da palavra dada em sua forma base, de acordo com o significado da palavra no dicionário.

Exemplos,

"beautiful" -> "beauty"
"corpora" -> "corpus"

Mais exemplos de lematização

A lematização leva mais tempo do que a resultante.

siva pokala
fonte