پردازش زبان طبیعی چیست؟ هرآنچه باید درباره این فناوری بدانید
با گسترش عصر اطلاعات و با توجه به اینکه اکثر این اطلاعات در قالب متن در دسترس همگان هستند، امکان انجام محاسبات روی این متون و درک آنها توسط رایانهها روزبهروز پراهمیتتر میشود. درواقع، پردازش زبان طبیعی (NLP Natural Language Processing) زیرشاخهای از هوش مصنوعی و زبانشناسی است که سعی دارد تواناییهای انسان در پردازش متن را توسط رایانهها شبیهسازی کند. پردازش زبان طبیعی باهدف تعامل بین انسان و کامپیوتر شکلگرفته است. به کمک فناوری پردازش زبان طبیعی، کامپیوتر این توانایی را خواهد داشت تا دستنوشتههای انسان را بهطور کامل درک کرده (فهم زبان طبیعی) و در مقابل پاسخ مناسب را در اختیار او قرار دهد (تولید زبان طبیعی). امروزه فناوری پردازش زبان طبیعی توانسته نقش رو به رشدی را در راهکارهای سازمانی ایفا کند و به سادهسازی عملیات تجاری، افزایش بهرهوری کارمندان و سادهسازی فرآیندهای تجاری کمک کند.
پردازش زبان طبیعی (NLP) چیست؟
پردازش زبان طبیعی (NLP) به شاخهای از علوم رایانه و بهطور خاص، شاخهای از هوش مصنوعی یا AI مربوط میشود که در آن با استفاده از مدلهای آماری، یادگیری ماشین و یادگیری عمیق میتوان رایانه ها را نهتنها قادر ساخت که زبان انسان را در قالب متن یا دادههای صوتی پردازش کرده و معنای آن را “کاملاً” درک کنند بلکه نیت و احساس نویسنده را نیز متوجه شوند.
پردازش زبان طبیعی با گرفتن دادههای بدون ساختار Unstructured data و تبدیل آنها به یک قالب داده ساختاریافته کار میکند. این کار را از طریق شناسایی موجودیتهای نامگذاری شده و شناسایی الگوهای کلمه، با استفاده از روشهایی مانند نشانهگذاری tokenization، ریشهیابی stemming و لماتیزاسیون lemmatization، که اشکال مختلف ریشهی کلمات را بررسی میکند، انجام میدهد. بهعنوانمثال، پسوند -ed در زبان انگلیسی اگر به فعلی اضافه شود، مانند call، نشاندهنده زمان گذشته است؛ درحالیکه مصدر فراخوانی آن بازمان حال یکی هست.
زبق توضیح سایت IBM درحالیکه الگوریتمهای مختلفی برای پردازش زبان طبیعی وجود دارد، روشهای متفاوتی برای انواع مختلف وظایف زبانی مورداستفاده قرار میگیرد. بهعنوانمثال، الگوریتم زنجیرههای مخفی مارکوفhidden Markov chains برای برچسب زدن بخشی از گفتار استفاده میشوند. شبکههای عصبی، به تولید دنباله متن مناسب کمک میکند. این تکنیکها برای پشتیبانی از فناوریهای رایج مانند چتباتها یا محصولات تشخیص گفتار مانند Alexa آمازون یا Siri اپل با یکدیگر همکاری میکنند. بااینحال، کاربرد آن گستردهتر از آن بوده است و صنایع دیگر مانند آموزش و مراقبتهای بهداشتی را تحت تأثیر قرار داده است.
تاریخچه پردازش زبان طبیعی چیست؟
انسان دائماً محیط خود را بر اساس نیازهایش شکل میدهد و این تغییرات به اشکال مختلف ظاهر میشوند، مهمترین تغییر به وجود آمده توسط بشر تولید و استفاده از زبانهای طبیعی برای برقراری ارتباط با همنوعان خود هست. بشر به کمک زبانهای طبیعی میتواند افکار، خواستهها و رؤیاهایش را بیان کند و با برقراری ارتباط سبب ایجاد جوامع مختلف شود.
حال انسان امروزی درحالتوسعه و آموزش زبان طبیعی به ماشینها است تا آنها نیز بتوانند زبان انسان را در درجه اول درک کرده و سپس آن را تولید کنند و با انسانها به برقراری ارتباط بپردازند.
مطالعه پردازش زبان طبیعی بهطورکلی در دهه 1950 آغاز شد، اگرچه برخی آثار را میتوان از دورههای قبلی نیز یافت. در سال 1950 ، آلن تورینگ مقالهای تحت عنوان “ماشینهای محاسبه و هوش” منتشر کرد که آنچه را که امروزه آزمایش تورینگTuring Test نامیده میشود بهعنوان معیار هوش ارائه میدهد.
آزمون تورینگ که توسط آلن تورینگ در سال 1950 ایجاد شد، آزمونی است برای نشان دادن توانایی دستگاه در رفتار هوشمندانه و غیرقابل تشخیص از رفتار یک انسان.
تا دهه 1980، اکثر سیستمهای NLP بر اساس مجموعه پیچیدهای از قوانین دستنویس بودند. از اواخر دهه 1980، انقلابی در فناوری پردازش زبان طبیعی با معرفی الگوریتمهای یادگیری ماشین (ML) ایجاد شد. انتشار کتاب ساختهای نحوی Syntactic Structures اثر آورام نوآم چامسکیAvram Noam Chomsky در سال 1957 نیز کمک شایانی به پیشرفت در حوزه پردازش زبان طبیعی کرد. درنهایت دوره اوج این فناوری را میتوان از سال 2012 به بعد و پس از رشد یافتن الگوریتمهای یادگیری عمیق دانست.
روش کار پردازش زبان طبیعی چیست؟
برای شروع پردازش یک متن و آموزش یک سیستم باید چند مرحله مختلف طی شود. در ادامه این مراحل به تشریح آمده است:
تقسیمبندی
فرایند تقسیمبندی segmentation متن نوشتاری به واحدهای معنیدار مانند کلمات، جملات یا موضوعات است. این اصطلاح هم در مورد فرآیندهای ذهنی که انسان هنگام خواندن متن استفاده میکند، و هم در مورد فرآیندهای مصنوعی که در رایانهها اجرا میشوند، که موضوع پردازش زبان طبیعی هستند، صدق میکند.
نشانهگذاری یا توکن سازی
توکن سازی یا نشانهگذاری یکی از رایجترین وظایف هنگام کار با دادههای متنی است. توکن سازی اساساً عبارت است از تقسیم یک عبارت، جمله، پاراگراف یا یک سند متنی کامل به واحدهای کوچکتر، مانند کلمات یا اصطلاحات فردی. به هر یک از این واحدهای کوچکتر یک توکن گفته میشود.
حذف ایست واژه
در این مرحله کلماتی مانند از، به، با، که و غیره را در یک متن پیداکرده و آنها را از متن خارج میکرده چراکه نیازی نیست این کلمات فضای پایگاه داده را اشغال کنند یا زمان پردازش ارزشمندی را به خود اختصاص دهند. این کلمات در طی فرآیند پردازش یک متن نادیده گرفته میشوند هم در هنگام فهرستبندی نوشتهها برای جستجو و هم در هنگام بازیابی آنها از یک عبارت. NLTK (مجموعه ابزار زبان طبیعی) در پایتون دارای فهرستی از کلمات کلیدی است که به 16 زبان مختلف ذخیره شده است و میتوان آنها را در فهرست nltk_data پیدا کرد.
استخراج ریشه کلمات
در مرحله استخراج ریشه کلمات stemming تمامی پسوندها و پیشوندهای کلمه حذف شده و به کلمه به مصدر اصلی خود تبدیل میگردد. در دستورهای زبانی از این پسوند و پیشوندها برای ایجاد یک کلمه جدید از مصدر اصلی استفاده میشود. در پردازش زبان طبیعی نیاز داریم که تمام تغییرات اعمالشده بر روی کلمات حذف گردد. سه تکنیک معروف برای این مرحله Porter Stemmer، Snowball Stemmer و Lancaster Stemmmer هستند.
تعیین نوع کلمه
برچسبگذاری بخشی از گفتار یا همان تعیین نوع کلمه Part of Speech Tagging (POS) یک فرایند رایج در پردازش زبان طبیعی است که به دستهبندی کلمات در متن، میپردازد. بخشهایی از برچسبهای گفتاری ویژگیهای کلمات هستند که زمینه اصلی، عملکردها و کاربرد آنها در جمله را مشخص میکند. شاخصترین انواع کلمه شامل موارد زیر است:
برچسبگذاری موجودیتها
در مرحله برچسبگذاری موجودیتها Named entity recognition از پردازش زبانهای طبیعی موجودیتهای نامگذاری شده را باید مشخص نمود؛ بدین صورت که باید متن مورد نظر را از لحاظ مواردی چون نامها، سازمانها، مکانها، اصطلاحات تخصصی صنایع مختلف، قیدهای زمانی، مقادیر، واحدهای پولی، درصدها و سایر مواردی ازایندست بررسی کرد و این کلمات را برچسبگذاری نمود.
پردازش زبان طبیعی با پایتون
موارد زیادی در مورد پایتون وجود دارد که آن را به یکزبان برنامهنویسی بسیار خوب برای پروژه NLP تبدیل میکند. نحو ساده و معانی شفاف این زبان آن را به گزینهای عالی برای پروژههایی که شامل وظایف پردازش زبان طبیعی است تبدیل میکند. علاوه بر این، توسعهدهندگان میتوانند از پشتیبانی جهت ادغام با سایر زبانها و ابزارهایی که برای تکنیکهایی مانند یادگیری ماشین مفید است، برخوردار شوند.
اما نکته دیگری که در مورد این زبان برنامهنویسی وجود دارد این است که فناوری بسیار خوبی برای کمک به ماشینها در پردازش زبانهای طبیعی دارد. پایتون مجموعه گستردهای از ابزارها و کتابخانههای NLP را در اختیار توسعهدهندگان قرار میدهد که توسعهدهندگان را قادر میسازد تا تعداد زیادی از وظایف مربوط به پردازش زبان طبیعی مانند طبقهبندی اسناد، مدلسازی موضوع، برچسبگذاری بخشی از گفتار (POS)، بردارهای کلمه و تجزیهوتحلیل احساسات را انجام دهند.
برترین کتابخانههای پردازش زبان طبیعی در پایتون
درگذشته، تنها متخصصان میتوانستند بخشی از پروژههای پردازش زبان طبیعی باشند که نیاز به دانش برتر در زمینه ریاضیات، یادگیری ماشین و زبان شناسی دارد. اما امروزه، توسعهدهندگان میتوانند از ابزارهای آمادهای استفاده کنند که پیش پردازش متن را ساده میکند تا بتوانند بر ساخت مدلهای یادگیری ماشین تمرکز کنند.
ابزارها و کتابخانههای زیادی برای حل مشکلات NLP ایجادشده است. 8 کتابخانه برتر پردازش زبان طبیعی پایتون در ادامه تشریح شدهاند:
کتابخانه Natural Language Toolkit (NLTK)
NLTK یک کتابخانه ضروری است که وظایفی مانند طبقهبندی، ریشهیابی، برچسبگذاری، تجزیه، استدلال معنایی و نشانهگذاری را در پایتون پشتیبانی میکند. این کتابخانه ابزار اصلی افراد برای پردازش زبان طبیعی و یادگیری ماشینی است. امروزه بهعنوان یک پایه آموزشی برای توسعهدهندگان پایتون که بهتازگی در زمینه پردازش زبانهای طبیعی و یادگیری ماشین وارد شدهاند، عمل میکند.
این کتابخانه توسط استیون برد و ادوارد لوپر در دانشگاه پنسیلوانیا توسعه داده شد و نقش کلیدی در پیشرفت تحقیقات NLP ایفا کرد. بسیاری از دانشگاههای سراسر جهان در حال حاضر از NLTK، کتابخانههای پایتون و سایر ابزارها در دورههای خود استفاده میکنند.
این کتابخانه بسیار متنوع است، اما باید این را نیز بیان کرد که استفاده از آن برای پردازش زبان طبیعی با پایتون نیز بسیار مشکل است. NLTK میتواند نسبتاً کند باشد و با نیازهای استفاده سریع از تولید مطابقت نداشته باشد. منحنی یادگیری آن شدید است، اما توسعهدهندگان میتوانند از این کتابخانه برای کسب اطلاعات بیشتر در مورد مفاهیم پردازش زبان طبیعی استفاده کنند.
کتابخانه TextBlob
TextBlob برای توسعهدهندگانی که کار خود را با NLP در پایتون آغاز میکنند و میخواهند از اولین برخورد خود با NLTK حداکثر استفاده را ببرند، ضروری است. این برنامه اساساً رابط کاربری سادهای را برای مبتدیان فراهم میکند تا به آنها در یادگیری بیشتر وظایف اولیه پردازش زبان طبیعی مانند تجزیهوتحلیل احساسات، برچسبگذاری با پست یا استخراج عبارت اسمی کمک میکند.
تحقیقات نشان داده است که هرکسی که میخواهد اولین گامهای خود را در دنیای پردازش زبانهای طبیعی با پایتون بردارد، باید از این کتابخانه استفاده کند چراکه در طراحی نمونههای اولیه بسیار مفید است. بااینحال، این کتابخانه نواقص اصلی NLTK را نیز به ارث برده است و برای کمک به توسعهدهندگانی سرعت پایینی دارد.
کتابخانه CoreNLP
این کتابخانه در دانشگاه استنفورد توسعه و به زبان جاوا نوشتهشده است. بااینوجود، این کتابخانه دارای بستهبندی برای بسیاری از زبانهای مختلف، ازجمله پایتون است. به همین دلیل است که میتواند برای توسعهدهندگان علاقهمند به کار در زمینه پردازش زبان طبیعی در پایتون مفید باشد. بزرگترین مزیت این کتابخانه سریع بودن آن است و همچنین در محیطهای توسعه محصول بهخوبی کار میکند، علاوه بر این، برخی از اجزای CoreNLP را میتوان با NLTK ادغام کرد که کارایی آن را افزایش میدهد.
کتابخانه Gensim
Gensim یک کتابخانه پایتون است که در شناسایی شباهت معنایی بین دو سند از طریق مدلسازی فضای برداری و جعبهابزار مدلسازی موضوع تخصص دارد. این کتابخانه با استفاده از جریان دادههای کارآمد و الگوریتمهای افزایشی، میتواند دستههای متن طولانی را اداره کند، و اینیک مزیت بزرگ نسبت به سایر کتابخانههای که فقط پردازش دستهای و حافظه را مورد هدف قرار میدهند. آنچه بیشتر در مورد Gensim موردتوجه است، بهینهسازی باورنکردنی و سرعت پردازش آن است که اینها با کمک یک کتابخانه دیگر پایتون، NumPy به دست آمد.
کتابخانه spaCy
spaCy یک کتابخانه نسبتاً جوان است که دسترسی به آن بسیار بیشتر از سایر کتابخانههای Python NLP مانند NLTK است. spaCy سریعترین تجزیهگر نحوی موجود در بازار امروز را ارائه میدهد. علاوه بر این، ازآنجاکه جعبهابزار آن در Cython نوشتهشده است، واقعاً سریع و کارآمد است.
بااینحال ، هیچ ابزاری کامل نیست. spaCy در مقایسه با کتابخانههایی که تا اینجا شرح دادهشدهاند، از کمترین تعداد زبان (هفت) پشتیبانی میکند. بااینحال، افزایش محبوبیت یادگیری ماشین، NLP و spaCy بهعنوان یک کتابخانه کلیدی به این معنی است که این ابزار بهزودی پشتیبانی از زبانهای برنامهنویسی بیشتری را آغاز میکند.
کتابخانه polyglot
این کتابخانه کمی کمتر شناختهشده است اما کارایی خوبی داشته زیرا طیف گستردهای از تجزیهوتحلیل و پوشش زبان چشمگیری را ارائه میدهد. به لطف NumPy ، این کتابخانه نیز بسیار سریع کار میکند. استفاده از polyglot مشابه spaCy است و بسیار کارآمد، ساده و بهطورکلی یک انتخاب عالی برای پروژههایی است که spaCy از زبان آنها پشتیبانی نمیکند.
کتابخانه scikit–learn
این کتابخانه دستی پردازش زبانهای طبیعی طیف گستردهای از الگوریتمها را برای ایجاد مدلهای یادگیری ماشین در اختیار توسعهدهندگان قرار میدهد. این برنامه کاربردهای زیادی برای استفاده از روش کیسه کلمات برای ایجاد ویژگیهایی جهت مقابله با مشکلات طبقهبندی متن ارائه میدهد. نقطه قوت این کتابخانه روش کلاسهای بصری آن است.
بااینحال، این کتابخانه از شبکههای عصبی برای پیش پردازش متن استفاده نمیکند. بنابراین اگر نیاز است تا پیشپردازشهای پیچیدهتری مانند برچسبگذاری POS برای گروههای متنی انجام شود، بهتر است از دیگر کتابخانههای پردازش زبان طبیعی استفاده و سپس برای ساخت مدلهای خود به scikit-learning برگردید.
کتابخانه Pattern
Pattern یکی دیگر از بهترین کتابخانههای موجود در NLP است که توسعهدهندگان پایتون از آن برای مدیریت زبانهای طبیعی استفاده میکنند. الگو برچسبگذاری بخشی از گفتار، تجزیهوتحلیل احساسات، مدلسازی فضای بردار، خوشهبندی، جستجوی n-gram و WordNet را امکانپذیر میکند. به کمک این کتابخانه میتوان از تجزیهکننده DOM، خزنده وب و همچنین برخی از API های مفید مانند Twitter یا Facebook استفاده کرد. بااینوجود، این ابزار در اصل یک وب ماینر است و ممکن است برای تکمیل سایر کارهای پردازش زبان طبیعی کافی نباشد.
کتابخانههای مورداستفاده در پردازش زبان طبیعی فارسی
زبان فارسی قواعد دستور زبانی خاص خود را دارد؛ همین امر سبب شده است تا برای پردازش متون فارسی نیاز به ابزارها و کتابخانههایی باشد که بتواند به محققین در این راستا کمک کند. در طی این سالها کتابخانههای بسیاری جهت حل این مشکل توسعه دادهشده است که در ادامه به برخی از آنها برای نمونه اشارهشده است:
کتابخانه هضم
کتابخانه هضم با استفاده از کتابخانه NLTK در سال 1392 توسط دانشجویان دانشگاه علم و صنعت برای پردازش زبان فارسی توسعه دادهشده است. در ابتدا هضم تنها برای زبان پایتون و سیستمعامل لینوکس طراحیشده بود، اما اکنون برای زبانهای جاوا و C# نیز قابلاستفاده است. نسخه جاوایی این کتابخانه با عنوان JHazm منتشرشده است. ازجمله ویژگیهای این کتابخانه مرتب کردن متون، بخشبندی، ریشهیابی کلمات، تحلیل صرفی و تجزیه نحوی جملات، سازگاری با NLTK و پشتیبانی از نسخههای 2 و 3 پایتون هست.
کتابخانه Stanford پایتون
پایتون در نسخه جدید خود از زبان فارسی نیز پشتیبانی میکند. دانشگاه استنفورد در آخرین نسخه توسعه داده خود از کتابخانهی پردازش زبان طبیعی، از 53 زبان مختلف پشتیبانی میکند که شامل فارسی نیز هست. این امر برای محققین و توسعهدهندگان پردازش زبان فارسی اهمیت بسیار زیادی دارد و تأثیر بسزایی در رشد پروژههای آنها داشته است.
کتابخانه farsiNLPTools
ازجمله ویژگیهای farsiNLPTools میتوان به تجزیهکننده وابستگی منبع باز، برچسبگذاری بخشی از گفتار و نرمال کننده متن برای زبان فارسی اشاره کرد. برای استفاده از farsiNLPTools ابتدا باید برای بخشبندی جملات و نشانهسازی از محصولاتی چون SeTPer استفاده شود سپس برای نرمالسازی متن از این محصول استفاده گردد.
کتابخانه parsivar
یک مجموعه ابزار پردازش زبان برای فارسی است که جهت پیشپردازش متون استفاده میشود. این کتابخانه با NLTK سازگار است و ازجمله ویژگیهای آن میتوان به عادیسازی متن، تصحیح نیمفاصله در متن فارسی، نشانه ساز کلمه و جمله (تقسیم کلمات و جملات)، ریشه کلمه، برچسب POS، تجزیهکننده کمعمق، تجزیهوتحلیل وابستگی و بررسی غلطهای املایی اشاره کرد.
چالشهای پردازش زبان طبیعی
در قرن حاضر هوش مصنوعی بخشی از زندگی روزمره انسانها شده است. Alexa و Siri ، تصحیح خودکار پیامک و ایمیل، چت باتهای خدمات مشتری، همگی از الگوریتمهای یادگیری ماشین و پردازش زبان طبیعی (NLP) برای پردازش، درک و پاسخگویی به زبان انسان، چه نوشتاری و چه گفتاری استفاده میکنند. بااینوجود ابن فناوری هنوز چالشهای را در بردارد که محققین در حال تلاش برای رفع آنها هستند و در ادامه به این چالشها پرداختهشده است.
- کلمات و عبارات متنی مشابه با تلفظهای یکسان
- کلمات و اصطلاحات مترادف
- ضربالمثلها و عبارات کنایهای
- مجهولات
- خطاها در نوشتار یا گفتار
- اصطلاحات و کلمات محاورهای و عامیانه
- زبان مخصوص دامنه
- زبانهای با منابع کم
- عدم تحقیق و توسعه
- کلمات و عبارات زمینهای و مترادف
درک این موارد برای انسان آسان است زیرا افراد متن جمله را میخوانند و همه تعاریف مختلف را درک میکنند. درحالیکه احتمال اینکه مدلهای زبان NLP همه تعاریف را آموخته باشند و بتوانند تفاوت بین آنها در زمینه مختلف را تشخیص دهند، کم است. همهی کلماتی که یکسان تلفظ میشوند اما تعاریف متفاوتی دارند، میتوانند برای پاسخ به سؤالات و کاربردهای تبدیل گفتار به متن مشکلساز باشند، زیرا بهصورت متن نوشتهنشدهاند.
چالشهای پردازش زبان طبیعی فارسی
پردازش زبان طبیعی فارسی و انگلیسی از حیث ماهیت وجودیشان با یکدیگر متفاوت است. در زبان انگلیسی و عموم زبانهای اروپایی و آمریکایی حروف از هم جدا هستند و کلمات باقاعدهی خاصی از هم فاصلهدارند. این در حالی است که در زبان فارسی بعضی از حروف به هم چسبیده و برخی حروف جدا هستند. کلمات نیز گاهی یکپارچهاند و گاهی به کمک فاصله و یا نیمفاصله به دو یا چند بخش تقسیم میشوند.
ازجمله دیگر چالشهای پردازش زبان طبیعی فارسی نیز میتوان به کسره اضافه و انواع مختلف “ی” اشاره کرد. در برخی از متون و اسناد فارسی از “ی” عربی استفادهشده است که این موارد نیز بهمراتب مشکلاتی را سبب میشوند.
پردازش زبان طبیعی و متنکاوی
متنکاوی (که به آن تجزیهوتحلیل متن نیز گفته میشود) یک فناوری هوش مصنوعی (AI) است که از پردازش زبان طبیعی (NLP) برای تبدیل متن آزاد (بدون ساختار) در اسناد و پایگاههای داده به دادههای عادی و ساختاریافته مناسب برای تجزیهوتحلیل استفاده میکند.
متنکاوی که بهطور گسترده در سازمانهای دانشمحور استفاده میشود، فرآیند بررسی مجموعههای بزرگی از اسناد برای کشف اطلاعات جدید یا کمک به پاسخگویی به سؤالات تحقیقاتی خاص است. متنکاوی حقایق، روابط و ادعاهایی را شناسایی میکند که در غیر این صورت در انبوه دادههای بزرگ متنی مدفون میمانند. پس از استخراج، این اطلاعات به یک فرم ساختاریافته تبدیل میشود که میتواند بیشتر مورد تجزیهوتحلیل قرار گیرد، یا مستقیماً با استفاده از جداول HTML خوشهای، نقشههای ذهنی، نمودارها و غیره ارائه شود. متنکاوی از روشهای مختلفی برای پردازش متن استفاده میکند که یکی از مهمترین روشهای آن پردازش زبان طبیعی (NLP) است.
دادههای ساختاریافته ایجادشده توسط متنکاوی را میتوان در پایگاههای و انبارهای داده یا داشبوردهای هوش تجاری ادغام کرد و برای تجزیهوتحلیل توصیفی، تجویزی یا پیشبینی استفاده کرد.
کاربردهای پردازش زبان طبیعی
پردازش زبان طبیعی نیروی محرکه هوش ماشینی در بسیاری از کاربردهای مدرن دنیای واقعی است. در اینجا به چند نمونه اشارهشده است:
تشخیص هرزنامهها
شاید تشخیص اسپم را بهعنوان یکراه حل پردازش زبان طبیعی یا همان NLP در نظر نگیرید، اما بهترین فناوریهای تشخیص هرزنامه از قابلیت طبقهبندی متن NLP برای اسکن ایمیلها برای زبانی که اغلب نشاندهنده هرزنامه یا فیشینگ است استفاده میکند. این شاخصها میتوانند شامل استفاده بیش از حد از اصطلاحات مالی، قواعد دستوری رعایت نشده، زبان تهدیدآمیز ، فوریتهای نامناسب، اشتباه نوشتن نام شرکتها و موارد دیگر باشند. تشخیص هرزنامه یکی از معدود مشکلات پردازش زبان طبیعی است که کارشناسان آن را “عمدتاً حلشده” میدانند.
ترجمه ماشینی
Google Translate نمونهای از فناوری پردازش زبان طبیعی است که بهطور گسترده در دسترس است. ترجمه ماشینی بسیار کارآمد بوده و مؤثر است چراکه باید معنی و لحن زبان ورودی را بهطور دقیق ضبط کرده و آن را به متن با همان معنا و تأثیر مطلوب در زبان خروجی ترجمه کند. ابزارهای ترجمه ماشینی ازنظر دقت پیشرفت خوبی دارند. یک روش عالی برای آزمایش هر ابزار ترجمه ماشینی این است که متن را به یکزبان ترجمه کرده و سپس به اصل برگردانید.
تجزیهوتحلیل احساسات رسانههای اجتماعی
پردازش زبان طبیعی به یک ابزار تجاری مهم برای کشف اطلاعات پنهان از کانالهای رسانههای اجتماعی تبدیلشده است. تجزیهوتحلیل احساسات میتواند زبان مورداستفاده در پستهای رسانههای اجتماعی، پاسخها، بررسیها و موارد دیگر را برای استخراج نگرشها و احساسات در پاسخ به محصولات، تبلیغات و رویدادها تجزیهوتحلیل کند. شرکتهای اطلاعاتی میتوانند در طراحی محصولات، کمپینهای تبلیغاتی و موارد دیگر از این فناوری استفاده کنند.
خلاصهنویسی متن
در خلاصهسازی متن از تکنیکهای پردازش زبان طبیعی جهت درک حجم عظیمی از متون و اسناد دیجیتالی و ایجاد خلاصه و چکیدهای برای فهرستها، پایگاههای تحقیقاتی یا خوانندگان مشغول که وقت خواندن متن کامل را ندارند استفاده میشود. بهترین برنامههای خلاصهنویسی متن از استدلال معنایی و ایجاد زبان طبیعی (NLGNatural language generation) برای نتیجهگیری در خلاصهها استفاده میکنند.
سیستمهای مجازی و چتباتها
سیستمهای مجازی مانند Siri اپل و Alexa آمازون از تشخیص گفتار برای تشخیص الگوهای دستورات صوتی و ایجاد زبان طبیعی استفاده میکنند تا با اقدامات مناسب پاسخ و واکنش درست را ارائه دهند. چتباتها مسیر برعکس این فرآیند را در پاسخ به نوشتههای متنی تایپشده انجام میدهد. چتباتها در زمینههای مختلف راهنماهای بسیار خوبی برای پاسخ به سؤالات تخصصی در آن زمینه هستند. در سالهای اخیر در زمینههای زیادی چون پزشکی و سلامت، آموزش، رسانه، حملونقل و خدمات دولتی و شهری از این ابزارها جهت بهبود خدمات استفادهشده است.
کاربرد پردازش زبان طبیعی در بازاریابی و تبلیغات
همانطور که بیان شد پردازش زبان طبیعی حوزهای از هوش مصنوعی است که به رایانهها اجازه میدهد تا گفتار یا متن انسان را درک، مطالعه و رمزگشایی کنند. ازاینرو صنعت بازاریابی و تبلیغات از نرمافزارهای توسعهیافته با این فناوری برای موارد مختلفی مانند موارد زیر استفاده میکند.
- استخراج کلمات کلیدی از صفحات وب و شبکههای اجتماعی
- چتباتها برای ارتباط با مشتریان و پاسخگویی 24 ساعته به سؤالات آنها
- تولید خودکار نسخه فروش
- نظارت بر نام تجاری
- بازاریابی تأثیرگذار
کاربردهای پردازش زبان طبیعی در پزشکی و سلامت
پذیرش پردازش زبان طبیعی در مراقبتهای بهداشتی به دلیل پتانسیل شناختهشده آن در جستجو، تجزیهوتحلیل و تفسیر مجموعه دادههای بیماران در حال افزایش است. با استفاده از الگوریتمهای پزشکی پیشرفته و یادگیری ماشین در مراقبتهای بهداشتی و ویژگیها و تواناییهای فناوری پردازش زبان طبیعی امکان درک بینشها و مفاهیم مربوط به دادههایی که قبلاً در قالب متن مدفونشدهاند، فراهمشده است. NLP در صنعت پزشکی و سلامت میتواند بهطور دقیق به دادههای بدون ساختار کمک کند، و بینش باورنکردنی در مورد کیفیت، بهبود روشها و نتایج مؤثر برای بیماران ارائه دهد. ازجمله کاربردهای NLP در این صنعت به شرح زیر است:
- استخراج نتایج دادهها از یادداشتها و نمودارهای پیشین
- جمعآوری دادهها
- جستوجو اطلاعات خاص در میان انبوه دادهها
- کشف و کدگذاری پرونده بیماران گذشته
- تجزیهوتحلیل اسناد و نوشتهها پزشکی
- یکسانسازی زبان پزشکان مختلف در خصوص یک موضوع
کاربردهای پردازش زبان طبیعی در آموزش
پردازش زبان طبیعی میتواند کیفیت آموزش را در مقاطع مختلف تحصیلی بهبود بخشد و به مربیان کمک کند تا محیط یادگیری را با خلاقیت بیشتری اداره کنند و نتایج مؤثرتری بر محصلین بگذارند. همچنین مسیر یادگیری را سهولت میبخشد و شرایط بهتری در محیط تحصیل ایجاد میکند. در ادامه برخی از کاربردهای این فناوری در صنعت آموزش آمده است:
- تصحیح متون به لحاظ قواعد دستوری
- کمک در نوشتن مقالات بهتر
- ارزشیابی خودکار محصلین
- کمک در یادگیری زبانهای طبیعی دیگر
- ترجمه متون و اسناد موردنیاز برای تحقیقات
کاربردهای پردازش زبان طبیعی در فین تک
پردازش زبان طبیعی یا NLP در بخش بانکداری و مالی در مقیاس جهانی پیشرفت کرده است و بیشتر مؤسسات مالی از مزایای نوآوریهای این فناوری پیشرفته استفاده میکنند. همراه با هوش مصنوعی و یادگیری ماشین، برنامه پردازش زبان طبیعی در حال ایجاد بهبود در عملیات مالی، ریسک، فروش، تحقیق و توسعه، پشتیبانی از مشتریان و بسیاری از موارد دیگر است که بهنوبه خود منجر به کارایی بیشتر، افزایش بهرهوری، صرفهجویی در هزینه و زمان و منابع میشود. در ادامه برخی از کاربردهای این فناوری در صنعت فین تک آمده است:
- بهبود فرآیند مستندسازی اطلاعات
- تجزیهوتحلیل متون و اسناد مالی
- رباتهای معاملاتی
- مدیریت سود سهام
- یادآوری پرداختههای کارت اعتباری
- تمدید بیمهنامه
کاربردهای پردازش زبان طبیعی در تولید
پردازش زبان طبیعی میتواند به طرق مختلف برای صنعت تولید مورداستفاده قرار گیرد. NLP با تجزیهوتحلیل و گزارشگیری از وضعیت موجود میتواند بر زنجیره تأمین تأثیر بگذارد و سبب بهبود تولید شود. همچنین این فناوری خدمترسانی به مشتریان را بسیار آسانتر میکند. در ادامه برخی از کاربردهای پردازش زبان طبیعی در صنعت تولید شرح دادهشده است.
- تجزیهوتحلیل اسناد برای بهبود زنجیره ارزش
- بررسی منابع آنلاین جهت کشف اطلاعاتی از قبیل نرخ حملونقل، قیمت سوخت و هزینه نیروی کار
- ثبت سفارش خودکار
- درک استراتژی رقبا از طریق پردازش منابع آنلاین
- ثبت اطلاعات تولید و فروش
- شناخت بازار جهت تصمیمگیری در تولید محصول
کاربردهای پردازش زبان طبیعی در رسانه و شبکههای اجتماعی
با گسترش استفاده از رسانهها و شبکههای اجتماعی حجم دادههای تولیدشده بسیار افزایشیافته است. تمامی این دادهها برای شناخت بیشتر مسیر فکری انسان، نیاز به بررسی و تحلیل دارند. بسیاری از این دادهها از جنس صوت و متن بوده که برای تجزیهوتحلیل آنها پردازش زبان طبیعی گزینه مناسبی محسوب میگردد. در ادامه به شرح چند نمونه از کاربردهای NLP در رسانهها و شبکههای اجتماعی پرداختهشده است:
- تجزیهوتحلیل احساسات
- کشف اخبار و اطلاعات جعلی
- درک مکالمات
- تولید محتوا
- طبقهبندی موضوعی محتوا
درک زبان طبیعی یا بهاختصار NLU چیست؟
درک زبان طبیعی Natural-language understanding شاخهای از پردازش زبان طبیعی است که از نرمافزارهای رایانهای برای درک ورودی در قالب جملات با استفاده از متن یا گفتار استفاده میکند. NLU تعامل میان انسان و کامپیوتر را برقرار میکند که هدف اصلی آن ایجاد رباتهایی باقابلیت چت و مکالمه است که میتوانند بدون نظارت با مردم تعامل داشته باشند. بسیاری از شرکتهای بزرگ فناوری اطلاعات مانند آمازون، اپل، گوگل و مایکروسافت پروژههای درک زبان طبیعی را در دست اجرا دارند.
درک زبان طبیعی دادهها را تجزیهوتحلیل میکند تا معنای آن را با استفاده از الگوریتمهایی برای تبدیل گفتار انسان به یک هستیشناسی ساختاریافته شامل مدل دادهای متشکل از تعاریف معناشناسی و عملگرایی مورد تجزیهوتحلیل قرار دهد. دو مفهوم اساسی NLU عبارتاند از قصد و نهاد.
قصد به معنی فرایند شناسایی احساسات کاربر در متن ورودی و تعیین هدف آنها است. این اولین و مهمترین بخش NLU است زیرا معنای متن را مشخص میکند.
نهاد یک نوع خاص از درک زبان طبیعی است که بر شناسایی موجودیتهای موجود در یک پیام تمرکز میکند، سپس مهمترین اطلاعات مربوط به آن نهادها را استخراج میکند. دو نوع موجودیت وجود دارد: موجودیتهای نامگذاری شده و موجودیتهای عددی. موجودیتهای نامگذاری شده در دستههایی مانند افراد، شرکتها و مکانها گروهبندی میشوند. موجودیتهای عددی بهعنوان اعداد ، ارز و درصد شناخته میشوند.
تولید زبان طبیعی یا بهاختصار NLG چیست؟
تولید زبان طبیعی Natural language generation زیرمجموعه دیگری از پردازش زبان طبیعی است. درحالیکه درک زبان طبیعی بر درک خواندن رایانه متمرکز است، تولید زبان طبیعی رایانهها را قادر به نوشتن میکند. NLG فرآیند تولید یک پاسخ متنی به زبان انسانی بر اساس برخی از ورودی دادهها است. همچنین میتوان این متن را از طریق سرویسهای تبدیل متن به گفتار به قالب گفتاری تبدیل کرد.
تولید زبان طبیعی همچنین قابلیتهای خلاصهسازی متن را در برمیگیرد که در عین حفظ یکپارچگی اطلاعات، خلاصههایی را از اسناد ورودی تولید میکند.
در ابتدا، سیستمهای NLG از قالبها برای تولید متن استفاده میکردند بدین صورت که بر اساس برخی دادهها یا پرسوجو، یک سیستم NLG جای خالی را پر میکرد، مانند بازی Mad Libs. اما باگذشت زمان، سیستمهای تولید زبان طبیعی با استفاده از زنجیرههای مارکوف پنهان و شبکههای عصبی تکرارشونده تکاملیافتهاند و امروزه امکان تولید متن پویاتر در زمان واقعی را فراهم میکنند.
همانند درک زبان طبیعی، برنامههای کاربردی تولید زبان طبیعی نیز، باید قوانین زبان را بر اساس مورفولوژی، واژگان، نحو و معناشناسی در نظر بگیرند تا نحوه بیان پاسخها را بهطور مناسب انتخاب کنند. آنها در سه مرحله به این موضوع میپردازند:
برنامهریزی متن: در این مرحله محتوای کلی بهصورت منطقی تدوین و مرتب میشود.
برنامهریزی جمله: این مرحله علائم نگارشی و جریان متن را در نظر میگیرد، محتوا را به پاراگرافها و جملات تقسیم میکند و در صورت لزوم، ضمایر یا حروف ربط را به کار میبرد.
تحقق: این مرحله دقت گرامری را بهحساب میآورد و تضمین میکند که قوانین مربوط به نقطهگذاری و حروف صرف رعایت شوند. بهعنوانمثال، زمان گذشته فعل run ran است، اجرا نمیشود.
تفاوت میان NLP و NLU و NLG چیست؟
پردازش زبان طبیعی (NLP) به دنبال تبدیل دادههای زبان بدون ساختار به یک قالب داده ساختاریافته است تا ماشینها را قادر به درک گفتار و متن و فرمولبندی پاسخهای مرتبط و متنی کند. زیرمجموعههای فرعی آن شامل درک زبان طبیعی و تولید زبان طبیعی است.
درک زبان طبیعی (NLU) بر درک خواندن ماشینی از طریق قواعد دستور زبانی و موضوع تمرکز دارد و ماشینها را قادر میسازد تا معنای مورد نظر یک جمله را تعیین کنند.
تولید زبان طبیعی (NLG) بر تولید متن یا ساخت متن به زبان انگلیسی یا زبانهای دیگر توسط یک ماشین و بر اساس یک مجموعه داده معین تمرکز میکند.
برخی از کتابهای پردازش زبان طبیعی
در ادامه به معرفی برخی از کتابهای پرکاربرد در زمینه پردازش زبانهای طبیعی پرداختهشده است.
Natural Language Processing in Action
Understanding, analyzing, and generating text with Python
نویسندگان: Hobson Lane, Hannes Hapke, Cole Howard
سال انتشار:2019
این کتاب راهنمای افراد برای ساخت ماشینهایی است که میتوانند زبان انسان را بخوانند و تفسیر کنند. در آن، از بستههای Python در دسترس استفاده میکنید تا معنای متن را به تصویر بکشید و مطابق با آن واکنش نشان دهید. این کتاب رویکردهای سنتی NLP را گسترش میدهد تا شبکههای عصبی، الگوریتمهای مدرن یادگیری عمیق و تکنیکهای مولد را در حین رسیدگی به مشکلات دنیای واقعی مانند استخراج تاریخها و نامها، نوشتن متن و پاسخ دادن به سؤالات آزاد بسط دهد.
• • • • •
Transformers for Natural Language Processing
Build innovative deep neural network architectures for NLP with Python, PyTorch, TensorFlow, BERT, RoBERTa, and more
نویسندگان: Denis Rothman
سال انتشار:2021
این کتاب با رویکردی کاربردی، یادگیری عمیق را برای ترجمههای ماشینی، تبدیل گفتار به متن و متن به گفتار، مدلسازی زبان، پاسخگویی به سؤال و بسیاری از حوزههای پردازش زبان طبیعی را با جزئیات بررسی میکند. این کتاب پردازش زبان طبیعی را به کمک پایتون آموزش میدهد و مدلها و مجموعه دادههای برجسته را توسط پیشگامانی مانند Google، Facebook، Microsoft، OpenAI و Hugging Face بررسی میکند.
کتاب افراد را در سه مرحله آموزش میدهد. در مرحله اول افراد با انواع متغیرها آشنا میشوند. در مرحله دوم، متغیرها را برای درک زبان طبیعی (NLU) و تولید زبان طبیعی (NLG) اعمال خواهند شد. درنهایت، مرحله سوم به افراد کمک میکند تا تکنیکهای پیشرفته درک زبان مانند بهینهسازی مجموعه دادههای شبکههای اجتماعی و شناسایی اخبار جعلی را درک کنند.
• • • • •
Deep Learning on Graphs for Natural Language Processing
نویسندگان: Li Deng, Yang Liu
سال انتشار: 2018
این کتاب به بررسی وضعیت تحقیقات در بخش یادگیری عمیق و کاربردهای موفقیتآمیز آن در وظایف اصلی پردازش زبان طبیعی، ازجمله تشخیص و درک گفتار، سیستمهای گفتگو، تجزیهوتحلیل واژگانی، تجزیه، نمودارهای دانش، ترجمه ماشینی، پاسخ به پرسش، تجزیهوتحلیل احساسات، محاسبات اجتماعی، و تولید زبان طبیعی از تصاویر میپردازد. این کتاب با تشریح و تجزیهوتحلیل مرزهای تحقیقاتی مختلف NLP در عصر یادگیری عمیق، دارای فصول مستقل و جامعی است که توسط محققان برجسته در این زمینه نوشتهشده است. همچنین واژهنامهای از اصطلاحات فنی و کلمات اختصاری رایج در تقاطع یادگیری عمیق و NLP نیز ارائهشده است.
این کتاب برای دانشجویان پیشرفته کارشناسی و کارشناسی ارشد، محققان فوق دکترا، مدرسان و محققان صنعتی، و همچنین هرکسی که علاقهمند به یادگیری عمیق و پردازش زبان طبیعی باشد، مفید است.
• • • • •
Applied Natural Language Processing in the Enterprise
Teaching Machines to Read, Write, and Understand
نویسندگان: Ankur A. Patel, Ajay Uppili Arasanipalai
سال انتشار: 2021
در این کتاب با درک پایهای از یادگیری ماشین و برخی از تجربههای پایتون، افراد میآموزند که چگونه مدلهایی را برای برنامههای کاربردی دنیای واقعی در سازمان خود بسازند، آموزش و استقرار دهند. نویسندگان این کتاب افراد را با استفاده از کدها و مثالهایی که بهترین شیوههای پردازش زبان طبیعی مدرن را برجسته میکنند، در این فرآیند راهنمایی میکنند.
از مدلهای پیشرفته NLP مانند BERT و GPT-3 برای حل وظایف پردازش زبان طبیعی مانند شناسایی موجودیت نامگذاری شده، طبقهبندی متن، جستجوی معنایی و درک مطلب استفاده میشوند. این کتاب همچنین سیستمهای جعبهای در مورد ساخت متغیرها و ترفندهای مدرنی مانند یادگیری انتقال که دنیای پردازش زبان طبیعی را طوفانی کرده است آموزش میدهد و افراد را با ابزارهای این تجارت ازجمله spaCy، Hugging Face و fast آشنا میکند.
• • • • •
Natural Language Processing with PyTorch
Build Intelligent Language Applications Using Deep Learning
نویسندگان: Delip Rao, Brian McMahan
سال انتشار: 2019
پردازش زبان طبیعی (NLP) فرصتهای بیحدوحصری را برای حل مشکلات در هوش مصنوعی فراهم میکند و محصولاتی مانند آمازون الکسا و مترجم گوگل را ممکن میکند. اگر یک توسعهدهنده یا دانشمند داده که بهتازگی با NLP و یادگیری عمیق آشنا میشود، این کتاب را مطالعه کنند، این راهنمای عملی به آنها نشان میدهد که چگونه این روشها را با استفاده از PyTorch، یک کتابخانه یادگیری عمیق مبتنی بر پایتون، به کار ببرند.
نویسندگان این کتاب زمینهای محکم در پردازش زبان طبیعی و الگوریتمهای یادگیری عمیق به خوانندگان ارائه میدهند و نشان میدهند که چگونه از PyTorch برای ساخت برنامههای کاربردی شامل نمایشهای غنی از متن خاص استفاده میشود. هر فصل شامل چندین مثال کد و تصویر است.
در این کتاب نمودارهای محاسباتی و پارادایم یادگیری تحت نظارت را میتوان بررسی کرد و همچنین مروری بر مفاهیم و روشهای سنتی NLP نیز آورده شده است که ایدههای اساسی در ساخت شبکههای عصبی را آموزش میدهد و از جاسازیها برای نمایش کلمات، جملات، اسناد و سایر ویژگیها استفاده میکند.
آینده پردازش زبان طبیعی چیست؟
در این مقاله به تشریح پردازش زبان طبیعی و فناوریها و کاربردهای آن در کسبوکارها پرداختیم. همچنین در خصوص انواع کتابخانههای مورداستفاده در زبان انگلیسی و فارسی آموختیم. حال این نکته نیز حائز اهمیت است که بدانیم رشد پردازش زبان طبیعی به دلیل پیشرفت مداوم در قدرت پردازش، در آینده شتاب بیشتری میگیرد. باوجوداینکه NLP از زمان شروع ساده خود رشد قابلتوجهی داشته است، کارشناسان صنعت میگویند که اجرای آن همچنان یکی از بزرگترین چالشهای کلان داده در سال 2021 باقیمانده است . بدین معنی که این فناوری هنوز مسیر بسیار زیادی برای پیشرفت و توسعه دارد و بخشهای بسیاری از توانمندیهای آن تاکنون شکوفا نشدهاند، که متخصصین در تلاش برای به تکامل رساندن آن هستند.