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