مدل های زبان طبیعی (Natural Language Models)
ابتدا باید گفت که در هر شبیه سازی و حل مسئله، یک مدل سازی اولیه لازم است. این مدل سازی ممکن است ریاضی، فیزیکی، تجسمی و یا به هر گونه دیگر متناسب با ماهیت شبیه سازی یا حل مسئله باشد. برای مثال، وقتی شما می خواهید یک پدیده فیزیکی را شبیه سازی کنید و یا یک مسئله فیزیک را حل کنید، ابتدا سعی می کنید، شرایط را در غالب یک مدل ریاضی یا تجسمی، مجرد کنید. بدین معنی که اجزای بدون اهمیت آن را کنار بگذارید و با تنها مهم ترین عوامل را در بررسی خود تأثیر دهید. بدین ترتیب، با تقریب بالایی توانسته اید نزدیک جواب را پیدا کنید. بنابراین، قدرت مدل سازی شما آن جا معلوم می شود که در عین سادگی، جامع و شامل باشد.
در این جا، به یکی از پرکاربردترین مدل ها در زمینه شبیه سازی زبان انسان اشاره می کنیم. این مدل، بر خلاف اسم آن، نه تنها در مدل سازی زبان، بلکه در بسیاری از زمینه های هوش مصنوعی، مانند پردازش متن، پردازش سیگنال، تصویر و ... راهکارهای مفیدی در اختیار می گذارد.
ابتدا ببینیم زبان طبیعی چه معنایی دارد؟ زبان طبیعی (natural language)، به زبانی می گویند که بین انسان ها رایج است و انسان ها می توانند از آن برای ارتباط با یکدیگر به صورت های نوشتن، حرف زدن، خواندن و ... استفاده می شود. وقتی می گوییم مدل سازی زبان طبیعی، یعنی بیاییم و روابط و قواعد زبان را به طور هدفمند، ساده کنیم تا به ابزاری برسیم که بتوان از آن برای بررسی زبان و یا استفاده یا حتی تولید آن استفاده کرد. بسیاری از این مدل ها، از یک پس زمینه ریاضی برخوردار هستند،مانند گراف، احتمالات و ... . این هفته، یکی از این مدل ها را معرفی می کنیم و در مورد کاربردها و خصوصیات آن بحث می کنیم.
مدل n-gram یکی از این مدل هاست. در این مدل، از آمار کلاسیک و احتمال بهره گرفته شده است. فرض کنید که یک سری اشیا یا نشانه ها و یا هر چیز دیگری داشته باشیم. هر کدام از این ها را به صورت یک رأس در گراف تصور کنید که می تواند به رأس دیگری یال جهت دار داشته باشد. این یال جهت دار، نشان دهنده یک نوع رابطه است که با توجه به مورد دلخواه ما می تواند معانی متفاوتی داشته باشد. مثلاً در مورد زبان، می تواند توالی دو کلمه باشد (اگر کلمه ای بعد از کلمه دیگری بیاید، یک یال از اولی به دومی وجود دارد). به یک توالی n تایی از این رأس ها، n-gram می گوییم (توالی های 3gram، 2gram و ... داریم). در این مدل، یک مجموعه داده های آماری بسیار بزرگ نیاز داریم که هر کدام مجموعه ای از این نشانه ها به همراه روابط بین آن ها است. برای مثال، در مورد یک زبان خاص، یک سری متن به آن زبان می باشد. حال، روابطی در این مدل تعریف می شود که می توان با استفاده از آن، درستی یک توالی خواص از این نشانه ها را بررسی کرد.
فرض کنید می خواهیم درستی عبارت a1→a2→a3→a4 را بررسی کنیم. در این مدل، احتمال درستی به صورت یک عدد تعیین می شود که هرچه داده های آماری ما بیشتر باشد، نتیجه مطلوب تر است. عبارت بالا را به اجزای زیر تقسیم می کنیم و تعداد تکرار هر کدام را در داده های آماری پیدا می کنیم.
a1→a2
a2→a3
a3→a4
a1→a2→a3
a2→a3→a4
a1→a2→a3→a4
حال احتمال های3gram، 2gram و ... به صورت زیر تعریف می شوند:
P2gram = P(a2|a1) P(a3|a2) ... : 2Gram
P3gram = P(a3|a1a2) P(a4|a2a3) ... : 3Gram
P4gram = P(a4|a1a2a3) : 4Gram
عبارت P(a3|a1a2) یعنی احتمال درستی آمدن a3 پس از توالی a1a2 که مقدار آن برابر عبارت زیر است:
در عبارت بالا، تابع C یعنی تعداد تکرار توالی مورد نظر در داده های آماری.
در حالت کلی، احتمال درستی عبارت بالا در n-gram به صورت رابطه زیر است:
در این جا، تنها یک مشکل باقی می ماند و آن هم این است که اگر تنها یکی از این احتمال ها، صفر شود، احتمال کل صفر خواهد شد. در حالی که می دانیم، داده های آماری ما محدودیت دارند و ممکن است، بالاخره، یکی از توالی ها، مخصوصاً اگر تعداد آن زیاد باشد، در داده ها وجود نداشته باشد. راه حل این است که به هر کدام، یک مقدار ثابت (مثلاً 1) اضافه کنیم. روش های زیادی برای رفع این مشکل وجود دارند که در ههه آن ها، تابع احتمال به گونه ای تعریف می شود که مقدار صفر برنگرداند.
البته باید توجه داشت که این مدل، از مدل های آماری است. مدل های آماری این ویژگی را دارند که داده های آماری آن ها باید بسیار زیاد باشد تا نتیجه قابل قبولی به دست آید. در ضمن، شما می توانید ترکیبی از این مدل با مدل های دیگر را استفاده کنید و یا حتی روابط و شکل آن را متناسب با کارتان تغییر دهید