2020from gensim .corpora import mmcorpus , Dictionary
2121from gensim .models import word2vec
2222from gensim .models import doc2vec
23+ from gensim .models import KeyedVectors
2324from gensim .models .wrappers import fasttext
2425from gensim import matutils , utils , similarities
2526from gensim .models import Word2Vec
@@ -458,8 +459,8 @@ def testWord2Vec(self):
458459 model .init_sims ()
459460 index = self .indexer (model , 10 )
460461
461- self .assertVectorIsSimilarToItself (model , index )
462- self .assertApproxNeighborsMatchExact (model , index )
462+ self .assertVectorIsSimilarToItself (model . wv , index )
463+ self .assertApproxNeighborsMatchExact (model , model . wv , index )
463464 self .assertIndexSaved (index )
464465 self .assertLoadedIndexEqual (index , model )
465466
@@ -473,28 +474,38 @@ def testFastText(self):
473474 model .init_sims ()
474475 index = self .indexer (model , 10 )
475476
476- self .assertVectorIsSimilarToItself (model , index )
477- self .assertApproxNeighborsMatchExact (model , index )
477+ self .assertVectorIsSimilarToItself (model . wv , index )
478+ self .assertApproxNeighborsMatchExact (model , model . wv , index )
478479 self .assertIndexSaved (index )
479480 self .assertLoadedIndexEqual (index , model )
480481
482+ def testAnnoyIndexingOfKeyedVectors (self ):
483+ from gensim .similarities .index import AnnoyIndexer
484+ keyVectors_file = datapath ('lee_fasttext.vec' )
485+ model = KeyedVectors .load_word2vec_format (keyVectors_file )
486+ index = AnnoyIndexer (model , 10 )
487+
488+ self .assertEqual (index .num_trees , 10 )
489+ self .assertVectorIsSimilarToItself (model , index )
490+ self .assertApproxNeighborsMatchExact (model , model , index )
491+
481492 def testLoadMissingRaisesError (self ):
482493 from gensim .similarities .index import AnnoyIndexer
483494 test_index = AnnoyIndexer ()
484495
485496 self .assertRaises (IOError , test_index .load , fname = 'test-index' )
486497
487- def assertVectorIsSimilarToItself (self , model , index ):
488- vector = model . wv .syn0norm [0 ]
489- label = model . wv .index2word [0 ]
498+ def assertVectorIsSimilarToItself (self , wv , index ):
499+ vector = wv .syn0norm [0 ]
500+ label = wv .index2word [0 ]
490501 approx_neighbors = index .most_similar (vector , 1 )
491502 word , similarity = approx_neighbors [0 ]
492503
493504 self .assertEqual (word , label )
494505 self .assertEqual (similarity , 1.0 )
495506
496- def assertApproxNeighborsMatchExact (self , model , index ):
497- vector = model . wv .syn0norm [0 ]
507+ def assertApproxNeighborsMatchExact (self , model , wv , index ):
508+ vector = wv .syn0norm [0 ]
498509 approx_neighbors = model .most_similar ([vector ], topn = 5 , indexer = index )
499510 exact_neighbors = model .most_similar (positive = [vector ], topn = 5 )
500511
0 commit comments