Проблемы с запуском gensim Word2Vec
Я пытаюсь обучить встраиванию слов (word2vec) в свой собственный набор данных с помощью библиотеки gensim.
model = Word2Vec(sentences=alp[:20],size=100, window=6, min_count=5)
где alp - список, содержащий токены отдельных предложений в моем корпусе.
Я получаю следующую ошибку всякий раз, когда я пытаюсь тренировать модель w2v. Пожалуйста, помогите.
`Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.5/dist-packages/gensim/models/word2vec.py", line 867, in worker_loop
tally, raw_tally = self._do_train_job(sentences, alpha, (work, neu1))
File "/usr/local/lib/python3.5/dist-packages/gensim/models/word2vec.py", line 785, in _do_train_job
tally += train_batch_cbow(self, sentences, alpha, work, neu1,
self.compute_loss)
File "gensim/models/word2vec_inner.pyx", line 458, in gensim.models.word2vec_inner.train_batch_cbow (./gensim/models/word2vec_inner.c:5642)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()`
`Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.5/dist-packages/gensim/models/word2vec.py", line 867, in worker_loop
tally, raw_tally = self._do_train_job(sentences, alpha, (work, neu1))
File "/usr/local/lib/python3.5/dist-packages/gensim/models/word2vec.py", line 785, in _do_train_job
tally += train_batch_cbow(self, sentences, alpha, work, neu1, self.compute_loss)
File "gensim/models/word2vec_inner.pyx", line 458, in gensim.models.word2vec_inner.train_batch_cbow (./gensim/models/word2vec_inner.c:5642)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()`
`
2 ответа
Проблема была решена путем приведения типа alp в список списков.
Приведенный выше код отлично работает для меня. Можете ли вы проверить тип alp[:20]
,
Рабочий код (проверено в gensim version 3.4.0
):
from gensim.models.word2vec import Word2Vec
model = Word2Vec(sentences=alp[0:20],size=100,window=6,min_count=5)
alp
выглядит следующим образом:
alp = [['this','is','first','sentence'],
['this','is','second','sentence'],
[..],
[..],
[..]]