2017-05-03 7 views
2

Ich implementierte Word-Einbettungen in Tensor Flow ähnlich wie der Code here Ich war in der Lage, die endgültigen Einbettungen (final_embeddings) zu bekommen, aber ich würde gerne die Einbettungen mit den Analogien dieser Übung bewerten. Wie kann ich feststellen, welcher Ausdruck welcher Zeile im endgültigen Einbettungsarray entspricht? Gibt es dafür alternativ eine Implementierung im Tensor Flow? Jede Hilfe würde sehr geschätzt werden (Details und Ressourcen wären ein Plus;)). Vielen Dank!Analogien von Word2Vec in TensorFlow?

Antwort

1

Empfehlen Sie diese conceptual tutorial Ihnen. Wenn Sie ein Skip-Gramm verwenden, handelt es sich bei der Eingabe um eine Hot-Codierung. So ist der Index der 1 der Index des Vektors des Wortes.

enter image description here

Die Umsetzung in tensorflow ist ganz einfach. Sie können diese Funktion sehen möchten: tf.nn.embedding_lookup

Zum Beispiel:

embed = tf.nn.embedding_lookup(embedding, inputs) 

Der einbetten ist der Vektor die Sie suchen.

+0

Danke, Qy Zuo! Das ist was ich dachte. Wenn ich die Analogien implementiere, sind die Ergebnisse, die ich bekomme, unsensibel, und jetzt bin ich mir nicht sicher warum! Ist es möglich, dass die Funktion der Einbettungen (in dieser Eigenschaft) stark von der Dimension der Einbettung abhängt? Beachten Sie, dass ich willkürlich eine Dimension gewählt habe, da ich gerade eine vorläufige Übung durchführte. – user3009734

+0

@ user3009734 Ja, du hast Recht. Die Dimension kann zwischen 20 und 1000 variieren. Sie können diesen Hyperparameter entsprechend Ihrer Vokabulargröße auswählen, aber keine strikten Zuordnungen. Socher hat dies in diesem Kurs perfekt erklärt (https://www.youtube.com/watch?v=aRqn8t1hLxs) und es hat die Dinge wirklich deutlich gemacht. –

0

Welcher Ausdruck welcher Zeile im endgültigen Einbettungsarray entspricht, hängt vollständig von Ihrer Implementierung ab. Irgendwann vor deinem Training hast du jedes Wort in eine Zahl umgewandelt, richtig? Diese Nummer gibt diese Zeile in Ihrer Einbettungstabelle an.

Wenn Sie den spezifischen Namen wissen möchten, können Sie hier einen Teil Ihres Codes veröffentlichen.