איך לבחור שם לאתר אינטרנט?
ראשון, 30 באפריל 2006בחירת שם לאתר אינטרנט היא לא עניין פשוט. שם טוב הוא-
- קל לביטוי ו"מתגלגל על הלשון".
- קל לכתיבה ולאיות.
- שם שכתובת ה-.com שלו פנויה.
הדרישה האחרונה בעייתית במיוחד, כיוון שבימינו קשה למצוא מילה או ביטוי באנגלית שה-.com שלהם עוד לא נתפס. למעשה, שמות רבים נקנו ע"י חברות מסחריות רק כדי למכור אותם למרבה במחיר. למי שמתעקש לאמת זאת בעצמו, כדאי לבדוק האם כתובת מבוקשת פנויה בעזרת אתר ייעודי (ולא סתם לנסות לגלוש אליה בעזרת הדפדפן), כיוון שלעיתים קרובות הכתובת תפוסה אך אינה מצביעה על אתר פעיל.
הדרישה שלנו, אם כן, היא כזו: אנחנו רוצים שם קצר וקליט (5-6 אותיות לכל היותר) שישמע טבעי כמו מילה באנגלית, אך לא יהיה מילה אמיתית (או לפחות לא מילה פופולארית). דוגמאות לשמות מפורסמים כאלה: Nike, Google, Skype, Joga, Ubuntu, Baidu, Xanga.
ניסיתי להמציא בעצמי שמות כאלה, והגעתי למסקנה שזה לא פשוט בכלל (תזכרו שה-.com שלהם צריך עדיין להיות פנוי!). האם יש דרך אוטומטית (או חצי-אוטומטית) לעשות זאת?
לכאורה, היינו יכולים לייצר את כל המחרוזות בנות 5 או 6 אותיות, לעבור עליהן בעין ולמצוא שמות טובים. בפועל, מדובר בכמות לא סבירה בעליל - מיליונים רבים של שמות פוטנציאליים, שרובם זבל מוחלט (בסגנון "sjdffq").
פתרון אלגנטי מגיע מכיוון המתמטיקה: נבנה מודל סטטיסטי של השפה האנגלית, ו"נייצר" בעזרתו באקראי רצפי אותיות שמקיימים את התכונות הסטטיסטיות של מילים תקניות. מודל טוב אמור לחזות, למשל, שהמחרוזת "gfkklj" נשמעת פחות טוב מהמחרוזת "tripod" - וזאת מבלי לדעת שהאחרונה היא אכן מילה באנגלית.
השתמשתי במודל סטטיסטי פשוט של "שרשראות מרקוב", שהרעיון הבסיסי בו הוא כזה: נעבור על רשימת כל המילים באנגלית, ועבור כל רצף של שלושה תווים שמופיע במילה נרשום בצד מה האות הבאה שהופיעה אחריו. לדוגמא: עבור המילה "lucky" נרשום בצד שאחרי הרצף "luc" הופיעה האות "k", ואחרי הרצף "uck" הופיעה האות "y". בסופו של דבר, נקבל רשימה ארוכה של רצפים בני 3 אותיות, שעבור כל אחד מהם ידוע אילו אותיות יכולות להופיע אחריו (ובאיזו שכיחות).
לדוגמא, הנה הפלט המתקבל עבור הרצף "nik" (בסוגריים מספר הפעמים שהאות הופיעה לאחר הרצף):
nik –> a (2)
nik –> e (10)
nik –> i (24)
nik –> o (2)
nik –> s (13)
ז"א, לפי המודל הרצף "nikf" אינו סביר כלל (ואכן אינו נשמע טוב), ולעומתו הרצף "niki" סביר מאוד (ואכן נשמע לא רע בכלל).
בשלב זה, ניתן להשתמש במודל כדי לייצר רצפים שישמעו טוב, בכל אורך שנרצה. נגריל 3 אותיות התחלתיות, ובכל פעם נגריל אות בודדת נוספת לפי ההסתברויות שהמודל חוזה. לדוגמא, נניח שהתחלנו עם הרצף "ram". נוסיף את האות "s" (לפי המודל, יש לה סיכוי גבוה להופיע לאחר הרצף הזה) וקיבלנו "rams". נסתכל כעת על הרצף "ams", ונגלה שבסבירות טובה תופיע אחריו האות "h", וכך נמשיך עד לקבלת רצף באורך המבוקש. עבור 6 אותיות, הרצף שיתקבל בסופו של דבר הוא ramshi. וכמובן, ניתן לכתוב תוכנה שתבצע את כל התהליך בצורה אוטומטית לחלוטין.
הנה רשימה קצרה של "מילים" שיוצרו בדרך זו: robulo, spanti, seromi, orshir, ticolo, weeksa, kineti, ricato, jackke - אף אחת מהן אינה מילה תקנית באנגלית, אך כולן נשמעות כך ברמה זו או אחרת.
בשורה התחתונה, ניתן לייצר רשימה באורך סביר של מילים שכמעט כולן "נשמעות טוב". כעת נותר רק לבחור אחת מהן, ולקרוא בשמה לאתר המבוקש.