Ejemplo n.º 1
0
 def test_iter(self):
     """Prueba el iterador
     """
     self.assertSequenceEqual(sorted(iter(BagOfWords())), [])
     self.assertSequenceEqual(sorted(iter(BagOfWords("cat cow dog"))),
                              [("cat", 1), ("cow", 1), ("dog", 1)])
     self.assertSequenceEqual(sorted(iter(BagOfWords(text="cat dog cat"))),
                              [("cat", 2), ("dog", 1)])
Ejemplo n.º 2
0
 def test_init_with_str(self):
     """Prueba la inicialización con strings
     """
     self.assertDictEqual(
         BagOfWords("cat dog cow").values, {
             "cat": 1,
             "dog": 1,
             "cow": 1
         })
     self.assertDictEqual(
         BagOfWords(text="Cat dog cat").values, {
             "cat": 2,
             "dog": 1
         })
Ejemplo n.º 3
0
 def test_init_with_symbols_in_str(self):
     """Prueba la inicialización con strings que contengan símbolos de puntuación
     """
     self.assertDictEqual(
         BagOfWords(" cat, dog! cow.").values, {
             "cat": 1,
             "dog": 1,
             "cow": 1
         })
     self.assertDictEqual(
         BagOfWords(text="cat dog?? cat!!! ").values, {
             "cat": 2,
             "dog": 1
         })
Ejemplo n.º 4
0
 def test_union(self):
     """Prueba la union de dos bag-of-words
     """
     bag1 = BagOfWords("cat dog cow fish cat cat fish")
     bag2 = BagOfWords("dog grape banana peach")
     self.assertDictEqual(
         bag1.union(bag2).values, {
             "banana": 1,
             "cat": 3,
             "cow": 1,
             "dog": 2,
             "fish": 2,
             "grape": 1,
             "peach": 1
         })
Ejemplo n.º 5
0
    def test_index_creation(self):
        """Prueba la creación del indice

        Esta prueba usa el siguiente ejemplo como modelo
        https://en.wikipedia.org/wiki/Tf%E2%80%93idf#Example_of_tf%E2%80%93idf
        """

        self.maxDiff = None

        indexer = Indexer()
        for text in self.texts:
            text = text.strip()
            bag = BagOfWords(text,
                             enable_stemming=False,
                             filter_stopwords=False)
            indexer.index(bag)

        test = self.expected["words_index"].__str__()
        print(test)
        fd = StringIO()
        indexer.dump(fd)
        result = fd.getvalue().replace("\"", "'")
        print(result)

        self.assertEqual(test, result)
Ejemplo n.º 6
0
 def test_document_len(self):
     """Prueba el tamaño del documento, no del vector
     """
     bag1 = BagOfWords("cat dog cow fish cat cat fish")
     bag2 = BagOfWords("dog grape banana peach")
     self.assertEqual(bag1.document_len(), 7)
     self.assertEqual(bag2.document_len(), 4)
     self.assertEqual(bag1.intersection(bag2).document_len(), 1)
     self.assertEqual(bag1.union(bag2).document_len(), 11)
Ejemplo n.º 7
0
 def test_str(self):
     """Prueba la conversión a string
     """
     txt = str(BagOfWords("cat dog cow"))
     self.assertTrue(txt.startswith("{"))
     self.assertIn("'cat': 1", txt)
     self.assertIn("'dog': 1", txt)
     self.assertIn("'cow': 1", txt)
     self.assertTrue(txt.endswith("}"))
Ejemplo n.º 8
0
 def test_init_with_dict(self):
     """Prueba la inicialización con diccinoarios
     """
     self.assertDictEqual(
         BagOfWords(values={
             "cat": 1,
             "dog": 1,
             "cow": 1
         }).values, {
             "cat": 1,
             "dog": 1,
             "cow": 1
         })
     self.assertDictEqual(
         BagOfWords(values={
             "cat": 2,
             "dog": 1
         }).values, {
             "cat": 2,
             "dog": 1
         })
Ejemplo n.º 9
0
 def test_dump(self):
     """Prueba que el fichero JSON generado sea correcto
     """
     indexer = Indexer()
     for text in self.texts:
         text = text.strip()
         bag = BagOfWords(text,
                          enable_stemming=False,
                          filter_stopwords=False)
         indexer.index(bag)
     fd = StringIO()
     indexer.dump(fd)
     print(fd.getvalue())
     fd.seek(0)
Ejemplo n.º 10
0
 def test_intersection(self):
     """Prueba la interesección de dos bag-of-words
     """
     bag1 = BagOfWords("cat dog cow fish cat cat fish")
     bag2 = BagOfWords("dog grape banana peach")
     self.assertDictEqual(bag1.intersection(bag2).values, {"dog": 1})
Ejemplo n.º 11
0
 def test_len(self):
     """Prueba el tamaño del vector
     """
     self.assertEqual(len(BagOfWords()), 0)
     self.assertEqual(len(BagOfWords("cat dog cow")), 3)
     self.assertEqual(len(BagOfWords(text="cat dog cat")), 2)