我有一个在庞大的语料库上训练过的Word2Vec模型。在将此模型用于神经网络应用程序时,我遇到了很多“词汇量不足”的单词。现在,我需要为这些“词汇量不足”的单词找到单词嵌入。因此,我进行了一次谷歌搜索,发现Facebook最近为此发布了FastText库。现在我的问题是如何将现有的word2vec模型或Keyedvectors转换为FastText模型?
FastText能够通过将原始原始语料库中的片段包含在初始训练中来为子单词片段创建向量。然后,当遇到词汇外('OOV')单词时,它将使用其识别的片段为这些单词构建一个向量。对于具有反复出现的词根/前缀/后缀模式的语言,这导致矢量比对OOV单词的随机猜测要好。
然而,FastText过程并不会提取最终全词矢量这些子字载体。因此,没有简单的方法可以将全字向量转换为还包含子字向量的FastText模型。
可能存在一种可行的方法来近似相同的效果,例如,通过使用所有具有相同子词片段的已知词,然后提取一些要分配给该子词的共同平均值/矢量分量来实现。或将OOV单词建模为词汇中单词的平均数,这些单词与OOV单词的编辑距离很短。但是这些技术并不能完全像FastText那样,只是模糊地类似于它,它们的效果如何,或者可以通过调整来使其工作,将是一个实验性的问题。因此,获取现成的库不是问题。
Sebastien Ruder在此博客中提到了一些具有其他OOV引导思想的研究论文。
如果您需要FastText OOV功能,最好的方法是在与传统全字向量相同的语料库上从头训练FastText向量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句