Domanda

Sto cercando di usare Scikit.Learn che ha bisogno di array numpy/Scipy per l'input. I caratteristici generati in NLTK sono costituiti da frequenze unigram e bigram. Potrei farlo manualmente, ma sarà un grande sforzo. Quindi mi chiedo se c'è una soluzione che ho trascurato.

È stato utile?

Soluzione

Non che io conosca, ma nota che Scikit-Learn può fare n-Gram Frequency Conteing se stesso. Supponendo il livello di parole n-Grammi:

from sklearn.feature_extraction.text import CountVectorizer, WordNGramAnalyzer
v = CountVectorizer(analyzer=WordNGramAnalyzer(min_n=1, max_n=2))
X = v.fit_transform(files)

dove files è un elenco di stringhe o oggetti simili a file. Dopodichè, X è una matrice Scipy.Sparse di conteggi di frequenza grezza.

Altri suggerimenti

Jacob Perkins ha fatto un ponte AA per l'addestramento dei classificatori NLTK usando classificatori Scikit-Learn che lo fa esattamente qui è la fonte:

https://github.com/japerk/nltk-trainer/blob/master/nltk_trainer/classification/sci.py

Le righe di importazione del pacchetto devono essere aggiornate se si utilizza la versione 0.9+.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top