|
|
|
""" |
|
Created on Thu Jun 18 20:08:30 2020 |
|
|
|
@author: luol2 |
|
""" |
|
|
|
def combine_overlap(mention_list): |
|
|
|
entity_list=[] |
|
if len(mention_list)>2: |
|
|
|
first_entity=mention_list[0] |
|
nest_list=[first_entity] |
|
max_eid=int(first_entity[1]) |
|
for i in range(1,len(mention_list)): |
|
segs=mention_list[i] |
|
if int(segs[0])> max_eid: |
|
if len(nest_list)==1: |
|
entity_list.append(nest_list[0]) |
|
nest_list=[] |
|
nest_list.append(segs) |
|
if int(segs[1])>max_eid: |
|
max_eid=int(segs[1]) |
|
else: |
|
tem=find_max_entity(nest_list) |
|
entity_list.append(tem) |
|
nest_list=[] |
|
nest_list.append(segs) |
|
if int(segs[1])>max_eid: |
|
max_eid=int(segs[1]) |
|
|
|
else: |
|
nest_list.append(segs) |
|
if int(segs[1])>max_eid: |
|
max_eid=int(segs[1]) |
|
if nest_list!=[]: |
|
if len(nest_list)==1: |
|
entity_list.append(nest_list[0]) |
|
|
|
else: |
|
tem=find_max_entity(nest_list) |
|
entity_list.append(tem) |
|
else: |
|
entity_list=mention_list |
|
|
|
return entity_list |
|
|
|
def find_max_entity(nest_list): |
|
max_len=0 |
|
max_entity=[] |
|
for i in range(0, len(nest_list)): |
|
length=int(nest_list[i][1])-int(nest_list[i][0]) |
|
if length>max_len: |
|
max_len=length |
|
max_entity=nest_list[i] |
|
|
|
return max_entity |