Python: gensim: RuntimeError: vous devez d'abord construire du vocabulaire avant d'entraîner le modèle

Je sais que cette question a été posée déjà, mais je n'étais pas encore en mesure de trouver une solution pour elle.

Je voudrais utiliser gensim de word2vec sur un custom ensemble de données, mais maintenant, je suis encore à essayer de comprendre dans quel format le jeu de données. J'ai eu un coup d'oeil à ce post où l'entrée est une liste de listes (une grande liste contenant d'autres listes qui sont sous les peines de la NLTK Brown corpus). Donc j'ai pensé que c'est le format d'entrée pour la commande word2vec.Word2Vec(). Cependant, il ne fonctionnera pas avec mon petit jeu de test et je ne comprends pas pourquoi.

Ce que j'ai essayé:

Cela a fonctionné:

from gensim.models import word2vec
from nltk.corpus import brown
import logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)

brown_vecs = word2vec.Word2Vec(brown.sents())

Cela n'a pas fonctionné:

sentences = [ "the quick brown fox jumps over the lazy dogs","yoyoyo you go home now to sleep"]
vocab = [s.encode('utf-8').split() for s in sentences]
voc_vec = word2vec.Word2Vec(vocab)

Je ne comprends pas pourquoi il ne fonctionne pas avec la "fantaisie" des données, même si il a la même structure de données que les phrases du Brown corpus:

vocab:

[['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dogs'], ['yoyoyo', 'you', 'go', 'home', 'now', 'to', 'sleep']]

brun.cents(): (le début de)

[['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', 'Friday', 'an', 'investigation', 'of', "Atlanta's", 'recent', 'primary', 'election', 'produced', '``', 'no', 'evidence', "''", 'that', 'any', 'irregularities', 'took', 'place', '.'], ['The', 'jury', 'further', 'said', 'in', 'term-end', 'presentments', 'that', 'the', 'City', 'Executive', 'Committee', ',', 'which', 'had', 'over-all', 'charge', 'of', 'the', 'election', ',', '``', 'deserves', 'the', 'praise', 'and', 'thanks', 'of', 'the', 'City', 'of', 'Atlanta', "''", 'for', 'the', 'manner', 'in', 'which', 'the', 'election', 'was', 'conducted', '.'], ...]

Quelqu'un peut s'il vous plaît dites-moi ce que je fais mal?

source d'informationauteur user56591