【发布时间】:2012-07-12 16:36:34
【问题描述】:
在 NLTK 中,使用朴素贝叶斯分类器,我从示例中知道,使用“词袋”方法并查找 unigrams 或 bigrams 或两者都非常简单。你能用两组完全不同的功能做同样的事情吗?
例如,我可以使用 unigrams 和训练集的长度(我知道这里已经提到过一次)?但我更感兴趣的是出现在文档中的二元组和“二元组”或 POS 的组合?
这是否超出了基本 NLTK 分类器的能力?
谢谢 亚历克斯
【问题讨论】:
在 NLTK 中,使用朴素贝叶斯分类器,我从示例中知道,使用“词袋”方法并查找 unigrams 或 bigrams 或两者都非常简单。你能用两组完全不同的功能做同样的事情吗?
例如,我可以使用 unigrams 和训练集的长度(我知道这里已经提到过一次)?但我更感兴趣的是出现在文档中的二元组和“二元组”或 POS 的组合?
这是否超出了基本 NLTK 分类器的能力?
谢谢 亚历克斯
【问题讨论】:
NLTK 分类器可以使用任何键值字典。我使用{"word": True} 进行文本分类,但您也可以使用{"contains(word)": 1} 来达到相同的效果。您还可以将许多功能组合在一起,因此您可以拥有{"word": True, "something something": 1, "something else": "a"}。最重要的是您的功能是一致的,因此您始终拥有相同类型的键和一组固定的可能值。可以使用数值,但分类器对它们并不聪明——它将数字视为离散值,因此 99 和 100 与 1 和 100 一样不同。如果您希望以更智能的方式处理数字,那么我推荐使用 scikit-learn 分类器。
【讨论】: