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
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
|