explainable-recs-lm / src /inference.py
hmnshudhmn24's picture
Upload 28 files
6afc4d8 verified
import json
from .feature_extractor import FeatureExtractor
from .recommender import Recommender
from .ranking_engine import RankingEngine
from .explanation_generator import ExplanationGenerator
class ExplainableRecsPipeline:
def __init__(self):
self.f=FeatureExtractor(); self.r=Recommender()
self.k=RankingEngine(); self.e=ExplanationGenerator()
def __call__(self,u_path,i_path):
u=json.load(open(u_path))[0]
items=json.load(open(i_path))
uf=self.f.extract_user_features(u)
scored=[]
for it in items:
itf=self.f.extract_item_features(it)
s=self.r.score(uf,itf)
exp=self.e.generate(uf,itf)
scored.append({'item_id':it['id'],'score':s,'explanation':exp})
return self.k.rank(scored)