def test(): weights = [0.2,0.2,0.2,0.2] mask = [1,1,1,1] wp = 0 pp = 0 f_string = 'mit anderen programmen soll china bei der erfüllung bestimmter wto-vorgaben unterstützt werden .' f_sentence = f_string.split() phrase_table,seen_words = phraseTable.get_phrase_table(weights,mask,wp,pp,'../model/moses.ini') derivation,score,norm_score = decode(f_sentence,phrase_table,seen_words) print derivation_to_sentence(derivation) print derivation
def main(): # monotone.py mosis.ini -j 4 if len(sys.argv) < 2: sys.exit(-1) mosis_fn = sys.argv[1] n_core = 1 if len(sys.argv) >= 4: n_core = int(sys.argv[3]) weights,wp,pp,d_weight,lm_weight,path = read_moses(mosis_fn) mask = [1,1,1,1] # get phrase table phrase_table,seen_words = phraseTable.get_phrase_table(weights,mask,pp,wp,path) # decode lines = sys.stdin.readlines() line_groups = multip.split_list(lines, n_core, 1) processes = [] queue = Queue() for i in xrange(n_core): group = line_groups[i] p = Process(target=worker, args=(group, phrase_table,seen_words, i, queue)) p.start() processes.append(p) d = {} s = 0.0 ns = 0.0 for i in xrange(n_core): key, out , score = queue.get() d[key] = out s += score for p in processes: p.join() for i in xrange(n_core): group = d[i] if group != '': print group, sys.stderr.write('score:'+str(s)+'\n') sys.stderr.flush()