Machine learning 翻译同形词的快速文本对齐词向量

Machine learning 翻译同形词的快速文本对齐词向量,machine-learning,nlp,word2vec,fasttext,machine-translation,Machine Learning,Nlp,Word2vec,Fasttext,Machine Translation,是一个与另一个单词具有相同书面形式但含义不同的单词,如以下句子中的right: 成功就是做出正确的决定 在红绿灯后向右转 在第一种情况下,英语单词“right”被翻译成瑞典语,在第二种情况下被翻译成“rätt”和“höger”。通过查看上下文(周围的单词),可以进行正确的翻译 问题1。我想知道fasttext-aligned单词嵌入是否有助于将这些同形词或具有多种可能翻译的单词翻译成另一种语言 [编辑]目标是不查询模型以获得正确的翻译。目标是在给出以下信息时选择正确的译文: 目标语言中两种

是一个与另一个单词具有相同书面形式但含义不同的单词,如以下句子中的right

  • 成功就是做出正确的决定
  • 在红绿灯后向右转
在第一种情况下,英语单词“right”被翻译成瑞典语,在第二种情况下被翻译成“rätt”和“höger”。通过查看上下文(周围的单词),可以进行正确的翻译

问题1。我想知道fasttext-aligned单词嵌入是否有助于将这些同形词或具有多种可能翻译的单词翻译成另一种语言

[编辑]目标是查询模型以获得正确的翻译。目标是在给出以下信息时选择正确的译文:

  • 目标语言中两种(或几种)可能的翻译选项,如“rätt”和“höger”
  • 源语言中的周边词

问题2。我加载了和。虽然两人都接受了维基百科文章的培训,但我注意到两个单词之间的距离在某种程度上保持不变,但数据集文件的大小(wiki.en.vec与wiki.en.align.vec)明显不同(1GB)。如果我们只使用对齐的版本,这难道没有意义吗?对齐的数据集没有捕获哪些信息?

对于问题1,我认为这些“对齐”向量可能有助于翻译同形词,但仍然面临这样的问题:任何标记只有一个向量,即使一个标记有多个含义

您是否假设您已经知道,
right[en]
可以从某个外部表转换为
rätt[se]
höger[se]
?(也就是说,你没有使用对齐的词向量作为主要的翻译手段,只是其他方法的附属品?)

如果是这样的话,一种可能有帮助的方法是看看
rätt[se]
höger[se]
中的哪个词更接近于围绕您的
右[en]
的特定实例的其他词。(例如,您可以计算
right[en]
n个点内每个单词的排名接近度,或者计算它们与
right[en]
周围n个单词的平均值的余弦相似度。)

(如果您的更精确的单词有多个、交替的、非同形异义/非多义的英语翻译,您甚至可以使用不对齐的单词向量来实现这一点。例如,要确定
right[en]
的哪种意义更有可能,您可以将不对齐的英语单词向量用于
correct[en]
向右[en]
–减少
rätt[se]
höger[se]
的多义相关词,以检查与周围单词的相似性。)

一篇可能会产生其他想法的文章是“”,令人惊讶的是,它能够挑出同形异义词标记的替代意义,即使在原始的词向量训练不知道词义的情况下。(他们模型中的“话语原子”是否可以在合并/对齐的多语言向量空间中找到,然后上下文词与不同原子的接近程度是否可以很好地指导词义消歧?)


对于问题2,您暗示对齐的单词集的大小较小。你有没有检查过这是否只是因为它包含的单词较少?这似乎是最简单的解释,只需检查哪些单词被遗漏,就可以让你知道你失去了什么

fastText单词嵌入不是上下文的:因此,对于每个单词(无论其含义如何),只有一个向量。像ELMo和BERT这样的嵌入是上下文的。所以,对于“正确”这个词,根据上下文的不同,有不同的向量。谢谢你的回复@Anakin87。我一定会看看埃尔莫和伯特。通过“fastText单词嵌入不是上下文的”,您是指使用skipgram模型训练的预训练数据集吗?在美国,据说是这样的。我错过了什么?我想我没有正确地解释这个问题。我们的目标不是从模型中找到正确的翻译,而是在给定多个选项时选择最接近的泰吉语翻译。Quote:>skipgram模型学习预测目标词,这要归功于附近的词。另一方面,cbow模型根据上下文预测目标词。上下文表示为包含在目标单词周围的固定大小窗口中的一袋单词。。。给定句子“…..”和目标词“silent”,skipgram模型尝试使用随机的近旁词预测目标,如“subject”或“神秘地”。cbow模型使用周围窗口中的所有单词,比如{been,神秘地,on,The},并使用它们的向量之和来预测目标。我只想说,在fastText中,“right”一词对应一个且只有一个向量。在其他模型中,一个单词可以对应于一些向量,这取决于上下文(根据含义)。见谢谢@Anakin87,非常感谢。对于我的案例来说,伯特的计算成本似乎很高,而且工作过度。ELMo看起来很有希望,但我找不到任何经过预训练的数据集来评估它。有指针吗?谢谢@gojomo,现在我正试图遵循头优先的方法,只使用现有的经过训练的数据集、工具和算法(fasttext、pymagnitude等),而不实施任何新算法。非常有趣的建议,目前我正在用sum(vectors.distance(“höger”,surroundingList))对距离进行求和,并将其与我从“rätt”中得到的结果进行比较。你的建议是使用向量。相似性(“höger”,averageVec(surroundingList))代替?仅使用非对齐向量:我知道如何使用非对齐向量,但当我查询一个单词时,通常有几个候选向量