فناوری پردازش زبان طبیعی (NLP) چیست و چه کاربردهایی دارد؟
فناوری پردازش زبان طبیعی (Natural Language Processing) یا به اختصار NLP به تعامل بین زبان بشر و کامپیوتر گفته میشود. این زبان فصل مشترک میان علوم کامپیوتر، هوش مصنوعی و زبان محاسباتی محسوب میشود.
فناوری پردازش زبان طبیعی (NLP) چیست؟
فناوری پردازش زبان طبیعی (NLP) شاخهای از هوش مصنوعی است که در آن کامپیوترها معنی زبان انسانها را به شکل هوشمندانه و کاربردی آنالیز، درک و تفسیر میکنند. برنامهنویسان با به کارگیری NLP میتوانند دانش خود را برای انجام وظایفی مانند خلاصهسازی خودکار، ترجمه، شناسایی موجودیتهای نامدار (named entity recognition)، کشف و دستهبندی ارتباط معنایی (relationship extraction)، تحلیل احساسات (sentiment analysis)، تشخیص گفتار (speech recognition) و بخشبندی موضوعات (topic segmentation) سازمانبندی کنند و ساختار دهند.
عملیات پردازشکنندهی کلمه، با متن مثل رشتهای از نمادها برخورد میکند، در حالی که NLP زبان را ساختاری با سلسلهمراتب در نظر میگیرد.
مجموعهای از کلمات یک عبارت میسازند، چندین عبارت، یک جمله را تشکیل میدهند، در نهایت جملات یک ایده را به وجود میآورند. اکنون این سؤال مطرح میشود که پردازش زبان طبیعی (NLP) چگونه میتواند به کشف احساسات مثبت و منفی در رسانههای اجتماعی کمک کند؟
فناوری NLP این کار را با تجزیهوتحلیل زبان به معنی آن انجام میدهد. سیستمهای NLP مدتها است در این زمینه عملکرد خوبی داشتهاند؛ مانند تصحیح گرامر، تبدیل گفتار به نوشتار و ترجمهی اتوماتیک زبانهای مختلف به یکدیگر از مثالهایی است که میتوان به آن اشاره کرد. NLP برای تجزیهوتحلیل متن استفاده میشود و به ماشینها این امکان را میدهد تا چگونگی صحبت انسان را درک کند و معمولا برای استخراج متن، ترجمه به وسیلهی ماشین و پاسخدهی خودکار به سؤالات استفاده میشود. NLP در دنیای علوم کامپیوتر بهعنوان مسألهی سخت توصیف میشود. زبان انسان بهندرت دقیق یا ساده بیان میشود. ماشینها برای درک زبان انسان، لازم است مفاهیم و چگونگی ایجاد ارتباط آنها به منظور خلق معنا را درک کنند. به همین علت دانستن معنی تکتک کلمات کافی نیست. اگرچه یادگیری زبان یکی از سادهترین کارهایی است که ذهن انسان میتواند آن را بیاموزد، اما ابهام موجود در زبان، تسلط کامپیوتر به فرایند پردازش زبان را سخت و دشوار میکند.
فناوری پردازش زبان طبیعی (NLP) چه کاربردی دارد؟
الگوریتمهای NLP کاربردهای بسیار متنوعی دارد. این فناوری به برنامهنویسها اجازه میدهد، نرمافزاری طراحی کنند که زبان انسان را میفهمد. از آنجایی که زبان بشر ماهیت پیچیدهای دارد، یادگیری و اجرای صحیح زبان برای NLP میتواند کار دشواری باشد. بعضی از برنامهنویسها میتوانند از الگوریتمهای NLP برای اهداف زیر استفاده کنند.
بلاکهای خلاصه کنندهی متن
با استفاده از خلاصهکنندهها، میتوان اطلاعات بیربط را نادیده گرفت و مطالب مهم و ایدههای اصلی را استخراج کرد.
طراحی ربات چت
گوگل با کمک Point-of-Speech مدلی برای تجزیهوتحلیل زبان با Deep Learning ساخته است.
ساخت تگهای کلمات کلیدی به صورت اتوماتیک
آنالیز تشخیص خطی (Linear Discriminant Analysis) یا LDA تکنیکی است که به کمک آن میتوان موضوعات موجود در درون یک متن را تشخیص دارد.
تشخیص نوع موجودیت به دست آمده
درست مانند آنکه یک شخص، مکان یا سازمانی از شناسایی موجودیتهای نامدار استفاده میکند.
تشخیص احساسات
با استفاده از تحلیل احساسات میتوان حسوحال رشتهای از متون را از بسیار منفی گرفته تا خنثی و بسیار مثبت تشخیص داد.
کتابخانههای Open Source فناوری پردازش زبان طبیعی (NLP)
این کتابخانهها، الگوریتمهای ساخت بلاک NLP را برای کاربردهای واقعی فراهم میکند.
Apache OpenNLP
یک ابزار یادگیری ماشینی است که توکنسازی، تقسیمبندی جملات، نقش دستوری کلمات، متنکاوی، قطعهبندی، تجزیه، تفکیکپذیری نقش را ارائه میدهد.
NLTK
Natural Language Toolkit کتابخانهای است که ماژولهای متعددی برای پردازش متن، دستهبندی، توکنسازی، ریشهیابی، برچسبزنی، تجزیه و کارهای دیگر در اختیار شما قرار میدهد.
Stanford NLP
مجموعهای از ابزارهای NLP است که نقش دستوری کلمات، متن کاوی، بازشناسی موجودیت اسمی، سیستم تفکیکپذیری نقش، تحلیل احساسات را عرضه میکند.
MALLET
یک بستهی جاوا است که تخصیص پنهان دیریکله (Latent Dirichlet Allocation)، دستهبندی اسناد، خوشهبندی، مدلسازی موضوعی و استخراج اطلاعات را ارائه میدهد.
به مثالهای زیر که نمونههایی از نمونههایی از پردازش زبان طبیعی است، توجه کنید.
- استفاده از خلاصهکنندهها (Summarizer) به منظور خلاصه کردن بلاکهای متنی، جملات موضوعی بسیار دقیق و نادیده گرفتن بقیهی متن.
- تولید برچسبهای کلمات کلیدی با استفاده از LDA که مرتبطترین کلمه را از متن تعیین میکند. این الگوریتم قلب تپندهی Auto-Tag و میکروسرویسهای Auto-Tag URL است.
- تحلیل احساسات، بر اساس StanfordNLP میتواند برای تشخیص احساسات، نظر یا عقیده دربارهی یک نظریه از نظرات بسیار منفی گرفته تا خنثی و بسیار خوب و مثبت استفاده شود. برنامهنویسها معمولا این الگوریتم را برای تشخیص احساسات در یک جمله یا تجزیهوتحلیل احساسات در رسانههای اجتماعی به کار میگیرند.
الگوریتمهای NLP معمولا بر اساس الگوریتمهای یادگیری ماشین است. NLP به جای کدنویسی مجموعهای بزرگ از قوانین، میتواند به یادگیری ماشینی اعتماد کند تا با آنالیز مجموعهای از مثالها این قوانین را به صورت خودکار بیاموزد. به طور کلی هرچه دادههای بیشتری تحلیل شود، مدل دقیقتر خواهد شد. آنالیز رسانههای اجتماعی یک مثال عالی از کاربرد NLP است. برندها به صورت آنلاین مکالمات پیرامون مسائل مختلف را دنبال میکنند تا ببینند مشتریها چه میگویند و درک صحیحی از رفتار آنها به دست بیاورند.
کتابهای پیشنهادی NLP برای مبتدیها
Speech and Language Processing
این کتاب در نوع خود اولین اثری است که به طور کامل زبان فناوری، تمام سطوح آن و تمام فناوریهای مدرن را پوشش میدهد. این اثر با به کارگیری آمار و الگوریتمهای یادگیری ماشین برای نهادهای بزرگ، رویکردی تجربی را ارائه میدهد.
Foundations of Statistical Natural Language Processing
این کتاب اولین اثر کامل و جامع برای معرفی پردازش آماری زبان طبیعی است و شامل تئوریها و الگوریتمهای لازم برای ابزار NLP است. این اثر مباحث اساسی ریاضی و زبانی را به طور دقیق ارائه کرده و همچین دارای بحث و تبادل نظر روشهای آماری است که به دانشجویان و محققان اجازه میدهد تا نظریات خود را پیادهسازی کنند.
Handbook of Natural Language Processing
دومین ویرایش این کتاب، ابزارها و تکنیکهای کاربردی برای اجرای پردازش زبان طبیعی در کامپیوتر را ارائه میدهد. همچنین مطالب قدیمی و منسوخ از کتاب حذف شده است. این ویرایش هر فصل را با مطالب جدید و کاربردی نظیر تحلیل احساسات به روز رسانی کرده و محتوای آن را توسعه داده است.
Introduction to Information Retrieval
تا همین سال ۱۹۹۰، مطالعات نشان میداد مردم ترجیح میدهند اطلاعات را از طریق افراد دیگر دریافت کنند تا اینکه آن را از سیستمهای بازیابی اطلاعات بگیرند. با این حال در طول دههی گذشته بهینهسازی بیوقفهی اطلاعات، کیفیت موتورهای جستوجوی وب را به سطح کیفی مطلوبی سوق داده است که اکثر مردم از آن رضایت دارند. همچنین جستوجوی در وب به یک منبع قابل اطمینان و ارجح برای یافتن اطلاعات تبدیل شده است. بهعنوان مثال یافتهها در سال ۲۰۰۴ نشان میدهد که ۹۲ درصد از کابران اینترنت معتقدند اینترنت فضای بسیار خوبی برای دریافت اطلاعات روزانه است. در کمال تعجب بسیار، بازیابی اطلاعات از یک رشتهی دانشگاهی به مبنای اساسی برای دسترسی به اطلاعات بیشتر تبدیل شده است.
Natural Language Processing with Python: Analyzing Text with the Natural Language Toolkit
این کتاب دربارهی پردازش زبان طبیعی است. منظور از زبان طبیعی، زبانی است که افراد در گفتوگوهای روزمرهی خود به کار میبرند مانند زبان انگلیسی، هندی یا پرتغالی. از سوی دیگر، این میتواند به سادگیِ شمارش تعداد کلمات برای مقایسهی سبکهای مختلف نگارش باشد.
دورههای آموزشی فناوری پردازش زبان طبیعی (NLP)
Stanford Natural Language Processing on Coursera
این دوره طیف گستردهای از مباحث پردازش زبان طبیعی را به همراه کلمات، توکنسازی جملات، طبقهبندی متون، آنالیز احساسات، تصحیح املا، استخراج اطلاعات، تجزیه، استخراج معنی و پرسش و پاسخ پوشش میدهد. شما همچنین با تئوریهای اساسی از آمار، احتمالات، یادگیری ماشینی که برای این رشته بسیار پر اهمیت است، آشنا میشوید. این دوره الگوریتمهای اساسی مانند زبان مدلسازی n-gram، naive bayes، طبقهبندی متن، مدلهای متوالی مانند مدلهای پنهان مارکوف و وابستگی احتمالی را در اختیار شما قرار میدهد.
Stanford Machine Learning on Coursera
یادگیری ماشین علمِ عملی شدن کامپیوترها بدون برنامه ریزی مشخص است. همچنین بسیاری از متخصصین گمان میکنند که بهترین راه پیشرفت حرکت به سمت هوش مصنوعی است. در این دوره شما دربارهی کاربردیترین تکنیکهای یادگیری ماشین میآموزید و میتوانید آنها را به صورت عملی اجرا کنید تا تنها برای شما کار کند.
Udemy’s Introduction to Natural Language Processing
شما در این دوره، با فناوری NLP و با استفاده از زبان پایتون و NLTK آشنا میشوید. در واقع از طریق یک رویکرد عملی، به طور مستقیم، کار با تجزیهوتحلیل متن را تجربه خواهید کرد. شما بهعنوان دانشجوی این دوره، جدیدترین مطالب که شامل مرور کنفرانسها و سخنرانیها، نمونه کدهای جدید و پروژههای جدید است را به صورت رایگان دریافت خواهید کرد.
Certificate in Natural Language Technology
زمانی که شما با تلفن همراه خود یا سیستم مسیریابی خودرو صحبت میکنید یا به عکس زمانی که آنها با شما صحبت میکنند، در واقع شما نتیجهی توسعهی پردازش زبان طبیعی را مشاهده میکنید. این زمینه بر طراحی و خلق نرمافزارهایی که میتوانند زبان انسان را آنالیز کنند، تمرکز کرده در چند سال اخیر رشد بیسابقهای داشته است و در بسیاری از تکنولوژیها به گرفته میشود.
Natural language processing (Wikipedia)
پردازش زبان طبیعی شاخهای از علوم کامپیوتر، هوش مصنوعی و زبان شناسی محاسباتی محسوب میشود که به تعامل میان کامپیوترها و زبان انسانها میپردازد. در سال ۱۹۵۰ آلن تورینگ مقالهای را تحت عنوان Computing Machinery and Intelligence منتشر کرد که اکنون ملاک هوش به شمار میآید و از آن بهعنوان آزمون تورینگ یاد میشود. در اواخر سال ۱۹۸۰ با معرفی الگوریتمهای یادگیری ماشین برای پردازش زبان انقلاب بزرگی در NLP رخ داد.
Outline of natural language processing (Wikipedia)
این طرح یک مرور کلی و راهنمای موضوعی را از NLP فراهم کرده است؛ پردازش زبانهای طبیعی، فعالیت کامپیوترها که در آن کامپیوتر قادر است زبان طبیعی را آنالیز، درک و در نهایت تولید کند.
Apache OpenNLP
کتابخانه OpenNLP یک ابزار مبتنی بر یادگیری ماشینی برای پردازش متن زبان طبیعی به شمار میآید.
Natural Language Toolkit
NTLK بستری برای ساخت برنامههای پایتون به منظور کار با دادههای زبانهای انسانی است. این بستر رابط کاربردی آسانی برای بیش از ۵۰ پیکره و منابع لغوی نظیر WordNet دارد و مجموعهای از کتابخانهها طبقهبندی شدهی پردازش متن، توکنسازی، ریشهیابی، برچسبزنی، تجزیه و استدلال معنایی و فرومهای فعال گفتوگو را در اختیار شما قرار میدهد. پردازش زبان با پایتون مقدمهای عملی برای برنامهنویسی پردازش زبان را فراهم میکند.
از دیگر دورههای مفید برای یادگیری NLP میتوان به دورههای زیر اشاره کرد؛
- Six Natural Language Processing Algorithms for Web Developers
- A curated list of speech and natural language processing resources
- NLP research group at google
- General Introduction to NLP