Attualmente sto cercando di costruire un tagger POS generico (o generale come pratico) con NLTK. Mi sono dilettato con i corpora marrone e treebank per l'allenamento, ma probabilmente mi accontenterò del corpus treebank.Tentativo di utilizzare MEGAM come classificatoreBasedPOSTagger NLTK?
Imparando mentre vado, sto trovando il classificatore che i tagger POS sono i più precisi. Il classificatore Entità massima è pensato per essere il più preciso, ma trovo che usi tanta memoria (e tempo di elaborazione) che devo ridurre in modo significativo il set di dati di addestramento, quindi il risultato finale è meno accurato rispetto all'utilizzo del classificatore di Naive Bayes predefinito.
È stato suggerito di utilizzare il MEGAM. NLTK ha qualche supporto per MEGAM, ma tutti gli esempi che ho trovato sono per classificatori generali (ad esempio un classificatore di testo che utilizza un vettore di funzioni di parole), piuttosto che un tagger POS più specifico. Senza dover ricreare il mio estrattore e compilatore di feature POS (ad esempio, preferisco usare quello già in NLTK), come posso usare il classificatore MEGAM MaxEnt? Vale a dire. come posso farlo cadere in un codice MaxEnt esistente che è lungo le linee di:
maxent_tagger = ClassifierBasedPOSTagger(train=training_sentences,
classifier_builder=MaxentClassifier.train)
Hai letto: http://streamhacker.com/2008/11/03/part-of-speech-tagging-with-nltk-part-1/? È una buona idea per i tagger POS in generale, se guardi tutti e quattro gli articoli. – perimosocordiae
Sì, ho il suo libro. Il blog ha alcuni interessanti confronti di efficienza, e potrei ancora aggiungere un tagger di Brill alla fine del classificatore (come suggerito); ma i post non sembrano menzionare MEGAM? Forse ho bisogno di guardare il codice MaxEnt NLTK e il reverse engineer o duplicarlo per usare MEGAM. – winwaed