Невозможно загрузить сохраненную модель Gensim, невозможно преобразовать массив размера 974897576 в форму (6828798,300) - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь загрузить сохраненную модель word2vec.Файл при загрузке выдает ошибку: невозможно преобразовать массив размера 974897576 в форму (6828798,300)

Я создал модель word2vec, инициализировав 6828798 слов в случайные векторы, передав список из списка моего словаря.слова [['a', 'b', 'c']] для определения и запуска модели.

new_titles_grp - это pandas df, с synon_title (str) и средними (np.array.shape = (300,)) столбцами

sentences = [new_titles_grp['synon_title'].tolist()]
model_gensim = word2vec.Word2Vec(sentences, min_count=1, size=300)

Затем я заменяю все векторы своими предварительно вычисленными векторными значениями (все они (300,) измерений) на

for ind, row in new_titles_grp.iterrows():
    model_gensim.wv.syn0[model_gensim.wv.vocab[row['synon_title']].index] = row['averages']

model_gensim.init_sims(replace=True) #doing this to normalize the values

Модель хорошо работает при вызове в той же записной книжке

model_gensim.most_similar(get_job_title('Data Science'), topn=20)
Out[26]: 
[('Senior Data Scientist', 0.9982969760894775),
 ('DATA SCIENTIST', 0.9951386451721191),
 ('Data Scientist Analyst', 0.9940630197525024),
 ('Associate Data Scientist', 0.9907373189926147),
 ('Lead Data Scientist', 0.9906764030456543),
 ('Data Scientist Machine Learning Engineer', 0.9891946315765381),
 ('Data Scientist Specialist', 0.9885110855102539),
 ('Data Analyst Scientist', 0.988399863243103),
 ('Data Scientist III', 0.9873133301734924),
 ('Senior Data Scientist Machine Learning', 0.9868470430374146),
 ('Research Data Scientist', 0.98624187707901),
 ('Data Scientist Engineer', 0.9855831861495972),
 ('Data Scientist Intern', 0.9855802059173584),
 ('Machine Learning Specialist', 0.9842516779899597),
 ('Principal Data Scientist', 0.9835132360458374),
 ('Senior Manager Data Scientist', 0.9829919338226318),
 ('Machine Learning Engineer', 0.9829450249671936),
 ('Data Scientist IV', 0.9827083349227905),
 ('Data Analytics Engineer', 0.9825129508972168),
 ('Senior Data Scientist Consultant', 0.9823513031005859)]

При загрузке в другую записную книжку выдает эту ошибку, я думал, что размеры массива не совпадают, что не так, все 300 (0-мерное) векторов.Пожалуйста, помогите !!

РЕДАКТИРОВАТЬ: я сохраняю его с помощью model_gensim.save(SAVE_PATH+'/jd_w2v.bin')

Кроме того, используя

model_gensim.wv.save_word2vec_format('/dbfs/FileStore/tables/talent_lemma_collection/w2v_models_v_1/jd_w2v.bin', binary=True)

Я могусохранить их (видимо)

Загрузка с использованием

model_titles = gensim.models.Word2Vec.load(jd_titles_path)

Ошибка:

ValueError: cannot reshape array of size 974897576 into shape (6828798,300)

и

model_titles = KeyedVectors.load_word2vec_format(datapath(jd_titles_path), binary=True, unicode_errors='ignore')

Ошибка:

ValueError: string size must be a multiple of element size
...