我有一组tweets,我想在其中确定一个负词和正词的比率
negative_words = ['bad', 'terrible']
positive_words = ['outstanding', 'good']
我编写了以下代码来分析它们:
tweets = ["this is terrible", "this is very good"]
for tweet in tweets:
count_positive = 0
count_negative = 0
if(tweet in positive_words):
count_positive = count_positive + 1
if(tweet in negative_words):
count_negative = count_negative + 1
ratio_positive = count_positive / len(tweet)
ratio_negative = count_negative / len(tweet)
ratio_negative = float(ratio_negative)
ratio_positive = float(ratio_positive)
print(ratio_positive)
print(ratio_negative)
这段代码的输出应该是正词和负词的比率。但是我只得到0.0。。。我预计是0.33等。。。
有什么问题吗?
最佳答案
我认为你真正想做的是检查tweet中的每个单词是正的还是负的,而目前你正在检查整个tweet是否在正/负的单词集中。所以你永远找不到它,两个数字都保持在0。
相反,拆分tweet并在其单词上迭代:
for word in tweet.split():
if word in positive_words:
count_positive = count_positive + 1
同样地,对于否定词也是如此。
编辑:(在Schmuddi的回答中有贡献)还要注意,为了计算正确的比率,您需要除以
len(tweet)
中的字数,而不是除以tweet
(即tweet
)。关于python - 确定推文集中的正/负词比率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42899321/