我使用以下方法训练了我的无监督模型fasttext.train_unsupervised()
python 中的函数。我想将其保存为 vec 文件,因为我将使用该文件pretrainedVectors
参数输入fasttext.train_supervised()
功能。pretrainedVectors
只接受 vec 文件,但我在创建此 vec 文件时遇到麻烦。有人能帮我吗?
诗。我可以将其保存为 bin 格式。如果您建议我一种将 bin 文件转换为 vec 文件的方法,也会很有帮助。
为了获得仅包含所有单词向量的 VEC 文件,我的灵感来自bin_to_vec 官方示例 https://github.com/facebookresearch/fastText/blob/master/python/doc/examples/bin_to_vec.py.
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)
with
vstr += " " + "{:.4f}".format(vi)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)