پردازش زبان طبیعی (Natural Language Processing or NLP) چیست؟ چرا پردازش زبان طبیعی مهم است؟ متخصص یا مهندس پردازش زبان طبیعی کیست؟ چهقدر درآمد دارد؟ بازارکار NLP Specialist چطور است؟ زبان برنامهنویسی پایتون و ماشین لرنینگ چه سهمی در یاددادن زبان انسانها به ماشینها و نرمافزارها دارند؟
سوالات طرحشده از موضوعات بسیار داغ درحوزهی تکنولوژی و هوش مصنوعی هستند. تصور کنید ماشین (نرمافزار) بتواند دقیقا و کاملا زبان انگلیسی یا فارسی یا فرانسه یا هر زبان دیگری را بفهمد؟ اگر کمی به دوروبر خودمان دقت کنیم، شاید ماشینهایی را که زبان ما را میفهمند و با ما حرف میزنند پیدا کنیم.
اگرشما گوشی آیفون داشته باشید، حتما با سیری (Siri) آشنا هستید. من دوستی دارم که از سیری میخواهد برایش جک تعریف کند. او سیری را دوست خودش میداند. البته، هنوز سیری نمیتواند کاملا همهی حرفهای او را مثل یک انسان بفهمد و درک کند؛ چون زبان ما آدمها بیشاز آنچه فکر میکنیم پیچیده است. ولی مهم نیست. سیری این قدرت را دارد که از معاشرت و تعامل با دوست من یاد بگیرد و بهتر شود.
یاددادن زبان انسانها به ماشینها کاربردهای زیادی دارد، سیری فقط یک نمونهی کوچک آن است. بااستفادهاز هوش مصنوعی رباتهای انساننما ساخته شده است. رباتهایی که میتوانند به سوالات خبرنگاران جواب بدهند! بدون پردازش زبان طبیعی و پیشرفت در آن رشته نمیشد رباتهای انساننما را، که درآیندهای نهچندان دور بخش لاینفک زندگی ما انسانها خواهند بود، ساخت .
در این مقاله میخواهم شما را با یکیاز جالبترین و درعینحال پردرآمدترین زیرشاخههای هوش مصنوعی (یعنی NLP) آشنا کنم و به سوالاتی که این مطلب با آنها شروع شد، پاسخ دهم.
آنچه در این نوشته خواهیم داشت
پردازش زبان طبیعی چیست؟
زبان طبیعی زبانی است که انسانها با آن بایکدیگر ارتباط، کلامی و نوشتاری، برقرار میکنند. انسانها با زبان طبیعی مقصود خود را به دیگران منتقل میکنند. من الان با زبان طبیعی این متن را برای شما نوشتم. دقت کنید که مراداز زبان طبیعی یک زبان خاص، مثل انگلیسی یا فارسی، نیست. زبانی که مجموعهای از کلمات و اصطلاحات است و قواعد (دستور زبان یا گرامر) مشخصی دارد. زبان طبیعی، زبان انسان، ویژگیهای دیگری هم دارد.
از مهمترین ویژگیهای زبان طبیعی پویایی آن است. درگذرزمان زبان تغییر میکند. کلمات و اصطلاحات جدید به زبان وارد میشود و برخی کلمات بعدازمدتی در مکالمات یا متنها بهکار گرفته نمیشوند. انسانها زبان را یاد میگیرند. من و شما اول از پدر و مادر و محیط و بعد در مدسه زبان را یاد گرفتیم. نوشتن هر زبانی قواعد خاص خودش را دارد. نوشتن و درککردن هر متنی (علمی، نمایشنامه، نقد، رمان، داستان کوتاه، بررسی محصول و …) نیز قواعد و کلمات و اصطلاحات خاص خودش را دارد. پس، زبان طبیعی را نهتنها باید یاد گرفت؛ بلکه باید مطالعه کرد.
زبانشناسی (Linguistic) علمی است که زبان طبیعی را مطالعه و بررسی میکند. زبانشناسی زیرشاخههای متعددی دارد. یکیاز زیرشاخههای میانرشتهای آن زبانشناسی محاسباتی یا رایانشی (Computational Linguistic) است. در زبانشناسی رایانشی، متخصصان بهدنبال یافتن الگوهای کامپیوتری (مدلهای کامپیوتری) برای زبان طبیعی هستند. پردازش زبان طبیعی زیرشاخهی میانرشتهای دیگری از زبانشناسی است که در آن متخصصان ۳ حوزهی زبانشناسی، علوم کامپیوتر و هوش مصنوعی بهدنبال یافتن راهی برای تعامل انسان و ماشین بهوسیلهی زبان طبیعی انسان هستند.
NLP enables computers to understand natural language as humans do.
پردازش زبان طبیعی کامپیوترها را قادر میسازد تا زبان طبیعی را همانطور که انسانها میفهمند، بفهمند.
چطور پایتون و ماشین لرنینگ زبان طبیعی را پردازش میکنند؟
شاید بشود ادعا کرد که در این جهان تا قبلاز هوش مصنوعی و زبان قدرتمند پایتون و ماشین لرنینگ، انسانها بودند که فقط میتوانستند زبان طبیعی را یاد بگیرند و بفهمند. اما الان ماشین لرنینگ و دیپ لرنینگ به موجود غیرزندهای، یک الگوریتم، امکان یادگیری زبان طبیعی را داده است. در فرآیند پردازش زبان طبیعی در ۲ مرحله و بااستفادهاز تکنولوژیهایی به کامپیوتر یاد داده میشود تا داده را، که ممکن است متن یا کلام باشد، دریافت و پردازش کند تا آن را بفهمد و خروجی خواستهشده را (که ممکن است پاسخ، تحلیل یا هر جزئیات دیگری از متن یا کلام باشد) تحویل دهد.
مراحل پردازش زبان طبیعی
۱. Data Preprocessing
NLP با یک Unstructured text شروع میشود. قبلاز یاددادن زبان طبیعی به ماشین (الگوریتم) باید زبان طبیعی را، یعنی متن یا صوتی که قرار است ماشین آن را بفهمد و ابتدا با الگوریتم speech to text به متن تبدیل شده، به زبان ماشین یعنی Structured text تغییر داد. دادهای (Input) که دراختیار ماشین قرار میگیرد باید در قالبی باشد که ماشین بتواند آن را پردازش کند.
۲. Algorithm Development
پردازش زبان طبیعی را الگوریتمها انجام میدهند. پس، باید الگوریتم پردازشگر را براساس قواعدی ساخت و برای او معین کرد که چطور کار پردازش را انجام دهد. اینجاست که هوش مصنوعی و زیرشاخههای آن، یعنی ماشین لرنینگ و دیپ لرنینگ، به متخصصان پردازش زبان طبیعی کمک میکنند تا به الگوریتم آموزش دهند.
تکنولوژیهای پردازش زبان طبیعی
مهندسان پردازش زبان طبیعی مراحل ذکرشده را بابهکارگرفتن تکنولوژیها، تکنیکها و ابزارهای مختلفی انجام میدهند. برای ساختاردادن به داده و همچنین آموزشدادن به الگوریتم از دو نوع رویکرد یا تحلیل ممکن است استفاده شود: نحوی یا معنایی. متخصصان باتوجهبه کاربرد و اطلاعاتی که میخواهند از پردازش زبان طبیعی دریافت کنند، رویکرد و ابزارها را انتخاب میکنند. درهرحال، از ۵ تکنولوژی زیر حتما استفاده میشود و موارد زیر بهنوعی پایههای اصلی پردازش زبان طبیعی هستند:
- Tokenization: ابتدا باید دادهی ساختارنیافته به کوچکترین واحدهای سازندهاش (کلمات) تجزیه شود. هر کلمه برای ماشین یک Token است. مثلا جملهی قبل، ۷ کلمه یعنی ۷ token (کد) دارد.
- Stop Words: لازم است کلماتی، مانند حروف ربط یا افعال اسنادی (مثل است)، که اطلاعات مهم متن بهحساب نمیآیند؛ حذف شوند.
- Stemming or Lemmatization: حالا ماشین باید ریشهی لغوی (stem) هر کلمه را پیدا کند، یعنی باید پسوندها و پیشوندهای کلمات را حذف کند. مثلا، ریشهی خوبترین و خوبتر و خوبها با حذفکردن ترین و تر و ها بهدست میآید. البته نکته اینجاست که ریشهی همهی کلمات با حذفکردن پسوندها یا پیشوندها بهدست نمیآید (مثلا ریشهی دو واژهی درها و دَرْک یکی نیست). پس، برای بعضی کلمات ماشین باید معنای اصلی آن (Lemma) را، یعنی معنایی که در لغتنامه برای آن کلمه درنظر گرفتهشده است، بیابد.
- Part of Speech Tagging: حالا باید نقش دستوری هرکلمه (کد) در جمله، فعل است یا صفت یا …، مشخص شود.
- Named Entity Recognition: وقتی من و شما اسم پاریس یا تهران را میشنویم و میخوانیم، چهچیزی دربارهی این دو اسم به ذهن ما متبادر میشود؟ پایتخت کشور فرانسه و ایران. الگوریتم برای درککردن زبان طبیعی باید اسامی خاص، اعلام و اطلاعات عمومی را بداند و بفهمد.
کتابخانههای پایتون برای پردازش زبان طبیعی
اغراق نیست اگر گفته شود که زبان برنامهنویسی پایتون درخدمت هوش مصنوعی است. پایتون است که درکنار سایر علوم و تکنولوژیها یادگیری ماشین و یادگیری عمیق را ممکن کرده است. مسیر یادگیری ماشین لرنینگ و دیپ لرنینگ با یادگیری پایتون آغاز میشود. شاید گمان کنید برای پردازش زبان طبیعی حتما باید متخصص ماشین لرنینگ باشید. اما این تصور اشتباه است.
اگر کسی زبان برنامهنویسی پایتون را یاد گرفته باشد، با کمکگرفتن از NLTK (Natural Language Toolkit) که پکیج پایتون برای پردازش زبان طبیعی است؛ بهراحتی قادر است متنی را که میخواهد، آنطور که لازم دارد پردازش کند و تازه نتایج آن را در قالب نمودار یا چارت (بصریسازیشده) خروجی بگیرد. آن پکیچ مدلی متنباز برای پردازش زبان طبیعی است که منابع آموزشی آنلاین زیادی هم برای یادگیری آن موجود است.
البته، علاوهبر آن پکیج، پایتون کتابخانههای بسیار قدرتمندی دارد که با آنها بعضیاز تکنولوژیهای پردازش زبان طبیعی را میشود اجرا کرد. کتابخانهی Gensim برای ساختن و توسعهی مدلهای پردازش زبان طبیعی معنایی است. Intel NLP Architect کتابخانهی دیگری برای توپولوژی و تکنیکهای یادگیری عمیق است که پردازش زبان طبیعی را ارتقا میدهد.
چرا پردازش زبان طبیعی مهم است؟
برای پاسخدادن به این سوال که چرا پردازش زبان طبیعی مهم است باید به کاربردهای آن در حوزههای گوناگون نگاهی بیندازیم. پردازش زبان طبیعی فقط برای درککردن ساختار زبان و همچنین تعاملات انسانی، ساختن رباتها و دستیارهای مجازی (Virtual Assistants) مثل الکسا و یا حتی چتباتها مفید و کاربردی نیست. کسبوکارها و شرکتهای تجاری میتوانند از پردازش زبان طبیعی بهنفع خودشان استفاده کنند.
چون پردازش زبان طبیعی و الگوریتمهایی که زبان طبیعی را میفهمند میتوانند دادههای متنی (نظرات و کامنتها) را که کسبوکارها از شبکههای اجتماعی یا دیگر پلتفرمها جمعآوری کردند، درک و تحلیل کنند. درنتیجه، دادهی لازم برای شناختن و پیشبینیکردن رفتار مشتری برای کسبوکار فراهم میشود.
مهمترین کاربردهای NLP
- Text Extraction or Summarization: الگوریتمهای پردازش زبان طبیعی میتوانند متن را پردازش کنند، اطلاعات مهم را استخراج کنند یا خلاصهای از متن تحویل دهند. ممکن است از ماشین خواسته شود تا در متن دنبال کلمهکلیدی مشخصی بگردد و فقط قسمتهایی از متن را استخراج کند که کلمهکلیدی در آن بهکار رفته است.
- Text Classification and Sentiment Analysis: بگذارید مثالی بزنم تا این کاربرد کاملا مشخص شود. تصور کنید شما کسبوکار بسیار بزرگی دارید که میلیونها فالوئر در شبکههای اجتماعی دارد. دربارهی برند و محصولات شما در فضای مجازی و نت بسیار صحبت میشود. حالا کسبوکار شما اگر بخواهد بداند نظرات کاربران دربارهی جدیدترین محصول مثبت است یا منفی، میتواند این کار را با دستهبندی متن (دادهها) بهوسیلهی تعریفکردن تگهای مشخصی برای ماشین انجام دهد. البته، کسبوکارها از تحلیل احساسات نیز برای تکمیلکردن دادههای بهدستآمده از متن استفاده میکنند تا بفهمند کاربری که در سوشال مدیا مثبت دربارهی برند یا محصول نوشته چه احساسی داشته؛ شوخی کرده، طعنه زده یا جدی بوده است.
- Machine Translation: اغراق نیست اگر گفته شود همهی کاربران اینترنت تجربهی استفادهاز گوگل ترنسلیت را داشتهاند. بههمیندلیل، میدانیم اگر یک متن ۲۰ خطی انگلیسی را به گوگل ترنسلیت بدهیم، ترجمهی فارسی روان و درستی به ما نمیدهد. پیشرفت در پردازش زبان طبیعی و آموزشدادن الگوریتمهایی که بهتر بتوانند زمینه و موضوع هر متن را بفهمند، به ارتقای ترجمههای ماشینی کمک بسیار زیادی میکند.
متخصص NLP کیست؟
کارشناس پردازش زبان طبیعی، مهندس پردازش زبان طبیعی، کارشناس یا مهندس ماشین لرنینگ که متخصص پردازش زبان طبیعی است و متخصص دیپ لرنینگ همگی متخصصانی هستند که دانش و مهارت لازم را برای انجامدادن پروژههای پردازش زبان طبیعی دارند. وجهمشترک همهی آن کارشناسان این است که مهارت لازم برای استفادهاز ابزارها، تکنیکها و تکنولوژیهای پردازش زبان طبیعی را دارند و میتوانند الگوریتمی را آموزش دهند و ماشینی (برنامهای) بسازند که زبان انسان را بفهمد.
البته، هدف و کاری که برای آن نیاز به آموزشدادن و توسعهی الگوریتم پردازش زبان طبیعی است، نوع متخصصانی را که باید در پروژه کار کنند تعیین میکند. مثلا، ممکن است کسبوکاری بخواهد برای خودش یک مدل تحلیل احساسات طراحی کند. برای این کسبوکار دیتا ساینتیستی که با NLP آشنایی دارد ایدهآل است. چون کسبوکار کسی را میخواهد که جمعآوری و تحلیلداده و همچنین ماشین لرنینگ را بداند. برای بعضی پروژهها شاید لازم باشد مهندس پردازش زبان طبیعی به علم زبانشناسی یا زبانشناسی رایانشی کاملا مسلط یا حتی تحصیلات دانشگاهی در آن رشتهها داشته باشد.
درآمد و بازار کار مهندس پردازش زبان طبیعی در ایران و جهان چطور است؟
خب، رسیدیم به آخرین سوال مهم دربارهی NLP: درآمد مهندس یا متخصص پردازش زبان طبیعی چهقدر است؟ آیا فرصتهای شغلی قابلتوجهی در ایران و جهان برای این متخصص وجود دارد؟ اگر فرصتهای شغلی برای مهندس پردازش زبان طبیعی را در لینکدین جستجو کنید، به ۲۹هزار فرصت شغلی در آمریکا و هزار شغل در کانادا میرسید. متوسط حقوق سالانهی متخصص NLP در آمریکا ۱۱۲هزار دلار، در انگلستان ۵۶هزار پوند و در کانادا ۹۵هزار دلار کاناداست.
در ایران اما، بازار کار برای متخصصان پردازش زبان طبیعی هنوز خیلی خوب نیست. در جابینجا فقط ۲ فرصت شغلی برای کارشناس پردازش زبان طبیعی وجود دارد. در تصویر زیر مهارتهایی را که در یکیاز آن آگهیها ذکر شده است، میبینید.
چه باید کرد؟ علاقهمند به پردازش زبان طبیعی نباید در ایران انتظار داشته باشد که کاری پیدا کند؟ واقعیت این است که در ایران شرکتهایی به بزرگی گوگل و اپل وجود ندارند که به متخصصان پردازش زبان طبیعی نیاز داشته باشند. اما میشود امیدوار بود که کسبوکارها و همچنین دانشگاهها و موسسات علمی-پژوهشی بیشتری درآیندهای نهچنداندور، همگام با جهان و پیشرفتها در این حوزه، از پردازش زبان طبیعی بهره ببرند و به متخصصان NLP و یا مهندسان ماشین لرنینگ که با NLP آشنایی دارند نیاز پیدا کنند.
جمعبندی و نتیجهگیری
۱. پردازش زبان طبیعی مجموعهای از تکنولوژیها و تکنیکهاست که زبان انسان را برای ماشین ترجمه میکند تا ماشین آن را بفهمد و اطلاعاتی را که باید از آن استخراج کند و دراختیار انسانها قرار دهد.
۲. کاربردهای NLP فقط برای کمک به کسبوکارها برای بیشتر بهرهبردن از دادهها و شناختن عمیقتر مشتریان و همچنین رشدوتوسعهی حوزهی هوش مصنوعی نیست. پردازش زبان طبیعی کاربردهای علمی-آکادمیک برای متخصصان زبانشناسی هم دارد.
۳. NLP درست مانند هوش مصنوعی هرروز پیشرفت میکند و کاربردهای جدیدی مییابد. بههمیندلیل، اگر کسی علاقه دارد تا به ماشینها یاد بدهد که زبان انسان را بفهمند، حتما در آینده در هر نقطهای در این جهان که باشد؛ برای او کاری پیدا میشود.
۴. پردازش زبان طبیعی حوزهای میانرشتهای است. اما برای ورود و کارکردن در آن حوزه الزاما نباید زبانشناس بود و در دانشگاه تحصیل کرد. چون با یادگیری پایتون میشود الگوریتمها و مدلهای NLP را ساخت.
۵. برای علاقهمندانی که در ایران زندگی میکنند و نگران آیندهی شغلی پردازش زبان طبیعی هستند، ۲ راهحل وجود دارد: آموزش ماشین لرنینگ یا دیپ لرنینگ. دراینصورت، علاقهمند میتواند علاوهبر پروژههای پردازش زبان طبیعی در پروژههای دیگری که به یادگیری ماشین و دیپ لرنینگ نیاز است مشغول شود.
2 دیدگاه