赵有才er 2021-10-03 16:00 采纳率: 0%
浏览 977

word2vec中argument of type 'Word2Vec' is not iterable的问题


# 加载训练好的Word2Vec模型
# 需要 4.0_训练word2vec模型.ipynb 的执行结果
from gensim.models import Word2Vec
w2v = Word2Vec.load('output_word2vec/model.w2v')
# 使用文章中所有词的平均词向量作为文章的向量
from gensim.models import Word2Vec
w2v = Word2Vec.load('output_word2vec/model.w2v')
import jieba
def compute_doc_vec_single(article):
    vec = np.zeros((w2v.layer1_size,), dtype=np.float32)
    n = 0
    for word in jieba.cut(article):
        if word in w2v:
            vec += w2v[word]#求所有词向量的和
            n += 1#计算词的个数
    return vec / n#求平均值

错误是这样的

TypeError                                 Traceback (most recent call last)
<ipython-input-16-86dff7917d17> in <module>
----> 1 x = compute_doc_vec(train_data[u'文章'])

<ipython-input-13-a2efc13466bf> in compute_doc_vec(articles)
      1 def compute_doc_vec(articles):
----> 2     return np.row_stack([compute_doc_vec_single(x) for x in articles])

<ipython-input-13-a2efc13466bf> in <listcomp>(.0)
      1 def compute_doc_vec(articles):
----> 2     return np.row_stack([compute_doc_vec_single(x) for x in articles])

<ipython-input-12-42416e5a7df9> in compute_doc_vec_single(article)
      7     n = 0
      8     for word in jieba.cut(article):
----> 9         if word in w2v:
     10             vec += w2v[word]#求所有词向量的和
     11             n += 1#计算词的个数

TypeError: argument of type 'Word2Vec' is not iterable

  • 写回答

3条回答 默认 最新

  • shift12346 2021-11-10 10:08
    关注

    兄弟我也和你遇上同样问题了,现在gensim库改了word2vec的语法, 你把你的w2v改成 w2v.wv 就可以了

    评论

报告相同问题?

问题事件

  • 创建了问题 10月3日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境