是的,KeyedVectors.load_word2vec_format() 在这里肯定会起作用,而且 binary=False 也是默认参数。 至于OOV词合成,你所说的not sure if it's yet doing the right thing in the released gensim是什么意思?我认为对于OOV,我们需要提供n-gram信息,这些信息在.bin文件中提供。 目前,我们使用gensim.models.wrappers.fasttext.FastText.load_fasttext_format()来加载完整的模型,以便使用两个vec and bin文件。有了PR#1341,我们只需要一个bin文件,我相信其他功能仍然保持不变。 cc @jayantj@menshikh-iv
7条答案
按热度按时间luaexgnf1#
Word2Vec.load()
仅加载来自gensim的模型(它使用Python pickling)。我相信
.vec
文件是原始Google word2vec.c(以及现在FastText)用于其顶级向量所使用的格式,因此KeyedVectors.load_word2vec_format()
可能有效,也许可以使用binary=False
参数。方法
gensim.models.wrappers.fasttext.FastText.load_fasttext_format()
可能也与引入OOV词向量合成的ngrams有关,这也可能是有意义的......但我不确定它是否已经在发布的gensim中做到了正确的事情,与PR-in-progress #1341 相比。mwecs4sa2#
@jayantj@prakhar2b wdyt?
zlwx9yxi3#
是的,
KeyedVectors.load_word2vec_format()
在这里肯定会起作用,而且binary=False
也是默认参数。至于OOV词合成,你所说的
not sure if it's yet doing the right thing in the released gensim
是什么意思?我认为对于OOV,我们需要提供n-gram信息,这些信息在.bin
文件中提供。目前,我们使用
gensim.models.wrappers.fasttext.FastText.load_fasttext_format()
来加载完整的模型,以便使用两个vec and bin
文件。有了PR#1341
,我们只需要一个bin
文件,我相信其他功能仍然保持不变。cc @jayantj@menshikh-iv
oalqel3c4#
是的,使用
.bin
和.vec
文件,您可以使用-加载完整的模型。使用
.vec
文件,您只能加载词向量(而不是词汇表之外的单词信息),并使用-n3ipq98p5#
@jayantj 谢谢你,让我先尝试使用
load_fasttext_format
和FastText
Package 器。jhkqcmku6#
@prakhar2b 我的"不确定"评论是关于我在另一个问题或正在进行的PR中看到的讨论,也许是那个也在讨论是否丢弃未训练的n-gram是否是必要的优化——我的印象是我们的计算可能在某些(也许只是OOV)词上与原始FB fasttext有所偏离。(即使这是可以辩护的,因为未训练的n-gram仍然只是随机向量,它可能不是整体上的“正确事情”,因为它可能会违反用户期望,即无论是加载到原始FT代码还是gensim FT代码中,OOV词从相同的加载模型中获得相同的向量。)
aamkag617#
我们绝对想遵循原始的FT所做的一切——对于任何迁移/尝试两者的人来说,这都是最不令人惊讶的道路。