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

标签 python word-embedding fasttext

我使用 fasttext.train_unsupervised() 训练了我的无监督模型python中的函数。我想将它保存为 vec 文件,因为我将把这个文件用于 pretrainedVectors fasttext.train_supervised() 中的参数功能。 pretrainedVectors只接受 vec 文件,但我在创建这个 vec 文件时遇到了麻烦。有人能帮我吗?
附言。我能够以 bin 格式保存它。如果您建议我一种将 bin 文件转换为 vec 文件的方法,这也会很有帮助。

最佳答案

为了获得仅包含所有词向量的 VEC 文件,我从 bin_to_vec official example 中获得灵感。 .

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)

关于python - 如何以vec格式保存fasttext模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58337469/

相关文章:

python - 在 Jupyter Python 中使用 Graphviz 设置节点位置

理解期间列表中的python类型

r - 我如何使用 Glove 词嵌入构建模型并使用 R 中的 text2vec 预测测试数据

python - fastText 嵌入句向量?

python - 如何将 ffmpeg 命令转换为 ffmpeg python 代码

javascript - 使用 Scrapy 模拟 JavaScript 按钮点击

python - 在 Keras 中使用 fasttext 预训练模型作为嵌入层

python - Gensim FastText 计算训练损失

machine-learning - 微调词嵌入是如何工作的?

python - 如何连接预训练的嵌入层和输入层