این یه برنامه کوچیکه که با استفاده از داده مصرع های شاعران فردوسی، مولوی و حافظ با استفاده از بایگرام مدل زبانی شاعر رو میسازه.
توی تست کیس ها:
- 1 = فردوسی
- 2 = حافظ
- 3 = مولوی است.
(اگر شاعر دیگه ای اضافه کردید باید موقع new Model زدن این عددش رو هم بدید که برای تست مدل استفاده میشه.)
مانند کد توی main میتونیم بعد از ساخت یه کلاس Tester و تست مدل ها روی تست کیس و دریافت دقت دوباره پارامتر های :
- لاندا۱ (ضریب بایگرام)
- لاندا ۲ (ضریب یونیگرام)
- لاندا ۳ (ضریب اپسیلون)
- اپسیلون
رو برای مدل set کنیم و روی یه Tester دیگه ران کنیم.
مقادیر گفته شده بالا پارامتر های مورد نیاز برای هموار سازی مدل زبانی به روش back-off هستن.
فرمول هموار سازی :
راستی توی کد یه فیلتر داره که کلمات کمتر از ۲ رو داره پاک میکنه از مدل اون هم توی Main.java تعریف شده و میتونید به عنوان پارمتر به تابع Model.removeLowFrequencies(LIMIT) بدید.
راستی اینجا دیگه احتمال زبان نداریم که بگیم مثلا ورودی ممکنه اینقدر برای فردوسی باشه و ... و اون رو برای پیشبینی دخیلش کنیم. :)
هرکسی احتمالش بیشتره، احتمالا همون شاعره.