strdelta.append('-%s' % (f,)) elif ';' in f1 or ';' in f2: f1 = f1.split(';') f2 = f2.split(';') minus = ['-%s' % (e,) for e in f1 if e != '' and e not in f2] plus = ['+%s' % (e,) for e in f2 if e != '' and e not in f1] if minus or plus: strdelta.append('%s(%s%s%s)' % (f, ','.join(minus), (' | ' if (plus and minus) else ''), ','.join(plus))) else: strdelta.append('%s(%s->%s)' % (f, f1[:4], f2[:4])) return ', '.join(strdelta) if __name__ == "__main__": qlist, questions = answerfv.load_questions(sys.argv[1]) for qid in qlist: print("[%s] %s (%s)" % (questions[qid]['id'], questions[qid]['text'], questions[qid]['anspattern'])) alist1, ans1 = answerfv.load_answers(sys.argv[2], qid) alist2, ans2 = answerfv.load_answers(sys.argv[3], qid) # List answers in the order of confidence in set #2 for a in alist2: if a not in ans1: continue # Not common answer a1 = ans1[a] a2 = ans2[a] delta = compare_fv(ans2['_header'], a1, a2) if delta == []: continue print("\t%-38.38s\t%s %.3f\t%s" % (a, a2['iM'], float(a2['confidence']), delta2str(delta))) print('')
print("%38.38s" % ('', ) + "\tin %Q\tin %A\tavg%A\tavg%CA\tavg%CAp\tRR B") for field in qacounter.columns: print("%38.38s\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%c%c %c" % ( field, qacounter.portion_questions(field), qacounter.portion_answers(field), qacounter.mean_portion_all_answers(field), qacounter.mean_portion_correct_answers(field), qacounter.mean_portion_answers_correct(field), '!' if qacounter.policy_too_rare(field) else '.', '!' if qacounter.policy_extremely_rare(field) else '.', '!' if qacounter.policy_bad_predictor(field) else '.', )) if __name__ == "__main__": """ Gather data """ qlist, questions = answerfv.load_questions(sys.argv[1]) qacounter = QACounter() for qid in qlist: alist, ans = answerfv.load_answers(sys.argv[2], qid) acounter = AnswerCounter() acounter.from_alist(qid, alist, ans) qacounter.add_question(acounter) """ Report data """ stats_report(qacounter)
plus = ['+%s' % (e, ) for e in f2 if e != '' and e not in f1] if minus or plus: strdelta.append('%s(%s%s%s)' % (f, ','.join(minus), (' | ' if (plus and minus) else ''), ','.join(plus))) else: strdelta.append('%s(%s->%s)' % (f, f1[:4], f2[:4])) return ', '.join(strdelta) if __name__ == "__main__": qlist, questions = answerfv.load_questions(sys.argv[1]) for qid in qlist: print("[%s] %s (%s)" % (questions[qid]['id'], questions[qid]['text'], questions[qid]['anspattern'])) alist1, ans1 = answerfv.load_answers(sys.argv[2], qid) alist2, ans2 = answerfv.load_answers(sys.argv[3], qid) # List answers in the order of confidence in set #2 for a in alist2: if a not in ans1: continue # Not common answer a1 = ans1[a] a2 = ans2[a] delta = compare_fv(ans2['_header'], a1, a2) if delta == []: continue print("\t%-38.38s\t%s %.3f\t%s" % (a, a2['iM'], float(a2['confidence']), delta2str(delta))) print('')
for field in qacounter.columns: print("%38.38s\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%c%c %c" % (field, qacounter.portion_questions(field), qacounter.portion_answers(field), qacounter.mean_portion_all_answers(field), qacounter.mean_portion_correct_answers(field), qacounter.mean_portion_answers_correct(field), '!' if qacounter.policy_too_rare(field) else '.', '!' if qacounter.policy_extremely_rare(field) else '.', '!' if qacounter.policy_bad_predictor(field) else '.', )) if __name__ == "__main__": """ Gather data """ qlist, questions = answerfv.load_questions(sys.argv[1]) qacounter = QACounter() for qid in qlist: alist, ans = answerfv.load_answers(sys.argv[2], qid) acounter = AnswerCounter() acounter.from_alist(qid, alist, ans) qacounter.add_question(acounter) """ Report data """ stats_report(qacounter)