文本聚类分析k-means的整个过程代码,包括分词,tf-idf的计算
时间: 2023-12-11 22:05:35 浏览: 58
好的,下面是一个简单的文本聚类分析的 k-means 算法的代码,包括分词和 TF-IDF 的计算:
```python
import jieba
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
# 读取文本数据
with open('data.txt', 'r', encoding='utf-8') as f:
texts = f.readlines()
# 对文本进行分词
texts = [' '.join(jieba.cut(text)) for text in texts]
# 计算 TF-IDF
vectorizer = TfidfVectorizer()
tfidf = vectorizer.fit_transform(texts)
# 运行 K-Means 聚类算法
k = 3
kmeans = KMeans(n_clusters=k, max_iter=100, n_init=1)
labels = kmeans.fit_predict(tfidf)
# 输出每个簇的文本
for i in range(k):
print('Cluster %d:' % i)
for j in np.where(labels == i)[0]:
print('- %s' % texts[j])
```
以上代码包含以下步骤:
- 读取文本数据;
- 对文本进行分词,使用了 jieba 库;
- 计算 TF-IDF,使用了 sklearn 的 TfidfVectorizer 类;
- 运行 K-Means 聚类算法,使用了 sklearn 的 KMeans 类;
- 输出每个簇的文本。
需要注意的是,以上代码中的 `data.txt` 文件应该是一个包含多个文本的文件,每个文本占一行。