NLTK WordNet: ابحث عن المرادفات من NLTK WordNet في Python

⚡ ملخص ذكي

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

  • 🧩 قارئ المدونة: يتم استيراد WordNet من nltk.corpus ويعمل كقاموس موجه دلاليًا للغة الإنجليزية.
  • 🔁 مجموعات المرادفات: مجموعة المرادفات هي مجموعة من الكلمات المترادفة، مثل المعاني الثمانية التي يتم إرجاعها لكلمة "كلب".
  • 🔗 العلاقات المعجمية: تربط الروابط الدلالية المتبادلة بين المرادفات والمتضادات والمصطلحات العامة والمصطلحات الخاصة.
  • 🧪 المرادفات والمتضادات: مرحاضping تقوم أداة over synsets and lemmas بجمع كل مرادف ومضاد للكلمة.
  • 🌳 التسلسل الهرمي: تقوم المصطلحات العامة، والمصطلحات الخاصة، والمصطلحات الشاملة، والمصطلحات الجزئية بتنظيم الكلمات في مجموعات فرعية من الأسماء والأفعال والصفات والظروف.
  • 🤖 فوائد الذكاء الاصطناعي: يدعم WordNet مهام تحليل النصوص مثل تصحيح الأخطاء الإملائية والترجمة والكشف عن البريد العشوائي.

NLTK WordNet

ما هو وردنت؟

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 قاموسًا عمليًا للمرادفات في مدققي الإملاء، وترجمة اللغات، وكشف الرسائل المزعجة، وغيرها من مهام تحليل النصوص في مجال الذكاء الاصطناعي.

الأسئلة الشائعة

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

مجموعة المرادفات، اختصارًا لكلمة "مجموعة المرادفات"، هي مجموعة من الكلمات التي تشترك في نفس المفهوم. استدعاء الدالة wordnet.synsets("dog") يُعيد عدة مجموعات مرادفات، كل منها يُمثل معنىً مُختلفًا لكلمة "dog".

قم بالمرور على مجموعات المرادفات في شبكة الكلمات (wordnet.synsets(word))، ثم قم بتكرار جذور كل مجموعة مرادفات. أضف اسم الجذر (lemma.name()) لجمع المرادفات، واستدعِ الجذر المضاد (lemma.antonyms()) لجمع الأضداد. غلّفping تقوم الدالة set() بإزالة الإدخالات المكررة.

المصطلح العام هو مصطلح أوسع وأشمل (وجبة هي مصطلح عام يشمل وجبة الإفطار)، بينما المصطلح الخاص هو مصطلح أكثر تحديدًا (الأرز هو مصطلح خاص يشمل وجبة). يربط WordNet بين هذين المصطلحين لتشكيل تسلسل هرمي.

تضم قاعدة بيانات الكلمات الإنجليزية (English WordNet) حوالي 155,287 كلمة مُنظمة في ما يقارب 117,659 مجموعة من المرادفات. وتغطي قاعدة البيانات أربعة أقسام من الكلام: الأسماء، والأفعال، والصفات، والظروف، حيث يُخزن كل قسم في شبكة فرعية خاصة به.

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

نعم. تستخدم أنظمة الذكاء الاصطناعي والتعلم الآلي مقاييس تشابه WordNet مثل تشابه المسار وتشابه Wu-Palmer. فهي تُقيّم مدى تقارب مجموعتين من المرادفات من خلال قياس أقصر مسار بينهما في التسلسل الهرمي للمصطلحات العامة والخاصة.

يعرض القاموس العادي التعريفات أبجديًا. أما WordNet فيربط الكلمات حسب المعنى من خلال مجموعات المرادفات والعلاقات المعجمية، لذا فهو يعمل كقاموس ومعجم مرادفات مدمجين يمكن للآلات تصفحهما برمجيًا.

تلخيص هذه التدوينة بـ: