Python: gensim: Absturz mit Laufzeitfehler: Sie müssen zuerst bei der Wortbildung vor dem training des Modells
Ich weiß, diese Frage wurde schon gefragt, aber ich war noch nicht in der Lage, eine Lösung zu finden.
Möchte ich nutzen, gensim ist word2vec
auf einem benutzerdefinierten Datensatz, aber jetzt bin ich immer noch herauszufinden, in welchem format der datasets werden. Ich hatte einen Blick auf dieser Beitragwo der Eingang ist im Grunde eine Liste von Listen (eine große Liste mit anderen Listen, sind Token, Sätze aus dem NLTK Brown corpus). Also dachte ich, dass dies das input-format habe ich für den Befehl word2vec.Word2Vec()
. Allerdings funktioniert es nicht mit meinem kleinen test-set, und ich verstehe nicht warum.
Was ich versucht habe:
Dies funktionierte:
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())
Dies hat nicht funktioniert:
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)
Ich verstehe nicht, warum es nicht funktioniert mit dem "mock" - Daten, obwohl es hat die gleiche Datenstruktur wie die Sätze aus dem Brown corpus:
vocab:
[['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dogs'], ['yoyoyo', 'you', 'go', 'home', 'now', 'to', 'sleep']]
Braun.sents(): (der Anfang davon)
[['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', '.'], ...]
Kann jemand mir bitte sagen, was ich falsch mache?
InformationsquelleAutor der Frage user56591 | 2015-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standard
min_count
im gensim ist Word2Vec auf 5 festgelegt ist. Wenn es kein Wort in Ihrer vocab mit einer Frequenz größer als 4 ist, wird Ihre vocab leer und daher der Fehler. VersuchenInformationsquelleAutor der Antwort kampta
Eingang des gensim ist Word2Vec kann eine Liste von Sätzen oder Wörter oder eine Liste von Liste von Sätzen.
E. g.
bauen die Vokabeln vor dem training
schauen Sie einfach auf den link für ausführliche info
InformationsquelleAutor der Antwort Akson