2009-11-24 9 views
75

Quando lo uso?qual è la vera differenza tra lemmatization vs stemming

Inoltre ... la lemmatizzazione NLTK dipende da parti del discorso? Non sarebbe più accurato se lo fosse?

+1

Questo è il modo sopra la mia testa, ma perché c'è un tag pitone? – Jimmy

+4

@jimmy: python codificato in b/c si tratta della libreria nltk di python – ealdent

+1

Ecco un grande articolo che risponde a questa esatta [domanda] (http://www.ideaeng.com/tabId/98/itemId/180/Whats-the -Difference-Between-Stemming-and-Lemmati.aspx) – Jacob

risposta

80

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

L'obiettivo di entrambi diraspatura e lemmatizzazione è quello di ridurre le forme flessive e talvolta derivationally relative forme di una parola ad una forma base comune.

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

Dalla documentazione NLTK:

lemmatizzazione e derivanti sono casi particolari di normalizzazione. Identificano un rappresentante canonico per un insieme di forme di parole correlate.

1

ianacl
ma penso che Stemming è un hack di massima le persone utilizzano per ottenere tutte le diverse forme della stessa parola fino ad una forma di base che non deve essere una parola legit sulla propria
Qualcosa come il Porter Stemmer cAN utilizza espressioni regolari semplici per eliminare parola comune suffissi

lemmatizzazione porta una parola fino alla sua forma base reale che, nel caso di verbi irregolari, potrebbe apparire niente come la parola di ingresso
Qualcosa di simile Morpha che utilizza fsts per portare nomi e verbi alla loro forma di base

+0

Penso che Porter Stemmer sia implementato senza ricorso a Regular Expressions, perché molte lingue più vecchie non le hanno, ma per il resto hai l'idea giusta. –

10

Come sottolineato da MYYN, la derivazione è il processo di rimozione di affissi flessivi e talvolta derivativi a una forma base a cui tutte le parole originali sono probabilmente correlate. La Lemmatizzazione riguarda l'ottenimento della singola parola che consente di raggruppare un gruppo di forme flesse. Questo è più difficile dell'arresto perché richiede di prendere in considerazione il contesto (e quindi il significato della parola), mentre la derivazione ignora il contesto.

Per quanto riguarda quando si utilizza l'una o l'altra, è una questione di quanto l'applicazione dipenda dal significato corretto di una parola nel contesto. Se stai eseguendo la traduzione automatica, probabilmente vuoi la lemmatizzazione per evitare di tradurre erroneamente una parola. Se stai recuperando informazioni su un miliardo di documenti con il 99% delle tue query che vanno da 1 a 3 parole, puoi accontentarti di arginare.

Come per NLTK, il WordNetLemmatizer utilizza la parte del discorso, sebbene sia necessario fornirlo (in caso contrario è impostato su nomi). Passando "colomba" e "v" si ottiene "tuffo" mentre "colomba" e "n" producono "colomba".

11

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

La vera differenza tra diraspatura e lemmatizzazione è triplice:

  1. Stemming riduce forme verbali di (pseudo) steli, mentre lemmatizzazione riduce le forme verbali a lemmi linguisticamente validi. Questa differenza è evidente nelle lingue con morfologia più complessa, ma può essere irrilevante per molte applicazioni IR;

  2. La Lemmatizzazione riguarda solo la varianza flessionale, mentre la radice può riguardare anche la varianza derivata;

  3. In termini di implementazione, la lemmatizzazione è in genere più sofisticata (soprattutto per linguaggi morfologicamente complessi) e di solito richiede una sorta di lessico. D'altra parte, gli spuntoni soddisfacenti possono essere raggiunti con approcci basati su regole piuttosto semplici.

La Lemmatizzazione può anche essere sottoposta a backup da un tagger di parte del discorso per disambiguare gli omonimi.

36

lemmatizzazione è strettamente legato al derivanti. La differenza è che uno stelo opera su una singola parola senza conoscenza del contesto, e quindi non può discriminare tra parole che hanno diversi significati 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 risolvere per alcune applicazioni.

Per esempio:

  1. La parola "meglio" ha "buono" come il suo lemma. Questo collegamento è perso da , in quanto richiede una ricerca nel dizionario.

  2. La parola "camminare" è il modulo di base per la parola "camminare", e quindi questo è abbinato sia in derivazione che in ematizzazione.

  3. La parola "incontro" può essere sia la forma base di un nome o una forma di un verbo ("per soddisfare") a seconda del contesto, ad esempio, "nel nostro ultimo incontro" o "Siamo incontro di nuovo domani ". A differenza della derivazione, la lemmatizzazione può in linea di principio selezionare il lemma appropriato a seconda del contesto.

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

5

Una spiegazione esempio-driven sui differenes tra lemmatizzazione e derivanti:

lemmatizzazione gestisce matching “auto” a “auto” lungo con abbinamento "auto" a "automobile".

Stemming maniglie matching “auto” a “macchine”.

Lemmatizzazione implica un ambito più ampio di corrispondenza parola fuzzy che è ancora gestito dagli stessi sottosistemi. Implica determinate tecniche per l'elaborazione di basso livello all'interno del motore e può anche riflettere una preferenza di progettazione per la terminologia.

[...] Prendendo VELOCE come esempio, loro motore lemmatizzazione non solo utilizza variazioni di parole di base come singolare vs. plurale, ma anche gli operatori thesaurus come avere “caldo” partita “caldo”.

Questo non vuol dire che altri motori non gestiscono i sinonimi, naturalmente lo fanno, ma l'implementazione a basso livello può essere in un diverso sottosistema di quelli che gestiscono di base derivanti.

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

7

Ci sono due aspetti da mostrare le loro differenze:

  1. Un stemmer restituirà la radice di una parola, che non devono necessariamente essere identica alla radice morfologica la parola. Solitamente è sufficiente che le parole correlate siano mappate sulla stessa radice, anche se la radice non è di per sé una radice valida, mentre in lemmatisation, restituirà la forma di dizionario di una parola, che deve essere una parola valida.

  2. In lemmatizzazione, la parte del discorso di una parola deve essere prima determinati e le regole di normalizzazione sarà differente per parte del discorso, mentre il Stemmer opera una singola parola senza conoscenza del contesto, e quindi non può discriminare tra parole che hanno significati diversi a seconda della parte del discorso.

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