फ्रेज-टू-फिल्टर मॅपिंग्ज: प्रॉडक्ट फिल्टर्ससाठी सेमँटिक सर्च

हा लेख स्पष्ट करतो की आम्ही फ्रेज-टू-फिल्टर मॅपिंग्ज कशी तयार करतो आणि विस्तारतो, जी आमची फिल्टर एक्स्ट्रॅक्शन प्रणाली चालवतात. ही मॅपिंग्ज शोध क्वेरींमधील नैसर्गिक भाषेतील वाक्यांशांना संरचित प्रॉडक्ट फिल्टर्सशी जोडतात.

समस्या: नैसर्गिक भाषेतून फिल्टर्स काढणे

जेव्हा वापरकर्ते "mini pc with 16gb ram" शोधतात, तेव्हा आपल्याला हे काढावे लागते:

  • फॉर्म फॅक्टर: Mini PC

  • मुख्य मेमरी: 16

पण वापरकर्ते समान हेतू अनेक मार्गांनी व्यक्त करतात:

  • "16gb ram mini pc"

  • "mini computer 16 gb memory"

  • "small pc 16gb"

  • "compact desktop with 16 gigs"

आपल्याला अशी प्रणाली हवी आहे जी या सर्व वाक्यांशांच्या भिन्न रूपांना योग्य फिल्टर मूल्यांशी जोडते.

दोन-चरणीय प्रक्रिया

आम्ही फ्रेज मॅपिंग्ज दोन चरणांत तयार करतो:

  1. चरण 3a: क्रमपरिवर्तन आणि फीचर-विशिष्ट नियम वापरून प्रॉडक्ट फीचर्सपासून मूळ वाक्यांश तयार करणे
  2. चरण 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):

  • Core प्रोसेसर पदनामांमधून व्हेरिएंट्स तयार होतात: निर्मात्याचे नाव, कोर ब्रँड, एकत्रित रूपे

  • 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 hdmi ports" असताना "2" ने "2 cores"शी जुळू नये. लांबीची तपासणी एकल अक्षरे किंवा अत्यंत लहान संदिग्ध मूल्ये स्टँडअलोन जुळण्यापासून प्रतिबंधित करते. इथरनेट किंवा पोर्ट्स सारख्या स्पष्ट युनिट घटक असलेल्या फीचर्स, त्यांच्या युनिटसह क्वालिफाई केल्यावरच स्टँडअलोन संयोजने तयार करतात.

टक्कर प्रतिबंध

मेमरी आणि स्टोरेज मूल्ये आच्छादित होतात (दोन्हींकडे 64, 128, 256, इ. असतात). चरण 4 त्यांच्यातील फरक स्पष्ट करण्यासाठी व्हॅल्यू-रेंज नियम लागू करते:

  • ≤ 64 GB: मुख्य मेमरी (RAM)

  • ≥ 128 GB: SSD स्टोरेज

  • 65-127 GB रेंज: वगळली (संदिग्ध)

स्पष्ट क्वालिफायर्स ("ram"/"memory" किंवा "ssd"/"storage") असलेले वाक्यांश हा नियम ओव्हरराइड करतात आणि कोणत्याही मूल्याशी जुळू शकतात.

याशिवाय, खूप असंबंधित फिल्टर्सशी जुळणारी अस्पष्ट सामान्य संज्ञा टक्कर निराकरणादरम्यान पोस्ट-प्रोसेसिंगद्वारे वगळल्या जातात: "connectivity", "audio", "display", "processor" आणि "physical" सारख्या संज्ञा एकाधिक फॅसेट्समध्ये खूप संदिग्धता निर्माण करतात.

चरण 4: सेमँटिक विस्तार

N-ग्रॅम एक्स्ट्रॅक्शन

