word_game.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:GloVe-experiments 作者: brannondorsey 项目源码 文件源码
def turn(gs, word_to_id, id_to_word, df, soft_score):

    gs['turn_number'] += 1
    names = list(gs['players'].keys())
    current_player = names[(gs['turn_number'] % len(names) - 1)]
    while True:
        expr = input('{}, please enter a word expression:\n> '.format(current_player))
        try:
            vec, skip_words = eval_expression(expr, word_to_id, word_to_id, df)
        except Exception as err:
            print(err)
            continue
        break

    answers = {}
    for name in gs['players']:
        while True:
            word = input('{}, please enter your answer: '.format(name))
            if word in word_to_id:
                answers[name] = df[word_to_id[word]]
                break
            else:
                print('{} is not in the dataset, please another word.'.format(word))

    answer_word, answer_dist, answer_vec = find_nearest(skip_words, vec, id_to_word, df)[0]
    # transform answers from vectors to distances
    for k, v in answers.items():
        answers[k] = cosine(v, answer_vec)

    winner = min(answers, key=answers.get)

    if not soft_score:
        gs['players'][winner] += 1
    else:
        for name in answers:
            gs['players'][name] += round(answers[name], 2)

    print('Computer says {} = {}'.format(expr, colored(answer_word, 'cyan')))
    print('{} wins this round.'.format(colored(winner, 'green')))
    print_standings(gs)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号