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
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
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)