我正在使用Gensim加载我的fasttext .vec
文件,如下所示。
m=load_word2vec_format(filename, binary=False)
但是,如果我需要加载.bin
文件来执行m.most_similar("dog")
,m.wv.syn0
,m.wv.vocab.keys()
等命令,我感到很困惑。如果是的话,该怎么做?
或.bin
文件对于执行余弦相似性匹配并不重要?
请帮助我!
答案 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是一个二进制文件,包含模型的参数以及字典和所有超参数。二进制文件可以在以后用于计算单词向量或重新启动优化。