首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对多个文档使用infer_vector?

如何对多个文档使用infer_vector?
EN

Stack Overflow用户
提问于 2019-08-09 09:46:10
回答 1查看 336关注 0票数 0

我有一个训练有素的doc2vec模型。现在,我必须使用infer_vector为5个文档创建向量。但是infer_vector可以一次为一个文档创建向量。我如何发送所有5个句子并附加结果以获得(5,50)数据?

代码语言:javascript
复制
 def InferVector(prop,log,New_std_nested_list):
    Vec_df = np.array([])
    fname = (prop.get("Filepaths","Model_Saving_Path")+'model_July12_doc2vec_ELA.bin')
    model = Doc2Vec.load(fname)
    for i in range( 0, len(New_std_nested_list) ):
      temp = New_std_nested_list[i]
      vec = model.infer_vector([temp])
    Vec_df = np.append(Vec_df,vec)
    return Vec_df

迭代不是有用的。还有别的办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-09 17:46:11

因为它一次只能推断一个向量,所以必须在一个循环中多次调用它。但是您应该能够预先分配numpy数组,并将每个结果分配到其正确的行中。例如:

代码语言:javascript
复制
vec_df = np.array(5,50)

...then在你的循环里.

代码语言:javascript
复制
vec_df[i] = model.infer_vector(list_of_words)

...with不再重新分配给vec_df或索引of-vec_df.

请注意:

  • infer_vector()需要一个单词列表,应该以与模型的训练文本相同的方式对其进行预处理/标记,以便标记在最大程度上匹配。(模型中没有的词将被默默地忽略。因此,如果模型使用所有小写标记进行了训练,但随后尝试使用.infer_vector(['Mikey', 'REALLY', 'LIKES', 'McDonalds']),那么模型中的所有大写单词都将被忽略,得到的向量将是一个未执行有效推理的随机初始化向量)。
  • infer_vector()通常比默认的epochs更有好处,特别是对于较短的文本。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57427459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档