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