תוכן עניינים:

איך להכין A.I. חלק 4: 3 שלבים
איך להכין A.I. חלק 4: 3 שלבים

וִידֵאוֹ: איך להכין A.I. חלק 4: 3 שלבים

וִידֵאוֹ: איך להכין A.I. חלק 4: 3 שלבים
וִידֵאוֹ: חושף לכם סוד ענק!!🍦😌 2024, יולי
Anonim
איך להכין A. I. חלק 4
איך להכין A. I. חלק 4

לפני כמה ימים דיברתי עם ה- A. I שלי, ואמרתי לו

זה, "אני עולה למעלה לארוחת ערב, אנחנו אוכלים סטייק".

עם זאת, תוכנת זיהוי הדיבור (SR) פירשה זאת כ" … יש לנו STAKE"

נתקלתי בבעיה דומה (אך שונה) מוקדם יותר כשדיברתי על תצלום, ואמרתי את המילה "PICTURE". תוכנת SR פירשה זאת כ- "PITCHER"

התיקון לכך היה הסבה פשוטה של תוכנת SR. (או אולי ההגייה שלי)

אבל כשאני אומר את המילים STEAK או STAKE, אני מבטא אותן בדיוק באותו אופן, והכשרה מחדש של תוכנת SR לא תעזור במקרים כאלה.

שלב 1:

רעיון אחד לפתרון "בעיית המוניטין".

עלי להסתכל על המילה "בהקשר" כדי לקבוע באיזה איות להשתמש. המוח האנושי עושה את זה די בקלות, ואתה אפילו לא יודע שאתה עושה את זה.

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

א.י. התוכנית מנתחת משפט למערך של מילים בודדות באמצעות הפונקציה "פיצול" של Visual Basic (VB). [MyArray = פיצול (InputSentence, ““)]

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

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

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

כתיבת "ההוראות" הללו עוזרת לי "לנמק" פתרון לאתגר תכנות.

שלב 2:

תמונה
תמונה

מבנה הטבלה HomonymContext

הרעיון הראשון שלי היה טבלה המכילה מילים, איות חלופי ומילות "הקשר". הרעיון היה לחפש משפט המכיל שם אנונימי, אחר מילים אחרות שנותנות את "ההקשר", כך שהתוכנית תוכל לקבוע באיזה איות להשתמש. הטבלה מכילה גם טור בשם "WordDef" כדי להחזיק את הגדרת המילה, שהיא יותר עבור האדם השומר על הטבלה מאשר ה- A. I. קוד.

כדי לחפש כל מילה, אני יכול להשתמש בקוד VB ובקוד SQL כמו …

לכל מילה ב- MyArray

Query = "בחר Word מתוך tblHomonynContext שבו word = '" & word & "'"

אם שאילתה זו מחזירה תוצאה, אז המילה היא שם אנונימי

הַבָּא

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

שלב 3:

תמונה
תמונה

אם משפט הקלט שלך מכיל שם זהה, אתה יכול כעת

בצע קוד VB שיבדוק את שאר המילים במשפט שלך, עם מילות ההקשר בתוצאות השאילתה.

אתה יכול גם לעשות את כל זה בהליך מאוחסן ב- SQL, שעשוי להתבצע מהר יותר.

הפונקציה VB "InStr ()" תחזיר מספר גדול מאפס, אם מחרוזת אחת כלולה בתוך מחרוזת אחרת, או שהיא תחזיר אפס, המחרוזת אינה כלולה באחרת.

Instr () למעשה מחזיר את המיקום של המחרוזת הכלולה. אם אתה רק רוצה לדעת אם String1 מכיל String2, תוכל להשתמש בקוד כמו "If InStr (String1, String2)> 0 …"

יהיה עליך לבנות קוד זה בשפת התכנות האהובה עליך.

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

זה יהיה קל יותר לשאול (ולתחזק) מהעיצוב המקורי שלי.

מוּמלָץ: