השוואה חכמה

רץ ברשת

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) יתקבלו בברכה
תודה.
 

arnonrgo

New member
תלוי מה ההגדרה של דומה

למשל אם ההגדרה היא של נשמע דומה אז אתה יכול להתבסס על אלגורתמים של SoundEx להריץ כמה וריאנטים ולקבוע את הציון לפי מספר האלגוריתמים שהכריזו דמיון (שים לב שצריך SoundEx לכל מילה בנפרד ולשקלל גם את זה) רצ"ב לינק למימוש בNET. http://www.codeproject.com/cs/algorithms/soundex.asp ארנון
 

רץ ברשת

New member
../images/Emo51.gif, שאלה :

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

swingy

New member
אולי משו כזה

אולי תנסה לחלק את זה, לדוג' אלגו' שבודק אות אחר אות ומשווה עם הstr האחר , תמנה את מספר האותיות, ולפי זה יתבסס אחוזי הדמיון לדוג אם יש 10 אותיות וכולן דומות אז 100אחוז ואם יש 8 דומות אז 80 וכו'. בהנחה שאתה מתכוון למשו פשוט ,מה עם case sensative ? , אני לא יודע עד כמה השקעת הדמיון..
 

arn0n

New member
יש אלגוריתמים כאלו לרוב

חפש בגוגל "EDIT DISTANCE" , "LEVENSHTEIN" ו-"WEIGHTED EDIT DISTANCE"
 
למעלה