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 文件的区别的主要内容,如果未能解决你的问题,请参考以下文章