2015-01-30 4 views
0

오픈 소스 패키지 paralex - [readme][1]을 테스트하려고하는데, 주어진 기능에서 결과와 점수의 가치를보고 싶습니다.목록을 덮어 쓰지 마십시오

코드는 다음과 같습니다 기능이라고

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 

은 다음과 같습니다

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) 

이 온다 결과 않습니다 어떤 형식으로 어떤 생각을 :

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 

결과처럼 보인다?

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

results 각 튜플의 첫 번째 항목이 딕셔너리 각 값 인 best_scores 딕셔너리에서 정렬 된 목록이며, 두 번째는 각각이다

+0

그렇다면 출력물은 무엇을 기대합니까? – ZdaR

+0

코드 * 호출 *이 표시되지 않습니다. 입력은 어디에서 왔습니까? –

+0

나는 그 질문을 이해하지 못한다. –

답변

0

당신은 포맷을 사용하여 인쇄 scores_queries에서 정렬 된 출력을 볼 수있다 키.

결과를 보려면 간단히 print(results)을 입력하십시오.

+0

덕분에 그런 방식으로 인쇄해도 결과는 비슷합니다.'(2.222222222215, (2,1,87896,1415203)), (2.222222222214, (2,1,564,349,1415203)), (2.111111111105, (2, 1, 2348232) (2.1111111111010, (2.111111111105, (2, 1, 842895, 1415203)), (2.111111111105, (2,1,755225,1415203)), (2.111111111105, (2,1,774,776,1415203)), (2.111111111105, (2, 1, 689748, 1415203)), (2.111111111105, (2, 1, 689715, 1415203)), (1.9999999999929998, (2,1 564338, 1415203)) .....' –

+0

결과를 인쇄 하시겠습니까? 결과는 lex.parse가 조작하는 튜플의 목록 일뿐입니다. 나는 lex.parse의 출처를 살펴볼 것입니다. 결과로 얻는 결과에 대해 통찰력을 가질 것입니다. –

+0

예 @Padraic은 여전히 ​​실제 결과를 볼 수있는 방법이 있습니다. 점수는 float 값이고 쿼리는 문자열입니다 –

관련 문제