tgoop.com/dotnetcode/3067
Last Update:
جستجوی هوشمند یعنی چی؟ با Stemming آشنا شو!
تاحالا شده دنبال کلمهی "خرید" بگردی ولی نتایجی که توشون "خریدم" یا "خریدن" هست رو پیدا نکنی؟ اینجاست که Stemming
یا ریشهیابی وارد میشه!
---
❓ ریشهیابی (Stemming) چیه؟
خیلی سادهست! فرض کن یک هرسکنندهی هوشمند داری که شاخ و برگ اضافی کلمهها رو میزنه تا به ریشهشون برسه.
برای مثال، این کلمات رو در نظر بگیر:
* کتابها
* کتابی
* کتابخانه
ریشهیاب همهی اینها رو به یک کلمهی اصلی برمیگردونه: "کتاب"
---
چطوری کار میکنه؟
وقتی در سیستمی مثل الاستیکسرچ (Elasticsearch) از ریشهیابی استفاده میکنیم، دو تا اتفاق مهم میفته:
۱. موقع ذخیره: وقتی متنی رو ذخیره میکنیم، سیستم کلمهها رو به ریشهشون تبدیل میکنه.
- جملهی "من کتابها را خواندم" اینطوری ذخیره میشه: "من کتاب را خواند"
۲. موقع جستجو: وقتی تو کلمهی "کتاب" رو جستجو میکنی، سیستم دنبال ریشهی "کتاب" میگرده و تمام نتایج مرتبط رو پیدا میکنه! 🎉
---
چند مثال دیگه:
* رفتم، میروی، رفتند ⬅️ رفت
* کارگر، کارها، کارخانه ⬅️ کار
* نوشته، مینویسم، نویسنده ⬅️ نویس
---
✅ نتیجه نهایی:
با ریشهیابی، دیگه فرقی نمیکنه کاربر دنبال "خرید" بگرده یا "خریدار" یا "خریدند"؛ در هر صورت به چیزی که میخواد میرسه. این یعنی جستجوی دقیقتر، نتایج بیشتر و تجربهی کاربری بهتر!
لینک منبع :
https://www.elastic.co/docs/manage-data/data-store/text-analysis/stemming
📚💻 @dotnetcode