计算每一行文本的 TF-IDF 值,按照 TF-IDF 值的大小以降序形式输出。 输出示例:语句 1:[(‘我’:0.8), (‘北京’:0.7),………] 语句 2:[(‘小明’:0.8), (‘毕业’:0.7),………]用Python编写
时间: 2024-09-14 12:08:14 浏览: 35
在Python中,我们可以使用`scikit-learn`库来计算每行文本的TF-IDF值,并按降序排序。首先,需要安装这个库,如果还没有的话,可以使用`pip install scikit-learn`命令。
这是一个简单的例子:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
# 假设我们有两行文本数据
texts = [
"我爱北京",
"小明毕业了"
]
# 创建TfidfVectorizer对象
vectorizer = TfidfVectorizer()
# 转换文本到TF-IDF向量
tfidf_matrix = vectorizer.fit_transform(texts)
# 获取词汇表(所有单词)
vocab = vectorizer.get_feature_names_out()
# 对每行TF-IDF矩阵按列求和得到每个词的TF-IDF值
row_sums = tfidf_matrix.sum(axis=1).tolist()
# 将文本和对应的TF-IDF值打包成列表,按降序排列
sorted_data = sorted(zip(texts, row_sums), key=lambda x: x[1], reverse=True)
# 输出结果
for i, text in enumerate(sorted_data):
print(f"语句 {i+1}: {[(vocab[j], text[1][j]) for j in range(len(vocab))]}")
```
在这个示例中,`zip`函数将文本和它们的TF-IDF值对应起来,然后`sorted`函数根据TF-IDF值的总和降序排列。注意,由于原始数据只有两行,实际应用中可能会更复杂,比如从文件或数据库读取大量文本数据。
阅读全文