בירור | יצירת אלגוריתם/כללים למנוע חיפוש
-
@עידו300 כתב:
המנוע צריך לחפש בכל העמודות כי אולי התשובה נמצאת שם.
לחפש את המילים בכל אחת מהעמודות אין שום בעיה, אני שואל האם צריך לחפש כל חלק מהמשפט בעמודה אחרת
כן, יכול להיות גם.
-
@עידו300
4000 פריטים זה כלום
פרודוקשן משתנה לפי היעד שלך מה ריאלי שיהיהבכל אופן נשמע לי שאתה מתנהל עם כמויות קטנות של דאטה כך שכל מנוע חיפוש פשוט יכול לשמש אותך
כדאי מאוד להשתמש עם מנוע חיפוש בגלל שהוא עושה בשבילך את כל העבודה
מכיון שמדובר בכמות מידע קטנה ובשרת אתה יכול להשתמש במנוע חיפוש ששומר הכל בראם בקלות וביעילותאם בכל אופן מדובר במשהו יותר בומבסטי תוכל לשקול משהו כמו opensearch
אם יש עוד שאלות לא להתבייש לשאול
4000 פריטים זה כלום
באמת, הייתי בטוח ש4000 שורות זה הרבה... בשביל לסבר את האוזן, זה כל הקטלוג של עוז והדר והוצאת הספר ביחד. זה המון...
בכל אופן נשמע לי שאתה מתנהל עם כמויות קטנות של דאטה כך שכל מנוע חיפוש פשוט יכול לשמש אותך
כדאי מאוד להשתמש עם מנוע חיפוש בגלל שהוא עושה בשבילך את כל העבודה
מכיון שמדובר בכמות מידע קטנה ובשרת אתה יכול להשתמש במנוע חיפוש ששומר הכל בראם בקלות וביעילותרעיון טוב, אבל צריך ספריה טובה וחינמית עם רישיון גם למטרה עסקית. וכמובן צריכה להיות בnodejs...
יש לך המלצה על אחת?
אני חושב שזה אחד החסרונות הגדולים של AI, רוב הדברים הוא ירצה לבנות לך לבד במקום פשוט להשתמש במשהו בנוי וטוב... למה להמציא את הגלגל מחדש במקום להגיד לי בצורה פשוטה שיש ספריות מוכנות לזה?
-
4000 פריטים זה כלום
באמת, הייתי בטוח ש4000 שורות זה הרבה... בשביל לסבר את האוזן, זה כל הקטלוג של עוז והדר והוצאת הספר ביחד. זה המון...
בכל אופן נשמע לי שאתה מתנהל עם כמויות קטנות של דאטה כך שכל מנוע חיפוש פשוט יכול לשמש אותך
כדאי מאוד להשתמש עם מנוע חיפוש בגלל שהוא עושה בשבילך את כל העבודה
מכיון שמדובר בכמות מידע קטנה ובשרת אתה יכול להשתמש במנוע חיפוש ששומר הכל בראם בקלות וביעילותרעיון טוב, אבל צריך ספריה טובה וחינמית עם רישיון גם למטרה עסקית. וכמובן צריכה להיות בnodejs...
יש לך המלצה על אחת?
אני חושב שזה אחד החסרונות הגדולים של AI, רוב הדברים הוא ירצה לבנות לך לבד במקום פשוט להשתמש במשהו בנוי וטוב... למה להמציא את הגלגל מחדש במקום להגיד לי בצורה פשוטה שיש ספריות מוכנות לזה?
אני חושב שזה אחד החסרונות הגדולים של AI, רוב הדברים הוא ירצה לבנות לך לבד במקום פשוט להשתמש במשהו בנוי וטוב... למה להמציא את הגלגל מחדש במקום להגיד לי בצורה פשוטה שיש ספריות מוכנות לזה?
זה פשוט שיש ספריות לחיפוש בכל שפה, וגם מנועים חיצוניים שאפשר להטמיע גם אם במקרה משתמשים בשפה שעדיין אף אחד לא כתב לה ספריה... וכמובן הכל קיים גם בקוד פתוח עם רשיונות מתירניים
זה התפקיד שלך לומר לAI להשתמש בספריות קיימות.
ראיתי פעם מישהו שהAI הכניס לו בקוד מימוש שלם כמעט של הצגת הבדלים חזותית כמו בגיט במקום לעשות import פשוט לעורך של VS CODE שהוא בקוד פתוח וניתן להטמעה בקלות
-
קלוד טוען שמנוע מוכן לא יעזור כאן, כי הדרישות שלי כאן שונות...
המנועים לא יעזרו לתיקון שגיאות כמו שף חתנים במקום שס חתנים.
רעיון לגיטימי, ויש כמה מנועים כאלה. אבל לדעתי מנוע חיפוש לא היה מציל את השיחה של "ש"ס חתנים", כי הבעיה שם לא הייתה בחיפוש.
מה כבר קיים היום. הקטלוג מריץ מנוע חיפוש שנכתב כאן (packages/core/hebrew.js). הוא מנרמל עברית, וסולח לשגיאות לפי מרחק עריכה, כשהסף תלוי באורך המילה. מעליו, בערוץ הטלפוני, יש מפל ניסיונות (apps/voice/facts/book-search.js): טבלת תיקונים לשיבושי תמלול, מילים נרדפות, הסרת מילים תיאוריות ושער כיסוי. בפועל זה מנוע קטן עם סובלנות לשגיאות, בדיוק מה שמנוע מוכן היה נותן.
מה מנוע מוכן היה עושה עם השאילתות מהשיחה:
שאילתה למה זה לא היה עוזר
"שש חתנים" / "שף חתנים" מנועים כמו Meilisearch ו-Typesense לא סולחים על טעות במילים קצרות. כברירת מחדל, תיקון שגיאה מתחיל רק מ-5 אותיות. "שש"→"שס" זו אות אחת מתוך שתיים, ושום מנוע לא יתקן אותה, ובצדק.
"שוקאמין" זה שיבוש של צליל, לא של כתיב. אף מנוע טקסט לא יחבר את זה ל-"ש"ס חתנים".
המנוע כן יכול להשמיט מילה שלא נמצאה. ב-Meilisearch יש לזה הגדרה מובנית, matchingStrategy: last. אבל זה בדיוק "לנסות שוב בלי המילה הקצרה", שדחית כתיקון שמותאם להדגמה. זה אותו פתרון, רק עטוף בספרייה.השיבוש קורה לפני החיפוש: המתמלל שומע ארמית וראשי תיבות לא נכון. את זה מתקנים במקום אחר:
הטיית המתמלל לשמות שבקטלוג. זה כבר קיים חלקית ב-asr-vocab.
שם מדובר או מפתח פונטי לכל מוצר. "שס", "שַׁס" ו"שש" יקבלו מפתח צליל אחד.
התאוששות בשיחה: אחרי שני כישלונות הסוכן מציע קטגוריה או מבקש לאיית, ולא שואל "בטוח שזה השם?".
איפה מנוע מוכן כן מתאים: ביעד ארוך הטווח של מנוע מענה לכל סוג מוצר. שם דירוג, סינון לפי שדות וקטלוגים גדולים זה עבודה שלא כדאי לכתוב בעצמנו. אפשרויות עם רישיון שמתיר שימוש מסחרי:MiniSearch (MIT) או Orama (Apache 2.0): ספרייה שרצה בתוך התהליך, בלי שרת נוסף. ל-4,077 ספרים זה מספיק לגמרי.
Meilisearch: הליבה ברישיון MIT. זה שרת נפרד, כלומר תהליך נוסף שצריך לסנכרן מול SQLite.
Typesense (GPL-3): מותר להריץ אותו כשירות מסחרי. גם הוא שרת נפרד.
SQLite FTS5: כבר קיים במסד, אבל אין בו סובלנות לשגיאות.
ההמלצה שלי: לא להחליף מנוע עכשיו כתיקון לבעיה הזו. במקום זה להכריע לפי מדידה, שזה גם הצעד הראשון בהצעה לשיטה שממתינה לך:לאסוף מהלוגים של השיחות קורפוס של שאילתות אמיתיות: מה המתמלל שמע, ואיזה ספר הלקוח התכוון.
להריץ את הקורפוס מול המנוע הקיים ומול מנוע מוכן אחד, למשל MiniSearch, ולספור תוצאה נכונה, "לא נמצא" ותוצאה שגויה.
לבחור לפי המספרים. -
קלוד טוען שמנוע מוכן לא יעזור כאן, כי הדרישות שלי כאן שונות...
המנועים לא יעזרו לתיקון שגיאות כמו שף חתנים במקום שס חתנים.
רעיון לגיטימי, ויש כמה מנועים כאלה. אבל לדעתי מנוע חיפוש לא היה מציל את השיחה של "ש"ס חתנים", כי הבעיה שם לא הייתה בחיפוש.
מה כבר קיים היום. הקטלוג מריץ מנוע חיפוש שנכתב כאן (packages/core/hebrew.js). הוא מנרמל עברית, וסולח לשגיאות לפי מרחק עריכה, כשהסף תלוי באורך המילה. מעליו, בערוץ הטלפוני, יש מפל ניסיונות (apps/voice/facts/book-search.js): טבלת תיקונים לשיבושי תמלול, מילים נרדפות, הסרת מילים תיאוריות ושער כיסוי. בפועל זה מנוע קטן עם סובלנות לשגיאות, בדיוק מה שמנוע מוכן היה נותן.
מה מנוע מוכן היה עושה עם השאילתות מהשיחה:
שאילתה למה זה לא היה עוזר
"שש חתנים" / "שף חתנים" מנועים כמו Meilisearch ו-Typesense לא סולחים על טעות במילים קצרות. כברירת מחדל, תיקון שגיאה מתחיל רק מ-5 אותיות. "שש"→"שס" זו אות אחת מתוך שתיים, ושום מנוע לא יתקן אותה, ובצדק.
"שוקאמין" זה שיבוש של צליל, לא של כתיב. אף מנוע טקסט לא יחבר את זה ל-"ש"ס חתנים".
המנוע כן יכול להשמיט מילה שלא נמצאה. ב-Meilisearch יש לזה הגדרה מובנית, matchingStrategy: last. אבל זה בדיוק "לנסות שוב בלי המילה הקצרה", שדחית כתיקון שמותאם להדגמה. זה אותו פתרון, רק עטוף בספרייה.השיבוש קורה לפני החיפוש: המתמלל שומע ארמית וראשי תיבות לא נכון. את זה מתקנים במקום אחר:
הטיית המתמלל לשמות שבקטלוג. זה כבר קיים חלקית ב-asr-vocab.
שם מדובר או מפתח פונטי לכל מוצר. "שס", "שַׁס" ו"שש" יקבלו מפתח צליל אחד.
התאוששות בשיחה: אחרי שני כישלונות הסוכן מציע קטגוריה או מבקש לאיית, ולא שואל "בטוח שזה השם?".
איפה מנוע מוכן כן מתאים: ביעד ארוך הטווח של מנוע מענה לכל סוג מוצר. שם דירוג, סינון לפי שדות וקטלוגים גדולים זה עבודה שלא כדאי לכתוב בעצמנו. אפשרויות עם רישיון שמתיר שימוש מסחרי:MiniSearch (MIT) או Orama (Apache 2.0): ספרייה שרצה בתוך התהליך, בלי שרת נוסף. ל-4,077 ספרים זה מספיק לגמרי.
Meilisearch: הליבה ברישיון MIT. זה שרת נפרד, כלומר תהליך נוסף שצריך לסנכרן מול SQLite.
Typesense (GPL-3): מותר להריץ אותו כשירות מסחרי. גם הוא שרת נפרד.
SQLite FTS5: כבר קיים במסד, אבל אין בו סובלנות לשגיאות.
ההמלצה שלי: לא להחליף מנוע עכשיו כתיקון לבעיה הזו. במקום זה להכריע לפי מדידה, שזה גם הצעד הראשון בהצעה לשיטה שממתינה לך:לאסוף מהלוגים של השיחות קורפוס של שאילתות אמיתיות: מה המתמלל שמע, ואיזה ספר הלקוח התכוון.
להריץ את הקורפוס מול המנוע הקיים ומול מנוע מוכן אחד, למשל MiniSearch, ולספור תוצאה נכונה, "לא נמצא" ותוצאה שגויה.
לבחור לפי המספרים."שש חתנים" / "שף חתנים" מנועים כמו Meilisearch ו-Typesense לא סולחים על טעות במילים קצרות. כברירת מחדל, תיקון שגיאה מתחיל רק מ-5 אותיות. "שש"→"שס" זו אות אחת מתוך שתיים, ושום מנוע לא יתקן אותה, ובצדק.
גם המנוע שאתה תעשה לא יכול לתקן את זה ובצדק, ולכן צריך פתרונות אחרים שאינם בתוך החיפוש עצמו, זה לא סיבה לא להשתמש במנוע בחיצוני, אם כי יותר מתאים להשתמש כאן בספריה פנימית, לא נראה לי שיש צורך להריץ תהליך נוסף חיצוני
-
קלוד טוען שמנוע מוכן לא יעזור כאן, כי הדרישות שלי כאן שונות...
המנועים לא יעזרו לתיקון שגיאות כמו שף חתנים במקום שס חתנים.
רעיון לגיטימי, ויש כמה מנועים כאלה. אבל לדעתי מנוע חיפוש לא היה מציל את השיחה של "ש"ס חתנים", כי הבעיה שם לא הייתה בחיפוש.
מה כבר קיים היום. הקטלוג מריץ מנוע חיפוש שנכתב כאן (packages/core/hebrew.js). הוא מנרמל עברית, וסולח לשגיאות לפי מרחק עריכה, כשהסף תלוי באורך המילה. מעליו, בערוץ הטלפוני, יש מפל ניסיונות (apps/voice/facts/book-search.js): טבלת תיקונים לשיבושי תמלול, מילים נרדפות, הסרת מילים תיאוריות ושער כיסוי. בפועל זה מנוע קטן עם סובלנות לשגיאות, בדיוק מה שמנוע מוכן היה נותן.
מה מנוע מוכן היה עושה עם השאילתות מהשיחה:
שאילתה למה זה לא היה עוזר
"שש חתנים" / "שף חתנים" מנועים כמו Meilisearch ו-Typesense לא סולחים על טעות במילים קצרות. כברירת מחדל, תיקון שגיאה מתחיל רק מ-5 אותיות. "שש"→"שס" זו אות אחת מתוך שתיים, ושום מנוע לא יתקן אותה, ובצדק.
"שוקאמין" זה שיבוש של צליל, לא של כתיב. אף מנוע טקסט לא יחבר את זה ל-"ש"ס חתנים".
המנוע כן יכול להשמיט מילה שלא נמצאה. ב-Meilisearch יש לזה הגדרה מובנית, matchingStrategy: last. אבל זה בדיוק "לנסות שוב בלי המילה הקצרה", שדחית כתיקון שמותאם להדגמה. זה אותו פתרון, רק עטוף בספרייה.השיבוש קורה לפני החיפוש: המתמלל שומע ארמית וראשי תיבות לא נכון. את זה מתקנים במקום אחר:
הטיית המתמלל לשמות שבקטלוג. זה כבר קיים חלקית ב-asr-vocab.
שם מדובר או מפתח פונטי לכל מוצר. "שס", "שַׁס" ו"שש" יקבלו מפתח צליל אחד.
התאוששות בשיחה: אחרי שני כישלונות הסוכן מציע קטגוריה או מבקש לאיית, ולא שואל "בטוח שזה השם?".
איפה מנוע מוכן כן מתאים: ביעד ארוך הטווח של מנוע מענה לכל סוג מוצר. שם דירוג, סינון לפי שדות וקטלוגים גדולים זה עבודה שלא כדאי לכתוב בעצמנו. אפשרויות עם רישיון שמתיר שימוש מסחרי:MiniSearch (MIT) או Orama (Apache 2.0): ספרייה שרצה בתוך התהליך, בלי שרת נוסף. ל-4,077 ספרים זה מספיק לגמרי.
Meilisearch: הליבה ברישיון MIT. זה שרת נפרד, כלומר תהליך נוסף שצריך לסנכרן מול SQLite.
Typesense (GPL-3): מותר להריץ אותו כשירות מסחרי. גם הוא שרת נפרד.
SQLite FTS5: כבר קיים במסד, אבל אין בו סובלנות לשגיאות.
ההמלצה שלי: לא להחליף מנוע עכשיו כתיקון לבעיה הזו. במקום זה להכריע לפי מדידה, שזה גם הצעד הראשון בהצעה לשיטה שממתינה לך:לאסוף מהלוגים של השיחות קורפוס של שאילתות אמיתיות: מה המתמלל שמע, ואיזה ספר הלקוח התכוון.
להריץ את הקורפוס מול המנוע הקיים ומול מנוע מוכן אחד, למשל MiniSearch, ולספור תוצאה נכונה, "לא נמצא" ותוצאה שגויה.
לבחור לפי המספרים. -
"שש חתנים" / "שף חתנים" מנועים כמו Meilisearch ו-Typesense לא סולחים על טעות במילים קצרות. כברירת מחדל, תיקון שגיאה מתחיל רק מ-5 אותיות. "שש"→"שס" זו אות אחת מתוך שתיים, ושום מנוע לא יתקן אותה, ובצדק.
גם המנוע שאתה תעשה לא יכול לתקן את זה ובצדק, ולכן צריך פתרונות אחרים שאינם בתוך החיפוש עצמו, זה לא סיבה לא להשתמש במנוע בחיצוני, אם כי יותר מתאים להשתמש כאן בספריה פנימית, לא נראה לי שיש צורך להריץ תהליך נוסף חיצוני
-
@עידו300 זה כי הוא מתעקש שיש קשר בין השניים, אין קשר בין חיפוש בעמודות שונות לבין תיקון שגיאות כתיב.
זה שני אלגוריתמים שונים לגמרי.@עידו300 זה כי הוא מתעקש שיש קשר בין השניים, אין קשר בין חיפוש בעמודות שונות לבין תיקון שגיאות כתיב.
זה שני אלגוריתמים שונים לגמרי.אבל הם צריכים לעבוד ביחד, כי הרי "שש" זה לא שגיאת כתיב, זו מילה נכונה רק שהAI תמלל את החיפוש לא נכון (או שהמחפש זכר את השם בערך), צריך משהו שכן ימצא את השינויים האלו וכן ידע להתאים אותם נכון.
-
ולכן צריך פתרונות אחרים שאינם בתוך החיפוש עצמו
כמו? איזה פתרון?
כמו? איזה פתרון?
כמו ש @המלאך כבר כתב וגם אתה הזכרת, לדייק יותר את הזיהוי, ותנסות להתאים אותו למילים הקיימות וכו'
אבל הם צריכים לעבוד ביחד, כי הרי "שש" זה לא שגיאת כתיב, זו מילה נכונה רק שהAI תמלל את החיפוש לא נכון (או שהמחפש זכר את השם בערך), צריך משהו שכן ימצא את השינויים האלו וכן ידע להתאים אותם נכון.
מנועי חיפוש לא מזהים שגיאות כתיב בגלל שהם שגיאות, אלא ע"י אליגוריתמים למשל כמו לוינשטיין שהזכרת, אין נפק"מ אם המילה שכתבו בפועל קיימת גם היא
-
כמו? איזה פתרון?
כמו ש @המלאך כבר כתב וגם אתה הזכרת, לדייק יותר את הזיהוי, ותנסות להתאים אותו למילים הקיימות וכו'
אבל הם צריכים לעבוד ביחד, כי הרי "שש" זה לא שגיאת כתיב, זו מילה נכונה רק שהAI תמלל את החיפוש לא נכון (או שהמחפש זכר את השם בערך), צריך משהו שכן ימצא את השינויים האלו וכן ידע להתאים אותם נכון.
מנועי חיפוש לא מזהים שגיאות כתיב בגלל שהם שגיאות, אלא ע"י אליגוריתמים למשל כמו לוינשטיין שהזכרת, אין נפק"מ אם המילה שכתבו בפועל קיימת גם היא
-
@ע-ה-דכו-ע @המלאך אז מה אתם מציעים בעצם?
לממש מרחק לוינשטיין? בעקרון זה כבר קיים ועדיין לא מוצא את התוצאות הנ"ל...איך אני יכול לדעת אם המנוע חיפוש שהוא כתב לי מספיק טוב או שכדאי לשנות לאחד מוכן כבר?
-
@עידו300 אני אומ לשנות את הדרך פיתוח.
לחלק לשני פיתוחים שונים.
נסה ותראה ניפלאות, אפילו רק קלוד -
@עידו300 1 -מנוע חיפוש רגיל (שאמור לכלול גם חיפוש במספר עמודות שונות),
2 -אלגוריתם לזיהוי מילות החיפוש המדוייקות הנצרכות, (לווינשטיין וכו׳) -
תראו מה יש עד עכשיו, בקשתי מקלוד שיתמצת בשביל להראות לחבר שיחווה דעתו.
לדעתי עשה שם שטויות, אבל אני לא מבין בזה.
בעקרון הוא חילק את זה ל-4 לא ל-2.
-
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות