Difference between Fasttext .vec and .bin file
Asked Answered
A

2

25

I recently downloaded fasttext pretrained model for english. I got two files:

  1. wiki.en.vec
  2. wiki.en.bin

I am not sure what is the difference between the two files?

Albert answered 5/11, 2017 at 6:3 Comment(0)
E
26

The .vec files contain only the aggregated word vectors, in plain-text. The .bin files in addition contain the model parameters, and crucially, the vectors for all the n-grams.

So if you want to encode words you did not train with using those n-grams (FastText's famous "subword information"), you need to find an API that can handle FastText .bin files (most only support the .vec files, however...).

Ecotype answered 22/3, 2018 at 23:1 Comment(4)
How do you actually work with the .bin file? I've tried open(FILENAME, "rb") but then not sure how to actually access the weight matrix after thatOversell
@Oversell did you find the answer to this question?Shakira
Please take a look at the official documentation for the Python API: github.com/facebookresearch/fastText/tree/master/…Ecotype
@Oversell you can do model = fasttext.load_model("embedding.bin") to load a model object.Neal
D
16

As the documentation says,

model.vec is a text file containing the word vectors, one per line. model.bin is a binary file containing the parameters of the model along with the dictionary and all hyper parameters.

In other words, .vec file format is the same as .txt file format, and you could use it in other applications (for example, to exchange data between your FastText model and your Word2Vec model since .vec file is similar to .txt file generated by Word2Vec). And the .bin file could be used if you want to continue training the vectors or to restart the optimization.

Dido answered 5/11, 2017 at 7:50 Comment(1)
I agree with the highlighted part but we can further train .vec files also on other data/corpus .Mullin

© 2022 - 2024 — McMap. All rights reserved.