首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >情感分析模型的高精度怀疑

情感分析模型的高精度怀疑
EN

Stack Overflow用户
提问于 2018-02-07 11:21:58
回答 1查看 845关注 0票数 0

我正在使用NLTKscikitlearn构建一个情感分析模型。我已经决定测试几个不同的分类器,以确定哪一个是最准确的,并最终使用它们作为一种手段,以产生一个信心评分。

用于这一测试的数据集都是评论,标记为阳性或阴性。

我用5,000个评论,5次不同的时间,用6个不同(但非常相似)的数据集训练了每个分类器。每个测试都有5000条新的评论。

我平均每个测试和数据集的准确性,以获得一个整体的平均精度。看一看:

  • 多项式朴素贝叶斯:91.291%
  • Logistic回归分析:96.103%
  • SVC:95.844%

在某些试验中,准确度高达99.912%。事实上,其中一个数据集的最低平均准确率为81.524%。

下面是一个相关的代码片段:

代码语言:javascript
复制
def get_features(comment, word_features):
    features = {}
    for word in word_features:
        features[word] = (word in set(comment))
    return features

def main(dataset_name, column, limit): 
    data = get_data(column, limit)
    data = clean_data(data)  # filter stop words

    all_words = [w.lower() for (comment, category) in data for w in comment]
    word_features = nltk.FreqDist(all_words).keys()

    feature_set = [(get_features(comment, word_features), category) for
                       (comment, category) in data]

    run = 0
    while run < 5:
        random.shuffle(feature_set)

        training_set = feature_set[:int(len(data) / 2.)]
        testing_set = feature_set[int(len(data) / 2.):]

        classifier = SklearnClassifier(SVC())
        classifier.train(training_set)

        acc = nltk.classify.accuracy(classifier, testing_set) * 100.
        save_acc(acc)  # function to save results as .csv

        run += 1

虽然我知道这类分类器通常能够返回很好的结果,但这似乎有点太好了,不太正确。

,我需要检查哪些东西才能确保这是有效的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-07 11:57:27

如果你得到的范围从99,66%到81,5%,那就不太好了。

若要分析文本分类情况下的数据集,可以检查:

  • 如果数据集是平衡的?
  • 为每个标签分配单词,有时用于每个标签的词汇表可能真的是不同的。
  • 积极/消极,但同一来源?与之前的观点一样,如果领域不一样,评论可以使用不同的表达式来进行肯定的o负面评论。这有助于获得高精度的几个来源。
  • 尝试使用来自不同来源的评论。

如果你有这么高的准确度,恭喜你!你的get_features真的很好。:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48662556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档