我有一个csv文件,我希望对该包含调查数据的数据集执行情感分析。
到目前为止,这是我已经尝试过的(感谢上一个问题中的Rupin!):
import csv
from collections import Counter
with open('myfile.csv', 'r') as f:
reader = csv.reader(f, delimiter='\t')
alist = []
iterreader = iter(reader)
next(iterreader, None)
for row in iterreader:
clean_rows = row[0].replace(",", " ").rsplit()
alist.append(clean_rows)
word_count = Counter(clean_rows)
mostWcommon = word_count.most_common(3)
print(mostWcommon)
输出几乎可以,我唯一的问题是Python正在拆分列表的不同行,因此我的输出是这样的:
我希望将所有内容都分成一行,这样我可以得到真实的词频...有什么建议吗?
谢谢!
您正在为每一行创建一个新的Counter
,并仅打印该结果。如果需要总计数,则可以在行循环外创建计数器,并使用每行中的数据对其进行更新:
import csv
from collections import Counter
with open('myfile.csv', 'r') as f:
reader = csv.reader(f, delimiter='\t')
alist = []
iterreader = iter(reader)
next(iterreader, None)
c = Conter()
for row in iterreader:
clean_rows = row[0].replace(",", " ").rsplit()
alist.append(clean_rows)
c.update(clean_rows)
mostWcommon = word_count.most_common(3)
print(mostWcommon)