So che questa domanda è stata già posta, ma non ero ancora in grado di trovare una soluzione per questo.Python: gensim: RuntimeError: devi prima costruire il vocabolario prima di allenare il modello
Vorrei utilizzare gensim word2vec
su un set di dati personalizzato, ma ora sto ancora cercando in quale formato deve essere il set di dati. Ho dato un'occhiata a this post dove l'input è fondamentalmente un elenco di liste (una grande lista contenente altre liste che sono frasi tokenizzate dal corpus di NLTK Brown). Quindi ho pensato che questo fosse il formato di input che devo usare per il comando word2vec.Word2Vec()
. Tuttavia, non funzionerà con il mio piccolo test set e non capisco perché.
Quello che ho cercato:
Questo lavorato:
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())
questo non ha funzionato:
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)
Non capisco il motivo per cui non è così lavora con i dati "finti", anche se ha la stessa struttura dati delle frasi del corpus Brown:
vocab:
[['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dogs'], ['yoyoyo', 'you', 'go', 'home', 'now', 'to', 'sleep']]
brown.sents(): (all'inizio di esso)
[['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', '.'], ...]
Qualcuno può dirmi che cosa sto facendo male?
Anche se i dati provengono da un iteratore, si assicura che non sia già stato consumato. – osa