2016-04-20 17 views
1

Ich habe in einigen Aufsätzen (Tomas Mikolov ...) gelernt, dass eine bessere Weise, den Vektor für einen Satz zu bilden, ist, den Wortvektor zu verketten.WordVectors Wie man Wortvektoren verkettet, um Satzvektor zu bilden

aber aufgrund meiner ungeschickten Mathematik bin ich mir immer noch nicht sicher über die Details.

beispielsweise

Annahme, daß die Dimension des Wortvektor m, ein Satz hat ein n Wörtern.

Was wird das korrekte Ergebnis der Verkettung sein?

ist es ein Zeilenvektor von 1 x m * n? oder eine Matrix von m x n?

bitte raten

dank

+1

wo haben Mikolov dass erwähnen? Ein Verweis auf das Papier usw. ist nützlich. Um Ihre Frage zu beantworten, fügt die Verkettung einfach Vektoren nacheinander ein. Wenn Sie also 3 Vektoren von 1x100 Größe haben, wird der Satzvektor 1x300. – user3639557

Antwort

2

Es gibt mindestens drei gemeinsame Wege Vektoren zu kombinieren Einbettung; (a) Summieren, (b) Summieren & Mittelwertbildung oder (c) Verketten. Also in Ihrem Fall, mit Verkettung, das würde Ihnen einen 1 x m*a Vektor geben, wobei a die Anzahl der Sätze ist. In den anderen Fällen bleibt die Vektorlänge gleich. Siehe gensim.models.doc2vec.Doc2Vec, dm_concat und dm_mean - es ermöglicht Ihnen die Verwendung einer dieser drei Optionen [1,2].

[1] http://radimrehurek.com/gensim/models/doc2vec.html#gensim.models.doc2vec.LabeledLineSentence

[2] https://github.com/piskvorky/gensim/blob/develop/gensim/models/doc2vec.py

+0

danke, es war hilfreich –