用python对两个文本进行kmeans画图
时间: 2023-07-12 07:46:39 浏览: 84
大数据的作业 基于python实现kmeans 是对球队强弱进行聚类+源代码+文档说明+数据
5星 · 资源好评率100%
好的,下面是一个对两个文本进行KMeans聚类并可视化的完整代码:
```python
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 读取文本文件
with open("text1.txt", "r") as f1:
text1 = f1.read()
with open("text2.txt", "r") as f2:
text2 = f2.read()
# 使用CountVectorizer对文本进行特征提取
vectorizer = CountVectorizer()
X = vectorizer.fit_transform([text1, text2]).toarray()
# 使用KMeans对文本进行聚类
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
# 获取每个簇的标签
labels = kmeans.labels_
# 获取每个文本的特征向量
x = X[:, 0]
y = X[:, 1]
# 绘制散点图可视化聚类结果
plt.scatter(x[labels==0], y[labels==0], c='blue', label='Cluster 1')
plt.scatter(x[labels==1], y[labels==1], c='red', label='Cluster 2')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('KMeans Clustering Results')
plt.legend()
plt.show()
```
这段代码首先使用`CountVectorizer`对两个文本进行特征提取,并使用`KMeans`对它们进行聚类。然后,我们获取了每个文本所属的簇的标签,以及每个文本的特征向量的两个维度。接着,我们使用`matplotlib`库的`scatter`函数绘制散点图,其中每个点表示一个文本,颜色代表它所属的簇。最后,我们添加了标签和标题,并使用`legend`函数添加图例,以使图表更易于理解。
阅读全文