אסימון טקסט באמצעות NLTK בפיתון
אסימון טקסט הוא טכניקת עיבוד שפה טבעית (NLP) בסיסית וטכניקה אחת כזו היא אסימון. זהו תהליך של חלוקת טקסט לרכיבים קטנים יותר או אסימונים. אלה יכולים להיות:
- מילים: אני אוהב NLP → ['אני' 'אוהב' 'NLP']
- משפטים: אני אוהב NLP. פייתון מעולה. → ['אני אוהב NLP.' 'פייתון זה נהדר.']
עם הספרייה הפופולרית של Python NLTK (ערכת כלים של שפה טבעית) פיצול טקסט ליחידות משמעותיות הופך לפשוט וגם יעיל ביותר.
יישום בסיסי
בואו נראה את היישום של Tokenization באמצעות NLTK ב-Python
שלב 1: התקנה והגדרה
התקן את נְקוּדָה דגמי אסימונים הדרושים לאסימוני משפט ומילים.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
שלב 2: אסימון משפטים
sent_tokenize() מחלק מחרוזת לרשימה של משפטים המטפלים בסימני פיסוק וקיצורים.
Python from nltk.tokenize import sent_tokenize text = 'NLTK is a great NLP toolkit. It makes processing text easy!' sentences = sent_tokenize ( text ) print ( sentences )
תְפוּקָה:
['NLTK הוא ערכת כלים נהדרת של NLP.' 'זה מקל על עיבוד טקסט!']
שלב 3: אסימון מילים
- word_tokenize() מחלק משפט למילים וסימני פיסוק כאסימונים נפרדים.
- מטפל במספרי פיסוק התכווצויות ועוד.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
תְפוּקָה:
['Tokenization' 'זה' 'קל' 'עם' 'NLTK' ''s' 'word_tokenize' '.']
בוא נראה עוד כמה דוגמאות
1. WordPunctTokenizer
זֶה מפצל טקסט לתווים אלפביתיים ולא אלפביתיים
- מפריד את כל הרצפים של תווי מילים וסימני פיסוק לאסימונים.
- התכווצויות מפוצלות במיוחד (אל תהפוך ל-Don''t).
- פיצול אימיילים ל דואר אלקטרוני.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
תְפוּקָה:
['Don' ''' 't' 'פיצול' 'התכווצויות' '.' 'E' '-' 'mails' ':' 'hello' '@' 'example' '.' 'com' '!']
2. TreebankWordTokenizer
הוא מתאים לניתוח לשוני מטפל בסימני פיסוק והתכווצויות.
- מחקה טוקניזציה בסגנון Penn Treebank המשמשת בדרך כלל לניתוח לשוני NLP.
- מטפל במבנים דקדוקיים מסוימים באנגלית בצורה חכמה יותר.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
תְפוּקָה:
['הסתכל' 'על' 'NLTK' 'של' ה'אסימונים' '.']
3. Regex Tokenizer
זה מתאים אישית פיצול מבוסס דפוס.
- אסימון מבוסס על דפוס ביטוי רגולרי.
- w+ מתאים מילים ומספרים תוך השמטת סימני פיסוק לחלוטין.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
תְפוּקָה:
['כלל' 'מותאם אישית' 'שמור' 'רק' 'מילים' 'מספרים' 'הורד' 'סימני פיסוק']
NLTK מספק ערכת כלים שימושית וידידותית ליצירת טקסט ב-Python התומך במגוון צרכי טוקניזציה, החל מפיצול מילים ומשפטים בסיסיים ועד לתבניות מותאמות אישית מתקדמות.
צור חידון