TextBlob朴素贝叶斯。选择最高可能性

时间:2017-04-14 17:51:38

标签: python machine-learning nltk naivebayes textblob

作为培训数据,对XML中的餐馆进行评论,并且相关的目标表达正在表达一种情绪,这是一个属于它的离散标签的类别,以及对此表达的极性:

<text>With the great variety on the menu , I eat here often and never get bored .</text>
     <Opinions>
         <Opinion target="menu" category="FOOD#STYLE_OPTIONS" polarity="positive" from="30" to="34"/>
     </Opinions>

我使用TextBlob NB分类器将目标术语训练到相关类别。

对于测试数据,我的目标是在给定句子和类别的情况下预测目标表达式。我首先从句子中提取名词和名词短语,假设表达式将是这些中的一个子集。对于这句话:

"what may be interesting to most is the worst sevice attitude come from the owner of this establishment“,这些是['sevice attitude', 'owner', 'establishment']

我想知道哪个类别最有可能给出类别,在这种情况下是SERVICE#GENERAL。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

默认情况下,TextBlob的NB分类器将文本特征提取为一个单词包。因此,您可以简单地连接提取的名词列表中的单词,然后将其与类别连接,以将结果用作训练文本。并使用目标作为培训标签。

考虑到单词处理单词,你应该只用一个单词转换这些名词短语。你可以放一个&#39; - &#39;而不是空间,例如(&#39;服务态度&#39;将是&#39;服务态度&#39;)。

示例:

from textblob.classifiers import NaiveBayesClassifier

train = [('sevice-attitude owner establishment SERVICE#GENERAL', 'owner'),
         ('menu variety FOOD#STYLE_OPTIONS', 'menu')]

cl = NaiveBayesClassifier(train)

如果您愿意,可以自定义特征提取:https://textblob.readthedocs.io/en/dev/classifiers.html#feature-extractors