1.7 KiB
1.7 KiB
Hybrid Retrieval + Reranker (Persian-friendly)
این پایپلاین یک روش هیبریدی برای بازیابی و بازرتبهبندی نتایج است:
- Dense Retrieval با
sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 - Sparse Retrieval با TF-IDF (الگوی توکنسازی سازگار با فارسی)
- Fusion بر اساس وزندهی امتیازها (
--dense-alpha) - Re-ranking با Cross-Encoder:
BAAI/bge-reranker-v2-m3
دادهٔ ورودی
فایل ./data/sentences_vector.json با ساختار زیر:
[
{"sentence": "متن جمله ۱", "embedding": [0.1, -0.2, ...]},
{"sentence": "متن جمله ۲", "embedding": [0.05, 0.33, ...]}
]
نصب
pip install -U sentence-transformers transformers scikit-learn numpy torch
اجرا
python hybrid_retrieval_reranker.py --query "بهترین راه موفقیت چیست؟" --topk-dense 50 --topk-sparse 50 --pre-rerank-k 50 --final-k 5
آرگومانها
--query: پرسش کاربر--data: مسیر فایل داده (پیشفرض:./data/sentences_vector.json)--topk-dense،--topk-sparse: تعداد نتایج اولیه از هر روش--pre-rerank-k: تعداد کاندیدهای ورودی به ریرنکر--final-k: تعداد نتایج نهایی--dense-alpha: وزن امتیاز Dense در مرحله Fusion (۰ تا ۱)--device:cudaیاcpu(در صورت عدم تعیین، خودکار)
خروجی
نتایج در ترمینال چاپ میشود. برای ذخیرهٔ JSON:
python hybrid_retrieval_reranker.py --query "..." --save-json output.json