コード例 #1
0
ファイル: evaluate_predictions.py プロジェクト: zhimingz/qb
    buzz.writeheader()

    final_out = DictWriter(open(flags.finals, 'w'),
                           fieldnames=["question", "answer"])
    final_out.writeheader()

    # Check file length
    with open(flags.meta) as infile:
        meta_lines = sum(1 for line in infile)
    with open(flags.pred) as infile:
        pred_lines = sum(1 for line in infile)
    assert meta_lines == pred_lines, "Prediction and meta files mismatch" + \
        "(%s: %i vs %s: %i)" % (flags.meta, meta_lines, flags.pred, pred_lines)

    pi = PositionIterator(open(flags.meta), open(flags.pred),
                          qdb.all_answers())
    if flags.expo:
        pi.add_expo_answers(flags.expo)

    questions_with_buzzes = defaultdict(dict)
    for question_id, positions in pi:
        any_buzz = False
        final_sent, final_char = max(positions)
        presence = answer_presence(positions)
        for ss, tt in sorted(positions):
            # TODO: Add in evidence
            for guess, final, weight in \
                    top_guesses(positions[(ss, tt)]):
                if (ss == final_sent and tt == final_char and not any_buzz) or\
                        final == 1:
                    any_buzz = True
コード例 #2
0
ファイル: evaluate_predictions.py プロジェクト: jankim/qb
    final_out = DictWriter(open(flags.finals, "w"), fieldnames=["question", "answer"])
    final_out.writeheader()

    # Check file length
    with open(flags.meta) as infile:
        meta_lines = sum(1 for line in infile)
    with open(flags.pred) as infile:
        pred_lines = sum(1 for line in infile)
    assert meta_lines == pred_lines, "Prediction and meta files mismatch" + "(%s: %i vs %s: %i)" % (
        flags.meta,
        meta_lines,
        flags.pred,
        pred_lines,
    )

    pi = PositionIterator(open(flags.meta), open(flags.pred), qdb.all_answers())
    if flags.expo:
        pi.add_expo_answers(flags.expo)

    questions_with_buzzes = defaultdict(dict)
    for question_id, positions in pi:
        any_buzz = False
        final_sent, final_char = max(positions)
        presence = answer_presence(positions)
        for ss, tt in sorted(positions):
            # TODO: Add in evidence
            for guess, final, weight in top_guesses(positions[(ss, tt)]):
                if (ss == final_sent and tt == final_char and not any_buzz) or final == 1:
                    any_buzz = True

                    # Add the question so it will be written out in the