fr1 = '' en1 = '' source = '' target = '' alignment_dict = {} nad = {} fr1 = "je demande que cette decision soit reconsideree car ce n' est pas le cas donc ." en1 = "i would ask that they reconsider , since this is not the case ." alignment_str1 = "0-0 1-1 1-2 2-3 3-3 6-4 4-5 5-5 6-5 7-7 8-8 10-9 9-10 11-10 12-11 13-12 15-13" fr4 = "je vous avouerai que , pour le moment , les choses me semblent un petit peu confuses ." en4 ="i admit that , at present , the matter seems to be somewhat confused ." alignment_str2 = "0-0 1-1 2-1 5-2 6-3 8-4 12-5 13-6 14-7 15-8 16-9 12-10 11-11 9-13 10-14 20-16 21-17 22-18 23-19 3-20 24-21 25-23 26-24 27-25 29-26 28-27 29-28 30-28 31-29 32-30 33-30 34-31" alignment_str3 = "0-0 0-1 1-1 0-2 1-3 2-4 3-5 4-6 5-7 6-8 7-9" alignment_str4 = "0-0 1-1 2-1 3-2 4-3 5-4 7-5 8-6 9-7 10-8 11-9 12-9 12-10 12-11 13-12 15-12 14-13 16-13 17-14" alignment_str5 = "2-0 3-1 0-2 1-2 4-3 5-5 6-6 7-6 8-7 8-8 9-9 10-10 11-11 12-11 13-12 12-13 11-14 11-15 14-15 15-16" triples = ((fr4,en4,alignment_str4)) def set_up_phrase_finder(): """ Set up some global vars with values. convert_alignment_string: Convert a moses-format alignment string to a dictionary using the same indexing conventions. make_null_alignment_dict: Convert an alignment dictionary with moses format indices into one where being aligned with index 0 means being aligned with NULL and all the Moses indices are correspondingly bumped up by 1. """ global fr1, en1,alignment_str,source,target, alignment_dict, nad fr1 = "je demande que cette decision soit reconsideree car ce n' est pas le cas donc ." en1 = "i would ask that they reconsider , since this is not the case ." alignment_str = "0-0 1-1 1-2 2-3 3-3 6-4 4-5 5-5 6-5 7-7 8-8 10-9 9-10 11-10 12-11 13-12 15-13" source = fr1.split() target = en1.split() alignment_dict = convert_alignment_string(alignment_str, source,target) nad = make_null_alignment_dict(source,target,alignment_dict) def make_null_alignment_dict(source,target,alignment_dict): null_target_words = [] inv_dict = find_null_words(source,target,alignment_dict, null_target_words) null_source_words = [] for ind in range(len(source)): aligned = False for ind2 in range(len(target)): if alignment_dict[ind][ind2]: aligned=True if not aligned: null_source_words.append(ind) print null_source_words alignment_dict_with_nulls = {} for ind in range(len(target)): for ind2 in range(len(source)): alignment_dict_with_nulls.setdefault(ind2+1,{}) if alignment_dict[ind2][ind]: alignment_dict_with_nulls[ind2+1][ind+1] = True else: alignment_dict_with_nulls[ind2+1][ind+1] = False for ind2 in range(len(source)): if ind2 in null_source_words: alignment_dict_with_nulls[ind2+1][0] = True else: alignment_dict_with_nulls[ind2+1][0] = False alignment_dict_with_nulls[0]={} alignment_dict_with_nulls[0][0] = False for ind in range(len(target)): if ind in null_target_words: alignment_dict_with_nulls[0][ind+1] = True else: alignment_dict_with_nulls[0][ind+1] = False return alignment_dict_with_nulls def convert_alignment_string(as,source,target): ad = {} for i in range(len(source)): for j in range(len(target)): ad.setdefault(i,{})[j] = False alignments = as.split() for pr in alignments: (src,tgt) = [int(s) for s in pr.split('-')] ad[src][tgt] = True return ad def find_null_words (source,target,a_dict, null_words): inv_dict = {} for ind in range(len(target)): inv_dict[ind] = {} aligned = False for ind2 in range(len(source)): if alignment_dict[ind2][ind]: aligned=True inv_dict[ind][ind2] = True # print str(ind)+':', target[ind], str(ind2)+':', source[ind2] else: inv_dict[ind][ind2] = False if not aligned: null_words.append(ind) print null_words phrasikon_string1 = \ """ Printing phrasikon! i would ask || je demande (key: [ 1 3 ]) since this is not the case || car ce n' est pas le cas (key: [ 8 13 ]) since this is not the case || car ce n' est pas le cas donc (key: [ 8 13 ]) case || cas (key: [ 13 13 ]) case || cas donc (key: [ 13 13 ]) they reconsider || decision soit reconsideree (key: [ 5 6 ]) the || le (key: [ 12 12 ]) since this || car ce (key: [ 8 9 ]) i would ask that they reconsider || je demande que cette decision soit reconsideree (key: [ 1 6 ]) is not || n' est pas (key: [ 10 11 ]) i would ask that they reconsider , since this is not || NULL je demande que cette decision soit reconsideree car ce n' est pas (key: [ 1 11 ]) the case || le cas (key: [ 12 13 ]) the case || le cas donc (key: [ 12 13 ]) that || que cette (key: [ 4 4 ]) is not the || n' est pas le (key: [ 10 12 ]) this is not || ce n' est pas (key: [ 9 11 ]) . || . (key: [ 14 14 ]) . || donc . (key: [ 14 14 ]) i || je (key: [ 1 1 ]) would ask that they reconsider || demande que cette decision soit reconsideree (key: [ 2 6 ]) i would ask that they reconsider , since this is not the case || NULL je demande que cette decision soit reconsideree car ce n' est pas le cas (key: [ 1 13 ]) i would ask that they reconsider , since this is not the case || NULL je demande que cette decision soit reconsideree car ce n' est pas le cas donc (key: [ 1 13 ]) since this is not || car ce n' est pas (key: [ 8 11 ]) i would ask that || je demande que cette (key: [ 1 4 ]) would ask || demande (key: [ 2 3 ]) i would ask that they reconsider , since this || NULL je demande que cette decision soit reconsideree car ce (key: [ 1 9 ]) this is not the case || ce n' est pas le cas (key: [ 9 13 ]) this is not the case || ce n' est pas le cas donc (key: [ 9 13 ]) is not the case || n' est pas le cas (key: [ 10 13 ]) is not the case || n' est pas le cas donc (key: [ 10 13 ]) that they reconsider || que cette decision soit reconsideree (key: [ 4 6 ]) i would ask that they reconsider , since this is not the || NULL je demande que cette decision soit reconsideree car ce n' est pas le (key: [ 1 12 ]) since this is not the || car ce n' est pas le (key: [ 8 12 ]) is || est (key: [ 10 10 ]) this || ce (key: [ 9 9 ]) i would ask that they reconsider , since || NULL je demande que cette decision soit reconsideree car (key: [ 1 8 ]) since || car (key: [ 8 8 ]) i would ask that they reconsider , || NULL je demande que cette decision soit reconsideree (key: [ 1 7 ]) would ask that || demande que cette (key: [ 2 4 ]) this is not the || ce n' est pas le (key: [ 9 12 ]) """ phrasikon_string2 = """ i would ask||je demande (key: [ 1, 3 ]) since this is not the case||car ce n' est pas le cas (key: [ 8, 13 ]) since this is not the case||car ce n' est pas le cas donc (key: [ 8, 13 ]) case||cas (key: [ 13, 13 ]) case||cas donc (key: [ 13, 13 ]) they reconsider||decision soit reconsideree (key: [ 5, 6 ]) the||le (key: [ 12, 12 ]) since this||car ce (key: [ 8, 9 ]) i would ask that they reconsider||je demande que cette decision soit reconsideree (key: [ 1, 6 ]) is not||n' est pas (key: [ 10, 11 ]) i would ask that they reconsider , since this is not||NULL je demande que cette decision soit reconsideree car ce n' est pas (key: [ 1, 11 ]) is not the case .||n' est pas le cas donc . (key: [ 10, 14 ]) since this is not the case .||car ce n' est pas le cas donc . (key: [ 8, 14 ]) the case||le cas (key: [ 12, 13 ]) the case||le cas donc (key: [ 12, 13 ]) that||que cette (key: [ 4, 4 ]) i would ask that they reconsider , since this is not the case .||NULL je demande que cette decision soit reconsideree car ce n' est pas le cas donc . (key: [ 1, 14 ]) is not the||n' est pas le (key: [ 10, 12 ]) this is not||ce n' est pas (key: [ 9, 11 ]) .||. (key: [ 14, 14 ]) .||donc . (key: [ 14, 14 ]) i||je (key: [ 1, 1 ]) would ask that they reconsider||demande que cette decision soit reconsideree (key: [ 2, 6 ]) this is not the case .||ce n' est pas le cas donc . (key: [ 9, 14 ]) the case .||le cas donc . (key: [ 12, 14 ]) i would ask that they reconsider , since this is not the case||NULL je demande que cette decision soit reconsideree car ce n' est pas le cas (key: [ 1, 13 ]) i would ask that they reconsider , since this is not the case||NULL je demande que cette decision soit reconsideree car ce n' est pas le cas donc (key: [ 1, 13 ]) since this is not||car ce n' est pas (key: [ 8, 11 ]) i would ask that||je demande que cette (key: [ 1, 4 ]) would ask||demande (key: [ 2, 3 ]) i would ask that they reconsider , since this||NULL je demande que cette decision soit reconsideree car ce (key: [ 1, 9 ]) this is not the case||ce n' est pas le cas (key: [ 9, 13 ]) this is not the case||ce n' est pas le cas donc (key: [ 9, 13 ]) is not the case||n' est pas le cas (key: [ 10, 13 ]) is not the case||n' est pas le cas donc (key: [ 10, 13 ]) that they reconsider||que cette decision soit reconsideree (key: [ 4, 6 ]) i would ask that they reconsider , since this is not the||NULL je demande que cette decision soit reconsideree car ce n' est pas le (key: [ 1, 12 ]) since this is not the||car ce n' est pas le (key: [ 8, 12 ]) case .||cas donc . (key: [ 13, 14 ]) is||est (key: [ 10, 10 ]) this||ce (key: [ 9, 9 ]) i would ask that they reconsider , since||NULL je demande que cette decision soit reconsideree car (key: [ 1, 8 ]) since||car (key: [ 8, 8 ]) i would ask that they reconsider ,||NULL je demande que cette decision soit reconsideree (key: [ 1, 7 ]) would ask that||demande que cette (key: [ 2, 4 ]) this is not the||ce n' est pas le (key: [ 9, 12 ]) """ phrasikon_string3 = """ they reconsider , since this||decision soit reconsideree car ce (key: [ 5, 9 ]) that they reconsider ,||que cette decision soit reconsideree (key: [ 4, 7 ]) i would ask||je demande (key: [ 1, 3 ]) since this is not the case||car ce n' est pas le cas (key: [ 8, 13 ]) since this is not the case||car ce n' est pas le cas donc (key: [ 8, 13 ]) case||cas (key: [ 13, 13 ]) case||cas donc (key: [ 13, 13 ]) that they reconsider , since||que cette decision soit reconsideree car (key: [ 4, 8 ]) they reconsider||decision soit reconsideree (key: [ 5, 6 ]) would ask that they reconsider , since||demande que cette decision soit reconsideree car (key: [ 2, 8 ]) the||le (key: [ 12, 12 ]) they reconsider , since this is not the case||decision soit reconsideree car ce n' est pas le cas (key: [ 5, 13 ]) they reconsider , since this is not the case||decision soit reconsideree car ce n' est pas le cas donc (key: [ 5, 13 ]) since this||car ce (key: [ 8, 9 ]) that they reconsider , since this is not the||que cette decision soit reconsideree car ce n' est pas le (key: [ 4, 12 ]) i would ask that they reconsider||je demande que cette decision soit reconsideree (key: [ 1, 6 ]) would ask that they reconsider , since this is not the||demande que cette decision soit reconsideree car ce n' est pas le (key: [ 2, 12 ]) , since this is not||car ce n' est pas (key: [ 7, 11 ]) i would ask that they reconsider , since this is not||je demande que cette decision soit reconsideree car ce n' est pas (key: [ 1, 11 ]) they reconsider , since||decision soit reconsideree car (key: [ 5, 8 ]) since this is not the case .||car ce n' est pas le cas donc . (key: [ 8, 14 ]) that they reconsider , since this||que cette decision soit reconsideree car ce (key: [ 4, 9 ]) would ask that they reconsider , since this||demande que cette decision soit reconsideree car ce (key: [ 2, 9 ]) the case||le cas (key: [ 12, 13 ]) the case||le cas donc (key: [ 12, 13 ]) they reconsider , since this is not the||decision soit reconsideree car ce n' est pas le (key: [ 5, 12 ]) that||que cette (key: [ 4, 4 ]) i would ask that they reconsider , since this is not the case .||je demande que cette decision soit reconsideree car ce n' est pas le cas donc . (key: [ 1, 14 ]) is not the||n' est pas le (key: [ 10, 12 ]) that they reconsider , since this is not the case||que cette decision soit reconsideree car ce n' est pas le cas (key: [ 4, 13 ]) that they reconsider , since this is not the case||que cette decision soit reconsideree car ce n' est pas le cas donc (key: [ 4, 13 ]) , since this is not the||car ce n' est pas le (key: [ 7, 12 ]) would ask that they reconsider , since this is not the case||demande que cette decision soit reconsideree car ce n' est pas le cas (key: [ 2, 13 ]) would ask that they reconsider , since this is not the case||demande que cette decision soit reconsideree car ce n' est pas le cas donc (key: [ 2, 13 ]) this is not||ce n' est pas (key: [ 9, 11 ]) .||. (key: [ 14, 14 ]) .||donc . (key: [ 14, 14 ]) is not the case .||n' est pas le cas donc . (key: [ 10, 14 ]) i||je (key: [ 1, 1 ]) , since this is not the case .||car ce n' est pas le cas donc . (key: [ 7, 14 ]) would ask that they reconsider||demande que cette decision soit reconsideree (key: [ 2, 6 ]) this is not the case .||ce n' est pas le cas donc . (key: [ 9, 14 ]) the case .||le cas donc . (key: [ 12, 14 ]) they reconsider , since this is not||decision soit reconsideree car ce n' est pas (key: [ 5, 11 ]) i would ask that they reconsider , since this is not the case||je demande que cette decision soit reconsideree car ce n' est pas le cas (key: [ 1, 13 ]) i would ask that they reconsider , since this is not the case||je demande que cette decision soit reconsideree car ce n' est pas le cas donc (key: [ 1, 13 ]) since this is not||car ce n' est pas (key: [ 8, 11 ]) , since this is not the case||car ce n' est pas le cas (key: [ 7, 13 ]) , since this is not the case||car ce n' est pas le cas donc (key: [ 7, 13 ]) that they reconsider , since this is not the case .||que cette decision soit reconsideree car ce n' est pas le cas donc . (key: [ 4, 14 ]) i would ask that||je demande que cette (key: [ 1, 4 ]) would ask||demande (key: [ 2, 3 ]) i would ask that they reconsider , since this||je demande que cette decision soit reconsideree car ce (key: [ 1, 9 ]) would ask that they reconsider , since this is not the case .||demande que cette decision soit reconsideree car ce n' est pas le cas donc . (key: [ 2, 14 ]) that they reconsider , since this is not||que cette decision soit reconsideree car ce n' est pas (key: [ 4, 11 ]) , since this||car ce (key: [ 7, 9 ]) would ask that they reconsider ,||demande que cette decision soit reconsideree (key: [ 2, 7 ]) this is not the case||ce n' est pas le cas (key: [ 9, 13 ]) this is not the case||ce n' est pas le cas donc (key: [ 9, 13 ]) is not the case||n' est pas le cas (key: [ 10, 13 ]) is not the case||n' est pas le cas donc (key: [ 10, 13 ]) that they reconsider||que cette decision soit reconsideree (key: [ 4, 6 ]) i would ask that they reconsider , since this is not the||je demande que cette decision soit reconsideree car ce n' est pas le (key: [ 1, 12 ]) since this is not the||car ce n' est pas le (key: [ 8, 12 ]) case .||cas donc . (key: [ 13, 14 ]) they reconsider ,||decision soit reconsideree (key: [ 5, 7 ]) would ask that they reconsider , since this is not||demande que cette decision soit reconsideree car ce n' est pas (key: [ 2, 11 ]) this||ce (key: [ 9, 9 ]) is||est (key: [ 10, 10 ]) they reconsider , since this is not the case .||decision soit reconsideree car ce n' est pas le cas donc . (key: [ 5, 14 ]) i would ask that they reconsider , since||je demande que cette decision soit reconsideree car (key: [ 1, 8 ]) since||car (key: [ 8, 8 ]) i would ask that they reconsider ,||je demande que cette decision soit reconsideree (key: [ 1, 7 ]) is not||n' est pas (key: [ 10, 11 ]) , since||car (key: [ 7, 8 ]) would ask that||demande que cette (key: [ 2, 4 ]) this is not the||ce n' est pas le (key: [ 9, 12 ]) """