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 15:48:13 浏览: 13
可以使用Python内置的csv模块和pandas库来实现:
```python
import csv
import pandas as pd
sorted_words_list = []
for i in range(n):
sorted_words = sorted(tfidf[i], key=tfidf[i].get, reverse=True)
sorted_words_list.append(sorted_words)
with open('筛选特征词.csv', mode='w', newline='') as file:
writer = csv.writer(file)
for j, word in enumerate(sorted_words_list[0]):
tfidf_values = [tfidf[i][word] for i in range(n)]
row = [word] + tfidf_values
writer.writerow(row)
df = pd.read_csv('筛选特征词.csv')
df.to_csv('筛选特征词.csv', index=False, header=['word']+[f'tfidf{i+1}' for i in range(n)])
```
这段代码将每个文档的特征词按照TF-IDF值从大到小的顺序存储在`sorted_words_list`中。然后使用csv模块将结果写入csv文件中。最后使用pandas库将csv文件的列名修改为`word`和`tfidf{i}`。