Machine Learning · متوسط

تحلیل احساسات با متن

یک مدل متن‌محور بساز که بدون نشت داده، نظرهای مثبت و منفی را دسته‌بندی کند.

۹۰ دقیقه · ۱۳۰ XP · Python · NLP · Text Features · F1

هدف و راهنمای انجام

توکن‌سازی، شمارش واژه‌ها و ارزیابی مدل روی دادهٔ ندیده

ورودی

request.json شامل train، test، features=[text] و target=label است.

خروجی

result.json با برچسب مثبت یا منفی برای هر متن test.

  1. متن را نرمال و به توکن‌های ساده تبدیل کن.
  2. واژه‌ها را فقط از train یاد بگیر.
  3. یک Naive Bayes یا روش شمارش واژه بساز.
  4. F1 هر کلاس را بررسی و predictions را ذخیره کن.

قبل از ارزیابی، داده را با اطلاعات آینده نرمال نکن.

مثال ورودی و خروجی

{
    "input": {
        "train": "نظرهای برچسب‌دار",
        "test": "نظرهای بدون برچسب"
    },
    "output": "predictions"
}

معیارهای موفقیت

  • از واژه‌های test برای ساخت واژگان استفاده نمی‌شود
  • macro-F1 حداقل ۰٫۷۲ است
  • تعداد خروجی با test برابر است

کتابخانه‌ها: pandas, numpy

منبع و وضعیت دیتاست‌ها

sentiment.csv · CC BY 4.0 · Kotzias (2015), Sentiment Labelled Sentences, UCI, doi:10.24432/C57604. English Amazon/IMDb/Yelp text, binary labels.

https://archive.ics.uci.edu/static/public/331/sentiment+labelled+sentences.zip

نسخه محلی همراه پروژه؛ ۳۰۰۰ ردیف. هنگام اجرا دانلود خارجی لازم نیست.

برای نوشتن و اجرای کد وارد شوید