用gensim进行单词聚类

时间:2017-05-18 14:23:40

标签: python neural-network cluster-analysis gensim lda

我是gensim的新手,我正在阅读Experiments on the English Wikipedia,根据我的理解,它创建了一个包含主题和文字的模型,并尝试将它们联系起来。

在我的公司,我们有一个短语列表,我们使用Damerau-Levenshtein距离公式过滤它们后手动聚类(实际上,这些数据在Elasticsearch上,我们使用模糊性搜索和分数来理解如果应该考虑匹配)。

示例:

PHP Developer位于群集Developer中。

我们说有Java Developer,这也应该归为Developer

Elasticsearch的模糊搜索匹配Java DeveloperPHP Developer类似(Elasticsearch使用Damerau-Levenshtein距离公式),因此脚本会考虑将PHP Developer的相同群集放在一起已经过验证(此验证是手动完成的)。

我的问题是:这个gensim可以用维基百科的数据库作为"字典"来集中单词。

我也发现这个pre-trained vectors由Facebook完成,我不知道我是否可以将此用于我的问题。

我尝试使用此Python脚本加载其中一个.txt文件:

import gensim

sentences = gensim.models.KeyedVectors.load_word2vec_format('/Users/genesisxyz/Downloads/wiki.it.vec')
print(sentences)

p = sentences.similarity('uomo', 'donna')
print(p)

这只是我正在做的第一个实验,但我仍然不知道从哪里开始,我在其他与词语语义无关的主题上做了一些神经网络,但在这里我没有任何线索。 / p>

提前致谢!

1 个答案:

答案 0 :(得分:1)

我认为你可能会混淆gensim LDA的工作方式。维基百科数据集只是一种语言的大块文本。主题模型不直接从维基百科中的条目派生分类。

此外,在我看来,您正在寻找一种细粒度而非直接的分类,其中基于词语频率的统计方法可能不太适合。

使用gensim可能会遇到的问题是,LDA从您要集群的文本生成的主题可能与您手动执行的集群有很大不同(例如,很少有集群聚合到一个主题中,来自一个集群的文档扩散在几个主题之间等。)。

当您应用word2vec矢量指标时,您可能想要检查手动验证的群集是否确实可以很好地分离。如果他们确定你可以使用来自FB的预训练矢量。

或者,由于你有一些质量好的数据(手动验证的集群),我会检查一个分类器(例如SVM,CRF)。