TF-IDF对中文文本文件聚类并且显示前五个的python代码
时间: 2024-04-10 07:34:30 浏览: 106
人工智能-项目实践-聚类-利用Python实现中文文本关键词抽取,分别采用TF-IDF、TextRank、Word2Vec词聚
要使用TF-IDF对中文文本文件进行聚类并显示前五个聚类结果,你可以使用以下Python代码:
```python
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
# 假设有一个包含中文文本的文件,名为filename,每行为一个文本
filename = "your_filename.txt"
# 读取文件内容
with open(filename, "r", encoding="utf-8") as file:
documents = file.readlines()
# 对文本进行分词
documents = [jieba.lcut(doc) for doc in documents]
# 将分词后的文本列表转换为字符串形式
documents = [" ".join(doc) for doc in documents]
# 使用TF-IDF向量化文本
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(documents)
# 使用KMeans进行聚类
k = 5 # 聚类数目
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
# 获取每个文本所属的聚类标签
labels = kmeans.labels_
# 打印每个聚类的前五个文本
for i in range(k):
cluster_docs = [documents[j] for j in range(len(documents)) if labels[j] == i]
print(f"Cluster {i+1}:")
for doc in cluster_docs[:5]:
print("- ", doc)
print()
```
在这段代码中,我们首先使用jieba库对中文文本进行分词。然后将分词后的文本转换为字符串形式,再使用TF-IDF向量化文本。接下来,我们使用KMeans进行聚类,并获取每个文本所属的聚类标签。最后,我们打印出每个聚类的前五个文本。
请确保已经安装jieba库,并将`your_filename.txt`替换为包含中文文本的文件路径。这只是一个基本示例,实际应用中可能需要进行更多的数据预处理和调参。
阅读全文