【问题标题】:How to train a naive bayes classifier with pos-tag sequence as a feature?如何训练以 pos-tag 序列为特征的朴素贝叶斯分类器?
【发布时间】:2015-04-30 03:05:49
【问题描述】:

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

【问题讨论】:

  • 你真的需要使用 NaiveBayesClassifier 吗?你看过CRF吗?对了,你读过这一章吗:nltk.org/book/ch06.html?
  • 感谢您的链接。我最终使用了串联的 pos-tags-sequence 和 containsPosSequence 作为一个功能......

标签: machine-learning nltk stanford-nlp text-classification naivebayes


【解决方案1】:

如果您知道如何使用 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']

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

【讨论】:

  • 添加到您的答案中,因为问题是“序列”,我们可以链接句子的 pos 标签,如 [IN][PRP][VBP][JJ][IN][NNS][RS] 并定义一个特征,如 say conatinsPrpVbpSequence 并将其设置为 True出现[PRP][VBP]....
猜你喜欢
  • 2015-06-25
  • 2015-09-14
  • 2013-04-11
  • 2020-09-13
  • 2017-06-21
  • 2023-03-23
  • 2017-08-30
  • 2019-05-04
相关资源
最近更新 更多