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

ما هو وردنت؟

Wordnet هو قارئ نصوص NLTK، وقاعدة بيانات معجمية للغة الإنجليزية. ويمكن استخدامه للعثور على معاني الكلمات أو المرادفات أو المتضادات. ويمكن تعريفه بأنه قاموس موجه دلاليًا للغة الإنجليزية. ويتم استيراده باستخدام الأمر التالي:

from nltk.corpus import wordnet as guru

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

تكشف الإحصائيات أن هناك 155287 كلمة و 117659 مرادف المجموعات المضمنة مع WordNet الإنجليزية.

يمكن العثور على الطرق المختلفة المتوفرة مع WordNet عن طريق كتابة dir(guru)

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__' , '__التنسيق__', ' __ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']

دعونا نفهم بعض الميزات المتاحة مع wordnet:

سينسيت: ويطلق عليه أيضًا مجموعة المرادفات أو مجموعة الكلمات المرادفة. دعونا نتحقق من مثال

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}. على سبيل المثال، المرادف هو عكس المتضاد أو التشعبي والهيبونيم هما نوع من المفهوم المعجمي.

دعونا نكتب برنامج باستخدام الثعبان للعثور على مرادف ومضاد لكلمة "نشط" باستخدام 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))

إخراج الكود:

{'ديناميكي'، 'القتال'، 'جاهز للقتال'، 'صوت_نشط'، 'عامل_نشط'، 'مشاركة'، 'حي'، 'نشط'} - مرادف

{'ثابت'، 'خامل'، 'هادئ'، 'صوت_سلبي'، 'منقرض'، 'خامل'، 'غير نشط'} - متناقض

إخراج كود برنامج Wordnet

شرح الكود

  1. يعد Wordnet مجموعة نصية، لذا يتم استيراده من ntlk.corpus
  2. يتم اعتبار قائمة المرادفات والمتضادات فارغة والتي سيتم استخدامها للإلحاق
  3. يتم البحث عن مرادفات الكلمة النشطة في مجموعات الوحدة النمطية ويتم إلحاقها بقائمة المرادفات. وتكرر نفس العملية للثانية.
  4. تتم طباعة الإخراج

وفي الختام

WordNet هي قاعدة بيانات معجمية تم استخدامها من قبل أحد التخصصات محرك البحث. من WordNet، يمكن حساب معلومات حول كلمة أو عبارة معينة مثل

  • مرادف (كلمات لها نفس المعنى)
  • التشعبيات (المصطلح العام المستخدم لتعيين فئة من التفاصيل (على سبيل المثال، الوجبة هي وجبة الإفطار)، التنويمات (الأرز هو وجبة)
  • holonyms (البروتينات والكربوهيدرات جزء من الوجبة)
  • المرادفات (الوجبة جزء من تناول الطعام اليومي)

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

  1. نون
  2. الفعل
  3. الصفة
  4. ظرف حال

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

بنفس الطريقة، يمكنك استخدام هذه المجموعة وتشكيلها لتعمل بعض الوظائف الديناميكية. هذا تمامًا مثل الاستعداد لإعداد مجموعة من أجلك. يمكنك استخدامه في طريقك.