یک تابع پایتون بنویسید که با استفاده از کتابخانه NLTK یک متن فارسی را توکنایز کند، توقفواژهها را حذف نماید و فهرست ۱۰ کلمه پر تکرار را به همراه تعداد هر کدام برگرداند.
3.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:17 0.0
برای حل این مسئله از Python و NLTK استفاده کنید: ابتدا بستههای مورد نیاز را نصب و دانلود کنید (مثلاً nltk.download('punkt') و nltk.download('stopwords')). متن را به حروف کوچک تبدیل، و با word_tokenize یا روش سادهتر با جداکنندهها توکنسازی کنید؛ علائم نگارشی را با regex حذف کنید. چون مجموعه توقفواژههای فارسی ممکن است در NLTK کامل نباشد، یک لیست ساده از stopwords فارسی آماده کنید یا از مجموعهٔ موجود استفاده کنید. پس از فیلتر کردن توقفواژهها، با استفاده از nltk.FreqDist یا collections.Counter فراوانی هر کلمه را محاسبه و ۱۰ کلمه با بیشترین تکرار را بازگردانید. نکات: نرمالسازی حروف (مثلاً تبدیل ک ی و ی متفاوت) و حذف فاصلههای اضافی کیفیت نتایج را بهبود میدهد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ کلیدی این است که قبل از توکنایز، متن فارسی را نرمالسازی کرده و علائم نگارشی را با regex حذف کنید (مثلاً تبدیل یِ/ی، ك/ک، آ/ا و حذف فاصلههای اضافی). هرچند NLTK میتواند با word_tokenize کار کند، مجموعهٔ stopwords فارسی در NLTK کامل نیست، پس بهتر است یک لیست سادهٔ stopwords فارسی اضافه کنید یا از منابع معتبر دیگر استفاده کنید. پس از فیلترکردن توقفواژهها، با nltk.FreqDist یا collections.Counter فراوانی کلمات را محاسبه کرده و ۱۰ واژهٔ پرتکرار را برگردانید. برای دقت بالاتر، توکنایز کردن فارسی با ابزارهایی مانند Hazm یا ترکیبشدن با نرمالسازی اختصاصی فارسی معمولاً نتیجهٔ بهتری میدهد.
گزارش