在NLTK中,使用朴素的贝叶斯分类器,我从例子中知道它非常简单地使用“词袋”方法并寻找unigrams或bigrams或两者。你可以使用两套完全不同的功能吗?
例如,我可以使用unigrams和训练集的长度(我知道这里曾经提到过一次)吗?但对我来说更感兴趣的是文件中出现的bigrams和“bigrams”或POS的组合?
这是否超出了基本NLTK分类器的功能?
由于 亚历
答案 0 :(得分:5)
NLTK分类器可以使用任何键值字典。我使用{"word": True}
进行文本分类,但您也可以使用{"contains(word)": 1}
来实现相同的效果。您还可以将许多功能组合在一起,这样就可以{"word": True, "something something": 1, "something else": "a"}
。最重要的是您的功能是一致的,因此您始终拥有相同类型的键和一组固定的可能值。可以使用数字值,但分类器对它们并不聪明 - 它会将数字视为离散值,因此99和100与1和100不同。如果您希望以更智能的方式处理数字,那么我建议使用scikit-learn分类器。