fasttext.train_unsupervised()
函数来训练我的无监督模型。由于我将在fasttext.train_supervised()
函数的pretrainedVectors
参数中使用此文件,因此我希望将其保存为vec文件。但是,我在创建这个vec文件时遇到了困难。有人可以帮帮我吗?
提示:我能够将其保存为bin格式。如果您能建议一种将bin文件转换为vec文件的方法,那也会很有帮助。fasttext.train_unsupervised()
函数来训练我的无监督模型。由于我将在fasttext.train_supervised()
函数的pretrainedVectors
参数中使用此文件,因此我希望将其保存为vec文件。但是,我在创建这个vec文件时遇到了困难。有人可以帮帮我吗?
提示:我能够将其保存为bin格式。如果您能建议一种将bin文件转换为vec文件的方法,那也会很有帮助。from fasttext import load_model
# original BIN model loading
f = load_model(YOUR-BIN-MODEL-PATH)
lines=[]
# get all words from model
words = f.get_words()
with open(YOUR-VEC-FILE-PATH,'w') as file_out:
# the first line must contain number of total words and vector dimension
file_out.write(str(len(words)) + " " + str(f.get_dimension()) + "\n")
# line by line, you append vectors to VEC file
for w in words:
v = f.get_word_vector(w)
vstr = ""
for vi in v:
vstr += " " + str(vi)
try:
file_out.write(w + vstr+'\n')
except:
pass
获得的VEC文件可能很大。
为了减小文件大小,您可以调整向量组件的格式。
如果您只想保留4个小数位,则可以将 vstr += " " + str(vi)
替换为
vstr += " " + "{:.4f}".format(vi)
你需要在vec文件的第一行添加单词数和维度,然后使用-preTrainedVectors参数。