我是gensim的新手,我正在阅读Experiments on the English Wikipedia,根据我的理解,它创建了一个包含主题和文字的模型,并尝试将它们联系起来。
在我的公司,我们有一个短语列表,我们使用Damerau-Levenshtein距离公式过滤它们后手动聚类(实际上,这些数据在Elasticsearch上,我们使用模糊性搜索和分数来理解如果应该考虑匹配)。
示例:
PHP Developer
位于群集Developer
中。
我们说有Java Developer
,这也应该归为Developer
。
Elasticsearch的模糊搜索匹配Java Developer
与PHP 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>
提前致谢!
答案 0 :(得分:1)
我认为你可能会混淆gensim LDA的工作方式。维基百科数据集只是一种语言的大块文本。主题模型不直接从维基百科中的条目派生分类。
此外,在我看来,您正在寻找一种细粒度而非直接的分类,其中基于词语频率的统计方法可能不太适合。
使用gensim可能会遇到的问题是,LDA从您要集群的文本生成的主题可能与您手动执行的集群有很大不同(例如,很少有集群聚合到一个主题中,来自一个集群的文档扩散在几个主题之间等。)。
当您应用word2vec矢量指标时,您可能想要检查手动验证的群集是否确实可以很好地分离。如果他们确定你可以使用来自FB的预训练矢量。
或者,由于你有一些质量好的数据(手动验证的集群),我会检查一个分类器(例如SVM,CRF)。