Проблемы с запуском 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'],
          [..],  
          [..],  
          [..]]
Другие вопросы по тегам