import csv
if __name__ == "__main__":
words = ["great" , "thanks"]
with open("data/sentiwordnet.tsv", "r") as f:
reader = csv.DictReader(f,delimiter='\t')
for word in xrange(len(words)):
for row in reader:
if row['word_en'] == words[word]:
print float(row["positive"])
print float(row["negative"])
print row["synset"]
结果:
0.75
0.0
124567
以上结果仅针对第一个词,即“great”。循环在这里结束 - 它不会继续到下一个单词。
请您参考如下方法:
一旦您遍历 reader 中的行,它就不会奇迹般地重新启动。交换 for 循环,以便通过 reader 只迭代一次:
for row in reader:
for word in xrange(len(words)):
我只是通过检查每个单词是否在您感兴趣的一组单词中来避免迭代两次。它会运行得更快:
import csv
if __name__ == "__main__":
words = {"great" , "thanks"} # sets are faster than lists for checking containment
with open("data/sentiwordnet.tsv", "r") as f:
reader = csv.DictReader(f, delimiter='\t')
for row in reader:
if row['word_en'] in words:
print float(row["positive"])
print float(row["negative"])
print row["synset"]
您可能还想考虑使用像 pandas 这样的包对于使用表格,它通常会让您的生活更轻松。
