דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. איתור מדוייק לתוכנה תורנית - עזרה באיפיון

איתור מדוייק לתוכנה תורנית - עזרה באיפיון

מתוזמן נעוץ נעול הועבר תוכנה
9 פוסטים 3 כותבים 71 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • י.פל.י מנותק
    י.פל.י מנותק
    י.פל.
    כתב נערך לאחרונה על ידי י.פל.
    #1

    שלום רב.
    לצורך תוכנה תורנית חינמית כלשהיא 🙂 אני צריך עזרה באיפיון מדוייק של ה'איתור'.
    לאלו שלא מכירים:
    'איתור' היא התכונה שבה המערכת מזהה את הספר - והמיקום בו - אליו מכוון הכותב להגיע, ע"פ סט כללים מוגדר מראש.
    למשל, כשאתה כותב 'שו"ע' = שולחן ערוך. ר"מ/רמב"ם = משנה תורה.

    אצלנו העסק מורכב יותר, משום ש:

    1. יש את הDB [sqlite, אם זה משנה] בו נמצאים הנתונים, אבל יש גם את קבצי המשתמש.
    2. בDB הערכים מחולקים לשמות קבצים ולכותרות (שמות הקבצים בטבלה אחת, הכותרות הפנימיות - כל אחת בטבלת הספר). בקבצי המשתמש - מנוע החיפוש [tantivy, אם זה משנה]
    3. המניפולציות על הטקסט שהמשתמש מזין: יש טבלה בDB שאחראית על זה, וקובץ (בקוד) שאחראי על המניפולציות בקבצי המשתמש.

    אני מעלה כאן את הפרומפט שכתבתי, זה האיפיון שלי כרגע.
    הוא מורכב מ2 קבצים:

    1. לוגיקת איתור ראשית: הטקסט שכתבתי לאחרונה.
    2. לוגיקת חיפוש: טקסט שנכתב בחלקו על ידי, בחלקו על ידי אחר, ובחלקו על ידי AI, בעבר (הרבה לפני המעבר לדאטהבייס).

    אני ממש לא בטוח שהצלחתי להגדיר את כל המורכבות, ואשמח אם תעזרו לי!

    לוגיקת איתור ראשית.txt
    לוגיקת חיפוש.txt

    לאלו שרוצים לקרוא כאן ועכשיו, העתקתי את הטקסט - בספויילר.
    אה! אין כאן ספויילר! מוזר!
    טוב. למנוטפרים, אני מעלה דחוס.
    Downloads.zip

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid
      ניהול
      כתב נערך לאחרונה על ידי
      #2

      אויש... למה לא לכתוב פה הכל, למה קובץ מצורף ולמה ספוילר ולמה דחוס...
      אגב כשאתה שומר קובץ TXT שמור אותו כUTF8 ככה הוא יוצג תקין אונליין בעת לחיצה עליו בלי הורדה.

      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      י.פל.י תגובה 1 תגובה אחרונה
      2
      • dovidD dovid

        אויש... למה לא לכתוב פה הכל, למה קובץ מצורף ולמה ספוילר ולמה דחוס...
        אגב כשאתה שומר קובץ TXT שמור אותו כUTF8 ככה הוא יוצג תקין אונליין בעת לחיצה עליו בלי הורדה.

        י.פל.י מנותק
        י.פל.י מנותק
        י.פל.
        כתב נערך לאחרונה על ידי
        #3

        @dovid כתב באיתור מדוייק לתוכנה תורנית - עזרה באיפיון:

        שמור אותו כUTF8

        זה ככה... אולי צריך עם BOM?
        5feaa721-ac45-4758-916c-b28b280876a0-image.png

        תגובה 1 תגובה אחרונה
        1
        • י.פל.י מנותק
          י.פל.י מנותק
          י.פל.
          כתב נערך לאחרונה על ידי
          #4

          קובץ ראשון, לוגיקת איתור ראשית:

          קרא בעיון את הקבצים "lib\migration\README.md", "lib\migration\CATEGORY_SYNC_PLAN.md".
          עברנו לספרייה מבוססת DB, ואני רוצה להחליף את לוגיקת האיתור מחיפוש בקבצים לחיפוש בטבלת "acronym".
          כדי שתוכל להריץ פקודות על הDB עצמו, התקנתי כלי sqlite, ושמתי את הDB בפרוייקט [seforim.db].
          ===
          אני רוצה לחדד את הבקשה שלי:
          כרגע, הנתונים נשלחים לtantivy, שבונה אינדקס בשם "ref_index" לאיתור. האינדקס נבנה מהקבצים ומהכותרות.
          כרגע, יש לנו בDB כבר את שמות הקבצים, יש גם את הכותרות בטבלאות משלהם, ובמקום הקובץ "lib\utils\text_manipulation.dart" שאחראי על ההחלפות, יש להשתמש בטבלה "acronym".
          ===
          ממכיון שאי מעוניין לתת למשתמשים אפשרות להכנסת ספרים לתוכנה, ללא הכנסה לDB. בגלל זה, יש צורך שtantivy ימשיך לאנדקס את "ref_index", אך הוא יאנדקס **אך  ורק** קבצים שלא הוכנסו לDB.
          צורת ביצוע:
          1) להגדיר לtantivy לאנדקס בref_index רק קבצים שלא נמצאים בDB.
          2) התחשבות בשמות קבצים: התוכנה כעת טוענת [לפני הפעלת מסך ספרייה "lib\library\view\library_browser.dart"] את שמות הספרים **גם** מהDB, **וגם** מהקבצים שאינם בDB. הקוד נמצא בXXXXX.
          3) את לוגיקת האיתור תוכל למצוא בקובץ לוגיקת חיפוש.txt, והעיקרון לא משתנה: שמות הקבצים שבDB נטענים מהטבלה..., שמות הקבצים שאינם בDB נטענים מ...
          4) ההחלפות וראשי התיבות: גם כאן: לספרים שנמצאים בDB יש להשתמש בטבלה "acronym", בעוד שספרים שאינם בDB יש להמשיך ולהשתמש ב"lib\utils\text_manipulation.dart".
          5) כותרות פנימיות: כותרות פנימיות של ספרים שנמצאים בDB יתקבלו מהטבלה הרלוונטית. כותרות של ספרים שאינם בDB, יתקבלו מהאינדקס של tantivy.
          
          חשוב: טבלת הacronym מספקת רק שמות ספרים: את הכותרות הפנימיות יש לקחת מטבלת הספר עצמו. האינדקס של טנטיבי 	מספק גם את שמות הקבצים, וגם את הכותרות שלהם!
          חשוב מאוד: כל המניפולציות שאנו מבצעים על הטקסט שהמשתמש מספק [באמצעות הקובץ text_manipulation.dart, או הבטלה acronym בDB], מבוצעות רק על שם הספר עצמו, ולא על הכותרות! הכותרות מתקבלות ללא מניפולציות כלל, מלבד חריג אחד: כשהמשתמש מקליד '.' או 'ע"א' = 'עמוד א', וכשהוא מקליד ':' או 'ע"א' = 'עמוד ב'.
          
          לסיכום, כשהמשתמש מחפש באיתור, התוכנה צריכה לפנות ל2 מקורות בבת אחת: הDB והקבצים שאינם בDB. לכל  מקור יש את מקום מידע שמות הספרים שלו, ההחלפות שלו, והכותרות הפנימיות של שמות הקבצים שלו.
          לאחר כל הקשת משתמש [כל תו שהוא מזין], התוכנה תריץ את הבקשות במקביל, ולאחר ביצוע המניפולציות השונות התוצאות יולחמו ויגיעו למשתמש כמידע מאוחד.
          

          קובץ שני, לוגיקת החיפוש:

          עקרון כללי
          המשתמש מקליד מחרוזת (למשל: בבא קמא פ: / בבא קמא פ ב), והקוד:
          מזהה קודם כל את שם הספר (רמת <h1>).
          רק אם יש מילים נוספות – יורדת לרמות הכותרות של אותו ספר (<h2>, אחר כך <h3>).
          תמיד מחזירה עד 15 תוצאות (אחרי כל הסינונים וההגבלות).
          מדורגת כך שתוצאות של ספרים יופיעו לפני תוצאות שמשלבות ספר+כותרת משנה.
          
          
          
          1. התאמה לשם ספר (רמת <h1>)
          1.1. מקור שם הספר
           שם הספר נקבע לפי הכותרת ברמת <h1> בקובץ (שם הספר הרשמי במערכת).
          1.2. מה נחשבת “התאמה לשם ספר”
          התאמה יכולה להיות:
          
          
          התאמה מלאה: כל המילים בשם הספר מופיעות כ־מילים שלמות בקלט (לא כחלק ממילה אחרת).
          
          
          התאמה חלקית: לפחות אחת ממילות שם הספר מופיעה כ־מילה שלמה בקלט, גם אם זו לא המילה הראשונה (למשל: קמא מתוך בבא קמא).
          התאמה חלקית נוספת: אם המשתמש כותב חלק משם הספר אפי' אם זה לא מילה שלמה, אבל דווקא אם זה תחילת השם של הספר ולא מילה שנייה.
          
          
          1.3. מה מחזירים בשלב הזה
          אם נמצאה התאמה (לפי מה שהוגדר לעיל) לשם ספר מסוים:
          מציגים ספר זה.
          
          בנוסף, מציגים גם ספרים אחרים שיש להם התאמה חלקית [כפי שהוגדר לעיל] (מילה אחת שלמה מתוך שתי מילים ויותר בשם הספר).
          תמיד ספר עם התאמה מלאה יוצג לפני ספר עם התאמה חלקית.
          
          אם יש רק התאמות חלקיות (אין אף ספר עם התאמה מלאה):
          מציגים את כל הספרים עם ההתאמה החלקית (כפוף למגבלת 15 תוצאות בסך־הכול).
          
          
          1.4. התנהגות ביחס לכותרות משנה
          ברגע שיש התאמה לשם ספר (מלאה או חלקית) בשלב הזה:
          
          לא מציגים בכלל כותרות משנה (רמות <h2>, <h3>) של אותו ספר בשלב של חיפוש שם הספר בלבד.
          
          כלומר: בשלב 1 תוצאות האיתור הן ספרים בלבד.
          
          2. איתור ספר + כותרת משנה (רמת <h2>)
          הכלל כאן נכנס לפעולה כאשר יש בקלט גם מילים שלא שייכות לשם הספר.
          2.1. מתי ניגשים לכותרות רמה 2
          אם יש התאמה מלאה לשם ספר ובקלט קיימות מילים  נוספות שלא שייכות לשם הספר.
          או:
          אם יש התאמה חלקית לשם הספר (כלומר: לפחות מילה אחת משם הספר), ואחריה בקלט מופיעה מילה נוספת שלא תואמת לשם הספר:
          גם כאן ניגשים לחיפוש בכותרות רמה 2.
          
          
          2.2. איפה מחפשים ברמת <h2>
          החיפוש בכותרות משנה רמה 2 נעשה רק בתוך אותו ספר שנבחר לפי התאמת שם הספר.
          
          
          התאמה לכותרת משנה:
          מספיק שתהיה התאמה של מילה אחת שלמה מתוך שם הכותרת, גם אם היא המילה השנייה או השלישית.
          שוב – רק התאמת מילה שלמה, לא חלקי מילים.
          
          
          2.3. תוצאות רמה 2 + דירוג מול ספר
          יכולות להיות כמה סוגי תוצאות ביחד:
          תוצאה של ספר בלבד (שם ספר מתאים).
          תוצאות של ספר + כותרת רמה 2 תואמת.
          
          הסדר בדירוג:
          
          תמיד ספרים קודם [אם יש התאמה מלאה], ורק אחריהם ספר+כותרת משנה.
          אם יש כותרת משנה לאותו ספר - לא יוצג הספר ללא הכותרת משנה.
          
          3. ספר + כותרת רמה 2 + מילה נוספת → כותרת רמה 3
          כאן מדובר על מצב שבו הקלט מכיל כבר:
          התאמה לשם ספר,
          התאמה לכותרת משנה רמה 2,
          ויש עוד מילה נוספת שלא נמצאה בכותרת רמה 2.
          
          
          3.1. תנאי כניסה לחיפוש רמה 3
          יש התאמה לשם הספר (מלאה/חלקית, לפי כללי סעיפים 1–2).
          יש התאמה לאחת מכותרות רמה 2 באותו ספר.
          נותרה מילה בקלט שלא נמצאה בשם הספר ולא בכותרת רמה 2.
          
          
          3.2. חיפוש ברמת <h3>
          מבצעים חיפוש בכותרות רמה 3 של אותו הספר, תחת אותה כותרת רמה 2 (או לפי המבנה ההיררכי שלך).
          התאמה שוב:
          מספיק מילה אחת שלמה מתוך כותרת רמה 3.
          גם אם היא לא המילה הראשונה.
          
          
          3.3. תוצאות רמה 3 + דירוג
          התוצאות ברמה 3 מצטרפות לשאר התוצאות (ספר בלבד, ספר+רמה 2).
          בדירוג הכללי:
          ספר בלבד [רק אם הוא תואם יותר לקלט המשתמש].
          אחריו ספר+רמה 2 [רק אם הוא תואם יותר לקלט המשתמש].
          אחריו ספר+רמה 3
          אם יש כותרת ברמה 3 לאותו ספר - לא יוצג הספר עצמו ולא הכותרת משנה שלו.
           (כל זה כפוף לגבול 15 התוצאות אחרי סינון).
          
          
          
          4. פרמטרים טכניים כלליים
          4.1. נרמול טקסט
          לפני כל החיפוש יש להריץ על הקלט ועל שמות הספרים/כותרות את הפונקציות הקיימות:
          הסרת ניקוד.
          הסרת טעמים.
          הסרת תווים מיוחדים [לא כולל רווחים].
          כך ההשוואה נעשית תמיד על טקסט "יבש".
          
          
          4.2. חיתוך למילים
          יש לפצל את הקלט למילים (tokens) לפי רווחים/סימני פיסוק.
          כללי ה"מילה שלמה" מתייחסים לטוקן שלם אחרי הפיצול.
          
          
          4.3. מגבלת כמות תוצאות
          מספר התוצאות שמוחזרות למשתמש לא יעלה על 15, אחרי כל הסינונים (כגון דילוג על כותרות שלא עומדות בכללים).
          אם יש יותר מ־15 התאמות, יש לבחור את ה־15 המדורגות ביותר לפי כללי הדירוג (ספרים קודם, התאמה מלאה לפני חלקית וכו').
          
          pcinfogmachP תגובה 1 תגובה אחרונה
          1
          • י.פל.י י.פל.

            קובץ ראשון, לוגיקת איתור ראשית:

            קרא בעיון את הקבצים "lib\migration\README.md", "lib\migration\CATEGORY_SYNC_PLAN.md".
            עברנו לספרייה מבוססת DB, ואני רוצה להחליף את לוגיקת האיתור מחיפוש בקבצים לחיפוש בטבלת "acronym".
            כדי שתוכל להריץ פקודות על הDB עצמו, התקנתי כלי sqlite, ושמתי את הDB בפרוייקט [seforim.db].
            ===
            אני רוצה לחדד את הבקשה שלי:
            כרגע, הנתונים נשלחים לtantivy, שבונה אינדקס בשם "ref_index" לאיתור. האינדקס נבנה מהקבצים ומהכותרות.
            כרגע, יש לנו בDB כבר את שמות הקבצים, יש גם את הכותרות בטבלאות משלהם, ובמקום הקובץ "lib\utils\text_manipulation.dart" שאחראי על ההחלפות, יש להשתמש בטבלה "acronym".
            ===
            ממכיון שאי מעוניין לתת למשתמשים אפשרות להכנסת ספרים לתוכנה, ללא הכנסה לDB. בגלל זה, יש צורך שtantivy ימשיך לאנדקס את "ref_index", אך הוא יאנדקס **אך  ורק** קבצים שלא הוכנסו לDB.
            צורת ביצוע:
            1) להגדיר לtantivy לאנדקס בref_index רק קבצים שלא נמצאים בDB.
            2) התחשבות בשמות קבצים: התוכנה כעת טוענת [לפני הפעלת מסך ספרייה "lib\library\view\library_browser.dart"] את שמות הספרים **גם** מהDB, **וגם** מהקבצים שאינם בDB. הקוד נמצא בXXXXX.
            3) את לוגיקת האיתור תוכל למצוא בקובץ לוגיקת חיפוש.txt, והעיקרון לא משתנה: שמות הקבצים שבDB נטענים מהטבלה..., שמות הקבצים שאינם בDB נטענים מ...
            4) ההחלפות וראשי התיבות: גם כאן: לספרים שנמצאים בDB יש להשתמש בטבלה "acronym", בעוד שספרים שאינם בDB יש להמשיך ולהשתמש ב"lib\utils\text_manipulation.dart".
            5) כותרות פנימיות: כותרות פנימיות של ספרים שנמצאים בDB יתקבלו מהטבלה הרלוונטית. כותרות של ספרים שאינם בDB, יתקבלו מהאינדקס של tantivy.
            
            חשוב: טבלת הacronym מספקת רק שמות ספרים: את הכותרות הפנימיות יש לקחת מטבלת הספר עצמו. האינדקס של טנטיבי 	מספק גם את שמות הקבצים, וגם את הכותרות שלהם!
            חשוב מאוד: כל המניפולציות שאנו מבצעים על הטקסט שהמשתמש מספק [באמצעות הקובץ text_manipulation.dart, או הבטלה acronym בDB], מבוצעות רק על שם הספר עצמו, ולא על הכותרות! הכותרות מתקבלות ללא מניפולציות כלל, מלבד חריג אחד: כשהמשתמש מקליד '.' או 'ע"א' = 'עמוד א', וכשהוא מקליד ':' או 'ע"א' = 'עמוד ב'.
            
            לסיכום, כשהמשתמש מחפש באיתור, התוכנה צריכה לפנות ל2 מקורות בבת אחת: הDB והקבצים שאינם בDB. לכל  מקור יש את מקום מידע שמות הספרים שלו, ההחלפות שלו, והכותרות הפנימיות של שמות הקבצים שלו.
            לאחר כל הקשת משתמש [כל תו שהוא מזין], התוכנה תריץ את הבקשות במקביל, ולאחר ביצוע המניפולציות השונות התוצאות יולחמו ויגיעו למשתמש כמידע מאוחד.
            

            קובץ שני, לוגיקת החיפוש:

            עקרון כללי
            המשתמש מקליד מחרוזת (למשל: בבא קמא פ: / בבא קמא פ ב), והקוד:
            מזהה קודם כל את שם הספר (רמת <h1>).
            רק אם יש מילים נוספות – יורדת לרמות הכותרות של אותו ספר (<h2>, אחר כך <h3>).
            תמיד מחזירה עד 15 תוצאות (אחרי כל הסינונים וההגבלות).
            מדורגת כך שתוצאות של ספרים יופיעו לפני תוצאות שמשלבות ספר+כותרת משנה.
            
            
            
            1. התאמה לשם ספר (רמת <h1>)
            1.1. מקור שם הספר
             שם הספר נקבע לפי הכותרת ברמת <h1> בקובץ (שם הספר הרשמי במערכת).
            1.2. מה נחשבת “התאמה לשם ספר”
            התאמה יכולה להיות:
            
            
            התאמה מלאה: כל המילים בשם הספר מופיעות כ־מילים שלמות בקלט (לא כחלק ממילה אחרת).
            
            
            התאמה חלקית: לפחות אחת ממילות שם הספר מופיעה כ־מילה שלמה בקלט, גם אם זו לא המילה הראשונה (למשל: קמא מתוך בבא קמא).
            התאמה חלקית נוספת: אם המשתמש כותב חלק משם הספר אפי' אם זה לא מילה שלמה, אבל דווקא אם זה תחילת השם של הספר ולא מילה שנייה.
            
            
            1.3. מה מחזירים בשלב הזה
            אם נמצאה התאמה (לפי מה שהוגדר לעיל) לשם ספר מסוים:
            מציגים ספר זה.
            
            בנוסף, מציגים גם ספרים אחרים שיש להם התאמה חלקית [כפי שהוגדר לעיל] (מילה אחת שלמה מתוך שתי מילים ויותר בשם הספר).
            תמיד ספר עם התאמה מלאה יוצג לפני ספר עם התאמה חלקית.
            
            אם יש רק התאמות חלקיות (אין אף ספר עם התאמה מלאה):
            מציגים את כל הספרים עם ההתאמה החלקית (כפוף למגבלת 15 תוצאות בסך־הכול).
            
            
            1.4. התנהגות ביחס לכותרות משנה
            ברגע שיש התאמה לשם ספר (מלאה או חלקית) בשלב הזה:
            
            לא מציגים בכלל כותרות משנה (רמות <h2>, <h3>) של אותו ספר בשלב של חיפוש שם הספר בלבד.
            
            כלומר: בשלב 1 תוצאות האיתור הן ספרים בלבד.
            
            2. איתור ספר + כותרת משנה (רמת <h2>)
            הכלל כאן נכנס לפעולה כאשר יש בקלט גם מילים שלא שייכות לשם הספר.
            2.1. מתי ניגשים לכותרות רמה 2
            אם יש התאמה מלאה לשם ספר ובקלט קיימות מילים  נוספות שלא שייכות לשם הספר.
            או:
            אם יש התאמה חלקית לשם הספר (כלומר: לפחות מילה אחת משם הספר), ואחריה בקלט מופיעה מילה נוספת שלא תואמת לשם הספר:
            גם כאן ניגשים לחיפוש בכותרות רמה 2.
            
            
            2.2. איפה מחפשים ברמת <h2>
            החיפוש בכותרות משנה רמה 2 נעשה רק בתוך אותו ספר שנבחר לפי התאמת שם הספר.
            
            
            התאמה לכותרת משנה:
            מספיק שתהיה התאמה של מילה אחת שלמה מתוך שם הכותרת, גם אם היא המילה השנייה או השלישית.
            שוב – רק התאמת מילה שלמה, לא חלקי מילים.
            
            
            2.3. תוצאות רמה 2 + דירוג מול ספר
            יכולות להיות כמה סוגי תוצאות ביחד:
            תוצאה של ספר בלבד (שם ספר מתאים).
            תוצאות של ספר + כותרת רמה 2 תואמת.
            
            הסדר בדירוג:
            
            תמיד ספרים קודם [אם יש התאמה מלאה], ורק אחריהם ספר+כותרת משנה.
            אם יש כותרת משנה לאותו ספר - לא יוצג הספר ללא הכותרת משנה.
            
            3. ספר + כותרת רמה 2 + מילה נוספת → כותרת רמה 3
            כאן מדובר על מצב שבו הקלט מכיל כבר:
            התאמה לשם ספר,
            התאמה לכותרת משנה רמה 2,
            ויש עוד מילה נוספת שלא נמצאה בכותרת רמה 2.
            
            
            3.1. תנאי כניסה לחיפוש רמה 3
            יש התאמה לשם הספר (מלאה/חלקית, לפי כללי סעיפים 1–2).
            יש התאמה לאחת מכותרות רמה 2 באותו ספר.
            נותרה מילה בקלט שלא נמצאה בשם הספר ולא בכותרת רמה 2.
            
            
            3.2. חיפוש ברמת <h3>
            מבצעים חיפוש בכותרות רמה 3 של אותו הספר, תחת אותה כותרת רמה 2 (או לפי המבנה ההיררכי שלך).
            התאמה שוב:
            מספיק מילה אחת שלמה מתוך כותרת רמה 3.
            גם אם היא לא המילה הראשונה.
            
            
            3.3. תוצאות רמה 3 + דירוג
            התוצאות ברמה 3 מצטרפות לשאר התוצאות (ספר בלבד, ספר+רמה 2).
            בדירוג הכללי:
            ספר בלבד [רק אם הוא תואם יותר לקלט המשתמש].
            אחריו ספר+רמה 2 [רק אם הוא תואם יותר לקלט המשתמש].
            אחריו ספר+רמה 3
            אם יש כותרת ברמה 3 לאותו ספר - לא יוצג הספר עצמו ולא הכותרת משנה שלו.
             (כל זה כפוף לגבול 15 התוצאות אחרי סינון).
            
            
            
            4. פרמטרים טכניים כלליים
            4.1. נרמול טקסט
            לפני כל החיפוש יש להריץ על הקלט ועל שמות הספרים/כותרות את הפונקציות הקיימות:
            הסרת ניקוד.
            הסרת טעמים.
            הסרת תווים מיוחדים [לא כולל רווחים].
            כך ההשוואה נעשית תמיד על טקסט "יבש".
            
            
            4.2. חיתוך למילים
            יש לפצל את הקלט למילים (tokens) לפי רווחים/סימני פיסוק.
            כללי ה"מילה שלמה" מתייחסים לטוקן שלם אחרי הפיצול.
            
            
            4.3. מגבלת כמות תוצאות
            מספר התוצאות שמוחזרות למשתמש לא יעלה על 15, אחרי כל הסינונים (כגון דילוג על כותרות שלא עומדות בכללים).
            אם יש יותר מ־15 התאמות, יש לבחור את ה־15 המדורגות ביותר לפי כללי הדירוג (ספרים קודם, התאמה מלאה לפני חלקית וכו').
            
            pcinfogmachP מנותק
            pcinfogmachP מנותק
            pcinfogmach
            כתב נערך לאחרונה על ידי
            #5

            הרב מזכה הרבים @י.פל.
            אנא אל תעלה לכאן הוראות או כל מיני קבצי תיכנון שהבינה מלאכותית יצרה לך. זה רק מבלבל.
            תפרט מה יש לך ואיזה פונקציונליות אתה רוצה.
            מה אתה יודע לעשות ומה לא?
            איפה אתה מצליח ואיפה אתה נתקע.
            בצורה תמציתית וברורה.
            זכור! שאלת חכם חצי תשובה!

            גמ"ח מידע מחשבים ואופיס

            י.פל.י תגובה 1 תגובה אחרונה
            2
            • pcinfogmachP pcinfogmach

              הרב מזכה הרבים @י.פל.
              אנא אל תעלה לכאן הוראות או כל מיני קבצי תיכנון שהבינה מלאכותית יצרה לך. זה רק מבלבל.
              תפרט מה יש לך ואיזה פונקציונליות אתה רוצה.
              מה אתה יודע לעשות ומה לא?
              איפה אתה מצליח ואיפה אתה נתקע.
              בצורה תמציתית וברורה.
              זכור! שאלת חכם חצי תשובה!

              י.פל.י מנותק
              י.פל.י מנותק
              י.פל.
              כתב נערך לאחרונה על ידי
              #6

              @pcinfogmach כתב באיתור מדוייק לתוכנה תורנית - עזרה באיפיון:

              אנא אל תעלה לכאן הוראות או כל מיני קבצי תיכנון שהבינה מלאכותית יצרה לך. זה רק מבלבל.

              אני יצרתי את הקבצים, זה מעליב.
              השקעתי בזה לא מעט מחשבה.
              את התמצית כתבתי בפוסט הראשון:

              כתב באיתור מדוייק לתוכנה תורנית - עזרה באיפיון:

              אצלנו העסק מורכב יותר, משום ש:

              יש את הDB [sqlite, אם זה משנה] בו נמצאים הנתונים, אבל יש גם את קבצי המשתמש.
              בDB הערכים מחולקים לשמות קבצים ולכותרות (שמות הקבצים בטבלה אחת, הכותרות הפנימיות - כל אחת בטבלת הספר). בקבצי המשתמש - מנוע החיפוש [tantivy, אם זה משנה]
              המניפולציות על הטקסט שהמשתמש מזין: יש טבלה בDB שאחראית על זה, וקובץ (בקוד) שאחראי על המניפולציות בקבצי המשתמש.

              והטקסט מסביר את המורכבות.

              תגובה 1 תגובה אחרונה
              1
              • dovidD מחובר
                dovidD מחובר
                dovid
                ניהול
                כתב נערך לאחרונה על ידי
                #7

                @י.פל. כתב באיתור מדוייק לתוכנה תורנית - עזרה באיפיון:

                @dovid כתב באיתור מדוייק לתוכנה תורנית - עזרה באיפיון:

                שמור אותו כUTF8

                זה ככה... אולי צריך עם BOM?

                אכן, הצדק עמך. צריך BOM (לא בהכרח - זה תלוי בי כבעל השרת, צריך להוסיף כותרת למקרה של קבצי טקסט).
                אבל הרי כתבת עיצוב של markdown, למה לא לכלול את הטקסט פה כהודעה רגילה?

                • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                י.פל.י תגובה 1 תגובה אחרונה
                0
                • dovidD dovid

                  @י.פל. כתב באיתור מדוייק לתוכנה תורנית - עזרה באיפיון:

                  @dovid כתב באיתור מדוייק לתוכנה תורנית - עזרה באיפיון:

                  שמור אותו כUTF8

                  זה ככה... אולי צריך עם BOM?

                  אכן, הצדק עמך. צריך BOM (לא בהכרח - זה תלוי בי כבעל השרת, צריך להוסיף כותרת למקרה של קבצי טקסט).
                  אבל הרי כתבת עיצוב של markdown, למה לא לכלול את הטקסט פה כהודעה רגילה?

                  י.פל.י מנותק
                  י.פל.י מנותק
                  י.פל.
                  כתב נערך לאחרונה על ידי
                  #8

                  @dovid כתב באיתור מדוייק לתוכנה תורנית - עזרה באיפיון:

                  אבל הרי כתבת עיצוב של markdown

                  לא כתבתי בעיצוב MD!
                  אם לא יחר אפך, אבקש ממך למחוק את ההודעות הלא רלוונטיות [גם שלי, עם הצילו"מ].
                  אני עדיין מקווה שיעזרו לי.

                  הבהרה

                  בעקבות דיון עם @pcinfogmach הבנתי שהובן ממני שיש לי בעיה ואני מבקש עזרה.
                  לא.
                  אני מבקש עזרה באיפיון. ניסיתי לאפיין כיצד צריכה להראות מערכת כזו. אני לא בטוח שהצלחתי.
                  קל פי אלף לנסח דרישה לפני שמתחילים עם הקוד, מאשר לשנות קוד מוכן.

                  לכן אני מתייעץ!

                  pcinfogmachP תגובה 1 תגובה אחרונה
                  0
                  • י.פל.י י.פל.

                    @dovid כתב באיתור מדוייק לתוכנה תורנית - עזרה באיפיון:

                    אבל הרי כתבת עיצוב של markdown

                    לא כתבתי בעיצוב MD!
                    אם לא יחר אפך, אבקש ממך למחוק את ההודעות הלא רלוונטיות [גם שלי, עם הצילו"מ].
                    אני עדיין מקווה שיעזרו לי.

                    הבהרה

                    בעקבות דיון עם @pcinfogmach הבנתי שהובן ממני שיש לי בעיה ואני מבקש עזרה.
                    לא.
                    אני מבקש עזרה באיפיון. ניסיתי לאפיין כיצד צריכה להראות מערכת כזו. אני לא בטוח שהצלחתי.
                    קל פי אלף לנסח דרישה לפני שמתחילים עם הקוד, מאשר לשנות קוד מוכן.

                    לכן אני מתייעץ!

                    pcinfogmachP מנותק
                    pcinfogmachP מנותק
                    pcinfogmach
                    כתב נערך לאחרונה על ידי pcinfogmach
                    #9

                    הרב @י.פל.
                    זה קצת ראש אחר פה בפורום מאשר מתמחים טופ אל דאגה עם קצת סבלנות תלמד איך לשאול ומה לשאול @dovid היקר לא כועס עליך הוא מנסה לכווין אותך.
                    לא צריך למחוק פוסטים
                    זה איך שתלמד להיות יותר מובן.
                    ואיך שאנחנו נלמד להבין אותך.
                    גם אני עברתי תהליך כזה פה בפורום אני חייב להגיד שהיה לי קשה מאוד בהתחלה.
                    אבל זה היה שווה!
                    כי למדתי איך להגדיר מה אני רוצה.
                    ועדיין לא תמיד השאלות שלי ברורות ודוד ומתשמשים אחרים עוזרים לי לחדד אותם כשצריך.

                    גמ"ח מידע מחשבים ואופיס

                    תגובה 1 תגובה אחרונה
                    2
                    תגובה
                    • תגובה כנושא
                    התחברו כדי לפרסם תגובה
                    • מהישן לחדש
                    • מהחדש לישן
                    • הכי הרבה הצבעות


                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

                    • התחברו או הירשמו כדי לחפש.
                    • פוסט ראשון
                      פוסט אחרון
                    0
                    • דף הבית
                    • קטגוריות
                    • פוסטים אחרונים
                    • משתמשים
                    • חיפוש
                    • חוקי הפורום