def __init__(self, wordnet, dict_filename, rels_filename): self._wordnet = wordnet self._G = wordnet.G self._dict_filename = data_path(dict_filename) self._rels_filename = data_path(rels_filename)
def __init__(self, dannet_path): self.dannet_path = data_path(dannet_path) self.dannet = Dannet() self._words = {} self._wordsense_ids = count()
if k in ['inheritance_comment', 'taxonomic']) edge_attr['type'] = row['name2'] self._add_edge_unless_dup(row['synset_id'], row['value'], edge_attr) if row['name2'] in self.REVERSE_RELATIONS: reverse_edge_attr = dict(edge_attr) reverse_edge_attr['type'] = self.REVERSE_RELATIONS[ row['name2']] self._add_edge_unless_dup(row['value'], row['synset_id'], reverse_edge_attr) self._load_rows( "relations.csv", "synset_id name name2 value taxonomic inheritance_comment", _load_relation) def _add_edge_unless_dup(self, src_n, target_n, edge_attr): # Avoid the duplicate edges that are seemingly present in the input data if src_n in self.dannet.S.edge and target_n in self.dannet.S.edge[ src_n]: if any(e['type'] == edge_attr['type'] for e in self.dannet.S.edge[src_n][target_n].values()): return self.dannet.S.add_edge(src_n, target_n, attr_dict=edge_attr) if __name__ == '__main__': path = data_path('wordnets/dannet/1.4') loader = DannetLoader(path) loader.load() d = loader.dannet
def __init__(self, wordnet, path): self._wordnet = wordnet self._G = wordnet.G self._path = data_path(path)
# (http://wordnet.dk/download_html). Available only in # Danish. Only relevant for the hyponymOf relation. # inheritance_comment: A synset inherits relations from hypernyms # If a relation is inherited rather than supplied for the # particular synset, a text comment will state from which # synset the relation stems. def _load_relation(row): # Link to Princeton Wordnet. Could possibly be imported as an empty node if row['value'].startswith("ENG"): return edge_attr = dict((k,v) for k,v in row.items() if k in ['inheritance_comment', 'taxonomic']) edge_attr['type'] = row['name2'] self._add_edge_unless_dup(row['synset_id'], row['value'], edge_attr) if row['name2'] in self.REVERSE_RELATIONS: reverse_edge_attr = dict(edge_attr) reverse_edge_attr['type'] = self.REVERSE_RELATIONS[row['name2']] self._add_edge_unless_dup(row['value'], row['synset_id'], reverse_edge_attr) self._load_rows("relations.csv", "synset_id name name2 value taxonomic inheritance_comment", _load_relation) def _add_edge_unless_dup(self, src_n, target_n, edge_attr): # Avoid the duplicate edges that are seemingly present in the input data if src_n in self.dannet.S.edge and target_n in self.dannet.S.edge[src_n]: if any(e['type'] == edge_attr['type'] for e in self.dannet.S.edge[src_n][target_n].values()): return self.dannet.S.add_edge(src_n, target_n, attr_dict=edge_attr) if __name__ == '__main__': path = data_path('wordnets/dannet/1.4') loader = DannetLoader(path) loader.load() d = loader.dannet