据我所知,Gensim 可以加载两种二进制格式,word2vec 和 fastText,以及可以由大多数词嵌入工具创建的通用纯文本格式。通用纯文本格式如下所示(在此示例中,20000 是词汇的大小,100 是向量的长度)
20000 100
the 0.476841 -0.620207 -0.002157 0.359706 -0.591816 [98 more numbers...]
and 0.223408 0.231993 -0.231131 -0.900311 -0.225111 [98 more numbers..]
[19998 more lines...]
Chaitanya Shivade 在他的回答中解释了如何使用 Gensim 提供的脚本将 Glove 格式(每行:单词 + 矢量)转换为通用格式。
加载不同的格式很容易,但也很容易混淆:
import gensim
model_file = path/to/model/file
1)加载二进制word2vec
model = gensim.models.word2vec.Word2Vec.load_word2vec_format(model_file)
2)加载二进制fastText
model = gensim.models.fasttext.FastText.load_fasttext_format(model_file)
3)加载通用纯文本格式(word2vec已经引入)
model = gensim.models.keyedvectors.Word2VecKeyedVectors.load_word2vec_format(model_file)
如果您只打算使用词嵌入而不是继续在 Gensim 中训练它们,您可能需要使用 KeyedVector 类。这将大大减少加载向量所需的内存量(详细说明)。
以下将二进制 word2vec 格式加载为 keyedvectors:
model = gensim.models.keyedvectors.Word2VecKeyedVectors.load_word2vec_format(model_file, binary=True)