复制
收藏
提问
简洁
# 任务3:打印出每一回中10个tf-idf值最高的词 from sklearn.feature_extraction.text import TfidfVectorizer inFils = open(r'分词后汇总.txt', 'r', encoding='utf8') corpus = inFils.readlines() vectorizer = TfidfVectorizer() tfidf = vectorizer.fit_transform(corpus) wordlist = vectorizer.get_feature_names_out() df = pd.DataFrame(tfidf.T.todense(), index=wordlist) for i in range(len(corpus)): featurelist = df.iloc[:, i].to_list() resdict = {}根据上述代码,叙述逻辑。 for j in range(0, len(wordlist)): resdict[wordlist[j]] = featurelist[j] resdict = sorted(resdict.items(), key=lambda x: x[1], reverse=True) print(resdict[0:10])
2个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
代码逻辑概述
任务目标:打印出每一回中TF-IDF值最高的10个词。
- 导入TF-IDF库:使用
sklearn
的TfidfVectorizer
实现TF-IDF。 - 读取文本数据:从文件
分词后汇总.txt
中读取分词后的文本数据。 - 初始化TF-IDF向量化器:创建
TfidfVectorizer
实例。 - 拟合数据并转换:使用
fit_transform
方法拟合文本数据并转换为TF-IDF矩阵。 - 获取词汇列表:通过
get_feature_names_out
获取所有词汇。 - 转换为DataFrame:将TF-IDF矩阵转换为DataFrame,便于操作。
- 遍历每一回:对每一回的文本进行处理。
- 提取特征值:提取每一回的TF-IDF特征值。
- 排序并打印:对每一回的词汇按TF-IDF值降序排序,打印出前10个词。
代码实现步骤
- 步骤1:打开并读取分词后的文本文件。
- 步骤2:初始化TF-IDF向量化器。
- 步骤3:拟合文本数据并转换为TF-IDF矩阵。
- 步骤4:获取词汇列表。
- 步骤5:将TF-IDF矩阵转换为DataFrame。
- 步骤6:遍历每一回文本,提取特征值。
- 步骤7:对每一回的词汇按TF-IDF值排序。
- 步骤8:打印每一回中TF-IDF值最高的10个词。
from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd
# 打开并读取分词后的文本文件
inFils = open(r'分词后汇总.txt', 'r', encoding='utf8')
corpus = inFils.readlines()
# 初始化TF-IDF向量化器
vectorizer = TfidfVectorizer()
# 拟合文本数据并转换为TF-IDF矩阵
tfidf = vectorizer.fit_transform(corpus)
# 获取词汇列表
wordlist = vectorizer.get_feature_names_out()
# 将TF-IDF矩阵转换为DataFrame
df = pd.DataFrame(tfidf.T.todense(), index=wordlist)
# 遍历每一回文本,提取特征值并排序
for i in range(len(corpus)):
featurelist = df.iloc[:, i].to_list()
resdict = {wordlist[j]: featurelist[j] for j in range(len(wordlist))}
# 对每一回的词汇按TF-IDF值排序
resdict = sorted(resdict.items(), key=lambda x: x[1], reverse=True)
# 打印每一回中TF-IDF值最高的10个词
print(resdict[0:10])
```<a data-index="0" class='citation' href="#citation-1" target="_blank">1</a><a data-index="1" class='citation' href="#citation-4" target="_blank">4</a><a data-index="2" class='citation' href="#citation-6" target="_blank">6</a>
你觉得结果怎么样?