Source code for nordlys.logic.tti.type_centric

"""
Type centric method for TTI.

@author:
"""
from nordlys.config import ELASTIC_TTI_INDICES
from nordlys.core.retrieval.elastic_cache import ElasticCache


TC_INDEX = ELASTIC_TTI_INDICES[0]

[docs]class TypeCentric(object): def __init__(self, query, retrieval_config): self.__query = query self.__retrieval_config = retrieval_config self.__elasttic = ElasticCache(TC_INDEX) def __type_centric(self, query): """Type-centric TTI.""" types = dict() model = self.__config.get("model", TTI_MODEL_BM25) elastic = ElasticCache(self.__tc_config.get("index", DEFAULT_TTI_TC_INDEX)) if model == TTI_MODEL_BM25: print("TTI, TC, BM25") scorer = Scorer.get_scorer(elastic, query, self.__tc_config) types = Retrieval(self.__tc_config).retrieve(query, scorer) elif model == TTI_MODEL_LM: print("TTI, TC, LM") self.__tc_config["model"] = "lm" # Needed for 2nd-pass self.__tc_config["field"] = "content" # Needed for 2nd-pass self.__tc_config["second_pass"] = { "field": "content" } for param in ["smoothing_method", "smoothing_param"]: if self.__config.get(param, None) is not None: self.__tc_config["second_pass"][param] = self.__config.get(param) scorer = Scorer.get_scorer(elastic, query, self.__tc_config) types = Retrieval(self.__tc_config).retrieve(query, scorer) return types