【问题标题】:what if i have only one document and i want to get vectors of all sentences using doc2vec如果我只有一个文档并且我想使用 doc2vec 获取所有句子的向量怎么办
【发布时间】:2018-04-25 08:03:28
【问题描述】:

我是 python 和机器学习的新手。我有一个文件(kkk.csv)。这有 101 个句子,每行 1 个句子。我想在 gensim 中使用 Doc2vec 获取每个句子的向量。之后,我想使用这些向量进行聚类,以便相同的句子组合在一起。有人可以提供我的代码吗(获取每个句子的向量并将它们聚类)?

我尝试使用此代码:

import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
#from sklearn.feature_extraction.text import TfidfVectorizer
import gensim,logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', 
level=logging.INFO)
from os import listdir

docLabels = []
docLabels = [f for f in listdir('''C:/Users/rekhasharma/new''') if 
f.endswith('.csv')]

import pandas as pd
df = pd.read_csv('''C:/Users/rekhasharma/kkk.csv''',names = ['comments'])

rows = 100
df = df.iloc[:rows]
list1 = df.values.tolist()
del list1[0]

class LabeledLineSentence(object):
    def __init__(self, doc_list, labels_list):
       self.labels_list = labels_list
       self.doc_list = doc_list
    def __iter__(self):
       for idx,doc in enumerate(self.doc_list):
           yield gensim.models.doc2vec.LabeledSentence(doc,self.labels_list)
it = LabeledLineSentence(list1, docLabels)
model = gensim.models.Doc2Vec(vector_size=50, min_count=0, alpha=0.025, 
min_alpha=0.025)
model.build_vocab(it)

for epoch in range(100):
    print ('iteration' + str(epoch+1))
    model.train(it,total_examples=49, total_words=None, epochs=1)
    model.alpha = 0.002
    model.min_alpha = model.alpha

model.save('doc2vec.model')
d2v_model = gensim.models.doc2vec.Doc2Vec.load('doc2vec.model')

docvec = d2v_model.docvecs[0]
print (docvec)

【问题讨论】:

  • 你尝试了什么?
  • 请为您的问题提供一个最小、完整且可验证的示例。参考:stackoverflow.com/help/mcve
  • Shubham 我添加了我的代码

标签: python machine-learning


【解决方案1】:

只需使用 gensim 的官方文档 (link)、教程 (link) 以及他们在 doc2vec 上的官方示例笔记本:

如果您经历了这些并且有些事情您仍然不清楚,请随时写一个更具体的问题

【讨论】:

  • 嗨,如何从 doc2vec 中的给定向量重现句子??
  • 请告诉我如何使用这些句子向量进行聚类,以便可以将相似的句子分组在一起
猜你喜欢
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
相关资源
最近更新 更多