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.

33 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