基于方面的情绪使用NLTK?

时间:2014-12-20 08:26:13

标签: python classification nltk sentiment-analysis

我从事基于方面的情绪分析。我为每次评审都有一套训练集(text和aspectTerms)。

使用NLTK3,我想构建一个朴素贝叶斯分类器,用于预测看不见的测试数据的各个方面。我将使用功能部分语音标记。

功能方法是什么样的?我如何训练分类器?如何在看不见的数据上测试分类器?

我尝试了以下内容:

我的功能看起来像

def featurepos(word):
    return dict(wordpos,true)  //return part of speech tagging for a given word

并将分类器构建为

classifier=NaiveBayesClassifier.train(train_set)
#train_set contains [(posofaspect,"aspect")]

现在我想用测试数据测试分类器。

要检查准确性,下面的代码需要test_set

nltk.classify.util.accuracy(classifier,test_set)

test_set是一个词典列表?如果它是一个字典,它的结构是什么? - 我很困惑。 如果有一个例子,那就太有用了!

1 个答案:

答案 0 :(得分:0)

根据documentation

,这就是准确度函数的作用
def accuracy(classifier, gold):
    results = classifier.classify_many([fs for (fs,l) in gold])
    correct = [l==r for ((fs,l), r) in zip(gold, results)]
    if correct:
        return float(sum(correct))/len(correct)
    else:
        return 0

因此,测试集是元组列表(特征,相应的标签),函数(1)使用训练的分类器计算这些特征的输出,(2)使用给定的标签面对分类结果和(3)输出命中率