NLTK WordNet: ابحث عن المرادفات من NLTK WordNet في Python
⚡ ملخص ذكي
WordNet هي قاعدة بيانات معجمية وقارئ لمدونات NLTK للغة الإنجليزية، تقوم بتجميع الأسماء والأفعال والصفات والظروف في مجموعات مرادفة، مما يسمح Python تقوم البرامج بالبحث عن المرادفات والمتضادات والمصطلحات العامة ومعاني الكلمات لمعالجة اللغة الطبيعية.

ما هو وردنت؟
WordNet WordNet هو قارئ لمجموعات النصوص NLTK، وهو قاعدة بيانات معجمية للغة الإنجليزية. يمكن استخدامه للعثور على معاني الكلمات، أو مرادفاتها، أو أضدادها. يمكن تعريفه بأنه قاموس إنجليزي ذو توجه دلالي. يتم استيراد WordNet باستخدام الأمر التالي:
from nltk.corpus import wordnet as guru
لأن WordNet يأتي كمجموعة بيانات جاهزة، يمكنك تحميله مرة واحدة والبدء فورًا في الاستعلام عن علاقات الكلمات دون الحاجة إلى إنشاء أي قاموس بنفسك.
ابحث عن المرادفات من NLTK WordNet في Python
تكشف الإحصائيات أن هناك 155287 كلمة و 117659 مرادف مجموعات مضمنة في برنامج WordNet الإنجليزي. يمكن العثور على طرق مختلفة متاحة مع WordNet من خلال typing dir(guru)، الذي يسرد كل سمة من سمات المحمل وطريقة المساعدة التي يعرضها قارئ المجموعة.
Synset: يُطلق عليها أيضاً مجموعة المرادفات أو مجموعة من الكلمات المترادفة. لنلقِ نظرة على مثال.
from nltk.corpus import wordnet syns = wordnet.synsets("dog") print(syns)
الإخراج:
[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]
العلاقات المعجمية: هذه علاقات دلالية متبادلة. فإذا كانت هناك علاقة بين {x1,x2,…xn} و {y1,y2,…yn}، فستكون هناك أيضاً علاقة بين {y1,y2,…yn} و {x1,x2,…xn}. على سبيل المثال، المرادف هو عكس المتضاد، بينما تُعدّ المصطلحات العامة والخاصة نوعاً من المفاهيم المعجمية.
دعونا نكتب برنامج باستخدام Python إيجاد المرادف والمتضاد لكلمة "نشط" باستخدام WordNet.
from nltk.corpus import wordnet synonyms = [] antonyms = [] for syn in wordnet.synsets("active"): for l in syn.lemmas(): synonyms.append(l.name()) if l.antonyms(): antonyms.append(l.antonyms()[0].name()) print(set(synonyms)) print(set(antonyms))
إخراج الكود:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym
شرح الكود:
- WordNet عبارة عن مجموعة بيانات، لذلك يتم استيرادها من حزمة nltk.corpus.
- تم اعتبار قائمتين للمرادفات والمتضادات فارغتين، وسيتم استخدامهما للإلحاق.
- يتم البحث عن مرادفات كلمة "نشط" باستخدام طريقة مجموعات المرادفات وإضافتها إلى قائمة المرادفات. وتُستخدم نفس العملية لجمع المتضادات.
- تتم طباعة المخرجات على النحو التالي: Python يتم تعيين مجموعات بحيث تتم إزالة الإدخالات المكررة تلقائيًا.
إلى جانب المرادفات والمتضادات، يُتيح WordNet أيضًا الوصول إلى المصطلحات العامة (المصطلحات الأوسع)، والمصطلحات الخاصة (المصطلحات الأكثر تحديدًا)، والمصطلحات الشاملة، والمصطلحات الجزئية، بحيث يُمكن لاستعلام واحد وضع كلمة ما ضمن تسلسل هرمي كامل. هذه العلاقات تجعل WordNet قاموسًا عمليًا للمرادفات في مدققي الإملاء، وترجمة اللغات، وكشف الرسائل المزعجة، وغيرها من مهام تحليل النصوص في مجال الذكاء الاصطناعي.
