روش سنتی پردازش زبان طبیعی

روش سنتی پردازش زبان طبیعی

مقدمه

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

درک روش سنتی پردازش زبان طبیعی

رویکرد سنتی برای حل وظایف NLP شامل مجموعه ای از وظایف فرعی مجزا است. ابتدا، مجموعه‌های متنی باید از قبل پردازش شوند و بر کاهش واژگان و حواس‌پرتی تمرکز کنند. منظور از حواس‌پرتی چیزهایی است که عملکرد الگوریتم را منحرف می‌کنند به‌عنوان مثال، علائم نقطه‌گذاری.

در مرحله بعد چندین مرحله مهندسی ویژگی آمده است. هدف اصلی مهندسی ویژگی آسان‌تر کردن یادگیری الگوریتم‌ها است. اغلب ویژگی ها به صورت دستی طراحی شده و نسبت به درک انسان از یک زبان نشات می گیرد. مهندسی ویژگی برای الگوریتم‌های کلاسیک NLP از اهمیت بالایی برخوردار بود، و در نتیجه، سیستم‌های با بهترین عملکرد اغلب دارای بهترین ویژگی‌های مهندسی شده بودند.
به عنوان مثال، برای طبقه بندی احساسات یک جمله می توانیم از یک درخت تجزیه استفاده کنیم. در این کار با تخصیص برچسب های مثبت، منفی و یا خنثی به هر گره یا زیردرخت می توان عملیات طبقه بندی احساسات را انجام داد.
علاوه بر این، فاز مهندسی ویژگی می‌تواند از منابع خارجی مانند WordNet برای توسعه ویژگی‌های بهتر استفاده کند. وردنت یک پایگاه داده واژگانی است که می‌تواند بینش‌هایی را در مورد چگونگی ارتباط کلمات مختلف با یکدیگر مثل مترادف ها ارائه دهد.

در ادامه به یک تکنیک ساده مهندسی ویژگی معروف به کیسه کلمات خواهیم پرداخت.

در مرحله بعد، الگوریتم یادگیری یاد می‌گیرد که با استفاده از ویژگی‌های به‌دست‌آمده و به‌طور اختیاری، به خوبی عمل کند. به عنوان مثال، برای کار خلاصه‌سازی متن، یک مجموعه موازی حاوی عبارات رایج و جملات مختصر منبع خوبی خواهد بود.
در نهایت، عملیات پیش بینی رخ می دهد. پیش‌بینی عملیات ساده ای است، جایی که شما یک ورودی جدید را تغذیه می‌کنید و با ارسال ورودی از طریق مدل یادگیری، برچسب پیش‌بینی‌شده را دریافت می‌کنید. کل فرآیند رویکرد سنتی در شکل 1 نشان داده شده است:

روش سنتی پردازش زبان طبیعی
روش سنتی پردازش زبان طبیعی

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

پیش پردازش

پیش پردازش متن شامل عملیات هایی مانند نشانه گذاری است.
به عنوان مثال، تقسیم «من به خانه رفتم» به «من»، «به»، «خانه»، «رفتم» و ریشه یابی جمله به عنوان مثال، تبدیل شنیده شده به شنیدن، و حذف علائم نگارشی (مثلاً، ! و ;)، به منظور کاهش واژگان و ویژگی ها و در نتیجه کاهش ابعاد داده ها را خواهیم داشت.
این مورد برای برخی از زبان‌ها مانند تایلندی، ژاپنی و چینی نمی تواند صادق باشد.

مهندسی ویژگی

مهندسی ویژگی برای تبدیل داده های متن خام به یک نمایش عددی قابل درک استفاده می شود.
به طوری که می توان یک مدل را بر روی آن مجموعه داده آموزش داد، برای مثال، تبدیل متن به نمایش کیسه ای از کلمات یا استفاده از نمایش n-gram که در ادامه به آن خواهیم پرداخت.
با این حال، به یاد در نظر داشته باشیم که مدل های کلاسیک پیشرفته بر تکنیک های مهندسی ویژگی های بسیار پیچیده تری تکیه دارند.
در ادامه برخی از تکنیک های مهندسی ویژگی آورده شده است.

کیسه کلمات Bag-of-words

این یک تکنیک مهندسی ویژگی است که نمایش ویژگی ها را بر اساس فراوانی وقوع کلمه ایجاد می کند. برای مثال، جملات زیر را در نظر می گیریم:
• پویا برای خرید گل به بازار رفت
• پویا گل خرید و به سوسن داد

واژگان این دو جمله عبارتند از:
[«پویا»، «برای»، «خرید»، «گل»، «به»، «بازار»، «رفت»، «و»، «سوسن»]
در مرحله بعد، ما یک بردار ویژگی با اندازه V (اندازه واژگان) برای هر جمله ایجاد می کنیم که نشان می دهد هر کلمه در واژگان چند بار در جمله ظاهر می شود. در این مثال، بردارهای ویژگی برای جملات به ترتیب به صورت زیر خواهد بود:

[1,1,1,1,1,1,1,0,0]

[1,0,1,1,1,0,0,1,1]

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

ویژگی n-gram

این یکی دیگر از تکنیک های مهندسی ویژگی است که متن را به اجزای کوچکتر متشکل از n حرف (یا کلمه) تجزیه می کند. به عنوان مثال، 2 گرم متن را به دو حرف (یا دو کلمه) تبدیل می کند. برای مثال این جمله را در نظر بگیرید:

پویا برای خرید گل به بازار رفت

تجزیه n گرم مبتنی بر کلمه به این صورت است:

