Fasttext .vec 和 .bin 文件的区别

Posted

技术标签:

【中文标题】Fasttext .vec 和 .bin 文件的区别【英文标题】:Difference between Fasttext .vec and .bin file 【发布时间】:2018-04-17 12:54:26 【问题描述】:

我最近下载了英语的 fasttext 预训练模型。我有两个文件:

    wiki.en.vec wiki.en.bin

我不确定这两个文件有什么区别?

【问题讨论】:

【参考方案1】:

.vec 文件仅包含纯文本的聚合词向量。 .bin 文件另外包含模型参数,关键是所有 n-gram 的向量。

因此,如果您想使用那些 n-gram(FastText 著名的“子词信息”)对未训练的单词进行编码,您需要找到可以处理 FastText .bin 文件的 API (不过大多数只支持.vec 文件...)。

【讨论】:

您如何实际使用.bin 文件?我试过open(FILENAME, "rb"),但不知道之后如何实际访问权重矩阵 @information_interchange 你找到这个问题的答案了吗? 请看Python API的官方文档:github.com/facebookresearch/fastText/tree/master/… @information_interchange 你可以做 model = fasttext.load_model("embedding.bin") 来加载模型对象。【参考方案2】:

正如documentation 所说,

model.vec 是一个包含单词向量的文本文件,每行一个。 model.bin 是一个包含模型参数的二进制文件 以及字典和所有超参数。

换句话说,.vec 文件格式与 .txt 文件格式相同,您可以在其他应用程序中使用它(例如,在您的 FastText 模型和您的 Word2Vec 模型之间交换数据,因为 .vec 文件类似于由 Word2Vec 生成的.txt 文件)。如果您想继续训练向量或重新开始优化,可以使用.bin 文件。

【讨论】:

我同意突出显示的部分,但我们也可以在其他数据/语料库上进一步训练 .vec 文件。

以上是关于Fasttext .vec 和 .bin 文件的区别的主要内容,如果未能解决你的问题,请参考以下文章

如何以vec格式保存fasttext模型?

fasttext和word2vec的区别?

NLP-06fastText文本分类算法

FastText总结,fastText 源码分析

Fasttext

Fasttext原理