def _create_nx_graph(self):
self._nx_graph = nx.DiGraph()
for thesaurus_entry in self.thesaurus.items():
node = self.nodename_index[thesaurus_entry[0]]
self._nx_graph.add_node(node)
for child_entry in thesaurus_entry[1]['narrower']:
child = self.nodename_index[child_entry]
self._nx_graph.add_edge(node, child, weight=0)
for parent_entry in thesaurus_entry[1]['broader']:
parent = self.nodename_index[parent_entry]
self._nx_graph.add_edge(parent, node, weight=0)
# TODO add weights
for n in self._nx_graph.nodes():
edges = self._nx_graph.edges(n, data=True)
n_edges = len(edges)
for _, _, d in edges:
d['weight'] = 1 / n_edges
评论列表
文章目录