بازیابی برداری چندمرحلهای برای اسناد حقوقی فارسی
چرا جستوجوی مستقیم برداری برای قراردادهای فارسی کافی نیست و چگونه زنجیره بازیابی چندمرحلهای با فیلتر ساختاری و rerank، دقت را بالا میبرد.
علی رضوانیمعمار ارشد هوش مصنوعی ماه
مستندات حقوقی فارسی دو ویژگی دارند که جستوجوی برداریِ ساده را گمراه میکنند: زبان رسمی با مترادفهای قراردادی («فسخ»، «فساد»، «انفساخ») و ساختار بند-بندِ مستند. تجربه ما نشان داد زنجیره بازیابی چندمرحلهای این دو مشکل را حل میکند.
مرحله اول: فیلتر ساختاری پیش از بردار
قبل از هر محاسبه برداری، فضای جستوجو را با متادیتای ساختاری محدود میکنیم: نوع سند، تاریخ، طرف قرارداد و شماره بند.
// فیلتر ساختاری اول، بردار دوم
const results = await qdrant.search("contracts_fa", {
vector: await embed(query),
filter: {
must: [
{ key: "doc_type", match: { value: "contract" } },
{ key: "signed_at", range: { gte: yearsAgo(3) } },
{ key: "clause", match: { any: ["termination", "liability"] } },
],
},
limit: 50,
with_payload: ["clause_no", "page"],
});
مرحله دوم: گسترش مترادفهای حقوقی
واژهنامه مترادفهای حقوقی (حدود ۹۰۰ جفت) را روی پرسوجو اعمال میکنیم — نه با تغییر پرامپت، بلکه با گسترش برداری:
- «فسخ قرارداد» ← «انفساخ»، «برهمزدن»، «باطل کردن»
- «مسئولیت» ← «ضمان»، «تعهد جبران خسارت»
مرحله سوم: rerank با مدل کوچک
از ۵۰ نتیجه مرحله اول، ۱۰ تا را با یک مدل cross-encoder سبک رتبهبندی نهایی میکنیم:
from sentence_transformers import CrossEncoder
reranker = CrossEncoder("cross-encoder/ms-marco-MiniLM-L-6-v2")
pairs = [(query, hit.payload["text"]) for hit in results]
scores = reranker.predict(pairs)
top = sorted(zip(results, scores), key=lambda x: -x[1])[:8]
اندازهگیری دقت
روی ۳۰۰ پرسوجوی نمونه از وکلا، Recall@5 این زنجیره به ۰.۹۴ رسید (در برابر ۰.۷۹ بازیابی مستقیم) و میانگین nDCG@10 از ۰.۶۸ به ۰.۸۵ ارتقا یافت.
| پیکربندی | Recall@5 | nDCG@10 |
|---|---|---|
| بردار تنها | ۰.۷۹ | ۰.۶۸ |
| + فیلتر ساختاری | ۰.۸۶ | ۰.۷۵ |
| + مترادفها | ۰.۹۰ | ۰.۸۰ |
| + rerank | ۰.۹۴ | ۰.۸۵ |
نتیجهگیری
برای اسناد حقوقی فارسی، «بردار + همهچیز» جواب نمیدهد؛ ترتیبِ فیلتر، گسترش و رتبهبندی است که دقت را میسازد. و مهمتر از همه: معیار ارزیابیتان را از وکلای واقعی بگیرید، نه از داکیومنت مدل.
برچسبها
علی رضوانی
معمار ارشد هوش مصنوعی ماهدرباره نویسنده
بیش از ۹ سال تجربه در معماری سامانههای جستوجوی معنایی، پایگاهدادههای برداری و استقرار مدلهای زبانی در زیرساختهای داخلی سازمانها.
مقالات نویسنده

