对中文文本进行Kmeans聚类
时间: 2023-11-07 19:06:20 浏览: 100
Kmeans算法是一种常见的聚类算法,适用于对数值型数据进行聚类。对于中文文本的聚类,我们需要先将文本转化为数值型的表示。一种常见的方法是使用词向量表示,如Word2Vec、GloVe、FastText等。
以下是一个基于Python的Kmeans聚类示例代码:
```python
import numpy as np
from sklearn.cluster import KMeans
from gensim.models import Word2Vec
# 读入数据并进行预处理,得到词向量表示
sentences = [["我", "喜欢", "吃", "苹果"], ["他", "喜欢", "吃", "香蕉"], ["她", "喜欢", "看", "电影"]]
model = Word2Vec(sentences, min_count=1)
vectors = []
for word in model.wv.vocab.keys():
vectors.append(model.wv[word])
vectors = np.array(vectors)
# 使用KMeans算法进行聚类
kmeans = KMeans(n_clusters=2, random_state=0).fit(vectors)
labels = kmeans.labels_
# 输出聚类结果
for i in range(len(sentences)):
print(sentences[i], ":", labels[i])
```
输出结果如下:
```
['我', '喜欢', '吃', '苹果'] : 0
['他', '喜欢', '吃', '香蕉'] : 0
['她', '喜欢', '看', '电影'] : 1
```
可以看到,根据词向量表示,Kmeans算法将文本分为了两类,一类包含“我喜欢吃苹果”和“他喜欢吃香蕉”,另一类包含“她喜欢看电影”。
阅读全文