wb = Workbook() ws = wb.active for i in range(n): sorted_words = sorted(tfidf[i], key=tfidf[i].get, reverse=True) for j, word in enumerate(sorted_words): ws.cell(row=j+1, column=1, value=word) ws.cell(row=j+1, column=i+2, value=tfidf[i][word]) wb.save('筛选特征词.xlsx') 将这部分代码改为按照 TF-IDF 值进行排序,并将结果保存到 csv文件中
时间: 2024-03-08 22:47:51 浏览: 54
可以将代码改成以下形式来按照 TF-IDF 值进行排序并保存到 csv 文件中:
```python
import csvfrom operator import itemgetter
with open('筛选征词.csv', 'w', newline='') as csvfile:
writer = csv(csvfile)
writer.writerow([''] + [f'Doc+1}' for i range(n)]) # 写入头
for i range(n):
sorted_words = sorted(tfidf[i].items(), key=itemgetter(1), reverse=True) # 按照 TF-IDF 值进行排序
for j, (word, tfidf_value) in enumerate(sorted_words):
if j == 0:
writer.writerow([word] + [tfidf_value if k == i else '' for k in range(n)]) # 写入第一列和当前文档的 TF-IDF 值
else:
writer.writerow([word] + ['' for _ in range(n-1)] + [tfidf_value]) # 写入其余列的 TF-IDF 值
```
这里使用 Python 的 `csv` 模块来将结果保存到 csv 文件中,并使用 `operator` 模块中的 `itemgetter` 函数来进行排序。同时,为了将每个特征词和其对应的 TF-IDF 值的文档对齐,我们需要在写入 csv 文件时进行一些特殊处理。
阅读全文