在我的完整脚本中,我将90家公司的tweet与它们的关注者的tweet以及其他公司的关注者的tweet进行比较。我试图将所有结果写入一个csv文件,但我不确定如何在一个循环中做到这一点。现在代码中最重要的部分如下所示:
for x in tweets_companies:
for y in tweets_followers:
D1 = " ".join([tweets_companies[x]])
D2 = " ".join([tweets_followers[y]])
documents = [D1, D2]
LemVectorizer.fit_transform(documents)
tf_matrix = LemVectorizer.transform(documents)#.toarray()
tfidfTran = TfidfTransformer(norm="l2")
tfidfTran.fit(tf_matrix)
print(x,y)
tfidf_matrix = tfidfTran.transform(tf_matrix)
cos_similarity_matrix = (tfidf_matrix * tfidf_matrix.T).toarray()
print(cos_similarity_matrix)
每次将一家公司的tweet与他们自己的关注者或另一家公司的关注者的tweet进行比较时,结果如下:
^{pr2}$这个循环不断地打印结果,直到每个公司的tweet与其他公司的关注者的tweet进行比较。我试图将所有结果写入一个csv文件,但我不确定如何使用这个循环。现在,我有以下信息:
results = [x, y, cos_similarity_matrix]
with open('results.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['company', 'followers', 'result'])
writer.writerow(results)
我已经把它放在第二个'for'循环中,现在它只把最后用python打印的结果写到csv文件中。如何确保每次都用新打印的结果更新csv文件,以便最终将每个公司的所有结果放入文件中?在
把
在循环外部(上面),并在循环内部调用
writer.writerow
。循环必须在with
块内。在每次在第二个循环中打开文件。该文件始终具有相同的名称并覆盖上一个文件。移动
在外循环外,只需在内循环中写入行。在
相关问题 更多 >
编程相关推荐