示例#1
0
 def test_extend(self):
     dictionary = {"a": ["one"], "b": [1, 2]}
     extend_list_in_dict(dictionary, "c", [1, 2])
     assert "c" in dictionary
     assert len(dictionary["c"]) == 2
     extend_list_in_dict(dictionary, "a", ["a", "bc"])
     assert "a" in dictionary
     assert len(dictionary["a"]) == 3
示例#2
0
 def get_synonyms_dict(self):
     if self._synonyms is None:
         self._synonyms = dict()
         for rule in self._all_rules:
             texts = [ex.text for ex in rule.generate_all()]
             if rule.slot_value is None:
                 for text in texts:
                     append_to_list_in_dict(self._synonyms, text, text)
             else:
                 extend_list_in_dict(self._synonyms, rule.slot_value, texts)
     return self._synonyms
示例#3
0
 def get_entities_synonyms(self):  # TODO move that into AST
     """
     Makes a dict of all the synonyms of entities
     based on the slot value they are assigned.
     """
     synonyms = dict()
     for slot_definition in self._slot_definitions:
         current_synonyms_dict = \
             self._slot_definitions[slot_definition].get_synonyms_dict()
         for slot_value in current_synonyms_dict:
             extend_list_in_dict(synonyms, slot_value,
                                 current_synonyms_dict[slot_value])
     return remove_duplicates(synonyms)