ریشه یابی کلمات در پردازش زبان طبیعی — راهنمای کاربردی

«ریشه‌یابی» (Stemming) فرایند تولید انواع مورفولوژیکی از ریشه/پایه یک کلمه است. برنامه‌های ریشه‌یابی را معمولا «الگوریتم‌های ریشه‌یابی» یا «ریشه‌یاب» (Stemmer) می‌نامند. الگوریتم ریشه‌یابی، برای مثال، کلمه‌های «choco»، «chocolatey» ،«chocolates» را به کلمه ریشه «chocolate» کاهش می‌دهد و «retrieves» ،«retrieved» ،«retrieval» را به کلمه ریشه «retrieve» کاهش می‌دهد. در ادامه، مثال دیگری از ریشه‌یابی ارائه شده است.

->"likes"
->"liked"
->"likely"
->"liking"

خطاها در ریشه‌یابی

اساسا دو خطا در ریشه‌یابی به وقوع می‌پیوندد. این خطاها عبارتند از «بیش‌ریشه‌یابی» (Overstemming) و «کم‌ریشه‌یابی» (Under Stemming). بیش‌ریشه‌یابی معمولا هنگامی به وقوع می‌پیوندد که دو کلمه که ریشه‌های متفاوتی دارند، به یک کلمه، ریشه‌یابی شوند. کم‌ریشه‌یابی نیز هنگامی به وقوع می‌پیوندد که دو کلمه که ریشه‌های متفاوتی ندارند، به یک ریشه، ریشه‌یابی می‌شوند.

قطعه کد اول برای ریشه‌یابی

# import these modules 
from nltk.stem import PorterStemmer 
from nltk.tokenize import word_tokenize 
   
ps = PorterStemmer() 
  
# choose some words to be stemmed 
words = ["program", "programs", "programer", "programing", "programers"] 
  
for w in words: 
    print(w, " : ", ps.stem(w))

خروجی قطعه کد بالا به صورت زیر است.

program  :  program
programs  :  program
programer  :  program
programing  :  program
programers  :  program

قطعه کد دوم برای ریشه‌یابی

# importing modules 
from nltk.stem import PorterStemmer 
from nltk.tokenize import word_tokenize 
   
ps = PorterStemmer() 
   
sentence = "Programers program with programing languages"
words = word_tokenize(sentence) 
   
for w in words: 
    print(w, " : ", ps.stem(w))

خروجی قطعه کد بالا به صورت زیر است.

Programers  :  program
program  :  program
with  :  with
programing  :  program
languages  :  languag

منبع [+]

اگر این مطلب برای شما مفید بوده است، آموزش‌ها و مطالب زیر نیز به شما پیشنهاد می‌شوند:

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *