مدل زبان ان-گرم کلمات

یک **مدل زبانی ان-گرم** **واژه‌ای** یک مدل آماری زبان است که احتمال واژه بعدی در یک دنباله را بر اساس واژه‌های پیشین موجود در یک پنجره با اندازه ثابت محاسبه می‌کند. برای توصیف بهتر می‌توان گفت که اگر برای محاسبه احتمال واژه بعدی، تنها یک واژه پیشین در نظر گرفته شود، این مدل یک مدل بی‌گرام است؛ اگر دو واژه در نظر گرفته شود، یک مدل تری‌گرام است؛ و اگر *n* − ۱ واژه در نظر گرفته شود، یک مدل *n*-گرم خواهد بود.

در این روش، برای مشخص‌کردن آغاز و پایان جمله نشانه‌های ویژه‌ای معرفی می‌شوند که به ترتیب با \langle s\rangle و \langle /s\rangle نمایش داده می‌شوند. برای جلوگیری از اختصاص احتمال صفر به واژه‌های دیده‌نشده، احتمال هر واژه دیده‌شده اندکی کاهش داده می‌شود تا فضایی برای واژه‌های دیده‌نشده در یک پیکره ایجاد شود. برای دستیابی به این هدف، از روش‌های مختلف هموارسازی استفاده می‌شود؛ از هموارسازی ساده «افزودن یک» (که در آن به ان-گرم‌های دیده‌نشده شمارش ۱ اختصاص داده می‌شود، به عنوان یک پیشین غیرآگاهانه) گرفته تا روش‌های پیشرفته‌تر مانند مدل‌های عقب‌گردی.

مدل‌های زبانی ان-گرم واژه‌ای، تا حد زیادی جای خود را به مدل‌های مبتنی بر شبکه‌های عصبی بازگشتی داده‌اند که آن‌ها نیز به نوبه خود توسط مدل‌های مبتنی بر ترنسفورمر کنار گذاشته شده‌اند. این دسته از مدل‌های مبتنی بر ترنسفورمر معمولاً با عنوان مدل‌های زبانی بزرگ شناخته می‌شوند.

## مدل یونی‌گرام

یک حالت خاص که در آن *n* = ۱ است، مدل یونی‌گرام نامیده می‌شود. در این مدل، احتمال هر واژه در یک دنباله مستقل از احتمال واژه‌های دیگر در همان دنباله است. احتمال هر واژه در دنباله برابر با احتمال آن واژه در کل سند است.

P_\text{uni}(t_1t_2t_3)=P(t_1)P(t_2)P(t_3).

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

واژه‌ها به همراه احتمال‌هایشان در یک سند می‌توانند به صورت زیر نمایش داده شوند.

مجموع جِرم احتمال‌های واژه‌ها که در سراسر واژگان سند توزیع شده‌اند برابر با ۱ است.

\sum_{\text{word in doc}} P(\text{word}) = 1

احتمال محاسبه شده برای یک پرس‌وجوی خاص به صورت زیر محاسبه می‌شود:

P(\text{query}) = \prod_{\text{word in query}} P(\text{word})

مدل‌های یونی‌گرامِ اسناد مختلف دارای توزیع‌های احتمالی متفاوتی از واژه‌ها هستند. توزیع‌های احتمال اسناد مختلف برای تولید احتمال برخورد***' هر پرس‌وجو استفاده می‌شوند. برای یک پرس‌وجوی معین و بر اساس این احتمال‌ها، می‌توان اسناد را رتبه‌بندی کرد. نمونه‌ای از مدل‌های یونی‌گرام برای دو سند مختلف در زیر آورده شده است:


== مدل بی‌گرام ==
در یک مدل زبانی واژه‌ای بی‌گرام***' (*n* = ۲)، احتمال جمله «I saw the red house» به صورت تقریبی به شکل زیر محاسبه می‌شود:

P(\text{I, saw, the, red, house}) \approx P(\text{I}\mid\langle s\rangle) P(\text{saw}\mid \text{I}) P(\text{the}\mid\text{saw}) P(\text{red}\mid\text{the}) P(\text{house}\mid\text{red}) P(\langle /s\rangle\mid \text{house})

در این تقریب، احتمال هر واژه به همه واژه‌ها واسته نیست و تنها به واژه بلافاصله پیش از خود وابسته در نظر گرفته می‌شود.

## مدل تری‌گرام
در یک مدل زبانی تری‌گرام***' (''n'' = ۳)، تقریب به صورت زیر انجام می‌شود:<math display="block">P(\text{I, saw, the, red, house}) \approx P(\text{I}\mid \langle s\rangle,\langle s\rangle) P(\text{saw}\mid\langle s\rangle,I) P(\text{the}\mid\text{I, saw}) P(\text{red}\mid\text{saw, the}) P(\text{house}\mid\text{the, red}) P(\langle /s\rangle\mid\text{red, house})</math>توجه داشته باشید که در اولین ان-گرم، برای پر کردن زمینه در ''n'' − ۱ رشته نخست، از نشانگرهای آغاز جمله استفاده می‌شود که معمولاً با  نمایش داده می‌شوند. افزون بر این، بدون وجود نشانگر پایان کلمه، احتمال یک دنباله نادستورمند مانند «*I saw the» همواره بیشتر از احتمال جمله بلندتر «I saw the red house.» خواهد بود.

== روش تقریب ==
روش تقریب، احتمال <math>P(w_1,\ldots,w_m)</math> مشاهده جمله <math>w_1,\ldots,w_m</math> را محاسبه می‌کند.<math display="block">P(w_1,\ldots,w_m) = \prod^m_{i=1} P(w_i\mid w_1,\ldots,w_{i-1})\approx \prod^m_{i=2} P(w_i\mid w_{i-(n-1)},\ldots,w_{i-1})</math>فرض می‌شود که احتمال مشاهده واژه ''<math>i</math>''اُم یعنی <math>w_i</math> (در پنجره زمینه‌ای شامل <math>i-1</math> واژه پیشین) را می‌توان با احتمال مشاهده آن در یک پنجره زمینه‌ای کوتاه‌شده شامل <math>n-1</math> واژه پیشین تقریب زد ([[خاصیت مارکوف]]، یا خاصیت مارکوف مرتبه ''n'').

برای روشن‌تر شدن موضوع، اگر ''n'' = ۳ و ''i'' = ۲ باشد، خواهیم داشت:

<math display="block">P(w_i\mid w_{i-(n-1)},\ldots,w_{i-1})=P(w_2\mid w_1)</math>

احتمال شرطی را می‌توان از شمارش فراوانی‌های مدل ان-گرم به صورت زیر محاسبه کرد:<math display="block">P(w_i\mid w_{i-(n-1)},\ldots,w_{i-1}) = \frac{\mathrm{count}(w_{i-(n-1)},\ldots,w_{i-1},w_i)}{\mathrm{count}(w_{i-(n-1)},\ldots,w_{i-1})}</math>

=== واژه‌های خارج از دایره واژگان ===

یکی از مسائل هنگام استفاده از مدل‌های زبانی ان-گرم، واژه‌های خارج از واژگان***'  هستند. این واژه‌ها در زبان‌شناسی رایانشی و پردازش زبان طبیعی زمانی مشاهده می‌شوند که ورودی شامل واژه‌هایی باشد که در زمان آماده‌سازی سامانه در واژه‌نامه یا پایگاه داده آن وجود نداشته‌اند. به‌طور پیش‌فرض، هنگام برآورد یک مدل زبانی، کل واژگان مشاهده‌شده مورد استفاده قرار می‌گیرد. در برخی موارد، ممکن است لازم باشد مدل زبانی با یک واژگان ثابت و مشخص برآورد شود. در چنین حالتی، ان-گرم‌های پیکره که شامل یک واژه خارج از دایره واژگان هستند نادیده گرفته می‌شوند. احتمال‌های ان-گرم بر روی تمام واژه‌های موجود در واژگان هموارسازی (سرشکن) می‌شوند، حتی اگر مشاهده نشده باشند.

با این حال، در برخی موارد ضروری است که احتمال واژه‌های خارج از واژگان به‌طور صریح مدل‌سازی شود. این کار با معرفی یک نشانه ویژه (برای نمونه *<unk>*) در واژگان انجام می‌شود. واژه‌های خارج از واژگان در پیکره، پیش از انباشت شمارش‌های ان-گرم، عملاً با این نشانه ویژه  جایگزین می‌شوند. با استفاده از این روش، امکان برآورد احتمال‌های انتقال ان-گرم‌هایی که شامل واژه‌های خارج از واژگان هستند فراهم می‌شود.

## کاربرد ان-گرم‌ها در تطبیق تقریبی
ان-گرم برای تطبیق تقریبی***' نیز به کار رفته‌اند. اگر رشته‌ها (که تنها شامل حروف الفبای انگلیسی هستند) را به ان-گرم‌های نویسه‌ای با طول ۳ تبدیل کنیم، به فضایی با بُعد <math>26^3</math> می‌رسیم (که در آن بُعد نخست تعداد رخداد «aaa»، بُعد دوم «aab» و به همین ترتیب تمام ترکیب‌های ممکن از سه حرف را اندازه‌گیری می‌کند). با استفاده از این نمایش، بخشی از اطلاعات مربوط به رشته از دست می‌رود. با این حال، به صورت تجربی می‌دانیم که اگر دو رشته از متن واقعی نمایش برداری مشابهی داشته باشند (که با استفاده از [[شباهت کسینوسی|فاصله کسینوسی]] سنجیده می‌شود)، احتمالاً این دو رشته مشابه هستند.

