コード例 #1
0
ファイル: pairwise_gen.py プロジェクト: clover3/Chair
def enum_neg_instance_diff_review() -> Iterable[Tuple[Claim, Claim, str]]:
    reviews: List[Review] = load_parsed()
    for r1, r2 in combinations(reviews, 2):
        for c1 in r1.claim_list:
            for c2 in r2.claim_list:
                yield c1, c2, "{}/{} from different reviews".format(
                    c1.assertion, c2.assertion)
コード例 #2
0
ファイル: pilot_annotation.py プロジェクト: clover3/Chair
def enum_true_instance(sel_per_review=0) -> Iterable[Tuple[Claim, Claim, str]]:
    reviews: List[Review] = load_parsed()

    def rank_fn(e = Tuple[Claim, Claim]):
        claim1, claim2 = e
        return num_common_terms(claim1.text, claim2.text)

    for review in reviews:
        pair_per_review = []
        yes_claim_list = lfilter(lambda c: c.assertion == "YS", review.claim_list)
        no_claim_list = lfilter(lambda c: c.assertion == "NO", review.claim_list)

        for yes_claim in yes_claim_list:
            for no_claim in no_claim_list:
                e = yes_claim, no_claim
                pair_per_review.append(e)

        pair_per_review.sort(key=rank_fn, reverse=True)

        if sel_per_review == 0:
            pairs = pair_per_review
        else:
            pairs = pair_per_review[:sel_per_review]

        for claim1, claim2 in pairs:
            yield claim1, claim2
コード例 #3
0
ファイル: pairwise_gen.py プロジェクト: clover3/Chair
def claim_text_to_info() -> Dict[str, Dict]:
    out_d = {}
    reviews: List[Review] = load_parsed()
    for review in reviews:
        for claim in review.claim_list:
            out_d[claim.text] = {
                'assertion': claim.assertion,
                'question': claim.question,
                'pmid': claim.pmid
            }
    return out_d
コード例 #4
0
ファイル: pairwise_gen.py プロジェクト: clover3/Chair
def enum_true_instance() -> Iterable[Tuple[Claim, Claim, str]]:
    reviews: List[Review] = load_parsed()
    for review in reviews:
        yes_claim_list = lfilter(lambda c: c.assertion == "YS",
                                 review.claim_list)
        no_claim_list = lfilter(lambda c: c.assertion == "NO",
                                review.claim_list)

        for yes_claim in yes_claim_list:
            for no_claim in no_claim_list:
                yield yes_claim, no_claim, "Yes/No from a same review"
                yield no_claim, yes_claim, "No/Yes from a same review"
コード例 #5
0
def run_trivial_solution():
    reviews: List[Review] = load_parsed()

    review0: Review = reviews[0]

    def solve_review(review: Review):
        question = review.claim_list[0].question
        claim_texts = list([c.text for c in review.claim_list])
        print("Question:", question)
        solve(question, claim_texts)

    solve_review(review0)
コード例 #6
0
ファイル: pairwise_gen.py プロジェクト: clover3/Chair
def enum_neg_instance2() -> Iterable[Tuple[Claim, Claim, str]]:
    reviews: List[Review] = load_parsed()
    for review in reviews:
        yes_claim_list = lfilter(lambda c: c.assertion == "YS",
                                 review.claim_list)
        no_claim_list = lfilter(lambda c: c.assertion == "NO",
                                review.claim_list)

        for c1, c2 in combinations(yes_claim_list, 2):
            yield c1, c2, "{}/{} from a same review".format(
                c1.assertion, c2.assertion)

        for c1, c2 in combinations(no_claim_list, 2):
            yield c1, c2, "{}/{} from a same review".format(
                c1.assertion, c2.assertion)
コード例 #7
0
def run_trivial_solution_pair():
    reviews: List[Review] = load_parsed()

    review0: Review = reviews[0]

    def solve_review(review: Review):
        question = review.claim_list[0].question
        claim_texts = list([c.text for c in review.claim_list])
        claim_pairs = [(claim_texts[3], claim_texts[1])]
        # for idx in range(len(claim_texts)-1):
        #     c1 = claim_texts[idx]
        #     c2 = claim_texts[idx+1]
        #     claim_pairs.append((c1, c2))
        pairwise(claim_pairs)

    solve_review(review0)
コード例 #8
0
def main():
    reviews: List[Review] = load_parsed()

    review0: Review = reviews[0]

    is_first = True
    for idx, claim in enumerate(review0.claim_list):
        doc: Abstract = load_doc_parsed(claim.pmid)
        if is_first:
            print("Question (query):", claim.question)
            is_first = False

        print("PMID:", claim.pmid)
        print("Claim {}:".format(idx), claim.text)
        if claim.assertion == "YS":
            print("YES")
        else:
            print(claim.assertion)
        print("Full abstract:")
        for text in doc.text_list:
            print("[{}] {}".format(text.label, text.text))

        print()