コード例 #1
0
    def test_get_similarity_tuples(self):
        keyword = k.Keyword('dog')
        raw_score = np.float32(0.1234)
        similarity = s.Similarity(
            k.Keyword('cat'), s.SimilarityScore(raw_score))
        similarities = s.Similarities([similarity])

        actual = s.SimilarKeywords(
            keyword, similarities).get_similarity_tuples()

        self.assertEqual(actual, [('cat', raw_score)])
コード例 #2
0
    def test_write_similar_kewyords(self):
        keyword = k.Keyword('test')
        similarity = si.Similarity(k.Keyword('flower'),
                                   si.SimilarityScore(np.float32(0.1)))
        similarities = si.Similarities([similarity])
        similar_keywords = si.SimilarKeywords(keyword, similarities)
        similarities_iterator = iter([similar_keywords])
        self.target.write_similar_keywords(similarities_iterator)

        with open(self.filename) as f:
            actual = [line.strip() for line in f.readlines()]
        expected = ['keyword,neighbor 1,similarity 1', 'test,flower,0.1']
        self.assertEqual(actual, expected)
コード例 #3
0
    def test_create_from_tuples(self):
        score = np.float32(0.2)
        similarities = iter([('a', score)])
        actual = s.Similarities.create_from_tuples(similarities)

        self.assertEqual(actual, s.Similarities(
            [s.Similarity(k.Keyword('a'),
                          s.SimilarityScore(score))]))
コード例 #4
0
    def test_is_acknowledged_keyword(self):
        """Accept Keyword value."""
        self.query_keyed_vectors.__contains__.return_value = True
        raw_keyword = 'キーワード'
        keyword = k.Keyword(raw_keyword)

        actual = self.target.is_acknowledged(keyword)

        self.assertTrue(actual)
        self.assertEqual(self.query_keyed_vectors.__contains__.call_args_list,
                         [call(raw_keyword)])
コード例 #5
0
    def test_to_query_vectors_multi(self):
        query = q.Query([k.Keyword('a'), k.Keyword('quick')])

        def contains(k):
            return True

        def getitem(k):
            if k == 'a':
                return np.array([0.1, 0.2, 0.3])
            if k == 'quick':
                return np.array([0.3, 0.2, 0.1])

        self.query_keyed_vectors.__contains__.side_effect = contains
        self.query_keyed_vectors.__getitem__.side_effect = getitem

        actual = self.target._to_query_vectors(query)

        self.assertEqual(actual.shape, (2, 3))
        self.assertTrue(
            (np.linalg.norm(actual, ord=2, axis=1) - np.array([1.0, 1.0]) <
             0.001).all())
コード例 #6
0
    def test_to_query_vectors_one(self):
        """_to_query_vectors can handle a query with one keyword."""
        query = q.Query([k.Keyword('a')])

        def contains(k):
            return True

        def getitem(k):
            if k == 'a':
                return np.array([0.1, 0.2, 0.3])

        self.query_keyed_vectors.__contains__.side_effect = contains
        self.query_keyed_vectors.__getitem__.side_effect = getitem

        actual = self.target._to_query_vectors(query)

        self.assertEqual(actual.shape, (1, 3))
        np.testing.assert_approx_equal(np.linalg.norm(actual, ord=2, axis=1),
                                       np.array([1.0]))
コード例 #7
0
 def test_rank(self, to_embedding_document, to_query_vectors):
     query = q.Query([k.Keyword('a')])
     document = d.Document(['a', 'quick'])
     self.assertEqual(self.target.rank(query, document),
                      si.SimilarityScore(np.float32(14.0)))