了解列表outpu

2024-03-29 08:15:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在测试开源软件包paralex - [readme][1],我想看看给定函数中result和score的值。你知道吗

代码为:

def run_on_question(s, con):
    q = get_sent(s)
    scored_answers = defaultdict(lambda: float('-inf'))
    scored_queries = lex.parse.get_scored_queries(q, con.nl_vocab, con.lexicon, con.weights)
    i = 0
    for score, query in sorted(scored_queries, reverse=True):
        print ' Score : %s  - query :  %s' % ( score, query)
        #print "%s %s " % (score, query) this also gives same result

调用的函数是:

def get_scored_queries(sent, nl_vocab, lexicon, weights):
    parses = parse(sent, nl_vocab, lexicon)
    scored = list((score_parse(p, weights), p) for p in parses)
    best_scores = defaultdict(lambda: float('-inf'))
    for s, p in scored:
        best_scores[p.meaning] = max(best_scores[p.meaning], s)
    results = list((v,k) for (k,v) in best_scores.iteritems())
    results.sort(reverse=True)
    return results

结果如下:

Score : -0.444444444449  - query :  (2, 1, 798848, 660874)
 Score : -0.444444444449  - query :  (2, 1, 787068, 660874)
 Score : -0.444444444449  - query :  (2, 1, 786980, 660874)
 Score : -0.555555555555  - query :  (2, 1, 820915, 589484)
 Score : -0.555555555555  - query :  (2, 1, 798901, 589484)
 Score : -0.666666666667  - query :  (2, 1, 725195, 660811)
 Score : -0.666666666667  - query :  (2, 1, 725195, 660727)
 Score : -0.666666666671  - query :  (2, 1, 708932, 660874)
 Score : -0.777777777777  - query :  (2, 1, 725198, 589484)
 Score : -0.777777777778  - query :  (2, 1, 798848, 2551164)
 Score : -0.777777777778  - query :  (2, 1, 798848, 996458)
 Score : -0.888888888889  - query :  (2, 1, 725196, 589484)
 Score : -0.888888888889  - query :  (2, 1, 708932, 2569298)
 Score : -0.888888888889  - query :  (2, 1, 708932, 2327035)
 Score : -0.888888888889  - query :  (2, 1, 708932, 2036311)
 Score : -1.0  - query :  (2, 1, 880853, 555134)
 Score : -1.0  - query :  (2, 1, 880797, 555134)
 Score : -1.0  - query :  (2, 1, 880794, 555134)
 Score : -1.0  - query :  (2, 1, 880791, 555134)

你知道这个结果是什么格式的吗?你知道吗


Tags: inforgetparsenlqueryconsent
1条回答
网友
1楼 · 发布于 2024-03-29 08:15:19

您将看到使用格式打印的scores_queries的排序输出:

  for score, query in sorted(scored_queries, reverse=True):
        print ' Score : %s  - query :  %s' % ( score, query)

results是来自best_scoresdict的排序列表,其中每个元组中的第一项是dict中的每个值,第二项是每个键。你知道吗

如果您想查看结果,只需在函数中添加print(results)。你知道吗

相关问题 更多 >