תוכנית פעולה ליצירת חפיסות מפרוייקט „קומון ווייס”

זהו דף מהאתר מילים דיגיטליות.
חזרה אל: הפקת חפיסות באופן אוטומטי.
תאריך פרסום: 12021-04-25 (HE)
תצוגה: 
  • 🦉 💡
  • 📖 🎨
באיזו לשון להשתמש?
את / אתה / באקראי
תוכן עניינים:

Common Voice הוא אחד מהמיזמים שמראים בבירור את הגדוּלה של קוד פתוח, תוכנה חופשית, תוכן חופשי ושיתוף פעולה וולנטרי בין א·נשים מרקעים שונים כדי להרבות טוב בעולם. בגדול המטרה שלו היא כזאת: ליצור מאגר חופשי גדול של הקלטות של משפטים במגוון שפות, כדי לאמן עליו מנגנוני לימוד מכונה בתחום של זיהוי קולי. חלק מהיופי של מיזמים חופשיים שזמינים לכולן·ם, משוחררים תחת רשיונות פתוחים, הוא שנוצרים להם שימושים שונים מהשימוש המקורי שיועד להם. אם במקור המטרה היתה ליצור dataset שמיועד לאמן מחשבים לזהות דיבור, אנחנו נשתמש בו כדי לאמן א·נשים להבין שפה על ידי הפקת כרטיסי לימוד לאנקי.

מה היתרונות של השימוש במאגר של Common Voice?

מה החסרונות?

לסיכום, גם אם הוא לא מושלם, מדובר במאגר חשוב שיכול להועיל מאוד ללומדות·ים, במיוחד בשפות שחומרי לימוד עבורן פחות זמינים.

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

המטרה שלי היא לבנות חפיסות כמעט לכל השפות במאגר, גם כאלה שאני לא לומד, לרווחת הכלל, כמו שעשיתי עם טטואבה.

נרצה לעשות אוטומטיזציה לכמה שיותר מהתהליך. יש 60 שפות, מה שאומר שאם נשקיע חמש דקות של עבודה ידנית פר שפה, נצטרך לבזבז חמש שעות רק על הצדדים הידניים.

1. רשימת השפות והורדה

כדי לדעת מראש איזה שפות נרצה לעבד ומה הקודים שלהם בשיטת ISO 639-1‎, שהמיזם משתמש בה, נוכל להשתמש בקובץ ה־json כאן.

ננקה את הקלט בעזרת עורך טקסט או החלפה אוטומטית עם sed ונקבל רשימה של קודים, קוד לשורה.

בשלב הזה יכול מאוד להיות שנרצה להסיר מהרשימה שפות שקל להשיג חומרי לימוד עבורן ושהקובץ שלהן גדול מדי להורדה ועיבוד. אנגלית, אני מסתכל עליך, מה זה ה־56 ג׳יגה האלה? גם לשפות אחרות, כמו גרמנית, ספרדית וצרפתית, יש קבצי ענק ולא חסרים חומרים קיימים ללימודן.

את ההורדה עצמה נצטרך לעשות ידנית. אמנם אפשר לרמות את האתר עם MechanicalSoup, אבל הטרחה שבלכתוב סקריפט בשביל זה מול להוריד אחד־אחד כמה עשרות קבצים לא שווה את זה. הסיבה היא שהאתר לא נותן פשוט להוריד את הקבצים לפי כתובת (ואז היינו יכולות·ים להריץ wget על הכל) אלא כולל מחרוזת אותנטיפיקציה פר הורדה.

עכשיו נפרוש את כל הקבצים. את זה כבר נוכל לעשות באופן אוטומטי עם לולאת for ב־shell.

2. עיבוד והפקה

הקובץ שנרצה לעבוד איתו הוא validated.tsv, שכולל הקלטות שעברו אישור של הקהילה: שני 👍🏼 לפחות ולא יותר משני 👎🏼. יכול להיות שיש קבצים טובים שלא זכו לזה, אבל אנחנו עובדות·ים כאן עם עודף הקלטות, לא עם חוסר.י

העמודה הראשונה לא שימושית לנו, ונוכל להסיר אותה בעזרת awk. נריץ סקריפט פייתון על הקובץ ונעזר בספריה csv כדי לפענח אותו. מה שנרצה לעשות עכשיו הוא לעבור הקובץ ועבור לבחור הקלטה או שתיים (או יותר, למרות שזה נראה לי לא שימושי) שיש להן הכי הרבה הצבעות חיוביות והכי פחות שליליות (אפשר לחסר את השליליות מהחיוביות). אם יש כמה שורות מועמדות שקיבלו את אותו הציון, נבחר באקראי.

בעזרת genanki נפיק את החפיסה.

השדות בכרטיס יהיו:

לכל רשומה יהיו שני כרטיסים: אחד להבנת הנקרא ואחד להבנת הנשמע. פשוט ואפקטיבי.

3. העלאה ל־AnkiWeb

כאן אני חושש שאין ברירה אלא לייבא את קבצי ה־apkg ידנית ולשתף אותם ידנית ב־AnkiWeb. התיאור יהיה עם העתק-הדבק, בהתאמת שם השפה, ויכלול:

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