Explorar el Código

Normalize buffer vector in analogy queries

Summary: The buffer vector should be normalized when added to the query vector.

Reviewed By: EdouardGrave

Differential Revision: D13192638

fbshipit-source-id: faa46d339e7cc0d149ccc5826fa7197ccfd81635
Onur Çelebi hace 7 años
padre
commit
71b410199c
Se han modificado 1 ficheros con 3 adiciones y 3 borrados
  1. 3 3
      src/fasttext.cc

+ 3 - 3
src/fasttext.cc

@@ -596,11 +596,11 @@ std::vector<std::pair<real, std::string>> FastText::getAnalogies(
 
   Vector buffer(args_->dim);
   getWordVector(buffer, wordA);
-  query.addVector(buffer, 1.0);
+  query.addVector(buffer, 1.0 / (buffer.norm() + 1e-8));
   getWordVector(buffer, wordB);
-  query.addVector(buffer, -1.0);
+  query.addVector(buffer, -1.0 / (buffer.norm() + 1e-8));
   getWordVector(buffer, wordC);
-  query.addVector(buffer, 1.0);
+  query.addVector(buffer, 1.0 / (buffer.norm() + 1e-8));
 
   lazyComputeWordVectors();
   assert(wordVectors_);