आम्ही वास्तविक शोध क्वेरींमधून वारंवार येणारे वाक्यांश काढतो, एकल शब्दांपासून (1-ग्रॅम जसे "mini") ते लांब अनुक्रमांपर्यंत (6-ग्रॅम जसे "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 असतो आणि ते विस्ताराचे मार्गदर्शन करतात.

इन्क्रिमेंटल एम्बेडिंग

आम्ही वाक्यांश आणि फिल्टर सर्च टेक्स्ट दोन्हीसाठी एम्बेडिंग्ज कॅशे करतो. नवीन क्वेरी आल्यावर:

  1. विद्यमान एम्बेडिंग्ज लोड करा
  2. फक्त नवीन वाक्यांश एम्बेड करा
  3. कॅशेमध्ये जोडा

यामुळे अपरिवर्तित डेटा पुन्हा-एम्बेड करणे टाळले जाते. तपशीलांसाठी एम्बेडिंग स्ट्रॅटेजी पहा.

टक्कर निराकरण

सिमिलॅरिटी मॅचिंग पूर्ण झाल्यावर, आम्ही मेमरी आणि स्टोरेज फिल्टर्समधील टक्कर सोडवतो:

संख्या-आधारित डिसॲम्बिग्युएशन:

  • संख्यांसह संदिग्ध वाक्यांशांसाठी: जर वाक्यांशाचे मूल्य ≤ 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)

फिल्टर एक्स्ट्रॅक्शनसह एकत्रीकरण

ही मॅपिंग्ज फिल्टर एक्स्ट्रॅक्शन अल्गोरिदम चालवतात:

  1. क्वेरी येते: "mini pc with 16gb ram"
  2. वाक्यांश काढा: ["mini pc", "16gb ram", "mini", "pc", "16gb", "ram"]
  3. मॅपिंग्ज वापरून वाक्यांश फिल्टर्सशी जुळवा
  4. फिल्टर्स परत करा: {"Form Factor": ["Mini PC"], "Main Memory": ["16"]}

तपशीलांसाठी फिल्टर एक्स्ट्रॅक्शन अल्गोरिदम पहा.

स्टोरेज आणि वितरण

फ्रेज मॅपिंग्ज JSON फाइल्स म्हणून जतन केल्या जातात आणि सिस्टममध्ये वापरल्या जातात:

  • बेस मॅपिंग्ज फाइल: चरण 3a मध्ये तयार केली जाते, नियम-आधारित वाक्यांश असतात

  • विस्तारित मॅपिंग्ज फाइल: चरण 4 मध्ये तयार केली जाते, सेमँटिक विस्तार परिणाम असतात

विस्तारित मॅपिंग्ज याद्वारे वापरल्या जातात:

  • क्वेरी पृष्ठ निर्मिती: क्वेरी मजकुरातून फिल्टर्स काढणे

  • सर्च सेवा: रिअल-टाइम फिल्टर एक्स्ट्रॅक्शन API

  • प्रॉडक्ट मॅचिंग: काढलेल्या फिल्टर्सद्वारे प्रॉडक्ट्स फिल्टर करणे

कार्यक्षमतेची वैशिष्ट्ये

बेस जनरेशन (चरण 3a):

  • प्रक्रिया वेळ फिल्टर मूल्यांच्या संख्येनुसार वाढते

  • मोठ्या प्रमाणात बेस फ्रेज व्हेरिएंट्स तयार करते

  • निर्मितीदरम्यान मेमरी वापर मध्यम राहतो

सेमँटिक विस्तार (चरण 4):

  • प्रक्रिया वेळ क्वेरी व्हॉल्यूम आणि एम्बेडिंग आकारानुसार वाढते

  • आउटपुटमध्ये बेस जनरेशनपेक्षा लक्षणीय अधिक वाक्यांश असतात

  • एम्बेडिंग्ज स्टोरेजमुळे मेमरी आवश्यकता वाढते

विस्तार हा सिमिलॅरिटी गणनेमुळे CPU-बाउंड आहे. NumPy ला BLAS प्रवेगासह वापरल्याने मॅट्रिक्स ऑपरेशन्स लक्षणीय वेगवान होतात.

SEO पाइपलाइनसह एकत्रीकरण

फ्रेज मॅपिंग जनरेशन ही SEO पाइपलाइनमधील चरण 3a आणि 4 आहे:

  1. चरण 0: स्रोत डेटा एम्बेड करा - प्रॉडक्ट्स, भाग, लेख
  2. चरण 1: क्वेरी आणा - GSC, Google Ads, live, Algolia
  3. चरण 2: क्वेरी एकत्र करा - सर्व स्रोत विलीन करा
  4. चरण 3a: बेस फ्रेज मॅपिंग्ज तयार करा ← तुम्ही येथे आहात
  5. चरण 3b: क्वेरी एम्बेड करा - व्हेक्टरमध्ये रूपांतरित करा
  6. चरण 4: फ्रेज मॅपिंग्ज विस्तारित करा ← तुम्ही येथे आहात
  7. चरण 5: क्वेरी क्लस्टर करा - पृष्ठांमध्ये गट करा
  8. चरण 6: प्रॉडक्ट्स जुळवा - क्वेरी-प्रॉडक्ट जुळणी
  9. चरण 7: क्वेरी पृष्ठे तयार करा - HTML जनरेट करा
  10. चरण 8: संबंधित शोध तयार करा - संबंधित क्वेरी शोधा
  11. चरण 11: Valkey मध्ये मायग्रेट करा - सर्च सेवेत लोड करा

संपूर्ण प्रवाहासाठी SEO पाइपलाइन विहंगावलोकन पहा.

दोन चरण का?

बेस जनरेशन (चरण 3a) देते:

  • अचूकता: नियम-आधारित वाक्यांश आपल्या अपेक्षेप्रमाणे अचूक जुळतात

  • कव्हरेज: क्रमपरिवर्तने सर्व शब्द क्रम समाविष्ट करतात याची खात्री करतात

  • नियंत्रण: फीचर-विशिष्ट नियम डोमेन ज्ञान हाताळतात

सेमँटिक विस्तार (चरण 4) देते:

  • लवचिकता: आपण अपेक्षा न केलेले वाक्यांश शोधून काढते

  • वास्तविक वापरकर्ता भाषा: वास्तविक शोध क्वेरींमधून शिकते

  • समानार्थी शब्द: समतुल्य वाक्यांश शोधते ("16gb" साठी "16 gigs")

एकत्रितपणे, ते अचूकता (precision) आणि रीकॉल (recall) यांचा समतोल साधतात.

संदर्भ

तांत्रिक संकल्पना

मॉडेल दस्तऐवज

संबंधित लेख

सारांश

आम्ही फ्रेज-टू-फिल्टर मॅपिंग्ज दोन चरणांत तयार करतो:

चरण 3a (बेस जनरेशन):

  • हेडिंग, की, मूल्य, युनिट यांची सर्व क्रमपरिवर्तने तयार करा

  • फीचर-विशिष्ट नियम लागू करा (प्रोसेसर सिरीज, मेमरी, स्टोरेज, फॉर्म फॅक्टर)

  • कनेक्टिव्हिटी फीचर्ससाठी पोर्ट सफिक्स जोडा

  • विशिष्ट फीचर्ससाठी स्टँडअलोन मूल्यांची व्हाइटलिस्ट

  • नियमांमधून बेस फ्रेज संच आउटपुट करा

चरण 4 (सेमँटिक विस्तार):

  • वास्तविक शोध क्वेरींमधून N-ग्रॅम वाक्यांश काढा

  • वाक्यांश आणि फिल्टर सर्च टेक्स्ट एम्बेड करा

  • थ्रेशोल्डपेक्षा जास्त सिमिलॅरिटी स्कोअर असलेले वाक्यांश जुळवा

  • विस्तारास मार्गदर्शन करण्यासाठी मॅन्युअल सीड फ्रेजेस इंजेक्ट करा

  • मेमरी/स्टोरेज टक्कर सोडवा

  • विस्तारित आणि डिसॲम्बिग्युएटेड फ्रेज संच आउटपुट करा

याचा परिणाम म्हणजे एक व्यापक मॅपिंग मिळते जी अपेक्षित वाक्यांश (नियमांद्वारे) आणि अनपेक्षित भिन्नता (सेमँटिक सिमिलॅरिटीद्वारे) दोन्ही हाताळते. ही मॅपिंग्ज क्वेरी पृष्ठे, सर्च आणि प्रॉडक्ट मॅचिंगमध्ये फिल्टर एक्स्ट्रॅक्शन चालवतात.


← दस्तऐवज निर्देशांकाकडे परत