اذهب إلى المحتوى

السؤال

نشر

أقوم ببعض عمليات المعالجة المسبقة على بياناتي النصي (أعمل على بناء نظام استرجاع)، وأريد تطبيق عملية Lemmatization على النصوص (أي ربط الكلمات ذات المعاني المتشابهة بكلمة واحدة -مفهوم أكثر تعميماً من الاشتقاق البسيط  حيث يقوم بتحليل موروفولوجي للنص-). لذا هل هناك طريقة للقيام بذلك في NLTK؟
على سبيل المثال :

corpora --> corpus
rocks --> rock
better --> good

 

Recommended Posts

  • 0
نشر

توفر لك NLTK الوحدة WordNetLemmatizer التي تحتوي الدالة lemmatize للقيام بماتريده، حيث تأخذ هذه الدالة وسيطين الأول هو الكلمة المطلوبة، والثاني هو ال POST الخاص بها:

lemmatize(word: str, pos: str = "n")

pos: يمكن أن تكون:

"n": اسم
"v" فعل
"a": صفة adjectives
"r": ضمير adverbs 
"s": satellite adjectives

وافتراضياً تكون اسم. مثال:

# WordNetLemmatizer استيراد الوحدة
from nltk.stem import WordNetLemmatizer
# WordNetLemmatizer إنشاء كائن من 
lz = WordNetLemmatizer()
# مع تمرير الكلمة المطلوية lemmatize الآن يمكنك استخدام الدالة 
print("rocks :", lz.lemmatize("rocks", pos ="n"))
print("corpora :", lz.lemmatize("corpora", pos ="n"))
# a denotes adjective in "pos"
print("better :", lz.lemmatize("better", pos ="a"))
"""
rocks : rock
corpora : corpus
better : good
"""

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...