You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历Doc2Vec模型并导出测试集全部176个向量?

批量获取Doc2Vec测试集文档向量并保存的方法

问题核心是model.infer_vector()仅支持单文档输入,直接传入列表无法批量生成向量,以下是两种高效的批量处理方案:

方案一:列表推导式快速生成所有向量

用列表推导式遍历测试集的每个文档,一次性生成全部176个向量:

from gensim.models.doc2vec import Doc2Vec

model = Doc2Vec.load("d2v.model")
# 提取测试集所有文档的向量
test_vectors = [model.infer_vector(doc) for doc in clean_corpus[404:]]
# 验证向量数量是否符合预期
print(f"生成的测试集向量总数:{len(test_vectors)}")

方案二:循环遍历并持久化保存

如果需要直接将向量保存到文件(方便后续复用),可以用循环结合numpy或文件操作实现:

import numpy as np
from gensim.models.doc2vec import Doc2Vec

model = Doc2Vec.load("d2v.model")
test_corpus = clean_corpus[404:]
test_vectors = []

# 遍历测试集生成向量
for doc in test_corpus:
    # 可根据需求调整epochs参数提升向量稳定性,默认epochs=5
    vec = model.infer_vector(doc, epochs=20)
    test_vectors.append(vec)

# 保存为numpy数组(推荐,便于后续机器学习任务直接调用)
np.save("test_vectors.npy", test_vectors)

# 或保存为文本格式(方便查看)
with open("test_vectors.txt", "w", encoding="utf-8") as f:
    for vec in test_vectors:
        f.write(" ".join(map(str, vec)) + "\n")

注意事项

  • 确保测试集文档的预处理逻辑(分词、清洗、停用词过滤等)和训练集完全一致,否则会严重影响向量质量。
  • infer_vector()的alpha(学习率)和epochs(迭代次数)可根据实际情况调整,迭代次数越高,向量生成越稳定,但耗时也会增加。

内容的提问来源于stack exchange,提问作者user472543984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 13:33:19