Doc2Vec模型的DBSCAN聚类

2024-09-29 19:19:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Gensim创建了一个Doc2Vec模型,并希望使用scikit-learnDBSCAN在模型中查找句子集群

我正在努力找出如何最好地转换模型向量,以使用DBSCAN和plot集群,但在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)

我这样做对吗

我将如何将其绘制在图表上以可视化集群

谢谢


Tags: 模型importsizemodelastag集群dbscan

热门问题