ਵਾਕਾਂਸ਼-ਤੋਂ-ਫਿਲਟਰ ਮੈਪਿੰਗਾਂ: ਉਤਪਾਦ ਫਿਲਟਰਾਂ ਲਈ ਅਰਥ-ਅਧਾਰਿਤ ਖੋਜ

ਇਹ ਲੇਖ ਦੱਸਦਾ ਹੈ ਕਿ ਅਸੀਂ ਵਾਕਾਂਸ਼-ਤੋਂ-ਫਿਲਟਰ ਮੈਪਿੰਗਾਂ ਨੂੰ ਕਿਵੇਂ ਤਿਆਰ ਅਤੇ ਵਿਸਤਾਰ ਕਰਦੇ ਹਾਂ ਜੋ ਸਾਡੇ ਫਿਲਟਰ ਕੱਢਣ ਸਿਸਟਮ ਨੂੰ ਸ਼ਕਤੀ ਦਿੰਦੀਆਂ ਹਨ। ਇਹ ਮੈਪਿੰਗਾਂ ਖੋਜ ਕੁਇਰੀਆਂ ਤੋਂ ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਦੇ ਵਾਕਾਂਸ਼ਾਂ ਨੂੰ ਸੰਗਠਿਤ ਉਤਪਾਦ ਫਿਲਟਰਾਂ ਨਾਲ ਜੋੜਦੀਆਂ ਹਨ।

ਸਮੱਸਿਆ: ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਤੋਂ ਫਿਲਟਰ ਕੱਢਣਾ

