אסימון טקסט באמצעות 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() מחלק משפט למילים וסימני פיסוק כאסימונים נפרדים.
  • מטפל במספרי פיסוק התכווצויות ועוד.
Python
   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).
  • פיצול אימיילים ל דואר אלקטרוני.
Python
   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.
  • מטפל במבנים דקדוקיים מסוימים באנגלית בצורה חכמה יותר.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

תְפוּקָה:

['הסתכל' 'על' 'NLTK' 'של' ה'אסימונים' '.']

3. Regex Tokenizer

זה מתאים אישית פיצול מבוסס דפוס.

  • אסימון מבוסס על דפוס ביטוי רגולרי.
  • w+ מתאים מילים ומספרים תוך השמטת סימני פיסוק לחלוטין.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

תְפוּקָה:

['כלל' 'מותאם אישית' 'שמור' 'רק' 'מילים' 'מספרים' 'הורד' 'סימני פיסוק']

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

צור חידון