Quando uso cada um?
Além disso ... a lematização do NLTK depende de partes do discurso? Não seria mais preciso se fosse?
python
nlp
nltk
lemmatization
TIMEX
fonte
fonte
Respostas:
Curto e denso: http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html
Nos documentos do NLTK:
fonte
Fonte : https://en.wikipedia.org/wiki/Lemmatisation
fonte
Existem dois aspectos para mostrar suas diferenças:
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.
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
fonte
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:
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;
A lematização lida apenas com a variação flexional, enquanto a derivação também pode lidar com a variação derivacional;
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.
fonte
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".
fonte
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" .
http://www.ideaeng.com/stemming-lemmatization-0601
fonte
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
fonte
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:
fonte
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,
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,
A lematização leva mais tempo do que a resultante.
fonte