تُعد معالجة اللغة الطبيعية جانبًا من جوانب التعلم الآلي التي تتيح لك معالجة الكلمات المكتوبة إلى لغة صديقة للآلة. تصبح هذه النصوص قابلة للتعديل بعد ذلك ، ويمكنك تشغيل خوارزميات حسابية عليها كما تريد.
يبدو المنطق وراء هذه التكنولوجيا الجذابة معقدًا ولكنه ليس كذلك. وحتى الآن ، مع فهم قوي لبرمجة Python الأساسية ، يمكنك إنشاء معالج كلمات DIY جديد باستخدام مجموعة أدوات اللغة الطبيعية (NLTK).
إليك كيفية بدء استخدام لغة البرمجة اللغوية العصبية (NLTK) في Python.
ما هو NLTK وكيف يعمل؟
يتميز NLTK المكتوب باستخدام Python بمجموعة متنوعة من وظائف معالجة السلاسل. إنها مكتبة لغة طبيعية متعددة الاستخدامات مع مستودع نماذج واسع لتطبيقات اللغات الطبيعية المختلفة.
باستخدام NLTK ، يمكنك معالجة النصوص الأولية واستخراج ميزات مفيدة منها. كما يقدم نماذج لتحليل النص ، وقواعد نحوية قائمة على الميزات ، وموارد معجمية غنية لبناء نموذج لغوي كامل.
كيفية إعداد NLTK
أولاً ، قم بإنشاء مجلد جذر للمشروع في أي مكان على جهاز الكمبيوتر الخاص بك. لبدء استخدام مكتبة NLTK ، افتح الجهاز الطرفي على المجلد الجذر الذي أنشأته سابقًا و خلق بيئة افتراضية.
بعد ذلك ، قم بتثبيت مجموعة أدوات اللغة الطبيعية في هذه البيئة باستخدام نقطة:
نقطة تثبيت nltk
ومع ذلك ، يتميز NLTK بمجموعة متنوعة من مجموعات البيانات التي تعمل كأساس لنماذج اللغة الطبيعية الجديدة. للوصول إليها ، تحتاج إلى تشغيل أداة تنزيل البيانات المدمجة NLTK.
لذلك ، بمجرد تثبيت NLTK بنجاح ، افتح ملف Python الخاص بك باستخدام أي محرر تعليمات برمجية.
ثم قم باستيراد ملف nltk الوحدة النمطية وقم بإنشاء برنامج تنزيل البيانات باستخدام الكود التالي:
نقطة تثبيت nltk
nltk.download ()
يؤدي تشغيل الكود أعلاه عبر الجهاز إلى ظهور واجهة مستخدم رسومية لاختيار حزم البيانات وتنزيلها. هنا ، ستحتاج إلى اختيار حزمة والنقر فوق تحميل زر للحصول عليه.
أي حزمة بيانات تقوم بتنزيلها تنتقل إلى الدليل المحدد المكتوب في ملف تحميل الدليل حقل. يمكنك تغيير هذا إذا أردت. لكن حاول الحفاظ على الموقع الافتراضي عند هذا المستوى.
متعلق ب: أفضل برامج تحرير الأكواد المجانية لكتابة تطبيقك الأول
ملحوظة: تُلحق حزم البيانات متغيرات النظام افتراضيًا. لذلك ، يمكنك الاستمرار في استخدامها للمشاريع اللاحقة بغض النظر عن بيئة Python التي تستخدمها.
كيفية استخدام الرموز المميزة لـ NLTK
في النهاية ، يقدم NLTK نماذج رمزية مدربة للكلمات والجمل. باستخدام هذه الأدوات ، يمكنك إنشاء قائمة كلمات من جملة. أو تحويل فقرة إلى مجموعة جمل معقولة.
فيما يلي مثال على كيفية استخدام NLTK word_tokenizer:
استيراد nltk
من nltk.tokenize استيراد word_tokenize
word = "هذا مثال للنص"
tokenWord = word_tokenizer (كلمة)
طباعة (كلمة رمزية)
انتاج:
['This'، 'is'، 'an'، 'example'، 'text']
يستخدم NLTK أيضًا رمزًا مميزًا للجملة مُدرَّب مسبقًا يسمى برنامج PunktSentenceTokenizer. إنه يعمل عن طريق تقسيم فقرة إلى قائمة جمل.
دعونا نرى كيف يعمل هذا مع فقرة من جملتين:
استيراد nltk
من nltk.tokenize استيراد word_tokenize ، PunktSentenceTokenizer
الجملة = "هذا مثال على النص. هذا برنامج تعليمي لـ NLTK "
الرمز المميز = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (جملة)
طباعة (tokenized_sentence)
انتاج:
['هذا مثال للنص.'، 'هذا برنامج تعليمي لـ NLTK']
يمكنك إضافة رمز مميز لكل جملة في المصفوفة التي تم إنشاؤها من الكود أعلاه باستخدام word_tokenizer و بايثون للحلقة.
أمثلة على كيفية استخدام NLTK
لذلك بينما لا يمكننا إثبات جميع حالات الاستخدام الممكنة لـ NLTK ، إليك بعض الأمثلة عن كيفية البدء في استخدامها لحل مشكلات الحياة الواقعية.
احصل على تعريفات الكلمات وأجزاء الكلام الخاصة بها
يتميز NLTK بنماذج لتحديد أجزاء الكلام ، والحصول على دلالات مفصلة ، والاستخدام السياقي المحتمل للكلمات المختلفة.
يمكنك استعمال ال wordnet نموذج لتوليد متغيرات للنص. ثم حدد معناها وجزء من الكلام.
على سبيل المثال ، دعنا نتحقق من المتغيرات المحتملة لـ "Monkey:"
استيراد nltk
من nltk.corpus استيراد wordnet كما wn
طباعة (wn.synsets ("قرد"))
انتاج:
[Synset ('monkey.n.01') ، Synset ('imp.n.02') ، Synset ('tamper.v.01') ، Synset ('putter.v.02')]
ينتج عن الكود أعلاه بدائل محتملة للكلمات أو صيغ وأجزاء من الكلام لـ "Monkey".
تحقق الآن من معنى "القرد" باستخدام امتداد تعريف طريقة:
القرد = wn.synset ('monkey.n.01'). تعريف ()
انتاج:
أي من الرئيسيات المختلفة طويلة الذيل (باستثناء الكائنات الأولية)
يمكنك استبدال السلسلة الموجودة في الأقواس ببدائل أخرى تم إنشاؤها لمعرفة ما هي مخرجات NLTK.
ال pos_tag النموذج ، ومع ذلك ، يحدد أجزاء الكلام من الكلمة. يمكنك استخدام هذا مع word_tokenizer أو PunktSentenceTokenizer () إذا كنت تتعامل مع فقرات أطول.
إليك كيف يعمل ذلك:
استيراد nltk
من nltk.tokenize استيراد word_tokenize ، PunktSentenceTokenizer
word = "هذا مثال على نص. هذا برنامج تعليمي عن NLTK "
الرمز المميز = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (كلمة)
بالنسبة لي في tokenized_sentence:
tokenWordArray = word_tokenize (i)
partsOfSpeech = nltk.pos_tag (tokenWordArray)
طباعة (أجزاء الكلام)
انتاج:
[('This'، 'DT')، ('is'، 'VBZ')، ('an'، 'DT')، ('example'، 'NN')، ('text'، 'NN') ، ('.'، '.')]
[('This'، 'DT')، ('is'، 'VBZ')، ('a'، 'DT')، ('البرنامج التعليمي'، 'JJ')، ('on'، 'IN') ، ("NLTK"، "NNP")]
يقوم الكود أعلاه بإقران كل كلمة مرمزة بعلامة الكلام الخاصة بها في مجموعة. يمكنك التحقق من معنى هذه العلامات على بن تريبانك.
للحصول على نتيجة أوضح ، يمكنك إزالة الفترات في الإخراج باستخدام يحل محل() طريقة:
بالنسبة لي في tokenized_sentence:
tokenWordArray = word_tokenize (i.replace ('.'، ''))
partsOfSpeech = nltk.pos_tag (tokenWordArray)
طباعة (أجزاء الكلام)
إخراج أنظف:
[('This'، 'DT')، ('is'، 'VBZ')، ('an'، 'DT')، ('example'، 'NN')، ('text'، 'NN') ]
[('This'، 'DT')، ('is'، 'VBZ')، ('a'، 'DT')، ('البرنامج التعليمي'، 'JJ')، ('on'، 'IN') ، ("NLTK"، "NNP")]
تصور اتجاهات الميزة باستخدام مؤامرة NLTK
غالبًا ما يكون استخراج الميزات من النصوص الأولية مملاً ويستغرق وقتًا طويلاً. ولكن يمكنك عرض أقوى محددات الميزات في نص باستخدام مخطط اتجاه توزيع تردد NLTK.
NLTK ، ومع ذلك ، يتزامن مع matplotlib. يمكنك الاستفادة من هذا لعرض اتجاه معين في بياناتك.
الكود أدناه ، على سبيل المثال ، يقارن مجموعة من الكلمات الإيجابية والسلبية في مخطط التوزيع باستخدام آخر أبجديتين:
استيراد nltk
من استيراد nltk ConditionalFreqDist
قوائم الكلمات السلبية والإيجابية:
السلبيات = [
"غير طبيعي" ، "يلغي" ، "بغيض" ،
بغيض ، بغيض ، بغيض
]
ايجابيات = [
"كثرة" ، "تكثر" ، "وفرة" ،
"وفيرة" ، "يمكن الوصول إليها" ، "يمكن الوصول إليها"
]
# قسّم العناصر في كل مجموعة إلى أزواج tupple معنونة
# ودمج كلا المصفوفتين:
pos_negData = ([("سلبي"، neg) لسلب السلبيات] + [("إيجابي" ، موضع) للإيجابيات])
# استخرج آخر حرفين أبجديين من المصفوفة الناتجة:
f = ((pos، i [-2:]،) لـ (pos، i) في pos_negData)
# قم بإنشاء مخطط توزيع لهذه الحروف الهجائية
cfd = ConditionalFreqDist (f)
cfd.plot ()
يبدو مخطط التوزيع الأبجدي كما يلي:
بالنظر عن كثب إلى الرسم البياني ، الكلمات التي تنتهي بـ م, س, جنيه, اختصار الثاني، و NT لديهم احتمالية أعلى لكونها نصوصًا إيجابية. لكن تلك التي تنتهي ب آل, لاي, تشغيل، و الشركة المصرية للاتصالات هي كلمات سلبية على الأرجح.
ملحوظة: على الرغم من أننا استخدمنا البيانات التي تم إنشاؤها ذاتيًا هنا ، إلا أنه يمكنك الوصول إلى بعض مجموعات البيانات المضمنة في NLTK باستخدام قارئ Corpus الخاص بها عن طريق الاتصال بها من جسم فئة من nltk. قد ترغب في إلقاء نظرة على ملف وثائق حزمة corpus لنرى كيف يمكنك استخدامه.
مع ظهور تقنيات مثل Alexa ، واكتشاف البريد العشوائي ، وروبوتات الدردشة ، وتحليل المشاعر ، وأكثر من ذلك ، يبدو أن معالجة اللغة الطبيعية تتطور إلى مرحلتها غير البشرية. على الرغم من أننا نظرنا فقط في أمثلة قليلة لما يقدمه NLTK في هذه المقالة ، إلا أن الأداة بها تطبيقات أكثر تقدمًا أعلى من نطاق هذا البرنامج التعليمي.
بعد قراءة هذا المقال ، يجب أن تكون لديك فكرة جيدة عن كيفية استخدام NLTK على المستوى الأساسي. كل ما تبقى لك الآن هو أن تضع هذه المعرفة موضع التنفيذ بنفسك!
هل أنت مهتم بمجال تعلم الآلة؟ ابدأ مع هذه المكتبات.
اقرأ التالي
- برمجة
- بايثون
- لغات البرمجة
- برمجة

Idowu شغوف بأي شيء التكنولوجيا الذكية والإنتاجية. في أوقات فراغه ، يلعب بالبرمجة ويتحول إلى رقعة الشطرنج عندما يشعر بالملل ، لكنه أيضًا يحب الابتعاد عن الروتين من حين لآخر. يحفزه شغفه بإظهار طريقة حول التكنولوجيا الحديثة للناس على كتابة المزيد.
اشترك في نشرتنا الإخبارية
انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!
انقر هنا للاشتراك