def perform_traditional_evals()

in src/kg_validator.py [0:0]


def perform_traditional_evals(conn, to_be_predicted_queries, k, use_tags=True, use_topics=True):
    eval_rows = []
    for idx, row in to_be_predicted_queries.iterrows():
        if (idx+1) % 50 == 0:
            print(f" {idx+1} queries evaluated")
        search_query = row['keyword']
        relevant_docs = row['url_hash']
        
        search_tags = extract_tags_for_queries([search_query])[0] if use_tags else []
        search_topics = infer_topics([search_query], pbar=False)[0] if use_topics else []
        # print(f"search_tags = {search_tags}")
        # print(f"search_topics = {search_topics}")
        results = fetch_entity_relations_with_keywords(conn, search_query, search_tags, search_topics).head(k)
        retrieved_docs = []
        if len(results) > 0:
            retrieved_docs = results['url_hash'].values.tolist()
            eval_row = run_traditional_eval(idx, search_query, relevant_docs, retrieved_docs, retrieved_distances=None, k=k)
            eval_rows.append(eval_row)
    return pd.DataFrame(eval_rows)