У вас была ошибка в функции преобразования: вы должны передать список списков в Word2Ve c, как в списке, который содержит предложения в списках. Я изменил это для вас. По сути, вы хотите go из чего-то вроде этого
['prices_NOUN',
'change_VERB',
'want_VERB',
'research_VERB',
'price_NOUN',
'many_ADJ',
'different_ADJ',
'sites_NOUN',
'found_VERB',
'cheaper_ADJ',]
Что-то вроде этого
[['prices_NOUN',
'change_VERB',
'want_VERB',]
['research_VERB',
'price_NOUN',
'many_ADJ',]
['different_ADJ',
'sites_NOUN',
'found_VERB',
'cheaper_ADJ',]]
Я также немного изменил код для обучения модели, чтобы вы могли сделать это работает для меня, вы можете поэкспериментировать с этим.
! pip install wget
from gensim.models.word2vec import FAST_VERSION
from gensim.models import Word2Vec
import spacy
import pandas as pd
from zipfile import ZipFile
import wget
url = 'https://raw.githubusercontent.com/dirkhovy/NLPclass/master/data/reviews.full.tsv.zip'
wget.download(url, 'reviews.full.tsv.zip')
with ZipFile('reviews.full.tsv.zip', 'r') as zf:
zf.extractall()
# nrows , max amount of rows
df = pd.read_csv('reviews.full.tsv', sep='\t', nrows=100000)
documents = df.text.values.tolist()
nlp = spacy.load('en_core_web_sm') # you can use other methods
# excluded tags
included_tags = {"NOUN", "VERB", "ADJ"}
sentences = documents[:103] # first 10 sentences
new_sentences = []
for sentence in sentences:
new_sentence = []
for token in nlp(sentence):
if token.pos_ in included_tags:
new_sentence.append(token.text.lower()+'_'+token.pos_)
new_sentences.append(new_sentence)
# initialize model
w2v_model = Word2Vec(new_sentences,
size=100,
window=15,
sample=0.0001,
iter=200,
negative=5,
min_count=1, # <-- it seems your min_count was too high
workers=-1,
hs=0
)
w2v_model.wv['car_NOUN']
Возвращает
array([ 3.4433445e-03, -4.6847924e-03, -4.6468928e-04, -4.1419661e-04,
1.6716495e-03, -1.3368594e-03, 2.3602389e-03, -3.5505681e-03,
-2.6509305e-04, 5.3194270e-04, 2.3251947e-03, 2.1161686e-03,
3.8566503e-03, -1.0463649e-03, -3.4403126e-04, -2.3808836e-03,
-1.7489052e-03, -3.6803843e-03, -5.5171514e-04, -4.3218122e-03,
3.2187223e-03, -1.4893038e-04, -4.7250376e-03, -3.9506676e-03,
4.9547744e-03, 6.8341813e-04, -1.7588978e-03, 2.9804371e-03,
1.4809771e-03, 3.8084502e-03, 3.7447066e-05, -2.6706287e-03,
-8.4727036e-04, -4.8435321e-03, -4.4348584e-03, -3.9350889e-03,
4.1925525e-03, -2.7435150e-03, 2.5154117e-03, -4.5825918e-03,
-3.8889556e-03, 4.0331958e-03, -5.7232054e-04, 1.7530264e-03,
3.8368679e-03, -3.4817799e-03, 2.4366400e-03, -3.7075430e-03,
-1.2156683e-03, 4.4666473e-03, 1.7927163e-05, -3.2169635e-03,
1.9718746e-03, -3.0671202e-03, -8.5452310e-04, -2.9490239e-03,
-4.1346985e-04, 8.5071824e-04, 4.4970238e-03, -2.8501134e-03,
4.4103153e-03, 1.4589783e-03, 3.6588225e-03, -1.4809598e-03,
-9.8118311e-05, 2.4781735e-03, -2.4647343e-03, 2.2115968e-03,
3.1630241e-03, -1.5672935e-04, 1.6695650e-03, 3.5689210e-03,
-2.6638571e-03, 3.4224256e-03, -1.5750986e-03, 3.6926002e-03,
3.2584099e-03, 3.8033908e-03, 1.5272110e-04, -2.2282582e-03,
-4.7118403e-04, -2.5838052e-03, -2.8910220e-03, -3.1307489e-03,
-4.0518055e-03, -2.3207215e-03, 1.2772443e-03, -4.4162138e-03,
-1.9835744e-03, 3.0219899e-03, 1.7312685e-03, 3.9408603e-03,
-5.6407665e-04, 3.2022693e-03, -8.9243404e-04, 4.5719477e-03,
4.7199172e-03, -4.9393933e-05, 2.2010114e-03, -3.4861618e-03],
dtype=float32)