word2vec gensim 多语言

这个问题完全超出了我的理解范围。我正在使用gensim训练一个Word2Vec模型。我提供了多种语言的数据,即英语和印地语。当我试图查找与’man’最接近的词时,我得到了以下结果:

model.wv.most_similar(positive = ['man'])Out[14]: [('woman', 0.7380284070968628), ('lady', 0.6933152675628662), ('monk', 0.6662989258766174), ('guy', 0.6513140201568604), ('soldier', 0.6491742134094238), ('priest', 0.6440571546554565), ('farmer', 0.6366012692451477), ('sailor', 0.6297377943992615), ('knight', 0.6290514469146729), ('person', 0.6288090944290161)]--------------------------------------------

问题是,这些都是英语单词。然后我尝试查找相同意义的印地语和英语单词之间的相似性,

model.similarity('man', 'आदमी')__main__:1: DeprecationWarning: Call to deprecated `similarity` (Method will be removed in 4.0.0, use self.wv.similarity() instead).Out[13]: 0.078265618974427215

这个准确度本应比其他所有准确度都要高。我拥有的印地语语料库是通过翻译英语语料库制作的。因此,单词出现在相似的上下文中。因此,它们应该很接近。

这是我在这里所做的:

#Combining all the words together.all_reviews=HindiWordsList + EnglishWordsList#Training FastText modelcpu_count=multiprocessing.cpu_count()model=Word2Vec(size=300,window=5,min_count=1,alpha=0.025,workers=cpu_count,max_vocab_size=None,negative=10)model.build_vocab(all_reviews)model.train(all_reviews,total_examples=model.corpus_count,epochs=model.iter)model.save("word2vec_combined_50.bin")

回答:

首先,你真的应该使用self.wv.similarity()。

我假设在你的印地语语料库和英语语料库之间几乎没有单词是相同的,因为印地语语料库使用的是梵文字母,而英语使用的是英语。简单地将两个语料库加在一起来制作模型是没有意义的。两种语言中的对应词在文档的两个版本中共同出现,但不在你的词嵌入中,Word2Vec无法找出最相似的词。

例如,直到你的模型知道

Man:Aadmi::Woman:Aurat,

从词嵌入中,它永远无法理解

Raja:King::Rani:Queen

的关系。为了做到这一点,你需要在两个语料库之间建立某种锚点。以下是一些你可以尝试的建议:

  1. 创建一个独立的印地语语料库/模型
  2. 维护并查找一些你需要手动创建的英语-印地语词对数据
  3. 在训练时随机用对应文档中的对应词替换输入文档中的词

这些建议可能足以给你一些启发。如果你只想进行翻译,你还可以查看seq2seq。你还可以详细阅读Word2Vec理论,以了解它是如何工作的。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注