在 scikit-learn 中使用 nltk 搭配作为特征

Posted

技术标签:

【中文标题】在 scikit-learn 中使用 nltk 搭配作为特征【英文标题】:Using nltk collocations as features in scikit-learn 【发布时间】:2012-09-04 13:51:58 【问题描述】:

我正在尝试使用 nltk 从语料库中提取搭配,然后将它们的出现用作 scikit-learn 分类器的特征。 不幸的是,我对 nltk 不是很熟悉,而且我看不到一个简单的方法来做到这一点。 我已经走到这一步了:

使用 BigramCollocationFinder 从语料库中提取搭配 对于每个文档,提取所有二元组(使用nltk.bigrams)并检查它们是否是搭配之一 使用不执行任何操作的分析器创建 TfidfVectorizer 以提取的二元组形式向其提供文档

这对我来说似乎过于复杂了。还有一个问题是BigramCollactionFinder 有一个window_size 参数用于跨​​越单词的二元组。标准的nltk.bigrams 提取不能做到这一点。

解决这个问题的一种方法是为每个文档实例化一个新的 BigramCollocationFinder,然后再次提取二元组并将它们与我之前找到的那些进行匹配......但同样,这似乎很复杂。 当然有一种更简单的方法可以做到这一点,我忽略了。

感谢您的建议!

【问题讨论】:

【参考方案1】:

larsmans 已经为简单的非搭配特征贡献了一个 NLTK / scikit-learn 特征映射器。这可能会为您解决自己的问题提供一些灵感:

http://nltk.org/_modules/nltk/classify/scikitlearn.html

【讨论】:

以上是关于在 scikit-learn 中使用 nltk 搭配作为特征的主要内容,如果未能解决你的问题,请参考以下文章

无法让 NLTK-Trainer 识别/使用 scikit-learn 分类器

nltk 和 scikit-learn 的安装

NLTK 和 scikit-learn 中的伯努利朴素贝叶斯结果不同

Scikit-Learn机器学习实践——垃圾短信识别

scikit-learn 中分类算法的文本特征输入格式

如何修复 scikit-learn 中的令牌模式?