Python-NLP代码无法正常运行

时间:2018-07-18 09:27:40

标签: python nlp vader

我正在重新创建SentDex的NLP tutorial,在那里他在一个带有标签的电影评论数据集上试用TextBlob和Vader。使用下面的代码(请参阅完整代码的链接),SentDex在正面评论中的准确率达到80.6%,在负面评论中的准确率达到91.7%(分别为3921和2747个样本):

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
analyzer = SentimentIntensityAnalyzer()

with open("positive.txt","r") as f:
    for line in f.read().split('\n'):
        vs = analyzer.polarity_scores(line)
        if not vs['neg'] > 0.1:
            if vs['pos']-vs['neg'] > 0:
                pos_correct += 1
            pos_count +=1

# Repeat for negative

我的方法首先将数据加载到df(unlabeled_reviews)中,然后尝试重新创建以上代码。但是,当我运行代码时,与SentDex相比,负数的准确度仅为48.0%,正数的准确度为83.4%。有人可以向我解释以下代码如何与SentDex的代码产生不同的结果吗?:

for lines in unlabeled_reviews['review']:
    pol_score = analyzer.polarity_scores(lines)
    pol_score['review'] = lines
    results.append(pol_score)
results = pd.DataFrame(results)
results = results[['review', 'compound', 'pos', 'neu', 'neg']]

positive_results = results.copy()
positive_results = positive_results[positive_results['neg'] < 0.1]
positive_results['score'] = positive_results['pos'] - positive_results['neg']
positive_results = positive_results[positive_results['score'] > 0.0]
positive_results['class'] = 'positive'

# Repeat for negative

请在我的Github repository中找到我的完整脚本以及使用的数据。

0 个答案:

没有答案