Gensim中的FastText

时间:2017-11-16 09:23:25

标签: python word2vec gensim fasttext

我正在使用Gensim加载我的fasttext .vec文件,如下所示。

m=load_word2vec_format(filename, binary=False)

但是,如果我需要加载.bin文件来执行m.most_similar("dog")m.wv.syn0m.wv.vocab.keys()等命令,我感到很困惑。如果是的话,该怎么做?

.bin文件对于执行余弦相似性匹配并不重要?

请帮助我!

4 个答案:

答案 0 :(得分:1)

可以使用以下内容:

from gensim.models import KeyedVectors
model = KeyedVectors.load_word2vec_format(link to the .vec file)
model.most_similar("summer")
model.similarity("summer", "winter")

现在使用该模型的许多选项。

答案 1 :(得分:1)

gensim-lib已经发展,因此一些代码片段已被弃用。这是一个实际可行的解决方案:

import gensim.models.wrappers.fasttext
model = gensim.models.wrappers.fasttext.FastTextKeyedVectors.load_word2vec_format(Source + '.vec', binary=False, encoding='utf8')
word_vectors = model.wv
# -- this saves space, if you plan to use only, but not to train, the model:
del model

# -- do your work:
word_vectors.most_similar("etc") 

答案 2 :(得分:0)

如果您希望以后能够使用其他数据重新训练 gensim 模型,您应该像这样保存整个模型:model.save("fasttext.model")。 如果您只使用 model.wv.save_word2vec_format(Path("vectors.txt")) 保存词向量,您仍然可以执行向量提供的任何功能 - 例如相似度,但您将无法使用更多数据重新训练模型。

请注意,如果您要保存整个模型,则应将文件名作为字符串传递,而不是按照文档 here 中的建议将其包装在 get_tmpfile 中。

答案 3 :(得分:-1)

也许我迟到了回答这个问题: 但是在这里,您可以在文档中找到答案:https://github.com/facebookresearch/fastText/blob/master/README.md#word-representation-learning 用例示例

该库有两个主要用例:单词表示学习和文本分类。这些在两篇论文1和2中有所描述。 单词表示学习

为了学习单词向量,如1所述,执行:

$ ./fasttext skipgram -input data.txt -output model

其中data.txt是包含UTF-8编码文本的培训文件。默认情况下,单词向量将考虑3到6个字符的字符n-gram。在优化结束时,程序将保存两个文件:model.bin和model.vec。 model.vec是一个包含单词vectors的文本文件,每行一个。 model.bin是一个二进制文件,包含模型的参数以及字典和所有超参数。二进制文件可以在以后用于计算单词向量或重新启动优化。