有没有办法将nltk特征集转换为scipy稀疏数组?
我正在尝试使用scikit.learn这个库,它需要用到numpy或scipy的数组作为输入。
在nltk中生成的特征集包含了单个词(unigram)和两个词组合(bigram)的频率。我可以手动去做这些,但那样会非常麻烦。所以我在想,是否有我忽略的解决办法。
2 个回答
1
Jacob Perkins 创建了一个桥接工具,用于使用 scikit-learn 的分类器来训练 NLTK 的分类器,具体内容可以在这里找到,源代码如下:
https://github.com/japerk/nltk-trainer/blob/master/nltk_trainer/classification/sci.py
如果你使用的是 0.9 以上的版本,记得更新包的导入行。
0
我不知道有没有其他方法,但要注意,scikit-learn本身可以进行
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
将会是一个包含原始频率计数的稀疏矩阵。