据前文计算情感值时提取出来的特征词:“包装”、“速度”、“价格”、“性价比”、 “品质”、“态度”、“发货”、“售后”、“客服”,基于word2vec的k-means聚类得到聚类特征词及其对应的相似词集合,举个详细的代码案例
时间: 2024-06-15 12:04:40 浏览: 11
基于word2vec的k-means聚类是一种常用的文本聚类方法,可以将相似的词语聚集到一起。下面是一个详细的代码案例,用于对给定的特征词进行聚类:
```python
import numpy as np
from gensim.models import Word2Vec
from sklearn.cluster import KMeans
# 特征词列表
feature_words = ["包装", "速度", "价格", "性价比", "品质", "态度", "发货", "售后", "客服"]
# 加载预训练的word2vec模型
model = Word2Vec.load("path_to_word2vec_model")
# 获取特征词的词向量
word_vectors = [model.wv[word] for word in feature_words]
# 使用KMeans进行聚类
kmeans = KMeans(n_clusters=3, random_state=0)
kmeans.fit(word_vectors)
# 获取聚类结果
clusters = kmeans.labels_
# 打印聚类结果
for i in range(len(feature_words)):
print(feature_words[i], "belongs to cluster", clusters[i])
# 获取每个聚类的相似词集合
similar_words = {}
for i in range(len(feature_words)):
cluster_label = clusters[i]
if cluster_label not in similar_words:
similar_words[cluster_label] = []
similar_words[cluster_label].append(feature_words[i])
# 打印每个聚类的相似词集合
for cluster_label, words in similar_words.items():
print("Cluster", cluster_label, ":", words)
```
在上述代码中,首先加载了预训练的word2vec模型,然后获取了特征词的词向量。接下来,使用KMeans算法对词向量进行聚类,这里设置聚类数为3。最后,根据聚类结果将特征词分配到不同的聚类中,并打印出每个聚类的相似词集合。