השוואה חכמה

רץ ברשת

New member
../images/Emo41.gif השוואה חכמה

בעקרון הכתיבה תהיה בדוט נט (#C), אבל השאלה היא בעיקרה אלגוריתמית : לצורך ההפשטה, יש לי 2 משתני String באנגלית, כל אחד מילה אחת או יותר, אני מעוניין להפעיל אלגוריתם שיחזיר לי כתשובה עד כמה דומה התוכן 2 המשתנים הללו למשל,
str1 = "Barbara Bush", str2= ""Barbara Bush" str3 = "AA AA" str4=" BBBB B" str5 = "alexander mokdon" str6 = "alaxendar macdon"​
עבור הזוג הראשון יש התאמה של 100% עבור הזוג השני יש התאמה של 0% ועבור הזוג השלישי יש התאמה של משהוא באמצע, סדר גודל של 80% להערכתי. כלומר, מדובר באלגוריתם המנסה "להבין" עד כמה קרובים 2 מילים, ולהעריך זאת באחוזי התאמה. מה שעולה לי לראש זה ניתוח מורפולוגי ו/או אלגוריתם גנטי. אני מכיר את הנושאים רק ברמת הכותרת, לכן אשמח לקבל מידע נוסף כציד לממש זאת בצורות הנ"ל, או בכל צורה אחרת שאתם מכירים שעונה על הצורך. כמובן שגם לינקים למימושים של אנשים אחרים בנושא (ב #C) יתקבלו בברכה
תודה.
 

טרמפיסט

New member
הצעה

השוואה כזו לדעתי יכולה להתבצע ע"י שני שלבים הניתנים להכלאה לאחד: * השמטת אותיות הניקוד * בניית זהויות פונטיות לאחר השמטת האותיות כבר ברור הרבה יותר שהמחרוזות דומות (אם כי לא זהות). בשלב השני נחפש זהויות פונטיות: c=k=q, וכדו'. לביצוע השלב הראשון ניתן באמת להעלים את כל אותיות הניקוד (אך בשיטה הזו alexander יהיה זהה ל-elexendar), או להכניס גם את אותיות הניקוד לטבלת זהויות פונטיות: a=e, ee=i, ea=i וכדו'. טבלה כזו יכולה להיות ממומשת הן ע"י מערכים מתאימים והן ע"י החלפת אותיות מסויימות במקבילותיהן באופן מיידי: אם החלטנו ש: i=ee=ea אז בכל פעם שנתקל ב-ee או ב-ea נחליפו ישר ל-i ובסופו של תהליך המרת הזהויות כולן נוכל להשוות ממש אות באות. כמובן שיש לקחת הרבה מאוד מקרים בחשבון, כך שהשוואה וודאית אינה מובטחת (חשוב על ce=s, או מקרים בהם a=u ולאו דווקא a=e, ויש עוד הרבה). בהצלחה.
 
למעלה