Qual'è la differenza tra lemmatization vs stemming?


131

Quando li uso?

Inoltre ... la lemmatizzazione NLTK dipende da Parts of Speech? Non sarebbe più preciso se lo fosse?


2
Questo è molto difficile, ma perché c'è un tag Python?
Jimmy,

7
@jimmy: taggato python b / c sta parlando della libreria python nltk
ealdent

2
Ecco un ottimo articolo che risponde a questa esatta domanda
Jacob,

Risposte:


130

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

L'obiettivo sia della derivazione che della lemmatizzazione è ridurre le forme flessive e talvolta le forme correlate a livello derivazionale di una parola in una forma base comune.

Tuttavia, le due parole differiscono nel loro sapore. Lo stemming di solito si riferisce a un rozzo processo euristico che taglia le estremità delle parole nella speranza di raggiungere correttamente questo obiettivo per la maggior parte del tempo e spesso include la rimozione di affissi derivazionali. La Lemmatizzazione di solito si riferisce a fare le cose correttamente con l'uso di un vocabolario e un'analisi morfologica delle parole, normalmente mirando a rimuovere solo le terminazioni flessive e a restituire la forma base o dizionario di una parola, che è conosciuta come il lemma.

Dai documenti NLTK:

La Lemmatizzazione e la Derivazione sono casi speciali di normalizzazione. Identificano un rappresentante canonico per un insieme di forme di parole correlate.


curioso di sapere cosa ci dice la lunghezza media della lemmatizzazione di un documento?
sAguinaga,

1
Questo non risponde completamente alla domanda. Non spieghi quando usare quale. Entrambi possono servire per la normalizzazione ma spesso quale si sceglie è un compromesso tra precisione e velocità.
dzieciou,

1
@dzieciou, grazie per l'input: potresti essere in grado di modificare la risposta; e cercherò di aggiungere anche qualche altro contesto.
Miku,

79

La Lemmatizzazione è strettamente correlata alla derivazione . La differenza è che uno stemmer opera su una sola parola senza conoscere il contesto e quindi non può discriminare tra parole che hanno significati diversi a seconda della parte del discorso. Tuttavia, gli stemmer sono in genere più facili da implementare ed eseguire più velocemente e la precisione ridotta potrebbe non essere importante per alcune applicazioni.

Per esempio:

  1. La parola "migliore" ha "buono" come suo lemma. Questo collegamento manca da stemming, poiché richiede una ricerca nel dizionario.

  2. La parola "camminare" è la forma di base per la parola "camminare", e quindi questo è abbinato sia nella derivazione che nella lemmatizzazione.

  3. La parola "incontro" può essere la forma base di un sostantivo o una forma di un verbo ("incontrare") a seconda del contesto, ad esempio "nel nostro ultimo incontro" o "Ci incontreremo di nuovo domani". Diversamente dalla derivazione, la lemmatizzazione può in linea di principio selezionare il lemma appropriato a seconda del contesto.

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


24

Esistono due aspetti per mostrare le loro differenze:

  1. Uno stemmer restituirà la radice di una parola, che non deve essere identica alla radice morfologica della parola. Di solito è sufficiente che le parole correlate siano associate allo stesso gambo, anche se il gambo non è di per sé una radice valida, mentre in lemmatizzazione restituirà la forma del dizionario di una parola, che deve essere una parola valida.

  2. Nella lemmatizzazione , la parte del discorso di una parola dovrebbe essere prima determinata e le regole di normalizzazione saranno diverse per le diverse parti del discorso, mentre lo stemmer opera su una sola parola senza conoscenza del contesto, e quindi non può discriminare tra parole che hanno differenti significati che dipendono dalla parte del discorso.

Riferimento http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization


18

Lo scopo sia della derivazione che della lemmatizzazione è di ridurre le variazioni morfologiche. Ciò è in contrasto con le più generali procedure di "termine di conflazione", che possono anche affrontare variazioni lessicali-semantiche, sintattiche o ortografiche.

La vera differenza tra stemming e lemmatizzazione è triplice:

  1. Lo stemming riduce le forme di parole in gambi (pseudo), mentre la lemmatizzazione riduce le forme di parole in lemmi linguisticamente validi. Questa differenza è evidente nelle lingue con morfologia più complessa, ma può essere irrilevante per molte applicazioni IR;

  2. La limmatizzazione si occupa solo della varianza flessiva, mentre la derivazione può anche occuparsi della varianza derivazionale;

  3. In termini di implementazione, la lemmatizzazione è di solito più sofisticata (specialmente per linguaggi morfologicamente complessi) e di solito richiede una sorta di lessico. D'altra parte, una definizione soddisfacente può essere ottenuta con approcci piuttosto semplici basati su regole.

La Lemmatizzazione può anche essere supportata da un tagger parziale per disambiguare gli omonimi.


