gpt4 book ai didi

python - 如何在gensim中获取doc2vec中的文档向量

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

我知道使用 print(model.docvecs['recipe__11']) 获取 doc2vec 中给定标签的文档向量.

我的文档向量是食谱(标签以 recipe__ 开头)、报纸(标签以 news__ 开头)或配料(标签以 ingre__ 开头)

现在我想检索食谱的所有文档向量。我的食谱文件的模式是 recipe__<some number> (例如,recipe__23、recipe__34)。我想知道是否有可能使用一种模式获取多个文档向量(例如,以 recipe__ 开头的标签)

请帮帮我!

最佳答案

没有模式检索,但您可以在 model.docvecs.offset2doctag 中访问所有已知(字符串)文档标签的列表。然后,您可以遍历该列表以查找所有匹配项,并单独检索每个匹配项。

此外,所有文档向量都在一个大数组 model.docvecs.doctag_syn0 并且,如果您只使用字符串文档标签,那么标签在 中的位置offset2doctag 将恰好是 doctag_syn0 中相应向量的索引。这将允许您使用 numpy 的“掩码索引”来获取向量的一个子集作为一个新数组,例如:

recipes_mask = [tag.startswith('recipe_') for tag in model.dacvecs.offset2doctag]
recipes_vectors = model.docvecs.doctag_syn0[recipes_mask]

当然,这个向量数组不再具有与原始位置相同的食谱,因此您需要额外的步骤来了解(例如)“recipe__11”向量在 recipes_vectors 中的位置

关于python - 如何在gensim中获取doc2vec中的文档向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47300490/

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