new_recommender_system_nlp2 / final_recommender.py
bharatverse11's picture
Upload 11 files
7c8312b verified
raw
history blame
2.33 kB
"""
FINAL SMART RECOMMENDER SYSTEM
Embeddings + Intent + Filtering + Reranking + Keyword Boosting
"""
from filtered_search_engine import SmartRecommender
from reranker import Reranker
from keyword_boosting_layer import apply_keyword_boost # <-- booster imported
import pandas as pd
class FinalSalahkar:
def __init__(self):
print("✨ Initializing Final AI Recommender...")
self.engine = SmartRecommender()
self.reranker = Reranker()
self.df = pd.read_csv("salahkar_enhanced.csv")
print("πŸš€ System Ready!")
def ask(self, query, k=7):
print("\n==============================================")
print(f"🧠 INPUT QUERY β†’ {query}")
print("==============================================")
# STEP 1 β†’ BASE SEARCH (filtered FAISS)
# Now returns (results_list, detected_intent)
results, intent = self.engine.recommend(query, k=k)
# STEP 2 β†’ Prepare embedding text for reranking
prepared = []
for item in results:
name = item["name"]
# Find the full row for this item
row = self.df[self.df["name"] == name].iloc[0]
prepared.append({
"name": name,
"domain": item["domain"],
"category": item["category"],
"region": item["region"],
"embedding_score": item["score"],
"text": row["search_embedding_text"],
"intent": intent # Pass intent for boosting
})
# STEP 3 β†’ Cross-Encoder Reranking
ranked = self.reranker.rerank(query, prepared)
# STEP 4 β†’ Keyword Boost (final scoring)
boosted = apply_keyword_boost(query, ranked)
# STEP 5 β†’ Display final sorted results
print("\nπŸ† FINAL SMART RANKED RESULTS:")
for i, item in enumerate(boosted[:k]):
print(f"{i+1}. {item['name']} | Final Score: {round(item['final_score'], 3)}")
return boosted
if __name__ == "__main__":
bot = FinalSalahkar()
bot.ask("romantic historical place india")
bot.ask("spiritual peaceful temple")
bot.ask("best south indian spicy breakfast")
bot.ask("sweet festival food india")