2010-02-19 6 views

risposta

3

Ho usato sia LingPipe che il POS Tagger di Stanford. Il successivo è un POS Tagger ma, a causa della mia esperienza, è troppo lento (sebbene fornisca modelli meno precisi, che sono ragionevolmente veloci). Naturalmente, dipende sempre da ciò che stai cercando di ottenere, e ci sarà sempre un compromesso tra velocità e accuratezza.

Ho anche usato un software NER basato su LBJ e, sebbene fosse abbastanza accurato, il codice sorgente era un disastro completo. Sia la fonte di LingPipe che quella di Stanford sono molto pulite e ben documentate.

Puoi anche dare un'occhiata a LTAG-spinal. Non l'ho ancora usato, ma dalla descrizione dell'algoritmo e dalla precisione elencata, sicuramente sembra migliore delle alternative che hai finora.

Spero che aiuti.

+6

Il modello migliore di Stanford è moderatamente lento. Ma, in realtà, LTAG-spinale è di nuovo 3 volte più lento e insignificantemente migliore. Per uso generale, raccomandiamo il modello left3words: il tagging con esso ha una velocità simile o migliore rispetto a Ratnaparkhi o al tagger OpenNLP, ma è più preciso di entrambi. Trova [maggiori informazioni] (http://nl.pdf.edu/software/pos-tagger-faq.shtml#h) nelle FAQ sui tagger Stanford POS. –

+0

Non riesco a trovare alcun confronto con OpenNlp lì (solo con altri tagger) - sto trascurando qualcosa? – benroth

+0

@ChristopherManning Ho appena fatto una convalida incrociata di 10 volte utilizzando Penn Treebank. sembra che left3words sia leggermente peggiore di opennlp. Ma Bidirezionale è davvero meglio. Potresti dire di più sui dati su cui hai effettuato il confronto? Grazie! –

15

Stai cercando di taggare POS in un dominio specifico? La maggior parte dei tagger generici sono addestrati sul testo di newswire. In genere non funzionano bene quando li si utilizza in domini specifici (tale e testo biomedico). Esistono altri tagger specificamente addestrati per tali domini come dTagger (java) per il testo biomedico.

Per il testo del newswire, Adwait Ratnaparkhi's MXPOST è molto buono ed è quello che raccomanderei.

Altre implementazioni di Java sono:

  1. MontyLingua
  2. Berkeley Parser (Non proprio un tagger POS, ma tutti i parser pieno soffiato includerà tipicamente tagger POS Google per Java parser sintattico e troverete molti. .)
  3. QTag
  4. LBJ

OpenNLP e Lingpipe come pubblicato dagli altri poster sono anche abbastanza decenti.

Le informazioni sullo stato dell'arte sulla codifica POS possono essere trovate here. Come potete vedere, LTAG-Spinal (menzionato anche da un altro poster) è al momento il migliore, ma la variazione tra i vari tagger non è molta. Non ho usato LTAG me stesso.

Si noti inoltre che le prestazioni di base per la codifica POS sono circa del 90%. Baseline significa: (a) tagga ogni parola con il tag POS più frequente da un lessico, e (b) tagga ogni parola sconosciuta come un nome.

+0

Il tuo collegamento MXPOST è su un sito FTP con un archivio compresso. Ho cercato in giro e non ho potuto trovare molto su MXPOST a parte la tesi di CS di un ragazzo. Ho ragione nel ritenere che non ci sia molto supporto alla comunità per MXPOST? – Glenn

+1

@Glenn Sì. Sebbene OPENNLP sembra essere un'implementazione equivalente di MXPOST. Cito dal sito OPENNLP: 1. * Se si ha familiarità con la selezione delle funzionalità per l'implementazione massima di Adwait Ratnaparkhi, non si dovrebbero avere problemi poiché la nostra implementazione [del tagger POS] utilizza le funzionalità nello stesso modo del suo. * e 2. * La sua introduzione [di Adwait] per maxent per NLP e tesi di laurea sono ciò che ha reso opennlp.maxent e le nostre componenti MAXENT Grok (POS tagger, fine del rilevatore frase, tokenizzatore, nome finder) possibili! * OpenNLP sembra avere una community sourceforge attiva. – hashable

+0

Alla fine, era LingPipe che ha funzionato al meglio per me. Era il migliore in termini di capacità di incorporare facilmente all'interno di un altro sistema. Ha fatto un ottimo lavoro anche con i tag POS. – Glenn

Problemi correlati