word2vecのモデルにコーパスされたテキストファイル"corpas_omosiro.txt"を新規登録しようとしているのですが、以下のエラー文が出てしまい実装できません。
現環境はpython 3.7.4、gensim 3.8.3、mecab(mecab-ipadic-neologdインストール済み)です。
python
1# coding: utf-8 2from gensim.models import word2vec 3import logging 4import sys 5import numpy as np 6import MeCab 7import sys 8import re 9import gensim 10import pprint 11from collections import Counter 12 13logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) 14 15class W2v(): 16 MODEL = None 17 18 def __init__(self): 19 if W2v.MODEL is None: 20 #学習モデル読み込み 21 W2v.MODEL = gensim.models.KeyedVectors.load_word2vec_format('model.vec', binary=False) 22 23 def similarity(self, word1, word2): 24 print("近似度計算: "+word1+" - "+word2) 25 26 try: 27 return W2v.MODEL.wv.similarity(word1, word2) 28 except KeyError as e: 29 print(e) 30 return -1.0 31 32 def getVec(self, word): 33 try: 34 return W2v.MODEL.wv[word] 35 36 except KeyError: 37 return np.zeros(200) 38 39 #再学習、上書きを行うメソッド 40 def updateTrain(self, corpus): 41 sentences = word2vec.Text8Corpus(corpus) 42 W2v.MODEL.build_vocab(sentences, update=True) 43 W2v.MODEL.train(sentences, total_examples=W2v.MODEL.corpus_count, epochs=W2v.MODEL.iter) 44 W2v.MODEL.save("model.vec") 45 46if __name__ == "__main__": 47 w2v = W2v() 48 49 word = "面白" 50 51 w2v.updateTrain("corpus_omosiro.txt") 52 53 print(word + "=") 54 print(w2v.getVec(word)) 55 56 #単語数の確認 57 print(len(W2v.MODEL.wv.vocab)) 58
エラー文
Traceback (most recent call last):
File "add.py", line 51, in <module>
w2v.updateTrain("corpus_omosiro.txt")
File "add.py", line 42, in updateTrain
W2v.MODEL.build_vocab(sentences, update=True)
AttributeError: 'Word2VecKeyedVectors' object has no attribute 'build_vocab'
あなたの回答
tips
プレビュー