Beispiel #1
0
def wss(e: trectools.TrecEval) -> float:
    ret = e.get_retrieved_documents()
    r = recall(e)
    N = 30000000
    wss = ((N - ret) / N) - (1.0 - r)
    if wss < 0: return 0
    return wss
Beispiel #2
0
def precision(e: trectools.TrecEval, per_query=False):
    rel_ret = e.get_relevant_retrieved_documents(per_query=per_query)
    rel = e.get_retrieved_documents(per_query=per_query)
    if per_query:
        return (rel_ret / rel).fillna(0)
    else:
        return rel_ret / rel
Beispiel #3
0
def to_trec_df(e: trectools.TrecEval, per_query=True) -> pd.Series:
    return join_series(
        pd.Series({
            "P": precision(e, per_query=per_query),
            "R": recall(e, per_query=per_query),
            # "F$_{0.5}$": f_measure(e, 0.5, per_query=per_query),
            # "F$_1$": f_measure(e, 1, per_query=per_query),
            "NumRet": e.get_retrieved_documents(per_query=per_query)
            # "F$_3$": f_measure(e, 3, per_query=per_query),
        }),
        eval_rank_df(e, per_query=per_query))
Beispiel #4
0
def wss(e: trectools.TrecEval, per_query=False):
    ret = e.get_retrieved_documents(per_query=True)
    r = recall(e, per_query=per_query)
    N = 30000000
    if per_query:
        return pd.Series(
            dict([(t, (((N - ret.T[t]) / N) - (1.0 - r.T[t])))
                  for t in ret.index]))
    else:
        wss = ((N - ret) / N) - (1.0 - r)
        if wss < 0: return 0  # don't ask.
        return wss
Beispiel #5
0
def precision(e: trectools.TrecEval) -> float:
    return e.get_precision(depth=e.get_retrieved_documents(per_query=False), per_query=False)