ترميز النص باستخدام 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() على تقسيم الجملة إلى كلمات وعلامات ترقيم كرموز مميزة منفصلة.
- يعالج تقلصات وأرقام علامات الترقيم وأكثر من ذلك.
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
هو - هي يقسم النص إلى أحرف أبجدية وغير أبجدية
- يفصل جميع تسلسلات أحرف الكلمات وعلامات الترقيم إلى رموز مميزة.
- وخاصة انقباضات الانقسام (لا تصبح لا).
- يقسم رسائل البريد الإلكتروني إلى رسائل بريد إلكتروني.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
الإخراج:
['لا'' '' 'لا'' 'تقسم' 'التقلصات' '.' 'E' '-' 'الرسائل الإلكترونية' ':' 'مرحبًا' '@' 'مثال' '.' 'كوم' '!']
2. تريبانك وورد توكينيزر
وهو مناسب للتحليل اللغوي الذي يعالج علامات الترقيم والاختصارات.
- يحاكي أسلوب الترميز الذي يستخدمه Penn Treebank والذي يشيع استخدامه في التحليل اللغوي للبرمجة اللغوية العصبية.
- يتعامل مع بعض الهياكل النحوية الإنجليزية بشكل أكثر ذكاءً.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
الإخراج:
['ألقِ' 'ألقي نظرة' 'على' 'NLTK' '''s' 'الرموز المميزة' '.']
3. رمز Regex
يقوم بتخصيص التقسيم على أساس النمط.
- الرموز المميزة بناءً على نمط التعبير العادي.
- يعمل 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 لدعم مجموعة من احتياجات الترميز بدءًا من تقسيم الكلمات والجمل الأساسية إلى الأنماط المخصصة المتقدمة.
إنشاء اختبار