如何训练一个以 pos-tag 序列为特征的朴素贝叶斯分类器?

How to train a naive bayes classifier with pos-tag sequence as a feature?

我有两个 类 的句子。每个都有相当不同的后标签序列。如何训练以 POS-Tag 序列为特征的朴素贝叶斯分类器? Stanford CoreNLP/NLTK(Java 或 Python)是否提供任何方法来构建以 pos-tag 作为特征的分类器?我知道 python NaiveBayesClassifier 允许构建 NB 分类器,但它使用 contains-a-word 作为特征,但它可以扩展为使用 pos-tag-sequence 作为特征吗?

如果您知道如何使用 nltk 的朴素贝叶斯分类器和单词作为特征来训练和预测文本(或您的案例中的句子),那么您可以轻松地扩展这种方法,以便通过 pos-tags 对文本进行分类。这是因为分类器不关心您的特征字符串是单词还是标签。因此,您可以使用例如 nltk 的标准 pos 标记器简单地用 pos-tags 替换句子中的单词:

sent = ['So', 'they', 'have', 'internet', 'on', 'computers' , 'now']
tags = [t for w, t in nltk.pos_tag(sent)]
print tags

['IN', 'PRP', 'VBP', 'JJ', 'IN', 'NNS', 'RB']

从现在开始,您可以继续使用 "contains-a-word" 方法。