پردازش زبان طبیعی
پردازش زبان طبیعی یا به اختصار، NLP، یکی از شاخههای هوش مصنوعی است که به تعاملات بین رایانه و انسان، از طریق زبان طبیعی میپردازد. هدف نهایی NLP، خواندن، رمزگشایی، فهم و درک زبان انسان با روشی ارزشمند است. اکثر روش های پردازش زبان طبیعی برای استخراج و فهم معنای زبان انسانی، مبتنی بر تکنیکهای یادگیری ماشین است.
یک تعامل معمولی، میان انسان و ماشین، شامل مراحل زیر است:
۱-انسان با ماشین صحبت میکند.
۲-ماشین، صدای او را دریافت میکند.
۳-صدای انسان به نوشته تبدیل میشود.
۴-دادههای متنی، توسط رایانه، پردازش میشود.
۵-دادهی متنی، مجددا به صوت تبدیل میشود.
۶-ماشین، با پخش صوت، به کاربر پاسخ میدهد.
تاریخچه NLP
پردازش زبان طبیعی از دهه ۱۹۵۰ و با آزمایش تورینگ آغاز شد. پس از تلاشهای اولیه، پژوهشگران متوجه شدند که پردازش زبان طبیعی خیلی پیچیدهتر از چیزی است که تصور میکردند؛ ناچارا به زبانشناسان متوصل شدند؛ اما در آن زمان نظریه زبانشناسی محکمی وجود نداشت. در سال ۱۹۵۷ و با چاپ کتاب «ساختارهای نحوی» نوام چامسکی، گام مهمی در زمینه Natural Language Processing برداشته شد.
کاربرد پردازش زبان طبیعی چیست؟
NLP، کاربردهای فراوانی دارد. به طور خلاصه، میتوان به کاربردهای زیر اشاره کرد:
- کاربرد در ترجمهی ماشینی مانند Google Translate
- کاربرد در ویرایشگرهای متن مانند Microsoft Word و Google Docs برای تصحیح غلطهای گرامری، نوشتاری و ویرایشی
- پاسخ صوتی تعاملی (Interactive Voice Response یا IVR): از این مورد، در مراکز پاسخگویی به مشتریان، برای پاسخ به سوالات متداول توسط ماشین، استفاده میشود.
- دستیارهای صوتی
چرا NLP، دشوار است؟
پردازش زبان طبیعی یا NLP، در علوم کامپیوتر، مسئلهای دشوار، به حساب میرود. علت این دشواری را باید در طبیعت زبان انسانی پیدا کرد. قوانین حاکم بر زبان انسان در هنگام برقراری ارتباط با دیگران، قوانین بسیار پیچیدهای است که شناخت و فهم آن برای کامپیوتر، آسان نیست. به عنوان مثال، انسانها هنگام صحبت با یکدیگر، ممکن است از جملات طعنهآمیز که معنای روشنی ندارند استفاده کنند. البته، بعضی از قوانین هم واضح است. برای مثال، ما از پسوندهایی مانند “ها” و “ان” برای جمعبستن استفاده میکنیم.
درک کامل زبان انسان و چگونگی ارتباط انسانها با یکدیگر، منوط به درک درست از معنی هر یک از کلمات و همچینن قوانین حاکم بر ترکیب کلمات با یکدیگر است. درک زبان انسان، برای ما کار سختی نیست، اما به علت پیچیدگیهای آن و مبهم بودن کاربردها، درک زبان طبیعی، برای ماشین، کار سختی است.
فناوریهای مورد استفاده در پردازش زبان طبیعی چیست؟
در پردازش زبان طبیعی از دو تکنیک اصلی استفاده میشود:
۱–تجزیه و تحلیل نحوی (Syntactic analysis)
آنالیز نحوی در پردازش زبان طبیعی
نحو یا Syntax، در واقع چیدمان صحیح کلمات در کنار یکدیگر برای ساخت جملهای درست از نقطه نظر دستور زبان است. در پردازش زبان طبیعی، از آنالیز نحوی برای درک قوانین گرامری حاکم بر زبان استفاده میشود.
رایانهها، تکنیکها و الگوریتمهای خاصی را بر مجموعهای از کلمات اعمال میکنند، تا جملات درستی از نظر دستور زبان بسازند. چند مورد از این تکنیکها عبارتند از:
- کاهش (Lemmatization): در این روش، برای تجزیه و تحلیل آسانتر، اشکال مختلف یک کلمه را به فرمی واحد در میآوریم.
- تقسیمبندی مورفولوژیکی (Morphological segmentation): در این تکنیک، واژهها را به واحدهای کوچکتری به نام واژک (morphemes) تبدیل میکنیم.
- تقسیمبندی واژهها (Word segmentation): در این روش، یک متن طولانی را به واحدهای کوچکتر (واژهها) تبدیل میکنیم.
- تشخیص نقش کلمات (Part-of-speech tagging): در این تکنیک، نقش هر کلمه در جمله را تعیین میکنیم؛ برای مثال، تعیین میکنیم یک کلمه فعل است یا صفت یا ….
- تجزیه (Parsing): این روش، در واقع آنالیز گرامری جملات را مورد بررسی قرار میدهد.
- تعیین جملهها (Sentence breaking): یکی از مهمترین کارهایی که باید در پردازش زبان طبیعی انجام دهیم، شناخت درست شروع و انتهای جملات است.
- ریشهیابی (Stemming): این تکنیک شامل یافتن فرم ساده و اولیهی کلماتی میشود که با تغییراتی، در جمله استفاده شدهاند.
۲–تجزیه و تحلیل معنایی (semantic analysis)
در تکنیکهای آنالیز معنایی، هدف ما درک معنای درست یک متن است. آنالیز معنایی، یکی از سختترین کارها در پردازش زبان طبیعی (NLP) است که هنوز هم مسائل حلنشدهی بسیاری دربارهی آن وجود دارد. در آنالیز معنایی، با پیادهسازی الگوریتمها و روشهای مختلف، سعی میکنیم معنای درست متن را درک کنیم.
چند مورد از این تکنیکها عبارتند از:
- شناسایی اسامی (Named entity recognition یا NER): در این روش، بخشهایی از متن را در گروههای از پیشتعیینشدهی خاصی قرار میدهیم. برای مثال، نامهای خاص اشخاص و نام اماکن را از متن استخراج میکنیم.
- ابهامزدایی از معنای کلمات (Word sense disambiguation): یک کلمه ممکن است معانی مختلفی داشته باشد؛ در این تکنیک، با توجه به سایر بخشها متن، معنی متناسبی برای هر کلمه مییابیم.
- تولید زبان طبیعی (Natural language generation): در این روش، با استفاده از دیتابیسهای موجود، مفاهیم جدیدی خلق و آنها را به زبان طبیعی تبدیل میکنیم.
چرا پردازش زبان طبیعی مهم است؟
حجم زیاده دادههای متنی
پردازش زبان طبیعی، رایانهها را قادر میسازد تا با زبان خود انسانها با آنها ارتباط برقرار کنند؛ برای مثال حرف انسانها را بشنوند، آن را بخوانند، تحلیل کنند و قسمتهای مهم آن را مشخص نمایند. ماشینهای امروزی قادرند حجم بیشتر از دادههای متنی را در زمان کمتری نسبت به انسان تحلیل کنند. علاوه بر این رایانهها از اشتباه و دیدگاههای متعصبانه نیز دورند. تصور حجم زیاد دادههای متنی که هر روز به خصوص در شبکهای اجتماعی تولید میشوند، ما را وادار به استفاده از پردازش زبان طبیعی میکند.
ساختاربندی حجم زیادی از دادههای بیساختار!
زبان انسان به شدت پیچیده و نامفهوم است. ما انسانها منظور خود را به روشهای متعددی بیان میکنیم! علاوه بر این زبانهای متعددی در دنیا وجود دارند که هر کدام قواعد دستوری مخصوص خود را دارا هستند. هنگامی که در شبکههای اجتماعی متنی را نگارش میکنیم، معمولا از علائم نگارشی استفاده نمیشود و ممکن است گویش یا لهجه را نیز وارد متن خود کنیم.
منبع : علیرضا کریمی- فنولوژی