You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
def zip_alignments(al0lang0, al0lang1, al1lang0, al1lang1):
|
|
if al0lang0==al1lang0:
|
|
return al0lang0, al0lang1, al1lang1
|
|
else:
|
|
new0 = {}
|
|
new1 = {}
|
|
new2 = {}
|
|
k, k0, k1 = 0, 0, 0
|
|
while k0<len(al0lang0) and k1<len(al1lang0):
|
|
if al0lang0[k0]==al1lang0[k0]:
|
|
new0.update({k:al0lang0[k0]})
|
|
new1.update({k:al0lang1[k0]})
|
|
new2.update({k:al1lang1[k1]})
|
|
k0+=1
|
|
k1+=1
|
|
elif al0lang0[k0]==+al1lang0[k1]+' '+al1lang0.get(k1+1, ''):
|
|
new0.update({k:al0lang0[k0]})
|
|
new1.update({k:al0lang1[k0]})
|
|
new2.update({k:al1lang1[k1]+' '+al1lang0.get(k1+1, '')})
|
|
k0+=1
|
|
k1+=2
|
|
elif al0lang0[k0]+al0lang0.get(k0+1, '')==al1lang0[k1]:
|
|
new0.update({k:al0lang0[k0]+' '+al0lang0.get(k0+1, '')})
|
|
new1.update({k:al0lang1[k0]+' '+al0lang1.get(k0+1, '')})
|
|
new2.update({k:al1lang1[k1]})
|
|
k0+=2
|
|
k1+=1
|
|
k+=1
|
|
return new0, new1, new2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|