השוואה בין 2 גרסאות של טקסטים

  • פותח הנושא noyil
  • פורסם בתאריך

noyil

New member
השוואה בין 2 גרסאות של טקסטים

אני צריך להשוות בין 2 גרסאות של פסקאות/משפטים/טקסטים, גרסה אחת של "לפני העריכה" וגרסה אחת של "אחרי העריכה". הסקריפט המצורף שרשמתי מפצל את שני המשפטים למערך של מילים, ואז בודק לגבי כל מילה מהמשפט הראשון, אם היא מופיעה באותו המיקום במשפט השני. אם המילה באמת מופיעה באותו המיקום, הוא רושם אותה כרגיל. אם המילה לא מופיעה באותו המיקום, הסקריפט בודק אם המילה מופיעה במיקום שלה +1 במשפט השני, אם זה נכון, הוא רושם את המילה שלפניה במשפט השני ומדגיש אותה בירוק (מה שמסמל שהיא מילה שהתווספה), לאחר מכן הוא רושם את המילה שאותה חיפש ומוסיף למיקום +1 (מכיוון שהתווספה מילה, כל המילים שאחריה ממוקמות מילה אחת מאוחר יותר) ואז ממשיך לרשום כרגיל את המילים שאחרי המילה שהתווספה. אחרי כל זה הסקריפט רושם את המשפט הראשון ומסמן באדום את המילים שנמחקו (אילו שלא קיימות באותו המיקום במשפט השני), באותה הדרך שהסברתי קודם. אולי ההסבר שרשמתי קצת מבלבל ואולי יהיה יותר פשוט להבין מהסתכלות על הקוד.. יש לי 3 בעיות שבגללן רשמתי את ההודעה הזאת, ניסיתי לחשוב על פתרון אבל לא מצאתי: 1. אם תוסיפו/תמחקו מילה או יותר בסוף המשפט, הסקריפט לא יעבוד טוב 2. אם תוסיפו/תמחקו 2 מילים או יותר בכל מקום במשפט, הסקריפט לא יעבוד טוב 3. אם תשנו מילה או יותר בכל מקום במשפט, הסקריפט לא יעבוד טוב פשוט תנסו לבצע את הפעולות האילו על המשפטים בקוד ותראו מה קורה כשעושים את זה. אשמח אם מישהו ימצא פתרון, noyil.
 

noyil

New member
ההודעה כבר באמצע העמוד השני

ויקיפדיה עשו משהו דומה למה שאני מנסה לעשות (השוואת גרסאות קודמות), אבל אין דרך לראות איך הם עשו את זה.. בחיפוש בגוגל (באנגלית) מצאתי הודעה אחת משנת 2003 באיזה פורום נידח שבה מישהו שואל לגבי זה, אף אחד לא הגיב לו.
 

BlackBamba

New member
אבל...

אתה רוצה לבדוק רק לפי החוקיות שכתבת?. כלומר אם מילים השתנו במקום+1 (ולצבוע בצבע אחד) ואז לבדוק אם מילים הוחסרו (ולצבוע בצבע אחר) לא את כל השינויים (כמו שעשו בויקיפדיה - ושם יש רק צבע אחד). או שלא הבנתי כוונתך...
 

noyil

New member
בעקרון

אני רוצה להציג לגולש בצורה ברורה את השינויים בין 2 גרסאות של טקסט, אולי אפילו להציג רק את החלקים ששונו (ואת המשפטים ש"מסביבם"). לא חשוב לי איך לעשות את זה, ואם מישהו יודע איך לעשות את זה בדרך אחרת ממה שרשמתי, אני אשמח לשמוע.
 

BlackBamba

New member
אפשר לגגל על סקריפטים כאלה...

שמבצעים השוואות.הנה משהו ישן, נקווה שעובד.
 

next25

New member
יש לך סקריפט מאוד מסובך..

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

noyil

New member
הסקריפט שלי באמת לא משהו

השיטה שהצעת אולי פחות מעמיסה (שזה טוב אם בודקים מאמר שלם), אבל היא לא עוזרת אם תשנה את המשפט, אם תמחק אותו מספר מילים שהוספת או אם תמחק משפט שלם ותוסיף משפט שלם. בתגובה למעלה העלו מסמך טוב, אני אנסה לקחת ממנו דוגמה.
 
למעלה