13

Come sottolineato da MYYN, la derivazione è il processo di rimozione degli affetti flessivi e talvolta derivazionali in una forma base a cui probabilmente tutte le parole originali sono correlate. La Lemmatizzazione si occupa di ottenere la singola parola che ti permette di raggruppare un gruppo di forme flesse. Questo è più difficile che derivare perché richiede di tenere conto del contesto (e quindi del significato della parola), mentre la derivazione ignora il contesto.

Per quanto riguarda quando useresti l'uno o l'altro, è una questione di quanto la tua applicazione dipenda dalla comprensione corretta del significato di una parola nel contesto. Se stai facendo la traduzione automatica, probabilmente vorrai la lemmatizzazione per evitare di tradurre male una parola. Se stai eseguendo il recupero di informazioni su oltre un miliardo di documenti con il 99% delle tue query che vanno da 1-3 parole, puoi accontentarti di derivare.

Per quanto riguarda NLTK, WordNetLemmatizer utilizza la parte del discorso, anche se è necessario fornirla (altrimenti, per impostazione predefinita, i nomi). Passandolo "colomba" e "v" si ottiene "tuffo" mentre "colomba" e "n" produce "colomba".


12

Una spiegazione basata sugli esempi sulle differenze tra lemmatizzazione e derivazione:

Lemmatization gestisce la corrispondenza tra "auto" e "auto" insieme a "auto" e "automobile".

Maniglie di attacco che abbinano "auto" a "auto" .

La Lemmatizzazione implica un ambito più ampio di corrispondenza delle parole fuzzy che è ancora gestita dagli stessi sottosistemi. Implica alcune tecniche per l'elaborazione a basso livello all'interno del motore e può anche riflettere una preferenza ingegneristica per la terminologia.

[...] Prendendo FAST come esempio, il loro motore di lemmatizzazione gestisce non solo le variazioni di parole di base come singolare o plurale, ma anche gli operatori del thesaurus amano avere una corrispondenza "calda" con "calda".

Questo non vuol dire che altri motori non gestiscono i sinonimi, ovviamente, ma l'implementazione di basso livello può trovarsi in un sottosistema diverso da quelli che gestiscono la derivazione di base.

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


3

ianacl
ma penso che Stemming sia un rozzo hack che le persone usano per portare tutte le diverse forme della stessa parola in una forma base che non deve necessariamente essere una parola legittima da sola
Qualcosa come il Porter Stemmer può usare semplici regex per eliminare i suffissi di parole comuni

La Lemmatizzazione porta una parola nella sua forma di base effettiva che, nel caso dei verbi irregolari, potrebbe non assomigliare alla parola di input
Qualcosa come Morpha che usa gli FST per portare nomi e verbi nella loro forma di base


Penso che Porter Stemmer sia implementato senza ricorrere alle espressioni regolari, perché molte lingue meno recenti non le hanno, ma per il resto hai l'idea giusta.
Ken Bloom,

3

Lo stemming rimuove o rimuove solo gli ultimi caratteri di una parola, portando spesso a significati e ortografia errati. La Lemmatizzazione considera il contesto e converte la parola nella sua forma base significativa, che si chiama Lemma. A volte, la stessa parola può avere più Lemma diversi. Dovremmo identificare il tag Part of Speech (POS) per la parola in quel contesto specifico. Ecco gli esempi per illustrare tutte le differenze e i casi d'uso:

  1. Se lemmatizzi la parola " Cura ", restituirà " Cura ". Se provieni, restituirà " Car " e questo è errato.
  2. Se si lemmatizza la parola " Stripes " nel contesto del verbo , si restituisce " Strip ". Se lo lemmatizzi nel contesto dei nomi , restituirà ' Stripe '. Se lo fermi, restituirà semplicemente " Strip ".
  3. Otterresti gli stessi risultati se lemmatizzi o affini parole come camminare, correre, nuotare ... camminare, correre, nuotare ecc.
  4. La Lemmatizzazione è computazionalmente costosa poiché implica tabelle di consultazione e cosa no. Se disponi di un set di dati di grandi dimensioni e le prestazioni sono un problema, scegli Stemming. Ricorda che puoi anche aggiungere le tue regole a Stemming. Se la precisione è fondamentale e il set di dati non è enorme, scegli Lemmatization.

2

Lo stemming è il processo di rimozione degli ultimi caratteri di una determinata parola, per ottenere una forma più breve, anche se quella forma non ha alcun significato.

Esempi,

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

Altri esempi di derivazione

Lo stemming può essere fatto molto rapidamente.

La Lemmatizzazione, d'altra parte, è il processo di conversione di una determinata parola nella sua forma base in base al significato del dizionario della parola.

Esempi,

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

Altri esempi di lemmatizzazione

La Lemmatizzazione richiede più tempo della derivazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.