同形异义词是指与另一个词书写形式相同但意义不同的词,例如下列句子中的right:
- 成功在于做出正确的right决定。
- 在交通灯后向right转
英文单词”right”,在第一种情况下翻译成瑞典语为”rätt”,在第二种情况下翻译为”höger”。通过查看上下文(周围的词)可以实现正确的翻译。
问题1. 我想知道fasttext对齐词嵌入是否能帮助翻译这些同形异义词或具有多种可能翻译的词到另一种语言?
[EDIT] 目标不是查询模型以获得正确的翻译。目标是当给出以下信息时,选择正确的翻译:
- 目标语言中的两个(或几个)可能的翻译选项,如”rätt”和”höger”
- 源语言中的周围词
问题2. 我加载了英语预训练向量模型和英语对齐向量模型。虽然两者都是在维基百科文章上训练的,但我注意到两个词之间的距离大致保持不变,但数据集文件的大小(wiki.en.vec vs wiki.en.align.vec)明显不同(1GB)。如果我们只使用对齐版本不是更合理吗?对齐数据集没有捕捉到什么信息?
回答:
对于问题1,我认为这些“对齐”的向量可能有助于翻译同形异义词,但仍然面临一个问题,即任何一个词只有一个向量——即使这个词有多个含义。
你是否假设你已经知道right[en]
可以翻译成rätt[se]
或höger[se]
,这是来自某个外部表格的?(也就是说,你不是将对齐的词向量作为翻译的主要手段,只是作为其他方法的辅助?)
如果是这样,一个可能有帮助的技术是查看rätt[se]
或höger[se]
哪个与你特定实例的right[en]
周围的其他词更接近。(例如,你可以统计每个词与right[en]
周围n个位置内的每个词的排名接近度,或者计算它们与right[en]
周围n个词的平均值的余弦相似度。)
(你甚至可以用非对齐的词向量来做这件事,如果你更精确的词在英语中有多个替代的、非同形异义词/非多义词的翻译。例如,为了确定right[en]
的哪个含义更可能,你可以使用非对齐的英语词向量correct[en]
和rightward[en]
——rätt[se]
和höger[se]
的较少多义的相关词——来检查与周围词的相似性。)
一篇可能激发其他想法的文章是“词义的线性代数结构”,这篇文章出人意料地能够区分出同形异义词的替代含义,即使原始词向量的训练不是基于词义的。(他们的模型中的‘话语原子’是否可以在合并/对齐的多语言向量空间中同样找到,然后上下文词与不同原子的接近程度是否是词义消歧的好指南?)
对于问题2,你暗示对齐的词集在大小上较小。你是否检查过这是否只是因为它包含的词较少?这似乎是最简单的解释,只需检查哪些词被排除在外,你就能知道你失去了什么。