我正在使用 Gensim 加载我的 fasttext.vec
文件,如下所示。
m=load_word2vec_format(filename, binary=False)
但是,如果我需要加载.bin
文件来执行诸如 , 等命令m.most_similar("dog")
,m.wv.syn0
我会感到困惑m.wv.vocab.keys()
吗?如果是这样,该怎么做?
或者.bin
文件对于执行这个余弦相似度匹配并不重要?
请帮我!
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")
可以使用以下内容:
from gensim.models import KeyedVectors
model = KeyedVectors.load_word2vec_format(link to the .vec file)
model.most_similar("summer")
model.similarity("summer", "winter")
现在使用该模型的许多选项。
If you want to be able to retrain the gensim model later with additional data, you should save the whole model like this: model.save("fasttext.model")
.
If you save just the word vectors with model.wv.save_word2vec_format(Path("vectors.txt"))
, you will still be able to perform any of the functions that vectors provide - like similarity, but you will not be able to retrain the model with more data.
Note that if you are saving the whole model, you should pass a file name as a string instead of wrapping it in get_tmpfile
, as suggested in the documentation here.
也许我回答这个问题迟了:但在这里你可以在文档中找到你的答案:https ://github.com/facebookresearch/fastText/blob/master/README.md#word-representation-learning 示例用例
这个库有两个主要用例:词表示学习和文本分类。这些在两篇论文 1 和 2 中进行了描述。 词表示学习
为了学习词向量,如 1 所述,请执行以下操作:
$ ./fasttext skipgram -输入数据.txt -输出模型
其中 data.txt 是包含 UTF-8 编码文本的训练文件。默认情况下,词向量将考虑 3 到 6 个字符的字符 n-gram。在优化结束时,程序将保存两个文件:model.bin 和 model.vec。model.vec 是一个包含词向量的文本文件,每行一个。model.bin 是一个二进制文件,其中包含模型的参数以及字典和所有超参数。二进制文件稍后可用于计算词向量或重新启动优化。