ਜਦੋਂ ਉਪਭੋਗਤਾ "mini pc with 16gb ram" ਦੀ ਖੋਜ ਕਰਦੇ ਹਨ, ਸਾਨੂੰ ਕੱਢਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ:

  • ਫਾਰਮ ਫੈਕਟਰ: ਮਿੰਨੀ ਪੀਸੀ

  • ਮੁੱਖ ਮੈਮੋਰੀ: 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-ਸੀਰੀਜ਼):

  • ਕੋਰ ਪ੍ਰੋਸੈਸਰ ਅਹੁਦੇ ਰੂਪ ਤਿਆਰ ਕਰਦੇ ਹਨ: ਨਿਰਮਾਤਾ ਦਾ ਨਾਮ, ਕੋਰ ਬ੍ਰਾਂਡ, ਸੰਯੁਕਤ ਰੂਪ

  • N-ਸੀਰੀਜ਼ ਪ੍ਰੋਸੈਸਰ (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")

ਫਾਰਮ ਫੈਕਟਰ:

  • ਮਿੰਨੀ ਪੀਸੀ → ਬਿਨਾਂ ਸਪੇਸ ਵਾਲੇ ਰੂਪ ਸਮੇਤ ਕਈ ਰੂਪ

  • ਆਲ-ਇਨ-ਵਨ → "all in one", "aio", ਸੰਖੇਪ ਰੂਪ

  • ਥਿਨ ਕਲਾਇੰਟ → ਸਪੇਸ ਵਾਲੇ/ਬਿਨਾਂ ਸਪੇਸ ਰੂਪ

  • ਇੰਡਸਟ੍ਰੀਅਲ ਪੀਸੀ → ਸੰਖੇਪ ਅਤੇ ਪੂਰੇ ਰੂਪ

ਜਨਰੇਸ਼ਨ:

  • ਸੰਖਿਆਤਮਕ ਜਨਰੇਸ਼ਨ ਮੁੱਲ ਇਹ ਬਣ ਜਾਂਦੇ ਹਨ: "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-ਬਾਉਂਡ ਹੁੰਦਾ ਹੈ। BLAS ਪ੍ਰਵੇਗ ਦੇ ਨਾਲ NumPy ਦੀ ਵਰਤੋਂ ਮੈਟ੍ਰਿਕਸ ਕਾਰਜਾਂ ਨੂੰ ਕਾਫ਼ੀ ਤੇਜ਼ ਕਰਦੀ ਹੈ।

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")

ਇਕੱਠੇ ਮਿਲ ਕੇ, ਉਹ ਸ਼ੁੱਧਤਾ ਅਤੇ ਰੀਕਾਲ ਨੂੰ ਸੰਤੁਲਿਤ ਕਰਦੇ ਹਨ।

ਹਵਾਲੇ

ਤਕਨੀਕੀ ਸੰਕਲਪ

ਮਾਡਲ ਦਸਤਾਵੇਜ਼

ਸੰਬੰਧਿਤ ਲੇਖ

ਸਾਰਾਂਸ਼

ਅਸੀਂ ਦੋ ਕਦਮਾਂ ਵਿੱਚ ਵਾਕਾਂਸ਼-ਤੋਂ-ਫਿਲਟਰ ਮੈਪਿੰਗ ਤਿਆਰ ਕਰਦੇ ਹਾਂ:

ਕਦਮ 3a (ਅਧਾਰ ਨਿਰਮਾਣ):

  • ਹੈਡਿੰਗ, ਕੁੰਜੀ, ਮੁੱਲ, ਯੂਨਿਟ ਦੇ ਸਾਰੇ ਕ੍ਰਮਚਯ ਤਿਆਰ ਕਰੋ

  • ਵਿਸ਼ੇਸ਼ਤਾ-ਵਿਸ਼ੇਸ਼ ਨਿਯਮ ਲਾਗੂ ਕਰੋ (ਪ੍ਰੋਸੈਸਰ ਸੀਰੀਜ਼, ਮੈਮੋਰੀ, ਸਟੋਰੇਜ, ਫਾਰਮ ਫੈਕਟਰ)

  • ਕਨੈਕਟੀਵਿਟੀ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ ਪੋਰਟ ਪਿਛੇਤਰ ਜੋੜੋ

  • ਖਾਸ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ ਸਟੈਂਡਅਲੋਨ ਮੁੱਲਾਂ ਨੂੰ ਵ੍ਹਾਈਟਲਿਸਟ ਕਰੋ

  • ਨਿਯਮਾਂ ਤੋਂ ਅਧਾਰ ਵਾਕਾਂਸ਼ ਸਮੂਹ ਆਉਟਪੁੱਟ ਕਰੋ

ਕਦਮ 4 (ਅਰਥ-ਅਧਾਰਿਤ ਵਿਸਤਾਰ):

  • ਅਸਲ ਖੋਜ ਕੁਇਰੀਆਂ ਤੋਂ n-ਗ੍ਰਾਮ ਵਾਕਾਂਸ਼ ਕੱਢੋ

  • ਵਾਕਾਂਸ਼ਾਂ ਅਤੇ ਫਿਲਟਰ ਖੋਜ ਟੈਕਸਟਾਂ ਨੂੰ ਐਂਬੈਡ ਕਰੋ

  • ਥ੍ਰੈਸ਼ਹੋਲਡ ਤੋਂ ਉੱਪਰ ਸਮਾਨਤਾ ਸਕੋਰਾਂ ਵਾਲੇ ਵਾਕਾਂਸ਼ਾਂ ਨਾਲ ਮੇਲ ਕਰੋ

  • ਵਿਸਤਾਰ ਦਾ ਮਾਰਗਦਰਸ਼ਨ ਕਰਨ ਲਈ ਦਸਤੀ ਸੀਡ ਵਾਕਾਂਸ਼ ਇੰਜੈਕਟ ਕਰੋ

  • ਮੈਮੋਰੀ/ਸਟੋਰੇਜ ਟਕਰਾਅ ਹੱਲ ਕਰੋ

  • ਵਿਸਤ੍ਰਿਤ ਅਤੇ ਅਸਪਸ਼ਟਤਾ-ਰਹਿਤ ਵਾਕਾਂਸ਼ ਸਮੂਹ ਆਉਟਪੁੱਟ ਕਰੋ

ਨਤੀਜਾ ਇੱਕ ਵਿਆਪਕ ਮੈਪਿੰਗ ਹੁੰਦਾ ਹੈ ਜੋ ਉਮੀਦ ਕੀਤੇ ਵਾਕਾਂਸ਼ਾਂ (ਨਿਯਮਾਂ ਰਾਹੀਂ) ਅਤੇ ਅਚਾਨਕ ਭਿੰਨਤਾਵਾਂ (ਅਰਥ ਸਮਾਨਤਾ ਰਾਹੀਂ) ਦੋਵਾਂ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ। ਇਹ ਮੈਪਿੰਗਜ਼ ਕੁਇਰੀ ਪੰਨਿਆਂ, ਖੋਜ ਅਤੇ ਉਤਪਾਦ ਮੇਲ ਵਿੱਚ ਫਿਲਟਰ ਕੱਢਣ ਨੂੰ ਸ਼ਕਤੀ ਦਿੰਦੀਆਂ ਹਨ।


← ਦਸਤਾਵੇਜ਼ ਸੂਚਕਾਂਕ 'ਤੇ ਵਾਪਸ