Python 用于Keras的训练单词嵌入(Gensim)中的未知单词
我正在使用GENSIM(word2vec)训练单词嵌入,并在KERAS的神经网络中使用训练过的模型。当我有一个未知(词汇表外)单词时,就会出现一个问题,因此神经网络不再工作,因为它无法找到该特定单词的权重。我认为解决这个问题的一种方法是在预先训练好的单词嵌入中添加一个新单词(Python 用于Keras的训练单词嵌入(Gensim)中的未知单词,python,keras,gensim,word2vec,word-embedding,Python,Keras,Gensim,Word2vec,Word Embedding,我正在使用GENSIM(word2vec)训练单词嵌入,并在KERAS的神经网络中使用训练过的模型。当我有一个未知(词汇表外)单词时,就会出现一个问题,因此神经网络不再工作,因为它无法找到该特定单词的权重。我认为解决这个问题的一种方法是在预先训练好的单词嵌入中添加一个新单词(),并使用零权重(或者可能是随机权重?哪一个更好?)这种方法可以吗?此外,对于这个单词嵌入,权重在这个神经网络中是不可训练的。最典型的是忽略未知单词。(用插入字或原始向量替换它们会更扭曲。) 你也可以考虑训练一个代码> Fa
),并使用零权重(或者可能是随机权重?哪一个更好?)这种方法可以吗?此外,对于这个单词嵌入,权重在这个神经网络中是不可训练的。最典型的是忽略未知单词。(用插入字或原始向量替换它们会更扭曲。)
你也可以考虑训练一个代码> FastText < /代码>模式,它总是从训练过程中创建的字符-n-矢量中合成出一个词汇表中的猜测向量。(这些合成向量通常比没有要好,特别是当一个单词的词根与相关单词重叠时——但通过所有相关单词用法的示例获得更多的训练数据更好,而忽略罕见的未知单词也没那么糟糕。)
也许对您有用?@emmunde这是一种方法,但对于这个问题,我想为word2vec模型修正它。