با استفاده از Python و کتابخانه NLTK یک pipeline سادهٔ پیشپردازش متنی بسازید که متنها را توکنیزه، حروف کوچک کند، توقفکلمات را حذف و ریشهیابی یا لماتایز انجام دهد، سپس با استفاده از TF-IDF و یک مدل Naive Bayes دو کلاس را طبقهبندی کرده و دقت را گزارش کند.
8.0 بازدید آخرین ویرایش در 223 روز قبل ساعت 01:31 0.0
برای حل: از NLTK برای توکنیزه کردن (word_tokenize)، لیست توقفکلمات (stopwords) و ریشهیابی یا لماتایز (PorterStemmer یا WordNetLemmatizer) استفاده کنید؛ متنها را به حروف کوچک تبدیل و علامتگذاری را با regex حذف کنید. سپس با sklearn از TfidfVectorizer برای تبدیل متنها به بردارهای عددی و از train_test_split برای جدا کردن دادههای آموزشی/آزمایشی بهره ببرید؛ یک مدل سادهٔ MultinomialNB را آموزش دهید و با accuracy_score دقت را گزارش کنید. نکات: برای ثبات از random_state استفاده کنید، بین stemming و lemmatization انتخاب کنید (lemmatization دقیقتر اما نیازمند POS ممکن است باشد) و پیشپردازش را قبل از بردارسازی انجام دهید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
ثابت کردن random_state برای تکرارپذیری نتایج اهمیت دارد زیرا تقسیم دادهها را پایدار میکند. پیش از بردارسازی با TF-IDF متن را به حروف کوچک تبدیل کنید، علامتگذاری را با regex حذف کرده و توقفکلمات را حذف کنید تا از ویژگیهای معنادارتر استفاده شود. انتخاب بین stemming و lemmatization را با توجه به زبان هدف انجام دهید: lemmatization دقیقتر است اما به POS-tagging نیاز دارد و در فارسی باید با ابزارهای مناسب همراه شود. در نهایت با استفاده از MultinomialNB و TF-IDF میتوانید دقت را با accuracy_score گزارش کنید و نتیجه را مقایسه کنید.
گزارش