コード例 #1
0
ファイル: evaluation.py プロジェクト: 764664/BioSE
def run_one_query(query, num, models, ai=True, noise=False, rank=RankingAI.rank):
    papers = get_papers_from_pubmed(query, num)
    # papers = list(PubMedFetcher(query, num_of_documents=10).papers.values())
    PaperProcessor.add_journal_if(papers)
    if ai:
        rank(papers, query)
    else:
        RankingAI.passthrough(papers)
    # CSVHandler.write_list_to_csv("test.csv", papers, additional_fields=["ReferenceRank"])
    if noise:
        scaling_factors = [1, 0.1, 0.01, 0.001]
    else:
        scaling_factors = [1]

    results = [[] for _ in range(len(models))]
    times = [0 for _ in range(len(models))]
    for idx, model in enumerate(models):
        t = time.time()
        eva = NewEvaluation(papers, query, model=model, scaling_factors=scaling_factors, noise=noise)
        time_passed = time.time() - t
        times[idx] = time_passed
        results[idx].extend(eva.result)
    
    with open('tmp/{}{}.csv'.format(query, len(papers)), 'w', newline='') as csvfile:
        fieldnames = ['Model No.', 'Description', 'Result']
        writer = csv.writer(csvfile)
        writer.writerow(fieldnames)
        for idx, result in enumerate(results):
            row = [re.search(r'(\d+)$', models[idx].__name__).group(0), models[idx].__doc__] + result
            writer.writerow(row)
コード例 #2
0
ファイル: generate_test_set.py プロジェクト: 764664/BioSE
import os, sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import pubmed
from papers_csv_handler import CSVHandler
from paper_processor import PaperProcessor
import logging
from IPython import embed

logging.getLogger().setLevel(logging.DEBUG)
papers = list(pubmed.PubMedFetcher("h**o sapiens", num_of_documents=2116).papers.values())
PaperProcessor.add_journal_if(papers)
CSVHandler.write_list_to_csv("test.csv", papers)