我正在使用来自https://github.com/facebookresearch/fastText/blob/master/pretrained-vectors.md的德语预训练词向量
我遇到了以下问题:
- 为了提取单词的向量,我首先在
wiki.de.vec
文本文件中搜索相应的单词。但是,wiki.de.vec
文本文件中的向量与print-word-vectors
函数输出的向量不同(例如,文件中的“affe”向量表示“monkey”与wiki.de.vec
“affe”的输出不同print-word-vectors
)。这是什么原因?我认为发生这种情况是因为单词的向量是通过在 Bojanowski 等人的模型中添加其字符nwiki.de.vec
-gram 向量的总和来计算的,但是文本文件中“affe”的向量反映了什么?是不是也出现在诸如“karaffe”之类的其他词中的n- gram 'affe' 的向量。因此,是否应该始终使用该print-word-vectors
功能(即-gram 向量)在使用这些向量时,而不是简单地从文本文件中提取向量? - 一些真正的德语单词(例如 knatschen、resonieren)接收一个空向量(即使使用
print-word-vectors
函数)。如果这种子词方法的主要优点是计算词汇外词的向量,这怎么可能呢? - 最近邻函数 (
./fasttext nn
) 输出具有余弦距离的单词的最近邻。但是,这个值与我通过获取单个单词的向量print-word-vectors
并在 Matlab 中使用pdist2(wordVector1, wordVector2, 'cosine')
. 为什么会这样?这是获取两个词向量之间的余弦距离的错误方法吗?
提前感谢您的帮助和建议!