有没有办法将 nltk 特征集转换为 scipy.sparse 数组?

发布于 2024-12-19 11:39:26 字数 113 浏览 0 评论 0原文

我正在尝试使用 scikit.learn ,它需要 numpy/scipy 数组作为输入。 nltk 中生成的特征集由一元词和二元词频率组成。我可以手动完成,但这会花费很多精力。所以想知道是否有我忽略的解决方案。

I'm trying to use scikit.learn which needs numpy/scipy arrays for input.
The featureset generated in nltk consists of unigram and bigram frequencies. I could do it manually, but that'll be a lot of effort. So wondering if there's a solution i've overlooked.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风筝有风,海豚有海 2024-12-26 11:39:26

Jacob Perkins 做了一个使用 scikit-learn 分类器训练 NLTK 分类器的桥梁,它的来源正是:

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

如果您使用的是 0.9+ 版本,则应更新包导入行。

Jacob Perkins did a a bridge for training NLTK classifiers using scikit-learn classifiers that does exactly that here is the source:

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

The package import lines should be updated if you are using version 0.9+.

时光倒影 2024-12-26 11:39:26

据我所知,但请注意 scikit-learn 本身可以进行 n-gram 频率计数。假设单词级 n-gram:

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 矩阵。

Not that I know of, but note that scikit-learn can do n-gram frequency counting itself. Assuming word-level n-grams:

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

where files is a list of strings or file-like objects. After this, X is a scipy.sparse matrix of raw frequency counts.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文