【问题标题】:python reading from csv doesn't give the right answer从 csv 读取的 python 没有给出正确的答案
【发布时间】:2015-10-07 11:47:58
【问题描述】:

这是我在这个网站上的第一篇文章,所以对于我在这篇文章中所犯的任何错误,我深表歉意。

我正在为一家公司进行 Twitter 情绪分析。我有一个充满推文(只有 1 列)的 csv,我想知道他们是在正面谈论该公司还是负面评价。 我找到了一个可以从句子中找到极性和主观性的包。例如,这是我的 python 脚本,我想从以下位置查找结果:

from pattern.nl import sentiment
print sentiment('I love this company!')

结果:

(0.75, 0.90)

此时,一切正常,但我需要为 6000 多条推文执行此操作,因此我考虑将 csv 读入脚本并为每一行执行此操作。

import csv
from pattern.nl import sentiment
import sys

f = open('C:\Users\Admin\Desktop\TweetsFromNodeXLOnlyTweets.csv')
try:
    reader = csv.reader(f)
    for row in reader:
        text = row
        print sentiment(text)
finally:
f.close()

当我运行它时,我只会得到 (0.00, 0.00) 的所有推文。脚本似乎无法读取它,但是当我只打印文本时,我应该得到所有推文。当我写打印情绪(文本)时,我确实得到了我想要的结果,但仅限于那一条推文。 我该如何解决这个问题?我对 Python 很陌生(昨天开始),但是这个网站上没有教程或其他帖子可以帮助我!

【问题讨论】:

  • ^^ @DenStutdent,试试 Azad 的建议。可能就是这样。
  • @Azad 谢谢老兄!那解决了它。我真是个愚蠢的错误:P
  • @Azad,如果这是答案,请将其作为答案发布。

标签: python csv twitter sentiment-analysis


【解决方案1】:

根据documentation,csv.reader在迭代时返回字符串列表,对应行中的字段。由于您的 csv 只有一列,因此返回的列表将只有一项,因此您应该像这样访问它:

text = row[0]

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多