From 26829369d09e94bc392f750d674b67526458a3eb Mon Sep 17 00:00:00 2001 From: Craig Macdonald Date: Fri, 8 Apr 2022 16:54:19 +0100 Subject: [PATCH] more transformer with repr --- pyterrier/rewrite.py | 22 +++++++++++++++++++++- pyterrier/transformer.py | 3 +++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/pyterrier/rewrite.py b/pyterrier/rewrite.py index b37ee73f..c9639e76 100644 --- a/pyterrier/rewrite.py +++ b/pyterrier/rewrite.py @@ -68,6 +68,9 @@ def __init__(self, verbose = 0, remove_stopwords = True, prox_model = None, **kw assert check_version("5.3") self.ApplyTermPipeline_stopsonly = pt.autoclass("org.terrier.querying.ApplyTermPipeline")("Stopwords") + def __repr__(self): + return "SDM()" + def transform(self, topics_and_res): results = [] from .model import ranked_documents_to_queries, push_queries @@ -184,6 +187,14 @@ def _populate_resultset(self, topics_and_res, qid, index): raise ValueError("Input resultset has neither docid nor docno") return QueryResultSet(docids, scores, occurrences) + def __repr__(self): + return "QueryExpansion(" + ",".join([ + self.indexref.toString(), + str(self.fb_docs), + str(self.fb_terms), + str(self.qe) + ]) + ")" + def _configure_request(self, rq): rq.setControl("qe_fb_docs", str(self.fb_docs)) rq.setControl("qe_fb_terms", str(self.fb_terms)) @@ -407,7 +418,10 @@ def transform(self, topics_and_res: pd.DataFrame) -> pd.DataFrame: for i in range(len(groupDf)): groupDf.at[i, "stashed_results_0"] = docsDict rtr.append(groupDf) - return pd.concat(rtr) + return pd.concat(rtr) + + def __repr__(self): + return "pt.rewrite.stash_results()" class _ResetResults(TransformerBase): @@ -426,6 +440,9 @@ def transform(self, topics_with_saved_docs : pd.DataFrame) -> pd.DataFrame: rtr.append(finaldf) return pd.concat(rtr) + def __repr__(self): + return "pt.rewrite.reset_results()" + def linear(weightCurrent : float, weightPrevious : float, format="terrierql", **kwargs) -> TransformerBase: """ Applied to make a linear combination of the current and previous query formulation. The implementation @@ -488,3 +505,6 @@ def transform(self, topics_and_res): newDF = push_queries(topics_and_res) newDF["query"] = newDF.apply(fn, axis=1) return newDF + + def __repr__(self): + return "pt.rewrite.linear()" \ No newline at end of file diff --git a/pyterrier/transformer.py b/pyterrier/transformer.py index 4f4e9bb9..2229cd64 100644 --- a/pyterrier/transformer.py +++ b/pyterrier/transformer.py @@ -590,6 +590,9 @@ def __init__(self, fn, *args, verbose=False, **kwargs): self.fn = fn self.verbose = verbose + def __repr__(self): + return "pt.apply.??()" + class ApplyForEachQuery(ApplyTransformerBase): def __init__(self, fn, *args, add_ranks=True, **kwargs): """