def merge_redundant_events(self, events):
# compute the connected components in the redundancy graph
components = []
for c in nx.connected_components(self.redundancy_graph):
components.append(c)
final_events = []
# merge redundant events
for event in events:
main_word = event[2]
main_term = main_word
descriptions = []
for component in components:
if main_word in component:
main_term = ', '.join(component)
for node in component:
descriptions.append(self.redundancy_graph.node[node]['description'])
break
if len(descriptions) == 0:
related_words = event[3]
else:
related_words = self.merge_related_words(main_term, descriptions)
final_event = (event[0], event[1], main_term, related_words, event[4])
final_events.append(final_event)
return final_events
评论列表
文章目录