معیارهای دیگری نیز برای بردارهای ان-گرم به‌کار رفته‌اند که در برخی موارد نتایج بهتری ارائه داده‌اند. برای نمونه، از [[نمره استاندارد|نمره‌های z]] برای مقایسه اسناد استفاده شده است؛ به این صورت که بررسی می‌شود هر ان-گرم چند انحراف معیار با میانگین وقوع خود در یک مجموعه بزرگ از اسناد، یا [[پیکره متنی]] (که «بردار زمینه» را تشکیل می‌دهد)، تفاوت دارد. در مواردی که شمارش‌ها کوچک هستند، [[جی-اسکور]] (که با نام [[جی-تست]] نیز شناخته می‌شود) نتایج بهتری ارائه کرده است.

همچنین می‌توان رویکردی اصولی‌تر نسبت به آمار ان-گرم‌ها اتخاذ کرد؛ به‌گونه‌ای که شباهت به صورت احتمال این مدل‌سازی شود که دو رشته مستقیماً از یک منبع مشترک آمده باشند، آن هم در قالب یک مسئله در [[استنباط بیزی]].

جستجوی مبتنی بر ان-گرم در [[کشف دستبرد علمی|تشخیص سرقت علمی]] نیز مورد استفاده قرار گرفته است.

== مبادله بایاس–واریانس ==

برای انتخاب مقدار ''n'' در یک مدل ان-گرم، لازم است تعادل مناسبی میان پایداری برآورد و میزان تناسب آن برقرار شود. این بدان معناست که تری‌گرام‌ها (یعنی سه‌تایی‌های واژه‌ها) در پیکره‌های آموزشی بزرگ (در حد میلیون‌ها واژه) انتخابی رایج هستند، در حالی که در پیکره‌های کوچک‌تر اغلب از بی‌گرام استفاده می‌شود.

=== روش‌های هموارسازی ===
میان «گرام‌های کم‌رخداد» (برای مثال، اگر یک نام خاص در داده‌های آموزشی ظاهر شده باشد) و «گرام‌های پرتکرار» مسئله تعادل وزن وجود دارد. افزون بر این، بدون به‌کارگیری [[هموارسازی]]، اقلامی که در داده‌های آموزشی مشاهده نشده‌اند، [[احتمال]] ۰٫۰ دریافت خواهند کرد. برای داده‌های مشاهده‌نشده اما محتمل در یک نمونه، می‌توان [[Pseudocount|شمارش‌های کاذب]] معرفی کرد. شمارش‌های کاذب معمولاً بر مبنای اصول بیزی توجیه می‌شوند.

در عمل، لازم بود توزیع‌های احتمال «هموار» شوند؛ به این معنا که به واژه‌ها یا ان-گرم‌های دیده‌نشده نیز احتمال‌های ناصفر اختصاص داده شود. دلیل این امر آن است که مدل‌هایی که مستقیماً از شمارش فراوانی‌های ان-گرم استخراج می‌شوند، هنگام مواجهه با هر ان-گرمی که پیش‌تر به‌طور صریح دیده نشده باشد با مشکلات جدی روبه‌رو می‌شوند؛ مسئله‌ای که با عنوان «مشکل بسامد صفر» در [[الگوریتم فشرده‌سازی PPM|الگوریتم فشرده‌سازی پی‌پی‌اِم]]***' شناخته می‌شود. روش‌های مختلفی برای هموارسازی به‌کار رفته‌اند؛ از هموارسازی ساده «افزودن یک» (لاپلاس) که در آن به ان-گرم‌های دیده‌نشده شمارش ۱ اختصاص داده می‌شود (نگاه کنید به قاعده توالی)، تا مدل‌های پیشرفته‌تر مانندمدل‌های عقب‌گرد.

برخی از این روش‌ها معادل اختصاص دادن یک توزیع پیشین به احتمال‌های ان-گرم‌ها و استفاده از استنباط بیزی برای محاسبه احتمال‌های ان-گرمِ پسین هستند. با این حال، روش‌های هموارسازی پیشرفته‌تر معمولاً به این شیوه استخراج نشده‌اند، بلکه بر اساس ملاحظات مستقل دیگری توسعه یافته‌اند.

* درون‌یابی خطی (برای مثال، گرفتن میانگین وزنی از یونی‌گرام، بی‌گرام و تری‌گرام)
* تنزیل گود–تورینگ
* تنزیل ویتن–بل
* هموارسازی لیدستون
* مدل عقب‌گرد کاتز (تری‌گرام)
* هموارسازی کنسر–نی

## ان-گرم‌های نحوی
ان-گرم‌های نحوی، ان-گرم‌هایی هستند که نه بر اساس ساختار خطی متن، بلکه بر اساس مسیرها در درخت‌های وابستگی نحوی یا سازه‌ای تعریف می‌شوند.

برای مثال، جمله «اخبار اقتصادی تاثیر کمی بر روی بازارهای مالی دارند» را می‌توان بر اساس ساختار درختی روابط وابستگی نحوی آن به ان-گرم‌های نحوی زیر تبدیل کرد:

* اخبار-اقتصادی
* تاثیر-کم
* اثر-بر-بروی-بازار-مالی.

ان-گرم‌های نحوی با هدف بازتاب دقیق‌تر ساختار نحوی نسبت به ان-گرم‌های خطی طراحی شده‌اند و بسیاری از کاربردهای مشابه را دارند، به‌ویژه به عنوان ویژگی در یک مدل فضای برداری. در برخی وظایف، استفاده از ان-گرم‌های نحوی نتایج بهتری نسبت به ان-گرم‌های استاندارد ارائه می‌دهد؛ برای مثال در تعیین نویسندگی متون.

نوع دیگری از ان-گرم‌های نحوی، ان-گرم‌های نقش‌های دستوری (یا بخش های صحبت)***' هستند که به صورت زیر‌دنباله‌های هم‌پوشان و پیوسته با طول ثابت تعریف می‌شوند و از دنباله‌های نقش‌های دستوری متن استخراج می‌گردند. ان-گرم‌های نقش دستوری کاربردهای متعددی دارند که رایج‌ترین آن‌ها در [[بازیابی اطلاعات]] است.

== کاربردهای دیگر ==
ان-گرم‌ها در حوزه‌های گوناگونی از علوم رایانه، [[زبان‌شناسی رایانشی]] و ریاضیات کاربردی مورد استفاده قرار می‌گیرند.

از ان-گرم‌ها برای موارد زیر استفاده شده است:

* طراحی [[روش کرنل|کرنل‌ها]] که به الگوریتم‌های [[یادگیری ماشین]] مانند [[ماشین بردار پشتیبانی|ماشین‌های بردار پشتیبانی]] اجازه می‌دهند از داده‌های رشته‌ای بیاموزند
* یافتن نامزدهای محتمل برای [[Autocorrect|اصلاح املایی]] یک واژه غلط نوشته شده
* بهبود فشرده‌سازی در [[فشرده‌سازی داده‌ها|الگوریتم‌های فشرده‌سازی]]، در مواردی که بخش کوچکی از داده‌ها به ان-گرم‌هایی با طول بیشتر نیاز دارد
* برآورد احتمال ظاهر شدن یک دنباله واژه مشخص در متن‌های یک زبان هدف در سامانه‌های تشخیص الگو، [[بازشناسی گفتار]]، [[نویسه‌خوان نوری]] (OCR)، [[بازشناسی هوشمند نویسه]]***' (ICR)، ترجمه ماشینی و کاربردهای مشابه
* بهبود عملکرد بازیابی در سامانه‌های بازیابی اطلاعات، زمانی که هدف یافتن «اسناد» مشابه (اصطلاحی که بسته به مجموعه‌داده ممکن است معنای گسترده‌تری داشته باشد) با توجه به یک سند پرس‌وجو و یک پایگاه از اسناد مرجع است
* بهبود عملکرد بازیابی در تحلیل توالی‌های ژنتیکی، مانند خانواده برنامه‌های بلاست
* شناسایی زبانی که یک متن به آن نوشته شده است، یا گونه‌ای که یک توالی کوتاه دی‌اِن‌اِی از آن استخراج شده است
* پیش‌بینی تصادفی حروف یا واژه‌ها برای تولید متن، مانند الگوریتم پرس گسسته
* رمزکاوی

## جستارهای وابسته

* همایند
* مهندسی ویژگی
* مدل مارکوف پنهان
* بزرگترین زیررشته مشترک
* درهم‌سازی میانی
* چندتایی
* کرنل رشته‌ای

## یادداشت‌ها


## مراجع

رده:مدل‌های مارکوف
رده:پردازش آماری زبان طبیعی
رده:مدل‌سازی زبان