Ich benutze gensim 3.0.1
.Doc2Vec Modell teilt Dokumente Tags in Symbolen
Ich habe eine Liste von TaggedDocument
mit einzigartigen Etiketten der Form "label_17"
, aber wenn ich Doc2Vec Modell trainieren, spaltet es irgendwie die Etiketten Symbole, so dass der Ausgang für model.docvecs.doctags
ist die folgende:
{'0': Doctag(offset=5, word_count=378, doc_count=40),
'1': Doctag(offset=6, word_count=1330, doc_count=141),
'2': Doctag(offset=7, word_count=413, doc_count=50),
'3': Doctag(offset=8, word_count=365, doc_count=41),
'4': Doctag(offset=9, word_count=395, doc_count=41),
'5': Doctag(offset=10, word_count=420, doc_count=41),
'6': Doctag(offset=11, word_count=408, doc_count=41),
'7': Doctag(offset=12, word_count=426, doc_count=41),
'8': Doctag(offset=13, word_count=385, doc_count=41),
'9': Doctag(offset=14, word_count=376, doc_count=40),
'_': Doctag(offset=4, word_count=2009, doc_count=209),
'a': Doctag(offset=1, word_count=2009, doc_count=209),
'b': Doctag(offset=2, word_count=2009, doc_count=209),
'e': Doctag(offset=3, word_count=2009, doc_count=209),
'l': Doctag(offset=0, word_count=4018, doc_count=418)}
aber in der anfänglichen Liste des markierten Dokuments hat jedes Dokument seine eigene eindeutige Bezeichnung.
Der Code für Modelltraining ist die folgende:
model = Doc2Vec(size=300, sample=1e-4, workers=2)
print('Building Vocabulary')
model.build_vocab(data)
print('Training...')
model.train(data, total_words=total_words_count, epochs=20)
Daher meine Dokumente wie model.docvecs['label_17']
und ich kann KeyError
nicht Index erhalten.
Die gleiche Sache, wenn ich Daten an den Konstruktor übergebe, anstatt das Vokabular aufzubauen.
Warum passiert das? Vielen Dank.
Ja, das hat mein Problem gelöst, danke! – rvnbrg
Wie für die Datenmenge, weiß ich, dass es nicht genug ist, aber es sind alle verfügbaren Daten für das Problem im Moment. Danke für deinen Kommentar trotzdem! – rvnbrg