ترميز النص باستخدام NLTK في بيثون

يُعد ترميز النص أحد الأساليب الأساسية لمعالجة اللغات الطبيعية (NLP) وإحدى هذه التقنيات هي الترميز.  إنها عملية تقسيم النص إلى مكونات أو رموز أصغر. يمكن أن تكون هذه:

  • الكلمات: أنا أحب البرمجة اللغوية العصبية → ['أنا' 'أحب' 'البرمجة اللغوية العصبية']
  • الجمل: أنا أحب البرمجة اللغوية العصبية. بايثون عظيمة. → ['أنا أحب البرمجة اللغوية العصبية.' "بايثون رائعة."]

مع مكتبة بايثون الشعبية  نلتك (مجموعة أدوات اللغة الطبيعية) يصبح تقسيم النص إلى وحدات ذات معنى أمرًا بسيطًا وفعالاً للغاية.

التنفيذ الأساسي

دعونا نرى تنفيذ الترميز باستخدام NLTK في بايثون

الخطوة 1: التثبيت والإعداد

تثبيت نقطة نماذج الرموز اللازمة لترميز الجملة والكلمة.

Python
   !  pip   install   nltk   import   nltk   nltk  .  download  (  'punkt'  )   

الخطوة 2: ترميز الجمل

تقسم الدالة send_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 عبارة عن مجموعة أدوات رائعة للبرمجة اللغوية العصبية.' "إنه يجعل معالجة النص سهلة!"]

الخطوة 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  )   

الإخراج:

['الترميز' 'أمر' 'سهل' 'مع' 'NLTK' ''s' 'word_tokenize' '.']

دعونا نرى بعض الأمثلة أكثر

1. WordPunctTokenizer

هو - هي يقسم النص إلى أحرف أبجدية وغير أبجدية

  • يفصل جميع تسلسلات أحرف الكلمات وعلامات الترقيم إلى رموز مميزة.
  • وخاصة انقباضات الانقسام (لا تصبح لا).
  • يقسم رسائل البريد الإلكتروني إلى رسائل بريد إلكتروني.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

الإخراج:

['لا'' '' 'لا'' 'تقسم' 'التقلصات' '.' 'E' '-' 'الرسائل الإلكترونية' ':' 'مرحبًا' '@' 'مثال' '.' 'كوم' '!']

2. تريبانك وورد توكينيزر

وهو مناسب للتحليل اللغوي الذي يعالج علامات الترقيم والاختصارات.

  • يحاكي أسلوب الترميز الذي يستخدمه Penn Treebank والذي يشيع استخدامه في التحليل اللغوي للبرمجة اللغوية العصبية.
  • يتعامل مع بعض الهياكل النحوية الإنجليزية بشكل أكثر ذكاءً.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

الإخراج:

['ألقِ' 'ألقي نظرة' 'على' 'NLTK' '''s' 'الرموز المميزة' '.']

3. رمز Regex

يقوم بتخصيص التقسيم على أساس النمط.

  • الرموز المميزة بناءً على نمط التعبير العادي.
  • يعمل 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 لدعم مجموعة من احتياجات الترميز بدءًا من تقسيم الكلمات والجمل الأساسية إلى الأنماط المخصصة المتقدمة.

إنشاء اختبار