gpt4 book ai didi

python - 如何将 Pandas DataFrame 中加载的嵌入转换为 Gensim 模型?

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:56 25 4
gpt4 key购买 nike

我有一个 DataFrame,其中索引是单词,我有 100 列 float ,这样对于每个单词,我都将其嵌入为 100d 向量。我想将我的 DataFrame 对象转换为 gensim model object这样我就可以使用它的方法;特别是 gensim.models.keyedvectors.most_similar() 这样我就可以在我的子集中搜索相似的词。

这样做的首选方式是什么?

谢谢

最佳答案

不确定这样做的“首选”方式是什么,但是 gensim 期望的格式很容易复制:

data = pd.DataFrame([[0.15941701, 0.84058299],
[0.12190033, 0.87809967],
[0.06293788, 0.93706212]],
index=["these", "be", "words"])

np.savetxt('test.txt', data.reset_index().values,
delimiter=" ",
header="{} {}".format(len(data), len(data.columns)),
comments="",
fmt=["%s"] + ["%.18e"]*len(data.columns))

header是2个空格分隔的整数,词汇表中的词数和词向量的长度。每行的第一列是单词本身。其余列是词向量的元素。 fmt 的奇怪之处在于将第一个元素格式化为字符串,其余元素格式化为 float 。

然后可以将其加载到 gensim 中并执行任何操作:

import gensim

from gensim.models.keyedvectors import KeyedVectors
word_vectors = KeyedVectors.load_word2vec_format('test.txt', binary=False)

word_vectors.similarity('these', 'words')

关于python - 如何将 Pandas DataFrame 中加载的嵌入转换为 Gensim 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46297740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com