NLTK機能セットをScipy.sparseアレイに変換する方法はありますか?
質問
入力にnumpy/scipyアレイが必要なscikit.learnを使用しようとしています。 NLTKで生成される機能セットは、UnigramおよびBigRam周波数で構成されています。私は手動でそれをすることができましたが、それは多くの努力になります。だから、私が見落としている解決策があるかどうか疑問に思っています。
解決
私が知っているわけではありませんが、Scikit-Learnができることに注意してください n- グラム周波数カウント自体。単語レベルを仮定します n- グラム:
from sklearn.feature_extraction.text import CountVectorizer, WordNGramAnalyzer
v = CountVectorizer(analyzer=WordNGramAnalyzer(min_n=1, max_n=2))
X = v.fit_transform(files)
どこ files
文字列またはファイルのようなオブジェクトのリストです。この後、 X
生の周波数カウントのscipy.sparseマトリックスです。
他のヒント
Jacob Perkinsは、Scikit-Learn分類器を使用してNLTK分類子をトレーニングするためにAAブリッジを行いました。
https://github.com/japerk/nltk-trainer/blob/master/nltk_trainer/classification/sci.py
バージョン0.9+を使用している場合は、パッケージインポートラインを更新する必要があります。
所属していません StackOverflow