Пример #1
0
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
Пример #2
0
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()