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 09:47:55 浏览: 72
可以将代码改成以下形式来按照 TF-IDF 值进行排序并保存到 csv 文件中:
```python
with open('筛选特征词.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([''] + [f'Doc{i+1}' for i in range(n)]) # 写入头
for i in range(n):
sorted_words = sorted(tfidf[i].items(), key=lambda x: x[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 文件中,同时使用 `lambda` 函数来进行排序。为了将每个特征词和其对应的 TF-IDF 值的文档对齐,我们需要在写入 csv 文件时进行一些特殊处理。
阅读全文