השוואה חכמה

רץ ברשת

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

זה דיי פשוט, תעברי אות אות ותבדקי כמה שוות ומה סך כל האותיות. תכפילי את מספר האותיות החוזרות ב100 ותחלקי בכלל האותיות. הכל בהנחה שמספר האותיות בכל המחרוזות שווה.
string a, b; int monA = 0, monB = 0; a = Console.ReadLine(); while (!(a.Equals("Y"))) { b = Console.ReadLine(); if (a.Length == b.Length) { for (int i = 0; i < a.Length; i++) { if (a.Equals(b)) monA++; monB++; } Console.WriteLine((monA * 100 / monB) + " Present Match"); } else Console.WriteLine("No Match"); a = Console.ReadLine(); monA = 0; monB = 0; }
 

רץ ברשת

New member
תודה, אבל זה לא כזה פשוט...

לא מדובר במחרוזות שחייבות להיות באותו אורך, וגם בדיקה "יבשה" של אותיות היא לא מדוייקת, צריך להכניס אלמנט של "הבנת הטקסט"..
 
מה הכוונה הבת הטקסט?

אני לא מכיר דרך בה תוכלי ללמד את המחשב להבין מה הטקסט אומר. לגבי מחרוזות שונות באורכן ניתן לעשות שהלולאה תלך עד האורך הקטן ביותר כך שאם לדוגמא יש את הלולאות: "אבג" ו"אבגד" אז אורך הלולאה יהיה 3 ולא 4. אם תוכלי להסביר את אלמנט הבנת הטקסט יהיה יותר פשוט לענות.
 

TerminalFrost

New member
חשבתי שוב והגעתי למסקנה שאתה מחפש SOUNDEX

ולזה יש הרבה מימושים תוכל גם למצוא מידע בויקיפדה או סתם בגוגל תחת "soundex algorithm"
 

רץ ברשת

New member
כנראה ../images/Emo13.gif ../images/Emo51.gif, אגב, הבנתי שיש שיפור ל

SoundEx, אלגוריתם שנקרא MetaPhone..
 
למעלה