纪澜郗 2023-05-03 23:12 采纳率: 53.8%
浏览 9
已结题

word2vec添加向量

img


在使用自己训练的word2vec模型时,中间出现这个错误,应该怎么把这个词的向量加进去呢 或者怎么改呢

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-04 16:22
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7439011
    • 这篇博客你也可以参考下:获取Word2vec训练得到的所有词与词向量
    • 除此之外, 这篇博客: word2vec获取词向量,查找相似词中的 word2vec获取词向量,查找相似词 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      首先安装gensim, 训练或者下载别人训练好的word2vec模型

      # coding=utf-8
      from gensim.models import Word2Vec
      from gensim.models import KeyedVectors
       
      #model = Word2Vec.load('./model/wiki.zh.text.model')   #用模型
      model = KeyedVectors.load_word2vec_format('./model/wiki.zh.text.vector')    # 用转换成txt的词向量文件
      testwords = ['孩子', '数学', '学术', '白痴', '篮球']
      for i in range(5):
          res = model.most_similar(testwords[i])
          print(testwords[i])
          print(res)
      

      结果如下图
      在这里插入图片描述

    • 您还可以看一下 钱兴会老师的从零开始自然语言处理课程中的 Word2Vec词向量构建小节, 巩固相关知识点
    • 以下回答来自chatgpt:

      对于添加新词向量并更新或修改的问题,可以按以下步骤进行:

      1.首先,需要将新词转换成向量形式。可以使用word2vec提供的方法或者其他预训练好的模型进行转换,也可以使用其他方法如one-hot encoding等。比如可以使用gensim库提供的方法,示例代码如下:

      from gensim.models import Word2Vec

      model = Word2Vec.load("path/to/your/trained/model")

      new_word = "new_word" new_vec = model.wv[new_word] # 获取新词的向量表示

      2.然后,需要更新模型中的权重参数,以将新词的向量加入训练。一种简单直接的方法是直接修改模型中的权重参数,将新词的向量加入。示例代码如下:

      修改模型中的权重参数

      model.wv.vectors = np.vstack((model.wv.vectors, new_vec)) model.wv.index2entity.append(new_word)

      重新构建模型的参数索引和层次结构

      model.wv.init_sims(replace=True)

      这里,将新词的向量依次加入模型的参数矩阵中,并更新模型的索引和层次结构。需要注意的是,修改后需要重新初始化模型的参数,以保证参数向量的单位长度,以及更准确地进行近似期望的计算。

      3.最后,可以重新进行模型的训练,以更新所有参数矩阵,包括加入的新词向量。可以使用之前的训练数据,或者更多的数据继续训练。示例代码如下:

      model.train(sentences=new_train_data, total_examples=model.corpus_count, epochs=model.iter)

      这里,重新调用model.train()方法,传入新的训练数据并指定训练轮数,以更新模型的所有参数矩阵。

      如果出现错误提示,可以根据具体的错误信息进行调试,如是否加载了正确的模型,是否正确获取了新词的向量等等。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月27日
  • 创建了问题 5月3日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据