با استفاده از Python و کتابخانه nltk، یک برنامه بنویسید که دو متن را پیش‌پردازش کند (کوچک‌سازی، توکن‌سازی، حذف توقف‌واژه‌ها، ریشه‌یابی)، بردار TF-IDF برای هر متن بسازد و مقدار شباهت کسینوسی بین دو متن را بازگرداند.

6.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:32

0.0

برای حل این سوال از nltk برای توکن‌سازی (word_tokenize)، لیست توقف‌واژه‌ها (stopwords) و ریشه‌یاب (مثل PorterStemmer) استفاده کنید؛ پس از پیش‌پردازش متن‌ها می‌توانید با استفاده از sklearn.feature_extraction.text.TfidfVectorizer یا محاسبه دستی TF و IDF با numpy بردارهای TF-IDF را بسازید و سپس شباهت کسینوسی را با sklearn.metrics.pairwise.cosine_similarity یا ضرب داخلی و نُرم‌های numpy محاسبه کنید. توجه داشته باشید که قبل از اجرا منابع nltk مانند 'punkt' و 'stopwords' را دانلود کنید و برای نتایج بهتر متن‌ها را کوچک‌سازی و نشانه‌گذاری (punctuation) را پاک کنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:32
دسته بندی ها: Python Python for beginner
reyhaneh در 202 روز قبل ساعت 09:20

برای شروع، مطمئن شوید منابع NLTK را دانلود کرده‌اید (punkt و stopwords) و متن‌ها را با کوچک‌سازی و حذف نشانه‌گذاری پیش‌پردازش کنید. برای متن‌های فارسی، PorterStemmer معمولاً مناسب نیست و بهتر است از ریشه‌یابی فارسی مناسب مانند hazm استفاده کنید یا حداقل ریشه‌یابی سبک انجام دهید. همچنین دقت کنید فهرست توقف‌واژه‌ها را برای فارسی سفارشی کنید تا مانع واژگان کلیدی نشود. در نهایت، با استفاده از TfidfVectorizer یا محاسبه TF/IDF به‌صورت دستی و سپس محاسبه شباهت کسینوسی با cosine_similarity یا ضرب داخلی و نُرم‌ها، مقدار شباهت بین دو متن را بیابید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری