فقرے سے فلٹر میپنگ: پروڈکٹ فلٹرز کے لیے سیمنٹک تلاش
یہ مضمون وضاحت کرتا ہے کہ ہم فقرے سے فلٹر میپنگز کیسے تیار اور توسیع کرتے ہیں جو ہمارے فلٹر نکالنے کے نظام کو طاقت دیتی ہیں۔ یہ میپنگز تلاش کے سوالات کے فقرات کو ساختہ پروڈکٹ فلٹرز سے جوڑتی ہیں۔
مسئلہ: قدرتی زبان سے فلٹرز نکالنا
جب صارفین "mini pc with 16gb ram" تلاش کرتے ہیں، تو ہمیں نکالنے کی ضرورت ہوتی ہے:
-
فارم فیکٹر: منی پی سی
-
مرکزی میموری: 16
لیکن صارفین ایک ہی ارادے کا اظہار کئی طریقوں سے کرتے ہیں:
-
"16gb ram mini pc"
-
"mini computer 16 gb memory"
-
"small pc 16gb"
-
"compact desktop with 16 gigs"
ہمیں ایک ایسے نظام کی ضرورت ہے جو ان تمام فقرے کی مختلف شکلوں کو درست فلٹر اقدار سے ملاپ کرے۔
دو مرحلوں پر مشتمل عمل
ہم فقرے کی میپنگز دو مراحل میں تیار کرتے ہیں:
- مرحلہ 3a: ترتیبات اور فیچر سے متعلق مخصوص اصولوں کا استعمال کرتے ہوئے پروڈکٹ فیچرز سے بنیادی فقرات تیار کریں
- مرحلہ 4: ایمبیڈنگز کا استعمال کرتے ہوئے سیمنٹک مماثلت کے ساتھ توسیع کریں
یہ ہائبرڈ طریقہ قاعدہ پر مبنی درستگی کو سیمنٹک لچک کے ساتھ جوڑتا ہے۔
مرحلہ 3a: بنیادی فقرے کی تخلیق
فیچر میٹا ڈیٹا
ہر پروڈکٹ فیچر کے پاس فیچر ترتیب میں میٹا ڈیٹا ہوتا ہے:
-
سرخی: زمرے کا نام (مثال کے طور پر، پروسیسر فیچرز کے لیے "Processing")
-
یونٹ: پیمائش کا یونٹ (مثال کے طور پر، میموری کے لیے "GB"، فریکوئنسی کے لیے "GHz")
یہ میٹا ڈیٹا فقرے کی تخلیق کی رہنمائی کرتا ہے۔
ترتیب پر مبنی تخلیق
ہر فیچر ویلیو کے لیے، ہم درج ذیل کے تمام ترتیبات تیار کرتے ہیں:
-
سرخی: "processor"
-
فیچر کلید: "series"
-
قدر: "i5"
-
یونٹ: (سیریز کے لیے کوئی نہیں)
یہ پیدا کرتا ہے:
-
"processor series i5"
-
"series processor i5"
-
"i5 processor series"
-
"i5 series processor"
-
"processor i5"
-
"series i5"
-
"i5"
تمام ترتیبات اس بات کو یقینی بناتی ہیں کہ ہم الفاظ کی ترتیب سے قطع نظر سوالات سے مماثلت رکھتے ہیں۔
قدر + یونٹ کے امتزاج
جن فیچرز میں یونٹس ہوتے ہیں (میموری، اسٹوریج، فریکوئنسی)، ہم اسپیس والے اور بغیر اسپیس والے دونوں قسم کے تغیرات تیار کرتے ہیں:
-
"16 gb" (اسپیس کے ساتھ)
-
"16gb" (بغیر اسپیس کے)
یہ دوسرے اجزاء کے ساتھ مل جاتے ہیں:
-
"16gb ram"
-
"ram 16gb"
-
"processor 16gb"
پورٹ لاحقے کے اصول
کنیکٹیویٹی فیچرز (USB، HDMI، DisplayPort) کے لیے، ہم پورٹ لاحقے شامل کرتے ہیں:
-
"usb port"
-
"usb ports"
-
"2 usb ports"
-
"hdmi port"
یہ "mini pc with 2 hdmi ports" جیسے سوالات سے مماثلت رکھتا ہے۔
فیچر سے متعلق مخصوص اصول
ہر فیچر قسم کے پاس حسب ضرورت فقرے کی تخلیق ہوتی ہے:
پروسیسر سیریز (i3, i5, N-series):
-
کور پروسیسر کے عہدہ مختلف قسمیں پیدا کرتے ہیں: مینوفیکچرر کا نام، کور برانڈ، مشترکہ شکلیں
-
N-series پروسیسر (N100، وغیرہ) اسی طرح کے پیٹرن کے امتزاج بناتے ہیں
-
ہر ایک "processor" کے ساتھ متعدد ترتیبات پیدا کرتا ہے
مرکزی میموری:
-
عددی قدریں اسپیس والے اور بغیر اسپیس والے GB دونوں تغیرات پیدا کرتی ہیں ("16gb","16 gb")
-
خودکار طور پر "ram" اور "memory" کوالیفائرز کے ساتھ منسلک ہو جاتے ہیں ("16gb memory","16 gb ram")
SSD اسٹوریج:
-
عددی قدریں GB تغیرات پیدا کرتی ہیں ("512gb", "512 gb")
-
≥ 1024 والی اقدار کے لیے خودکار طور پر TB تغیرات پیدا کرتا ہے (مثال: 1024GB → 1TB)
-
خودکار طور پر "ssd" اور "storage" کوالیفائرز کے ساتھ منسلک ہو جاتے ہیں ("512gb ssd", "512 gb storage")
فارم فیکٹر:
-
Mini PC → متعدد تغیرات بشمول بغیر اسپیس والی شکل
-
All-in-One → "all in one", "aio", مخفف شکلیں
-
Thin Client → اسپیس کے ساتھ یا بغیر اسپیس کے تغیرات
-
Industrial PC → مخفف اور مکمل شکلیں
جنریشن:
- عددی جنریشن ویلیوز بن جاتی ہیں: "12th gen", "12th generation", "gen 12"
کورز:
-
2 → "dual core"
-
4 → "quad core"
-
6 → "hexa core"
-
8 → "octa core"
-
سب "[n] core processor" کی مختلف قسمیں پیدا کرتے ہیں
ایتھرنیٹ:
-
"1000" → ["gigabit ethernet", "gbe", "1gbps"]
-
"2500" → ["2.5gbe", "2.5 gigabit", "2.5gbps"]
آپریٹنگ سسٹم:
-
"Windows 11" → ["windows", "windows 11", "win 11"]
-
"Ubuntu" → ["linux", "ubuntu"]
-
"FreeDOS" → ["freedos", "no os", "without os"]
اسٹینڈ اکیلی اقدار کے لیے وائٹ لسٹ
صرف مخصوص فیچرز غلط مماثلتوں کو روکنے کے لیے اسٹینڈ اکیلی قدر کی مماثلت کی اجازت دیتے ہیں:
-
سیریز: "i3", "i5", "N100" (لیکن اکیلے حروف نہیں)
-
پروسیسر ماڈل: "N100", "1335U"
-
آپریٹنگ سسٹم: "Windows", "Linux", "Ubuntu"
-
جنریشن: "12th", "13th", "14th"
-
پروسیسر برانڈ: "Intel", "ARM"
مثال کے طور پر، "2" کو "2 cores" سے مماثل نہیں ہونا چاہیے جب سوال "2 hdmi ports" ہو۔ لمبائی کی جانچ اکیلے حروف یا بہت چھوٹی مبہم اقدار کو اسٹینڈ اکیلا مماثل ہونے سے روکتی ہے۔ جن فیچرز میں واضح یونٹ اجزاء ہوتے ہیں، جیسے Ethernet یا پورٹس، صرف اس وقت اسٹینڈ اکیلی ترکیبیں پیدا کرتے ہیں جب وہ اپنے یونٹ کے ساتھ بیان کیے جائیں۔
تصادم کی روک تھام
میموری اور اسٹوریج کی قدریں ایک دوسرے پر محیط ہوتی ہیں (دونوں میں 64، 128، 256، وغیرہ ہوتے ہیں)۔ مرحلہ 4 تفریق کرنے کے لیے قدر کی حد کے اصول نافذ کرتا ہے:
-
≤ 64 GB: مرکزی میموری (RAM)
-
≥ 128 GB: SSD اسٹوریج
-
65-127 GB کی حد: چھوڑ دیا گیا (مبہم)
واضح کوالیفائر والے فقرات ("ram"/"memory" یا "ssd"/"storage") اس اصول کو زیر کرتے ہیں اور کسی بھی قدر سے مماثل ہو سکتے ہیں۔
مزید برآں، مبہم عام اصطلاحات جو بہت سے غیر متعلقہ فلٹرز سے مماثل ہوتی ہیں، پوسٹ پروسیسنگ کے دوران تصادم کے حل میں خارج کر دی جاتی ہیں: "connectivity", "audio", "display", "processor" اور "physical" جیسی اصطلاحات متعدد پہلوؤں میں بہت زیادہ ابہام پیدا کرتی ہیں۔
مرحلہ 4: سیمنٹک توسیع
N-gram نکالنا
ہم حقیقی تلاش کے سوالات سے بار بار آنے والے فقرات نکالتے ہیں، جو ایک لفظ (1-gram جیسے "mini") سے لے کر لمبی ترتیبات تک (6-gram جیسے "mini pc with 16gb ram ssd") ہوتے ہیں۔ صرف وہی فقرات رکھے جاتے ہیں جو کم از کم 3 بار ظاہر ہوتے ہیں۔ یہ فلٹرنگ طریقہ شور کو کم کرتا ہے جبکہ صارفین کے حقیقی زبان کے نمونوں کو محفوظ رکھتا ہے۔
فلٹر تلاش متن کی تخلیق
ہر فلٹر ویلیو کے لیے، ہم تلاش کے متون تیار کرتے ہیں:
مرکزی میموری: 16:
-
"16gb ram memory"
-
"16 main memory"
-
"main memory 16"
SSD اسٹوریج: 512:
-
"512gb storage ssd"
-
"512 ssd storage"
-
"ssd storage 512"
یہ تلاش کے متون فلٹر کو ایمبیڈنگ اسپیس میں ظاہر کرتے ہیں۔
ایمبیڈنگ اور مماثلت
ہم کوئری فقرات اور فلٹر تلاش کے متون دونوں کو ایمبیڈنگز میں تبدیل کرتے ہیں، پھر ان کے درمیان کوزائن مماثلت کا حساب لگاتے ہیں۔ جو فقرات ایک مقررہ حد سے زیادہ مماثلت اسکور رکھتے ہیں انہیں اس فلٹر کی میپنگ میں شامل کر لیا جاتا ہے۔
دستی سیڈ فقرات
ہم توسیع سے پہلے اعلیٰ اعتماد والے دستی سیڈز داخل کرتے ہیں:
"Series:i5": [
"i5",
"core i5",
"intel i5",
"intel core i5",
"i5 processor",
"cpu i5",
]
یہ سیڈز بنیادی فقرات کی نمائندگی کرتے ہیں جنہیں ہم ہر فلٹر کے لیے درست جانتے ہیں۔ انہیں زیادہ سے زیادہ مماثلت اسکور کے ساتھ شامل کرکے، وہ توسیع الگورتھم کو اسی معنی والے متعلقہ فقرات تلاش کرنے کی رہنمائی کرتے ہیں۔ یہ سیڈز ہمیشہ مماثلت 1.0 حاصل کرتے ہیں اور توسیع کی رہنمائی کرتے ہیں۔
بڑھتی ہوئی ایمبیڈنگ
ہم فقرات اور فلٹر تلاش کے متون دونوں کے لیے ایمبیڈنگز کو کیش کرتے ہیں۔ جب نئی کوئریز آتی ہیں:
- موجودہ ایمبیڈنگز لوڈ کریں
- صرف نئے فقرات کو ایمبیڈ کریں
- کیش میں منسلک کریں
یہ غیر تبدیل شدہ ڈیٹا کو دوبارہ ایمبیڈ کرنے سے روکتا ہے۔ تفصیلات کے لیے ایمبیڈنگ اسٹریٹجی دیکھیں۔
تصادم کا حل
مماثلت کا حساب مکمل ہونے کے بعد، ہم میموری اور اسٹوریج فلٹرز کے درمیان تصادم کو حل کرتے ہیں:
نمبر پر مبنی تفریق:
-
نمبروں پر مشتمل مبہم فقرات کے لیے: اگر فقرے کی قدر ≤ 64 ہے، تو صرف میموری کے لیے رکھیں؛ اگر > 64 ہے، تو صرف اسٹوریج کے لیے رکھیں
-
یہ "16gb" کو SSD اسٹوریج فلٹرز سے مماثل ہونے سے روکتا ہے اور "512gb" کو میموری فلٹرز سے مماثل ہونے سے
واضح کوالیفائر اصولوں کو زیر کرتے ہیں:
-
"ram", "memory", "cpu", "processor" کلیدی الفاظ والے فقرات → صرف میموری
-
"ssd", "storage", "disk", "nvme", "drive" کلیدی الفاظ والے فقرات → صرف اسٹوریج
-
مثال: "processor 8gb" عددی ہونے کے باوجود میموری میں میپ ہوتا ہے
مبہم اصطلاحات:
- "connectivity", "audio", "display" جیسے فقرات کو چھوڑ دیں جو متعدد غیر متعلقہ فلٹرز سے مماثل ہوتے ہیں
آؤٹ پٹ فارمیٹ
حتمی میپنگز مماثلت کے لحاظ سے ترتیب دی جاتی ہیں (پہلے سب سے زیادہ)، پھر لمبائی کے لحاظ سے (پہلے سب سے چھوٹی):
{
"Main Memory:16": [
{"phrase": "16gb ram", "similarity": 1.0},
# ... (implementation details omitted)
فلٹر نکالنے کے ساتھ انضمام
یہ میپنگز فلٹر نکالنے کے الگورتھم کو طاقت دیتی ہیں:
- کوئری آتی ہے: "mini pc with 16gb ram"
- فقرات نکالیں: ["mini pc", "16gb ram", "mini", "pc", "16gb", "ram"]
- میپنگز کا استعمال کرتے ہوئے فقرات کو فلٹرز سے مماثل کریں
- فلٹرز واپس کریں:
{"Form Factor": ["Mini PC"], "Main Memory": ["16"]}
تفصیلات کے لیے فلٹر نکالنے کا الگورتھم دیکھیں۔
اسٹوریج اور تقسیم
فقرے کی میپنگز JSON فائلوں کے طور پر محفوظ کی جاتی ہیں اور پورے نظام میں استعمال ہوتی ہیں:
-
بنیادی میپنگز فائل: مرحلہ 3a میں تیار کی گئی، قاعدہ پر مبنی فقرات پر مشتمل
-
توسیع شدہ میپنگز فائل: مرحلہ 4 میں تیار کردہ، سیمنٹک توسیع کے نتائج پر مشتمل
توسیع شدہ میپنگز استعمال ہوتی ہیں:
-
کوئری صفحہ کی تخلیق: کوئری متن سے فلٹرز نکالنا
-
تلاش سروس: ریئل ٹائم فلٹر نکالنے کی API
-
پروڈکٹ مماثلت: نکالے گئے فلٹرز کے ذریعے پروڈکٹس کو فلٹر کرنا
کارکردگی کی خصوصیات
بنیادی تخلیق (مرحلہ 3a):
-
پروسیسنگ کا وقت فلٹر اقدار کی تعداد کے ساتھ بڑھتا ہے
-
بڑی تعداد میں بنیادی فقرے کی مختلف قسمیں تیار کرتا ہے
-
تخلیق کے دوران میموری کا استعمال معتدل رہتا ہے
سیمنٹک توسیع (مرحلہ 4):
-
پروسیسنگ کا وقت کوئری حجم اور ایمبیڈنگ سائز کے ساتھ بڑھتا ہے
-
آؤٹ پٹ میں بنیادی تخلیق کے مقابلے میں نمایاں طور پر زیادہ فقرات ہوتے ہیں
-
ایمبیڈنگ اسٹوریج کی وجہ سے میموری کی ضروریات بڑھ جاتی ہیں
توسیع مماثلت کے حساب کی وجہ سے CPU پر مشتمل ہے۔ NumPy کو BLAS ایکسلریشن کے ساتھ استعمال کرنے سے میٹرکس آپریشنز نمایاں طور پر تیز ہو جاتے ہیں۔
SEO پائپ لائن کے ساتھ انضمام
فقرے کی میپنگ کی تخلیق SEO پائپ لائن میں مرحلہ 3a اور 4 ہے:
- مرحلہ 0: ایمبیڈ سورس ڈیٹا - پروڈکٹس، پارٹس، مضامین
- مرحلہ 1: کوئریز حاصل کریں - GSC, Google Ads, live, Algolia
- مرحلہ 2: کوئریز کو یکجا کریں - تمام ذرائع کو ضم کریں
- مرحلہ 3a: بنیادی فقرے کی میپنگ تیار کریں ← آپ یہاں ہیں
- مرحلہ 3b: کوئریز ایمبیڈ کریں - ویکٹرز میں تبدیل کریں
- مرحلہ 4: فقرے کی میپنگز کو وسعت دیں ← آپ یہاں ہیں
- مرحلہ 5: کوئریز کلسٹر کریں - صفحات میں گروپ کریں
- مرحلہ 6: پروڈکٹس مماثل کریں - کوئری-پروڈکٹ مماثلت
- مرحلہ 7: کوئری صفحات بنائیں - HTML تیار کریں
- مرحلہ 8: متعلقہ تلاشیں پیدا کریں - متعلقہ کوئریز تلاش کریں
- مرحلہ 11: والکے میں منتقل کریں - تلاش سروس میں لوڈ کریں
مکمل بہاؤ کے لیے SEO پائپ لائن کا جائزہ دیکھیں۔
دو مراحل کیوں؟
بنیادی تخلیق (مرحلہ 3a) فراہم کرتی ہے:
-
درستگی: قاعدہ پر مبنی فقرات بالکل وہی مماثلت رکھتے ہیں جس کی ہم توقع کرتے ہیں
-
کوریج: ترتیبات اس بات کو یقینی بناتی ہیں کہ تمام لفظوں کی ترتیب کا احاطہ کیا گیا ہے
-
کنٹرول: فیچر سے متعلق مخصوص اصول ڈومین کے علم کو سنبھالتے ہیں
سیمنٹک توسیع (مرحلہ 4) فراہم کرتی ہے:
-
لچک: ایسے فقرات دریافت کرتا ہے جن کا ہم نے اندازہ نہیں لگایا تھا
-
حقیقی صارف زبان: حقیقی تلاش کے سوالات سے سیکھتا ہے
-
مترادفات: مساوی فقرات تلاش کرتا ہے ("16gb" کے لیے "16 gigs")
یہ مل کر درستگی اور یادداشت میں توازن پیدا کرتے ہیں۔
حوالہ جات
تکنیکی تصورات
-
ترتیب - ویکیپیڈیا
-
کوزائن مماثلت - ویکیپیڈیا
-
N-gram - ویکیپیڈیا
-
NumPy - سرکاری دستاویزات
-
BLAS - ویکیپیڈیا
ماڈل دستاویزات
-
all-mpnet-base-v2 - Hugging Face
-
Sentence Transformers - سرکاری دستاویزات
متعلقہ مضامین
-
ایمبیڈنگ اسٹریٹجی - ہم ایمبیڈنگز کیسے تیار کرتے ہیں
-
فلٹر نکالنے کا الگورتھم - فلٹرز نکالنے کے لیے میپنگز کا استعمال
-
SEO پائپ لائن کا جائزہ - مکمل پائپ لائن آرکیٹیکچر
-
کوئری کلسٹرنگ - ایک جیسی کوئریز کو گروپ کرنا
-
پروڈکٹ مماثلت - سیمنٹک مماثلت
خلاصہ
ہم فقرے سے فلٹر میپنگز دو مراحل میں تیار کرتے ہیں:
مرحلہ 3a (بنیادی تخلیق):
-
سرخی، کلید، قدر، یونٹ کے تمام ترتیبات تیار کریں
-
فیچر سے متعلق مخصوص اصولوں کا اطلاق کریں (پروسیسر سیریز، میموری، اسٹوریج، فارم فیکٹر)
-
کنیکٹیویٹی فیچرز کے لیے پورٹ لاحقے شامل کریں
-
مخصوص فیچرز کے لیے اسٹینڈ اکیلی اقدار کو وائٹ لسٹ کریں
-
اصولوں سے بنیادی فقرے کا سیٹ آؤٹ پٹ کریں
مرحلہ 4 (سیمنٹک توسیع):
-
حقیقی تلاش کے سوالات سے n-gram فقرات نکالیں
-
فقرات اور فلٹر تلاش کے متون کو ایمبیڈ کریں
-
حد سے اوپر مماثلت اسکور والے فقرات کو مماثل کریں
-
توسیع کی رہنمائی کے لیے دستی سیڈ فقرات داخل کریں
-
میموری/اسٹوریج تصادم حل کریں
-
توسیع شدہ اور تفریق شدہ فقرے کا سیٹ آؤٹ پٹ کریں
نتیجہ ایک جامع میپنگ ہے جو متوقع فقرات (اصولوں کے ذریعے) اور غیر متوقع تغیرات (سیمنٹک مماثلت کے ذریعے) دونوں کو سنبھالتی ہے۔ یہ میپنگز کوئری صفحات، تلاش اور پروڈکٹ مماثلت میں فلٹر نکالنے کو طاقت دیتی ہیں۔