我有一组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/

10-12 22:04