[«پویا برای»، «برای خرید»، «خرید گل»، «گل به»، «به بازار»، «بازار رفت»]

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

دسته بندی

به عنوان مثال، برای بازی فوتبال ما مجموعه های داده ای از فرم آماری (آماری از عبارت های توضیح دهنده) به صورت زیر خواهیم داشت:

مجموع گل ها = 4،
          “بازی با 2 گل برای هر تیم در پایان نیمه اول مساوی بود”

تیم یک = منچستریونایتد،
          “بازی بین منچستریونایتد و بارسلونا بود”

تیم یک گل = 5،
          “منچستریونایتد موفق شد 5 گل بزند”

فرایند یادگیری

فرآیند یادگیری ممکن است شامل سه زیرمجموعه باشد:
1. یک مدل مارکوف پنهان (HMM)
2. یک برنامه ریز جمله  
3. یک برنامه ریز گفتمان

 HMM یک مدل تکراری است که می تواند برای حل مسائل سری زمانی استفاده شود.
به عنوان مثال، تولید متن یک مسئله سری زمانی است زیرا ترتیب کلمات تولید شده اهمیت دارد.
در مثال ما، یک HMM ممکن است با آموزش بر روی مجموعه‌ای از آمار و عبارات مرتبط، مدل‌سازی زبان (یعنی تولید متن معنادار) را بیاموزد.
ما HMM را طوری آموزش می‌دهیم که با توجه به آمار به عنوان ورودی شروع، دنباله متنی مرتبط را تولید کند.

پس از آموزش، HMM می تواند برای استنتاج به صورت بازگشتی استفاده شود، جایی که ما با یک seed (به عنوان مثال یک آمار) شروع می کنیم و اولین کلمه توضیحات را پیش بینی می کنیم، سپس از کلمه پیش بینی شده برای تولید کلمه بعدی و غیره استفاده می کنیم.

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

جمع بندی

اکنون باید این عبارات را به گونه‌ای جمع آوری کنیم که انشای ساخته شده از مجموعه عبارات قابل خواندن و روان باشد.
به عنوان مثال سه عبارت را در نظر بگیرید،
بازیکن 10 تیم بارسلونا در نیمه دوم گل زد،
بارسلونا مقابل منچستریونایتد بازی کرد
بازیکن 3 از منچستریونایتد در نیمه اول کارت زرد گرفت.
داشتن این جملات به این ترتیب چندان منطقی نیست. ما دوست داریم آنها را به این ترتیب داشته باشیم:
بارسلونا مقابل منچستریونایتد بازی کرد،
بازیکن 3 منچستریونایتد در نیمه اول کارت زرد گرفت
بازیکن 10 تیم بارسلونا در نیمه دوم یک گل به ثمر رساند.
برای این کار از برنامه ریز گفتمان استفاده می کنیم.
برنامه ریزان گفتمان می توانند مجموعه ای از پیام ها را سازماندهی کنند تا معنای آنها به درستی منتقل شود. اکنون، می‌توانیم مجموعه‌ای از آمارهای آزمایشی دلخواه را با دنبال کردن گردش کار قبلی دریافت کنیم، که در شکل 2 نشان داده شده است.

روش سنتی پردازش زبان طبیعی

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

معایب روش سنتی پردازش زبان طبیعی

اکنون می خواهیم چند اشکال کلیدی را روش سنتی پردازش زبان طبیعی را فهرست کنیم زیرا می‌تواند دلیل خوبی برای بحث در مورد انگیزه یادگیری عمیق باشد:

  1. مراحل پیش پردازشی که در NLP سنتی مورد استفاده قرار می گیرد، مبادله اطلاعات بالقوه مفید موجود در متن (به عنوان مثال، اطلاعات نقطه گذاری و زمان) را به منظور امکان پذیر ساختن یادگیری با کاهش واژگان، الزامی می کند.
    2. اگرچه پیش پردازش هنوز در راه‌حل‌های مبتنی بر یادگیری عمیق مدرن استفاده می‌شود، اما به دلیل ظرفیت بازنمایی بزرگ شبکه‌های عمیق و توانایی آن‌ها در بهینه‌سازی سخت‌افزارهای سطح بالا مانند GPU، برای آن‌ها کار سنگین و بسیار سختی نیست.
    3. مهندسی ویژگی کاری بسیار سخت و سنگین است. برای طراحی یک سیستم قابل اعتماد، باید ویژگی های خوبی ابداع شود. این فرآیند می تواند بسیار خسته کننده باشد زیرا ویژگی های مختلف نیاز به بررسی و ارزیابی گسترده دارند. علاوه بر این، برای بررسی مؤثر ویژگی‌های قوی، متخصص مورد نیاز است که می‌تواند برای برخی وظایف NLP کمیاب و گران باشد.
    4. منابع خارجی مختلفی برای عملکرد خوب مورد نیاز است و منابع قابل دسترس زیادی وجود ندارد. چنین منابع خارجی اغلب شامل اطلاعات ایجاد شده به صورت دستی است که در پایگاه های داده بزرگ ذخیره می شوند. ایجاد چنین منبعی برای یک کار خاص ممکن است بسته به شدت کار چندین سال طول بکشد، (به عنوان مثال، یک پایه قوانین ترجمه ماشینی).

کلام آخر

اکنون که بصورت کلی با پردازش زبان طبیعی به روش سنتی آشنا شدیم و از مشکلات و چالش های آن مطلع شدیم در مطلب دیگری به این بحث می پردازیم که چگونه یادگیری عمیق می تواند به حل مشکلات و چالش ها در پیاده سازی NLP کمک کند.


اشتراک گذاری

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *