【问题标题】:NLTK multiple feature sets in one classifier?NLTK 一个分类器中的多个特征集?
【发布时间】:2012-07-12 16:36:34
【问题描述】:

在 NLTK 中,使用朴素贝叶斯分类器,我从示例中知道,使用“词袋”方法并查找 unigrams 或 bigrams 或两者都非常简单。你能用两组完全不同的功能做同样的事情吗?

例如,我可以使用 unigrams 和训练集的长度(我知道这里已经提到过一次)?但我更感兴趣的是出现在文档中的二元组和“二元组”或 POS 的组合?

这是否超出了基本 NLTK 分类器的能力?

谢谢 亚历克斯

【问题讨论】:

    标签: python nlp nltk


    【解决方案1】:

    NLTK 分类器可以使用任何键值字典。我使用{"word": True} 进行文本分类,但您也可以使用{"contains(word)": 1} 来达到相同的效果。您还可以将许多功能组合在一起,因此您可以拥有{"word": True, "something something": 1, "something else": "a"}。最重要的是您的功能是一致的,因此您始终拥有相同类型的键和一组固定的可能值。可以使用数值,但分类器对它们并不聪明——它将数字视为离散值,因此 99 和 100 与 1 和 100 一样不同。如果您希望以更智能的方式处理数字,那么我推荐使用 scikit-learn 分类器。

    【讨论】:

    • +1,虽然我不确定您所说的“将数字视为离散值”是什么意思——当数字用作特征标签时会发生这种情况,而且当它们用作特征值时也会发生这种情况? (您的 NLTK scikit-learn 包装器确实会将数值传递给底层分类器。)
    • 我的意思是 NLTK 分类器将数字视为其他任何事物,因此理想情况下,数字来自一个小的有限集(如枚举)。当然,除非这些数字通过 scikit-learn 分类器传递给知道如何处理它们的分类器。
    猜你喜欢
    • 1970-01-01
    • 2012-02-05
    • 2018-09-11
    • 2019-06-13
    • 2017-03-19
    • 2013-10-05
    • 2022-04-26
    • 1970-01-01
    • 2017-08-30
    相关资源
    最近更新 更多