def path_clean(path):
rel_ents = path.split(' -> ')
relations = []
entities = []
for idx, item in enumerate(rel_ents):
if idx%2 == 0:
relations.append(item)
else:
entities.append(item)
entity_stats = Counter(entities).items()
duplicate_ents = [item for item in entity_stats if item[1]!=1]
duplicate_ents.sort(key = lambda x:x[1], reverse=True)
for item in duplicate_ents:
ent = item[0]
ent_idx = [i for i, x in enumerate(rel_ents) if x == ent]
if len(ent_idx)!=0:
min_idx = min(ent_idx)
max_idx = max(ent_idx)
if min_idx!=max_idx:
rel_ents = rel_ents[:min_idx] + rel_ents[max_idx:]
return ' -> '.join(rel_ents)
评论列表
文章目录