Dies ist eher eine allgemeine NLP-Frage. Was ist die richtige Eingabe, um ein Wort zu trainieren, das Word2Vec einbettet? Sollten alle zu einem Artikel gehörenden Sätze ein separates Dokument in einem Korpus sein? Oder sollte jeder Artikel ein Dokument im Korpus sein? Dies ist nur ein Beispiel mit Python und Gensim.
Korpus satzweise geteilt:
SentenceCorpus = [["first", "sentence", "of", "the", "first", "article."],
["second", "sentence", "of", "the", "first", "article."],
["first", "sentence", "of", "the", "second", "article."],
["second", "sentence", "of", "the", "second", "article."]]
Korpus aufgeteilt nach Artikel:
ArticleCorpus = [["first", "sentence", "of", "the", "first", "article.",
"second", "sentence", "of", "the", "first", "article."],
["first", "sentence", "of", "the", "second", "article.",
"second", "sentence", "of", "the", "second", "article."]]
Training von Word2Vec in Python:
from gensim.models import Word2Vec
wikiWord2Vec = Word2Vec(ArticleCorpus)
quelle
Als Ergänzung zu @ NBartleys Antwort. Jedermann stößt auf diese Frage. Ich habe versucht, Artikel / Satz als Eingabe für word2vec auf Spark2.2 zu verwenden, Ergebnis wie folgt.
benutze Satz als Eingabe:
verwenden Artikel als Eingabe:
quelle
Für ersteres hat gensim die Word2Vec-Klasse. Für letztere Doc2Vec.
http://rare-technologies.com/doc2vec-tutorial/
quelle