我使用 gensim
包在 6.4 GB 文本数据 上训练了我的 word2vec
模型,该数据使用以下代码片段进行了预处理:
def read_input(input_file):
with open(input_file, "r") as inp:
inp_str = inp.read()
inp_str = inp_str.strip('\n')
inp_str = re.sub(r'\n', ' ', inp_str)
lowercase = inp_str.lower()
punc = lowercase.translate(str.maketrans('', '', string.punctuation))
return (punc.translate(str.maketrans('','','1234567890')))
def read_(input_file):
return( gensim.utils.simple_preprocess(input_file, deacc=True, min_len=3))
doc = read_input('../train1.txt')
documents = read_(doc)
logging.info ("Done reading data file")
但每次我训练模型时,它的大小都是 147 Kb,这似乎不对,当我尝试从训练模型生成向量时,它说:
KeyError: "word 'type' not in vocabulary"
以下是我用来训练 word2vec 模型的代码:
old_model = Word2Vec.load('../word2vec_model')
old_model.train(documents, total_examples=old_model.corpus_count, epochs=7)
old_model.save('../word2vec_model1')
logging.info ("Saved the new word2vec model")
请帮我解决这个问题。
最佳答案
尺寸偏小,可能是因为您在设置模型的参数时,您可能为min_count参数使用了较大的值。 尝试减少 min_count 中的值并重新训练模型
关于python - Word2vec 模型尺寸很小,无法识别单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51222901/