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

kun*_*dan 6 machine-learning nltk stanford-nlp text-classification naivebayes

我有两类句子.每个都有相当明显的pos标签序列.如何训练以POS-Tag序列为特征的Naive-Bayes分类器?Stanford CoreNLP/NLTK(Java或Python)是否提供了使用pos-tag作为特征构建分类器的任何方法?我知道在python中NaiveBayesClassifier允许构建一个NB分类器,但它使用contains-a-wordas作为功能,但它可以扩展为使用pos-tag-sequence作为功能吗?

cha*_*ugs 6

如果您知道如何使用 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
Run Code Online (Sandbox Code Playgroud)

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

从现在开始,您可以继续使用“包含一个词”的方法。