我有一个用Gensim创建的Doc2Vec模型,希望使用scikit-learn DBSCAN来查找模型中句子的聚类。
我很难找到如何最好地转换模型向量,以便与DBSCAN和绘图集群一起工作,并且在web上找不到许多直接适用的示例。
以下是我到目前为止所拥有的:
import gensim
import numpy as np
from sklearn.cluster import DBSCAN
import matplotlib.pyplot as plt
fnIn = 'NLPModels/doc2VecModel_vector_size{0}_epochs{1}.bin'
def doCluster(vector_size, epochs):
model = gensim.models.doc2vec.Doc2Vec.load(fnIn.format(vector_size, epochs))
Y = model.docvecs.index2entity # tags
X = [] # Document vectors
for tag in Y:
X.append(model.docvecs[tag])
db = DBSCAN(eps=.1, min_samples=5, metric='cosine').fit_predict(X)
labels = set(db)
print(labels)
doCluster(100, 10)输出:{0, 1, -1}
我认为是两个星系团(0和1)和离群值(-1)。
我这样做是正确的吗?
我将如何在图表上绘出这些星系团呢?
谢谢。
发布于 2020-04-20 15:58:59
这里有两个问题:
https://stackoverflow.com/questions/61253758
复制相似问题