پردازش زبان طبیعی / nlp

پردازش زبان طبیعی چیست؟ natural language processing6 دقیقه مطالعه

هدیه فنولوژی به شما

پردازش زبان طبیعی یا nlp، یک فناوری برای درک زبان انسانی توسط کامپیوتر است. یاد دادن روش ارتباطی انسان‌ها به کامپیوتر، به هیچ وجه کار آسانی نیست. لیند رماف (Leand Romaf)، مهندس نرم‌افزار با تجربه‌ای است. او در این باره می‌گوید: در سال‌های اخیر، فعالیت‌های درخشانی در حوزه‌ی توانمندسازی رایانه‌ها برای فهم زبان انسانی، انجام گرفته است.

در این مقاله، مقدمات پردازش زبان طبیعی (NLP) را بیان می‌کنیم و راه‌های رسیدن به این هدف مهم، یعنی توانمندسازی رایانه‌ها در فهم زبان انسان، عنوان می‌شود.

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

پردازش زبان طبیعی (Natural Language Processing) یا به اختصار، NLP، یکی از شاخه‌های هوش مصنوعی است که به تعاملات بین رایانه و انسان، از طریق زبان طبیعی می‌پردازد. هدف غایی NLP، خواندن، رمزگشایی، فهم و درک زبان انسان با روشی ارزشمند است. بیش‌تر روش های پردازش زبان طبیعی برای استخراج و فهم معنای زبان انسانی، مبتنی بر تکنیک‌های یادگیری ماشین است.

یک تعامل معمولی، میان انسان و ماشین، شامل مراحل زیر است:

۱-انسان با ماشین صحبت می‌کند.

۲-ماشین، صدای او را ضبط می‌کند.

۳-صدای انسان به نوشته تبدیل می‌شود.

۴-داده‌های متنی، توسط رایانه، پردازش می‌شود.

۵-داده‌ی متنی، مجددا به صوت تبدیل می‌شود.

۶-ماشین، با پخش صوت، به کاربر پاسخ می‌دهد.

پردازش زبان طبیعی / nlp

تاریخچه NLP

پردازش زبان طبیعی از دهه ۱۹۵۰ و با آزمایش تورینگ آغاز شد. پس از تلاش‌های اولیه، پژوهشگران متوجه شدند که پردازش زبان طبیعی خیلی پیچیده‌تر از چیزی است که تصور می‌کردند؛ ناچارا به زبان‌شناسان متوصل شدند؛ اما در آن زمان نظریه زبان‌شناسی محکمی وجود نداشت. در سال ۱۹۵۷ و با چاپ کتاب «ساختارهای نحوی» نوام چامسکی، گام مهمی در زمینه Natural Language Processing برداشته شد.

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

NLP، کاربردهای فراوانی دارد. به طور خلاصه، می‌توان به کاربردهای زیر اشاره کرد:

  • کاربرد در ترجمه‌ی ماشینی مانند گوگل ترنسلیت
  • کاربرد در ویرایشگرهای متن مانند Microsoft Word و Google Docs برای تصحیح غلط‌های گرامری، نوشتاری و ویرایشی
  • پاسخ صوتی تعاملی (Interactive Voice Response یا IVR): از این مورد، در مراکز پاسخ‌گویی به مشتریان، برای پاسخ به سوالات متداول توسط ماشین، استفاده می‌شود.
  • دستیارهای صوتی مانند کورتانا، سیری، الکسا و ….

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

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

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

شبکه عصبی / neural network

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

در پردازش زبان طبیعی، ما به دنبال پیاده‌سازی و کشف الگوریتم‌هایی هستیم که بتواند داده‌های ساختارنیافته‌ی زبان انسان را به داده‌های منظم و قابل فهم برای رایانه تبدیل کند. وقتی متنی را به رایانه می‌دهیم، سعی می‌کند تمام جملات آن را بررسی کند و از الگوریتم‌های مختلفی برای فهم معنای آن جملات، استفاده کند. در پاره‌ای از مواقع، رایانه قادر به فهم یک داده‌ی متنی خاص نیست. برای مثال در دهه‌ی ۱۹۵۰، هنگام ترجمه‌ی متنی از انگلیسی به روسی و بالعکس اتفاق جالبی رخ داد:

متن انگلیسی:‌

The spirit is willing, but the flesh is weak (روح مایل است اما بدن ضعیف است)

متنی که مجددا پس از تبدیل به روسی، به انگلیسی ترجمه شده:

The vodka is good, but the meat is rotten (ودکا خوب است اما گوشت فاسد است)

این اشتباه، به علت چند معنایی بودن کلمات مورد استفاده در این جمله، بوده است.

آموزش پایتون

فناوری‌های مورد استفاده در NLP چیست؟

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

