جاوا - اسپم


یکی از چالش‌های امروزی در زمینه‌ی شبکه‌های اجتماعی، شناسایی پیام‌های اسپم (spam) می‌باشد. معمولا پیام‌ها از نظر اسپم بودن در چهار دسته‌ زیر طبقه‌بندی می‌شوند:

  • دسته Not Spam [NOT_SPAM]:
    • پیام‌هایی که اسپم طبقه‌بندی نمی‌شوند.
  • دسته Invalid Sender [INVALID_SENDER]:
    • پیام‌هایی که شناسه‌ فرستنده‌ آن‌ها تنها از اعداد تشکیل شده است.
  • دسته Invalid Content [INVALID_CONTENT]:
    • پیام‌هایی که در بدنه‌ آن‌ها تعداد کاراکترهای غیرحرف، غیرعدد و غیرفاصله‌ بیش از نصف طول پیام باشد و در آن حداقل یک بار زیررشته‌ی spamspam تکرار شده باشد.
  • دسته Fully Invalid [FULLY_INVALID]:
    • پیام‌هایی که هم فرستنده و هم بدنه‌ی نامعتبر داشته باشند.

بسته‌ spam را دانلود کنید.

متد detectSpams در کلاس SpamDetector را به گونه‌ای پیاده‌سازی کنید که با دریافت آرایه‌ای از Messageها، آرایه‌ای از SpamTypeها را برگرداند که هر عنصر آن نوع پیام متناظر در آرایه‌ی messages را مشخص می‌کند. به عبارتی اگر عنصر اول آرایه‌ی messages اسپم نباشد باید عنصر اول آرایه‌ی برگشتی از نوع NOT_SPAM باشد.

برای مثال با اجرای متد main در کلاس Main، باید خروجی زیر چاپ شود:

[INVALID_SENDER, INVALID_CONTENT]
Plain text

آن چه که باید آپلود کنید

یک فایل زیپ که وقتی آن را باز می‌کنیم فقط فایل SpamDetector.java را ببینیم.