From 83468b17d60d40df0280988ff04731db64a33294 Mon Sep 17 00:00:00 2001 From: Mridul Seth Date: Thu, 6 Oct 2016 23:32:01 +0530 Subject: [PATCH] Correct logic for iterating over SimilarityABC --- CHANGELOG.md | 1 + gensim/interfaces.py | 7 ++----- gensim/test/test_similarities.py | 9 +++++++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f7ef32f59..615e677607 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Changes * Fixed issue #838, RuntimeWarning: overflow encountered in exp (@markroxor, [#895](https://github.com/RaRe-Technologies/gensim/pull/895)) * Changed some log messages to warnings as suggested in issue #828. (@rhnvrm, [#884](https://github.com/RaRe-Technologies/gensim/pull/884)) * Fixed issue #851, In summarizer.py, RunTimeError is raised if single sentence input is provided to avoid ZeroDivionError. (@metalaman, #887) +* Fixed issue [#791](https://github.com/RaRe-Technologies/gensim/issues/791), correct logic for iterating over SimilarityABC interface. ([@MridulS](https://github.com/MridulS), [#839](https://github.com/RaRe-Technologies/gensim/pull/839) 0.13.2, 2016-08-19 diff --git a/gensim/interfaces.py b/gensim/interfaces.py index cd5d6ee495..e1024723b0 100644 --- a/gensim/interfaces.py +++ b/gensim/interfaces.py @@ -261,11 +261,8 @@ def __iter__(self): # scipy.sparse happy chunk_end = min(self.index.shape[0], chunk_start + self.chunksize) chunk = self.index[chunk_start : chunk_end] - if chunk.shape[0] > 1: - for sim in self[chunk]: - yield sim - else: - yield self[chunk] + for sim in self[chunk]: + yield sim else: for doc in self.index: yield self[doc] diff --git a/gensim/test/test_similarities.py b/gensim/test/test_similarities.py index 9d6ea599a2..87740862a4 100644 --- a/gensim/test/test_similarities.py +++ b/gensim/test/test_similarities.py @@ -432,6 +432,15 @@ def testMmapCompressed(self): # to be mmaped! + def testChunksize(self): + index = self.cls(None, corpus, num_features=len(dictionary), shardsize=5) + expected = [sim for sim in index] + index.chunksize = len(index) - 1 + sims = [sim for sim in index] + self.assertTrue(numpy.allclose(expected, sims)) + index.destroy() + + class TestWord2VecAnnoyIndexer(unittest.TestCase): def setUp(self):