最近,我做了一项研究,目的是对一个庞大的文本数据库进行无监督的聚类。首先,我尝试了几种聚类算法,这些算法给了我很好的结果,但现在我尝试进入doc2vec表示,它似乎对我不起作用,我无法加载准备好的模型并使用它,相反,我自己的训练并不能证明任何结果。
我试着对我的模特进行10k文本的培训
model = gensim.models.doc2vec.Doc2Vec(vector_size=500, min_count=2, epochs=100,workers=8)
(每个字数约为20-50字),但相似评分是由gensim类人提出的。
sims = model.docvecs.most_similar([inferred_vector], topn=len(model.docvecs))
和我的模特比起来要糟糕得多。更糟糕的是,我的意思是,相同或几乎相同的文本具有与我所能想到的没有任何联系的文本兼容的相似性分数。所以我决定使用来自Is there pre-trained doc2vec model?的模型来使用一些预先训练过的模型,这些模型可能在单词之间有更多的联系。很抱歉序言有点长,但问题是我该如何插入呢?有人能提供一些想法吗?我如何使用https://github.com/jhlau/doc2vec加载的gensim模型将我自己的文本数据集转换成相同长度的向量?我的数据是预处理的(停止,没有标点符号,小写,没有nlst.corpus停止词),如果需要的话,我可以从列表、数据或文件中传递它,代码问题是如何将我自己的数据传递给预先训练过的模型?任何帮助都将不胜感激。
UPD:让我感到难过的输出
火车文件(6134):使用媒介纸检查媒介习惯一周必须图表每日使用媒体、广播电视、报纸、杂志、电影、视频等,唤醒无线电警报、听交通报告、通勤、观看新闻、观看体育肥皂剧、看电视、上网、看书、看电影资料、收集日记、分析检查信息、使用美国满意模型、讨论教科书我们满足的文章,或者携带小笔记本、白天输入资料、晚上帮助留有组织的智能手机、使用便条、应用、追踪媒体、需要日记、信托、转告,立即告诉报纸是否保存了一份开始,媒体日记,可能很快就会有足够的时间完整写日记。论文完成后,日记需要写页,论文使用中介功能分析理论,说一些最了解的理解,使用了我们的满足模型,提供了框架,个体使用媒介,基础分析,特别是范畴讨论,张贴文章,应用概念,媒介使用,预期使用媒介,使用认知,社会效用,关联,退出,得出结论,在框架内使用分析习惯,讨论文本,文章概念必须包括清晰的纸,学生做作业,告诉媒体习惯,失败,分析习惯,在上下文中,我们满足模式必须包括思想纸。 类似文件(6130,0.6926988363265991:使用中纸考试媒介习惯一周必须图表,每日使用媒体、广播电视、报纸、杂志、电影、视频等,唤醒无线电报警、听交通报告、通勤、看新闻、运动肥皂剧、看电视、上网、看书、看电影资料、收集期刊资料、分析查阅资料、使用美国满足模式、讨论教科书的满足性文章,或者携带小笔记本、白天输入资料、晚上帮助留小笔记本、当天使用智能手机、使用便笺、应用、跟踪、信任、转帐、信访、转告、报、写、报、报、写、完成。日记需要写页纸,运用媒介功能分析理论,说出一些最能理解的理解,用我们的满足模型,提供框架,个体使用媒介的基础分析,特别是分类讨论,张贴多米尼克文章,应用概念,媒介使用,期望媒介,使用认知,社会效用,从属关系,退出,在框架内得出使用习惯,讨论文本文章,概念必须包括明确的论文,学生做作业,告诉中的习惯,失败,分析习惯,在上下文中,我们满足模型必须包括思想,纸,我们满足模型。
这看起来很好,但是看看其他的输出
培训文件(1185):摄影加里维诺格兰想要纸生活工作,加里威诺格兰著名的街头摄影师也影响了街头摄影的目标,向深思熟虑的想象力处理细节参考研究材料学术论文大学水平。 类似文献(3449,0.6901006698608398):唐朝写一页短文,唐代散文,唐诗,佛教,唐朝名称,唐代铁饼,他们的历史,把标题段落的信息,唐朝讨论的散文?
这表明,系统中最相似的两个文本和两个超级不同的文本之间的相似度几乎是相同的,这就使得对数据做任何事情都有问题。获取我使用的最相似的文档
sims = model.docvecs.most_similar([inferred_vector], topn=len(model.docvecs))
发布于 2019-06-04 08:43:17
来自https://github.com/jhlau/doc2vec的模型基于一个更老版本的gensim的自定义分叉,因此您必须找到/使用它才能使它们可用。
来自通用数据集(如维基百科)的模型可能不理解您需要的特定领域的单词,而且即使在共享单词的地方,这些词的有效意义也可能有所不同。此外,要使用另一个模型来推断数据上的向量,您应该确保您正在以与处理培训数据相同的方式对文本进行预处理/标记。
因此,最好在与领域相关的数据上使用您自己训练过的模型,以便您完全理解它。
10k每个20-50字的文档与已发表的Doc2Vec
工作相比有点小,但可能有效。试图从较小的数据集中获取500维向量可能是个问题。(由于数据较少,可能需要更少的向量维数和更多的训练迭代。)
如果你在自我训练模型上的结果不能令人满意,那么在你的训练和推理代码中可能会出现其他问题(在你的问题中还没有显示出来)。它也将有助于看到更多的具体例子/细节,你的结果是如何令人不满意的,相比基线(比如你提到的字里行间的陈述)。如果你把这些细节添加到你的问题中,也许可以提出其他建议。
https://stackoverflow.com/questions/56444845
复制相似问题