קוראים יקרים,
בבלוג זה, אדון בחתיכות הן תיאורטית והן מעשית בפייתון.
אז בואו נתחיל…
הערה: לצורך היישום, עדיף להשתמש ב-Python IDLE שכן הפלט הוא ציור של עץ שצץ בחלון נפרד.
סדר היום
- מה זה chunking?
- איפה משתמשים ב-chunking?
- סוגי chunking
- יישום chunking ב-Python
- תוצאות
מה זה chunking?
Chunking מוגדר כתהליך של עיבוד שפה טבעית המשמש לזיהוי חלקי דיבור וביטויים קצרים המצויים במשפט נתון.
נזכור את שיעורי הדקדוק האנגלי הישנים והטובים שלנו עוד בבית הספר, שים לב שיש שמונה חלקי דיבור, כלומר שם העצם, הפועל, שם התואר, התואר, מילת היחס, צירוף, כינוי וסימן ביניים. כמו כן, בהגדרה לעיל של chunking, ביטויים קצרים מתייחסים לביטויים שנוצרו על ידי הכללת כל אחד מחלקי הדיבור הללו.
לדוגמה, ניתן לבצע chunking כדי לזהות ובכך לקבץ ביטויי עצם או שמות עצם בלבד, שמות תואר או ביטויי תואר וכו'. שקול את המשפט שלהלן:
"אכלתי המבורגרים ומאפים לארוחת הבוקר."
במקרה זה, אם נרצה לקבץ או לחלק ביטויי עצם, נקבל "בורגרים", "מאפים" ו"צהריים" שהם שמות העצם או קבוצות העצם של המשפט.
איפה משתמשים ב-chunking?
למה שנרצה ללמוד משהו מבלי לדעת היכן הוא נמצא בשימוש נרחב?! התבוננות ביישומים הנדונים בחלק זה של הבלוג תעזור לך להישאר סקרן עד הסוף!
Chunking משמש כדי לקבל את הביטויים הנדרשים ממשפט נתון. עם זאת, ניתן להשתמש בתיוג POS רק כדי לזהות את חלקי הדיבור שכל מילה במשפט שייכת אליהם.
כאשר יש לנו המון תיאורים או שינויים סביב מילה מסוימת או הביטוי שמעניין אותנו, אנו משתמשים ב-chunking כדי לתפוס לבד את הביטוי הנדרש, תוך התעלמות מהשאר סביבו. לפיכך, chunking סולל דרך לקבץ את הביטויים הנדרשים ולא לכלול את כל המשתנים סביבם שאינם נחוצים לניתוח שלנו. לסיכום, החתיכה עוזרת לנו לחלץ את המילים החשובות לבד מתיאורים ארוכים. לפיכך, chunking הוא שלב בחילוץ מידע.
מעניין שתהליך זה של chunking ב-NLP מורחב ליישומים שונים אחרים; למשל, לקבץ פירות מקטגוריה ספציפית, נניח, פירות עשירים בחלבונים כקבוצה, פירות עשירים בויטמינים כקבוצה אחרת, וכן הלאה. חוץ מזה, ניתן להשתמש ב-chunking גם כדי לקבץ מכוניות דומות, למשל, מכוניות התומכות בגיר אוטומטי לקבוצה אחת ואחרות שתומכות בגיר ידני לחלק אחר וכן הלאה.
סוגי צ'אנקינג
ישנם, בגדול, שני סוגים של chunking:
- מתפרקים
- מתפרק
מחלקים:
כאן, אנחנו לא צוללים לעומק; במקום זאת, אנו שמחים רק עם סקירה כללית של המידע. זה רק עוזר לנו לקבל מושג קצר על הנתונים הנתונים.
חותכים:
בשונה מהסוג הקודם של chunking, chunking down עוזר לנו לקבל מידע מפורט.
לכן, אם אתה רק רוצה תובנה, שקול "לצמצם" אחרת העדיפו "לצמצם".
יישום chunking ב-Python
תארו לעצמכם מצב שבו אתם רוצים לחלץ את כל הפעלים מהטקסט הנתון לניתוח שלכם. לפיכך, במקרה זה, עלינו לשקול את החתיכה של ביטויי פועל. הסיבה לכך היא שהמטרה שלנו היא לחלץ את כל ביטויי הפועל מקטע הטקסט הנתון. החתיכה מתבצעת בעזרת ביטויים רגולריים.
אל תדאג אם זו הפעם הראשונה שאתה נתקל במונח "ביטויים רגילים". הטבלה למטה נמצאת כאן, לעזרתך:
|
|
|
|
|
|
|
|
|
|
|
|
הטבלה לעיל כוללת את הביטויים הרגולריים הנפוצים ביותר בשימוש. ביטויים רגולריים שימושיים מאוד בשורת הפקודה במיוחד בעת מחיקה, איתור, שינוי שמות או העברת קבצים.
בכל מקרה, ליישום זה, נשתמש רק ב-*. אל תהסס להסתכל בטבלה לעיל כדי להכיר את הסמל!
אנו נבצע chunking באמצעות nltk, ספריית ה-NLP הפופולרית ביותר. אז תחילה בוא נביא אותו.
יבוא nltk
הבה נשקול את הטקסט לדוגמה להלן שיצרתי בעצמי. אל תהסס להחליף את הטקסט למטה בכל טקסט לדוגמא שאתה אוהב ליישם chunking!
sample_text=""" ראמה הרג את ראוואנה כדי להציל את סיטה מלנקה. אגדת הרמאיאן היא האפוס ההודי הפופולרי ביותר. הרבה סרטים וסדרות כבר עשו צולם בכמה שפות כאן בהודו על בסיס הרמאיאנה. """
ברור שהנתונים צריכים להיות אסימון משפטי ואז סמל למילה לפני שנמשיך. אסימון אינו אלא תהליך של פירוק קטע הטקסט הנתון ליחידות קטנות יותר כגון משפטים, במקרה של אסימון משפטי ומילים, במקרה של אסימון מילים.
ואחריו טוקניזציה, תיוג POS(חלקי דיבור) מתבצע עבור כל מילה, שבו יזוהה חלקי הדיבור של כל מילה. כעת, אנו מעוניינים רק בעבודה חלק-דיבור ורוצים לחלץ אותו.
לפיכך, ציין את חלקי הדיבור המעניינים אותנו באמצעות הביטוי הרגולרי הנדרש כדלקמן:
VB: {}
tokenized=nltk.sent_tokenize(sample_text) עבור i in tokenized: words=nltk.word_tokenize(i) # print(words) tagged_words=nltk.pos_tag(words) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( chunkGram) chunked=chunkParser.parse(tagged_words) chunked.draw()
הביטוי הרגולרי (RE) מוקף בתוך סוגריים זוויתיים () אשר בתורם מוקפים בתוך סוגריים מסולסלים ({ ו-}).
הערה: ציין את ה-RE בהתאם ל-POS הנדרש
VB מייצג את הפועל POS. הנקודה העוקבת אחרי ה-VB פירושה להתאים לכל תו שאחרי VB. סימן השאלה אחרי הנקודה מציין שכל תו אחרי B חייב להופיע פעם אחת בלבד או לא חייב להופיע בכלל. עם זאת, מהטבלה שראינו בעבר, תו זה הוא אופציונלי. ניסחנו את הביטוי הרגולרי בצורה זו מכיוון שב-NLTK, ביטויי פועל כוללים את תגי ה-POS הבאים:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
לפיכך, ביטויי פועל יכולים להשתייך לכל אחד מה-POS לעיל. זו הסיבה שהביטוי הרגולרי ממוסגר כ-VB.? הכולל את כל הקטגוריות לעיל. חבילת RegexpParser משמשת כדי לבדוק אם קופה עומדת בדפוס הנדרש שלנו שהזכרנו באמצעות ה-RE בעבר.
ניתן לראות את כל הקוד באופן הבא:
ייבוא nltk nltk.download('averaged_perceptron_tagger') sample_text=""" ראמה הרג את ראוואנה כדי להציל את סיטה מלנקה. אגדת הרמאיאן היא האפוס ההודי הפופולרי ביותר. הרבה סרטים וסדרות כבר עשו צולם בכמה שפות כאן בהודו על בסיס הרמאיאנה. """ tokenized=nltk.sent_tokenize(sample_text) עבור i in tokenized: words=nltk.word_tokenize(i) # print(words) tagged_words=nltk.pos_tag(words) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( chunkGram) chunked=chunkParser.parse(tagged_words) chunked.draw()
תוצאות
לבסוף, נקבל צורת עץ של ה-POS של המילים יחד עם המילים שה-POS שלהן תואם ל-RE הנתון. את תמונת המצב של הפלט שהתקבל עבור הטקסט לדוגמה שהועבר על ידינו ניתן לראות באיורים לעיל.
שימו לב שהמילים שמספקות את ה-RE שלנו עבור ביטויי פועל בלבד מודגשות בבירור בפלט. לפיכך, חתיכה של ביטויי פועל בוצעה בהצלחה.
מקווה שמצאת את המאמר שלי שימושי.
תודה!
הפניות
3. רשימה מלאה של POS זמין ב-NLP
עליי
אני Nithyashree V, סטודנט שנה אחרונה BTech למדעי המחשב והנדסה. אני אוהב ללמוד טכנולוגיות מגניבות כאלה וליישם אותן בפועל, במיוחד להתבונן כיצד הן עוזרות לנו לפתור את הבעיות המאתגרות של החברה. תחומי העניין שלי כוללים בינה מלאכותית, מדעי נתונים ועיבוד שפה טבעית.
הנה פרופיל הלינקדאין שלי: הלינקדאין שלי
אתה יכול לקרוא מאמרים אחרים שלי על Analytics Vidhya מ כאן.
מקור: https://www.analyticsvidhya.com/blog/2021/10/what-is-chunking-in-natural-language-processing/
- "
- 7
- תעשיות
- אנליזה
- ניתוח
- יישומים
- סביב
- מאמר
- מאמרים
- בינה מלאכותית
- בלוג
- ארוחת בוקר
- מכוניות
- קוד
- מגיע
- Common
- מדעי מחשב
- נתונים
- מדע נתונים
- הנדסה
- אנגלית
- הוֹצָאָה
- ראשון
- firsttime
- טופס
- חופשי
- ציוד
- טוב
- לתפוס
- דקדוק
- קְבוּצָה
- כאן
- מודגש
- איך
- HTTPS
- רעיון
- לזהות
- כולל
- הודו
- מידע
- מיצוי מידע
- מוֹדִיעִין
- אינטרס
- IT
- שפה
- שפות
- לִלמוֹד
- למידה
- סִפְרִיָה
- קו
- לינקדין
- רשימה
- אהבה
- סימן
- להתאים
- מדיה
- הכי פופולארי
- סרטים
- כלומר
- שפה טבעית
- עיבוד שפה טבעית
- NLP
- אחר
- אחרים
- תבנית
- ביטויים
- פופולרי
- PoS
- להציג
- פּרוֹפִיל
- פיתון
- RE
- הקוראים
- REST
- בית ספר
- מדע
- קצר
- תמונת בזק
- So
- לפתור
- מסחרי
- להשאר
- סטודנט
- תמיכה
- טכנולוגיות
- זמן
- טוקניזציה
- us
- מה
- בתוך
- מילים
- שנה
- אפס