بردارهای معنایی، مانند Word2Vec و GloVe، در واقع اولین گام به سوی مدلسازی زبان هستند - ایجاد مدلهایی که به نوعی ماهیت یا نمایش زبان را درک کنند.
ایده اصلی پشت مدلسازی زبان، آموزش آنها بر روی مجموعه دادههای بدون برچسب به صورت غیرنظارتی است. این موضوع مهم است زیرا ما حجم عظیمی از متنهای بدون برچسب در دسترس داریم، در حالی که مقدار متنهای برچسبدار همیشه محدود به میزان تلاش ما برای برچسبگذاری خواهد بود. اغلب، میتوانیم مدلهای زبانی بسازیم که بتوانند کلمات گمشده در متن را پیشبینی کنند، زیرا حذف تصادفی یک کلمه از متن و استفاده از آن به عنوان نمونه آموزشی کار آسانی است.
در مثالهای قبلی، ما از بردارهای معنایی از پیش آموزشدیده استفاده کردیم، اما جالب است بدانیم که این بردارها چگونه آموزش داده میشوند. چندین ایده ممکن وجود دارد که میتوان از آنها استفاده کرد:
- مدلسازی زبان با N-Gram، که در آن یک توکن را با نگاه به N توکن قبلی پیشبینی میکنیم (N-gram).
-
کیسه کلمات پیوسته (CBoW)، که در آن توکن میانی
$W_0$ را در یک دنباله توکن$W_{-N}$ , ...,$W_N$ پیشبینی میکنیم. -
Skip-gram، که در آن مجموعهای از توکنهای همسایه {$W_{-N},\dots, W_{-1}, W_1,\dots, W_N$} را از توکن میانی
$W_0$ پیشبینی میکنیم.
تصویر از این مقاله
یادگیری خود را در نوتبوکهای زیر ادامه دهید:
در درس قبلی دیدیم که بردارهای کلمات مانند جادو عمل میکنند! اکنون میدانیم که آموزش بردارهای کلمات کار پیچیدهای نیست و باید بتوانیم بردارهای کلمات خود را برای متنهای خاص حوزه مورد نظر آموزش دهیم.
- آموزش رسمی PyTorch درباره مدلسازی زبان.
- آموزش رسمی TensorFlow درباره آموزش مدل Word2Vec.
- استفاده از چارچوب gensim برای آموزش رایجترین بردارها تنها در چند خط کد در این مستندات توضیح داده شده است.
در آزمایشگاه، از شما میخواهیم کد این درس را تغییر دهید تا به جای CBoW مدل Skip-Gram را آموزش دهید. جزئیات را بخوانید