۱-تجزیه و تحلیل نحوی (Syntactic analysis)

۲-تجزیه و تحلیل معنایی (semantic analysis)

آنالیز نحوی در پردازش زبان طبیعی

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

رایانه‌ها، تکنیک‌ها و الگوریتم‌های خاصی را بر مجموعه‌ای از کلمات اعمال می‌کنند، تا جملات درستی از نظر دستور زبان بسازند. چند مورد از این تکنیک‌ها عبارتند از:

  • کاهش (Lemmatization): در این روش، برای تجزیه و تحلیل آسان‌تر، اشکال مختلف یک کلمه را به فرمی واحد در می‌آوریم.
  • تقسیم‌بندی مورفولوژیکی (Morphological segmentation): در این تکنیک، واژه‌ها را به واحدهای کوچک‌تری به نام واژک (morphemes) تبدیل می‌کنیم.
  • تقسیم‌بندی واژه‌ها (Word segmentation): در این روش، یک متن طولانی را به واحد‌های کوچک‌تر (واژه‌ها) تبدیل می‌کنیم.
  • تشخیص نقش کلمات (Part-of-speech tagging):‌ در این تکنیک، نقش هر کلمه در جمله را تعیین می‌کنیم؛ برای مثال، تعیین می‌کنیم یک کلمه فعل است یا صفت یا ….
  • تجزیه (Parsing):‌ این روش، در واقع آنالیز گرامری جملات را مورد بررسی قرار می‌دهد.
  • تعیین جمله‌ها (Sentence breaking):‌ یکی از مهم‌ترین کارهایی که باید در پردازش زبان طبیعی انجام دهیم، شناخت درست شروع و انتهای جملات است.
  • ریشه‌یابی (Stemming): این تکنیک شامل یافتن فرم ساده و اولیه‌ی کلماتی می‌شود که با تغییراتی، در جمله استفاده شده‌اند.

هوش مصنوعی ai

آنالیز معنایی در پردازش زبان طبیعی

در تکنیک‌های آنالیز معنایی، هدف ما درک معنای درست یک متن است. آنالیز معنایی، یکی از سخت‌ترین کارها در پردازش زبان طبیعی (NLP) است که هنوز هم مسائل حل‌نشده‌ی بسیاری درباره‌ی آن وجود دارد. در آنالیز معنایی، با پیاده‌سازی الگوریتم‌ها و روش‌های مختلف، سعی می‌کنیم معنای درست متن را درک کنیم. چند مورد از این تکنیک‌ها عبارتند از:

  • شناسایی اسامی (Named entity recognition یا NER): در این روش، بخش‌هایی از متن را در گروه‌های از پیش‌تعیین‌شده‌ی خاصی قرار می‌دهیم. برای مثال، نام‌های خاص اشخاص و نام اماکن را از متن استخراج می‌کنیم.
  • ابهام‌زدایی از معنای کلمات (Word sense disambiguation): یک کلمه ممکن است معانی مختلفی داشته باشد؛ در این تکنیک، با توجه به سایر بخش‌ها متن، معنی متناسبی برای هر کلمه می‌یابیم.
  • تولید زبان طبیعی (Natural language generation): در این روش، با استفاده از دیتابیس‌های موجود، مفاهیم جدیدی خلق و آن‌ها را به زبان طبیعی تبدیل می‌کنیم.

چرا natural language processing / پردازش زبان طبیعی مهم است؟

حجم زیاده داده‌های متنی

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

ساختاربندی حجم زیادی از داده‌های بی‌ساختار!

زبان انسان به شدت پیچیده و نامفهوم است. ما انسان‌ها منظور خود را به روش‌های متعددی بیان می‌کنیم! علاوه بر این زبان‌های متعددی در دنیا وجود دارند که هر کدام قواعد دستوری مخصوص خود را دارا هستند. هنگامی که در شبکه‌های اجتماعی متنی را نگارش می‌کنیم، معمولا از علائم نگارشی استفاده نمی‌شود و ممکن است گویش یا لهجه را نیز وارد متن خود کنیم.

جمع‌بندی

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

منبع: MEDIUM

علیرضا کریمی
علیرضا کریمی
دانشجوی مهندسی کامپیوتر دانشگاه امیرکبیر - بنیان‌گذار فنولوژی
عضویت
اطلاع از
0 دیدگاه‌ها
بازخورد در متن
دیدن همه دیدگاه‌ها

فنولوژی را در شبکه‌های اجتماعی دنبال کنید

©۲۰۲۰ – کلیه حقوق مادی و معنوی متعلق به فنولوژی است.

عضویت در خبرنامه فنولوژی

جذاب‌ترین مطالب سایت را ماهانه دریافت کنید!

خبرنامه