این مقاله را میتوانید در مدت زمان 7 دقیقه مطالعه کنید منتشر شده در تاریخ: مرداد ۱۸ام, ۱۴۰۱ آخرین بروزرسانی: آذر ۲ام, ۱۴۰۱
پردازش زبان طبیعی (Natural Language Processing or NLP) چیست؟ چرا پردازش زبان طبیعی مهم است؟ متخصص یا مهندس پردازش زبان طبیعی کیست؟ چهقدر درآمد دارد؟ بازارکار NLP Specialist چطور است؟ زبان برنامهنویسی پایتون و ماشین لرنینگ چه سهمی در یاددادن زبان انسانها به ماشینها و نرمافزارها دارند؟
سوالات طرحشده از موضوعات بسیار داغ درحوزهی تکنولوژی و هوش مصنوعی هستند. تصور کنید ماشین (نرمافزار) بتواند دقیقا و کاملا زبان انگلیسی یا فارسی یا فرانسه یا هر زبان دیگری را بفهمد؟ اگر کمی به دوروبر خودمان دقت کنیم، شاید ماشینهایی را که زبان ما را میفهمند و با ما حرف میزنند پیدا کنیم.
اگرشما گوشی آیفون داشته باشید، حتما با سیری (Siri) آشنا هستید. من دوستی دارم که از سیری میخواهد برایش جک تعریف کند. او سیری را دوست خودش میداند. البته، هنوز سیری نمیتواند کاملا همهی حرفهای او را مثل یک انسان بفهمد و درک کند؛ چون زبان ما آدمها بیشاز آنچه فکر میکنیم پیچیده است. ولی مهم نیست. سیری این قدرت را دارد که از معاشرت و تعامل با دوست من یاد بگیرد و بهتر شود.
یاددادن زبان انسانها به ماشینها کاربردهای زیادی دارد، سیری فقط یک نمونهی کوچک آن است. بااستفادهاز هوش مصنوعی رباتهای انساننما ساخته شده است. رباتهایی که میتوانند به سوالات خبرنگاران جواب بدهند! بدون پردازش زبان طبیعی و پیشرفت در آن رشته نمیشد رباتهای انساننما را، که درآیندهای نهچندان دور بخش لاینفک زندگی ما انسانها خواهند بود، ساخت .
در این مقاله میخواهم شما را با یکیاز جالبترین و درعینحال پردرآمدترین زیرشاخههای هوش مصنوعی (یعنی NLP) آشنا کنم و به سوالاتی که این مطلب با آنها شروع شد، پاسخ دهم.
آنچه در این نوشته خواهیم داشت
زبان طبیعی زبانی است که انسانها با آن بایکدیگر ارتباط، کلامی و نوشتاری، برقرار میکنند. انسانها با زبان طبیعی مقصود خود را به دیگران منتقل میکنند. من الان با زبان طبیعی این متن را برای شما نوشتم. دقت کنید که مراداز زبان طبیعی یک زبان خاص، مثل انگلیسی یا فارسی، نیست. زبانی که مجموعهای از کلمات و اصطلاحات است و قواعد (دستور زبان یا گرامر) مشخصی دارد. زبان طبیعی، زبان انسان، ویژگیهای دیگری هم دارد.
از مهمترین ویژگیهای زبان طبیعی پویایی آن است. درگذرزمان زبان تغییر میکند. کلمات و اصطلاحات جدید به زبان وارد میشود و برخی کلمات بعدازمدتی در مکالمات یا متنها بهکار گرفته نمیشوند. انسانها زبان را یاد میگیرند. من و شما اول از پدر و مادر و محیط و بعد در مدسه زبان را یاد گرفتیم. نوشتن هر زبانی قواعد خاص خودش را دارد. نوشتن و درککردن هر متنی (علمی، نمایشنامه، نقد، رمان، داستان کوتاه، بررسی محصول و …) نیز قواعد و کلمات و اصطلاحات خاص خودش را دارد. پس، زبان طبیعی را نهتنها باید یاد گرفت؛ بلکه باید مطالعه کرد.
زبانشناسی (Linguistic) علمی است که زبان طبیعی را مطالعه و بررسی میکند. زبانشناسی زیرشاخههای متعددی دارد. یکیاز زیرشاخههای میانرشتهای آن زبانشناسی محاسباتی یا رایانشی (Computational Linguistic) است. در زبانشناسی رایانشی، متخصصان بهدنبال یافتن الگوهای کامپیوتری (مدلهای کامپیوتری) برای زبان طبیعی هستند. پردازش زبان طبیعی زیرشاخهی میانرشتهای دیگری از زبانشناسی است که در آن متخصصان ۳ حوزهی زبانشناسی، علوم کامپیوتر و هوش مصنوعی بهدنبال یافتن راهی برای تعامل انسان و ماشین بهوسیلهی زبان طبیعی انسان هستند.
NLP enables computers to understand natural language as humans do.
پردازش زبان طبیعی کامپیوترها را قادر میسازد تا زبان طبیعی را همانطور که انسانها میفهمند، بفهمند.
شاید بشود ادعا کرد که در این جهان تا قبلاز هوش مصنوعی و زبان قدرتمند پایتون و ماشین لرنینگ، انسانها بودند که فقط میتوانستند زبان طبیعی را یاد بگیرند و بفهمند. اما الان ماشین لرنینگ و دیپ لرنینگ به موجود غیرزندهای، یک الگوریتم، امکان یادگیری زبان طبیعی را داده است. در فرآیند پردازش زبان طبیعی در ۲ مرحله و بااستفادهاز تکنولوژیهایی به کامپیوتر یاد داده میشود تا داده را، که ممکن است متن یا کلام باشد، دریافت و پردازش کند تا آن را بفهمد و خروجی خواستهشده را (که ممکن است پاسخ، تحلیل یا هر جزئیات دیگری از متن یا کلام باشد) تحویل دهد.
NLP با یک Unstructured text شروع میشود. قبلاز یاددادن زبان طبیعی به ماشین (الگوریتم) باید زبان طبیعی را، یعنی متن یا صوتی که قرار است ماشین آن را بفهمد و ابتدا با الگوریتم speech to text به متن تبدیل شده، به زبان ماشین یعنی Structured text تغییر داد. دادهای (Input) که دراختیار ماشین قرار میگیرد باید در قالبی باشد که ماشین بتواند آن را پردازش کند.
پردازش زبان طبیعی را الگوریتمها انجام میدهند. پس، باید الگوریتم پردازشگر را براساس قواعدی ساخت و برای او معین کرد که چطور کار پردازش را انجام دهد. اینجاست که هوش مصنوعی و زیرشاخههای آن، یعنی ماشین لرنینگ و دیپ لرنینگ، به متخصصان پردازش زبان طبیعی کمک میکنند تا به الگوریتم آموزش دهند.
مهندسان پردازش زبان طبیعی مراحل ذکرشده را بابهکارگرفتن تکنولوژیها، تکنیکها و ابزارهای مختلفی انجام میدهند. برای ساختاردادن به داده و همچنین آموزشدادن به الگوریتم از دو نوع رویکرد یا تحلیل ممکن است استفاده شود: نحوی یا معنایی. متخصصان باتوجهبه کاربرد و اطلاعاتی که میخواهند از پردازش زبان طبیعی دریافت کنند، رویکرد و ابزارها را انتخاب میکنند. درهرحال، از ۵ تکنولوژی زیر حتما استفاده میشود و موارد زیر بهنوعی پایههای اصلی پردازش زبان طبیعی هستند:
اغراق نیست اگر گفته شود که زبان برنامهنویسی پایتون درخدمت هوش مصنوعی است. پایتون است که درکنار سایر علوم و تکنولوژیها یادگیری ماشین و یادگیری عمیق را ممکن کرده است. مسیر یادگیری ماشین لرنینگ و دیپ لرنینگ با یادگیری پایتون آغاز میشود. شاید گمان کنید برای پردازش زبان طبیعی حتما باید متخصص ماشین لرنینگ باشید. اما این تصور اشتباه است.
اگر کسی زبان برنامهنویسی پایتون را یاد گرفته باشد، با کمکگرفتن از NLTK (Natural Language Toolkit) که پکیج پایتون برای پردازش زبان طبیعی است؛ بهراحتی قادر است متنی را که میخواهد، آنطور که لازم دارد پردازش کند و تازه نتایج آن را در قالب نمودار یا چارت (بصریسازیشده) خروجی بگیرد. آن پکیچ مدلی متنباز برای پردازش زبان طبیعی است که منابع آموزشی آنلاین زیادی هم برای یادگیری آن موجود است.
البته، علاوهبر آن پکیج، پایتون کتابخانههای بسیار قدرتمندی دارد که با آنها بعضیاز تکنولوژیهای پردازش زبان طبیعی را میشود اجرا کرد. کتابخانهی Gensim برای ساختن و توسعهی مدلهای پردازش زبان طبیعی معنایی است. Intel NLP Architect کتابخانهی دیگری برای توپولوژی و تکنیکهای یادگیری عمیق است که پردازش زبان طبیعی را ارتقا میدهد.
برای پاسخدادن به این سوال که چرا پردازش زبان طبیعی مهم است باید به کاربردهای آن در حوزههای گوناگون نگاهی بیندازیم. پردازش زبان طبیعی فقط برای درککردن ساختار زبان و همچنین تعاملات انسانی، ساختن رباتها و دستیارهای مجازی (Virtual Assistants) مثل الکسا و یا حتی چتباتها مفید و کاربردی نیست. کسبوکارها و شرکتهای تجاری میتوانند از پردازش زبان طبیعی بهنفع خودشان استفاده کنند.
چون پردازش زبان طبیعی و الگوریتمهایی که زبان طبیعی را میفهمند میتوانند دادههای متنی (نظرات و کامنتها) را که کسبوکارها از شبکههای اجتماعی یا دیگر پلتفرمها جمعآوری کردند، درک و تحلیل کنند. درنتیجه، دادهی لازم برای شناختن و پیشبینیکردن رفتار مشتری برای کسبوکار فراهم میشود.
کارشناس پردازش زبان طبیعی، مهندس پردازش زبان طبیعی، کارشناس یا مهندس ماشین لرنینگ که متخصص پردازش زبان طبیعی است و متخصص دیپ لرنینگ همگی متخصصانی هستند که دانش و مهارت لازم را برای انجامدادن پروژههای پردازش زبان طبیعی دارند. وجهمشترک همهی آن کارشناسان این است که مهارت لازم برای استفادهاز ابزارها، تکنیکها و تکنولوژیهای پردازش زبان طبیعی را دارند و میتوانند الگوریتمی را آموزش دهند و ماشینی (برنامهای) بسازند که زبان انسان را بفهمد.
البته، هدف و کاری که برای آن نیاز به آموزشدادن و توسعهی الگوریتم پردازش زبان طبیعی است، نوع متخصصانی را که باید در پروژه کار کنند تعیین میکند. مثلا، ممکن است کسبوکاری بخواهد برای خودش یک مدل تحلیل احساسات طراحی کند. برای این کسبوکار دیتا ساینتیستی که با NLP آشنایی دارد ایدهآل است. چون کسبوکار کسی را میخواهد که جمعآوری و تحلیلداده و همچنین ماشین لرنینگ را بداند. برای بعضی پروژهها شاید لازم باشد مهندس پردازش زبان طبیعی به علم زبانشناسی یا زبانشناسی رایانشی کاملا مسلط یا حتی تحصیلات دانشگاهی در آن رشتهها داشته باشد.
خب، رسیدیم به آخرین سوال مهم دربارهی NLP: درآمد مهندس یا متخصص پردازش زبان طبیعی چهقدر است؟ آیا فرصتهای شغلی قابلتوجهی در ایران و جهان برای این متخصص وجود دارد؟ اگر فرصتهای شغلی برای مهندس پردازش زبان طبیعی را در لینکدین جستجو کنید، به ۲۹هزار فرصت شغلی در آمریکا و هزار شغل در کانادا میرسید. متوسط حقوق سالانهی متخصص NLP در آمریکا ۱۱۲هزار دلار، در انگلستان ۵۶هزار پوند و در کانادا ۹۵هزار دلار کاناداست.
در ایران اما، بازار کار برای متخصصان پردازش زبان طبیعی هنوز خیلی خوب نیست. در جابینجا فقط ۲ فرصت شغلی برای کارشناس پردازش زبان طبیعی وجود دارد. در تصویر زیر مهارتهایی را که در یکیاز آن آگهیها ذکر شده است، میبینید.
چه باید کرد؟ علاقهمند به پردازش زبان طبیعی نباید در ایران انتظار داشته باشد که کاری پیدا کند؟ واقعیت این است که در ایران شرکتهایی به بزرگی گوگل و اپل وجود ندارند که به متخصصان پردازش زبان طبیعی نیاز داشته باشند. اما میشود امیدوار بود که کسبوکارها و همچنین دانشگاهها و موسسات علمی-پژوهشی بیشتری درآیندهای نهچنداندور، همگام با جهان و پیشرفتها در این حوزه، از پردازش زبان طبیعی بهره ببرند و به متخصصان NLP و یا مهندسان ماشین لرنینگ که با NLP آشنایی دارند نیاز پیدا کنند.
۱. پردازش زبان طبیعی مجموعهای از تکنولوژیها و تکنیکهاست که زبان انسان را برای ماشین ترجمه میکند تا ماشین آن را بفهمد و اطلاعاتی را که باید از آن استخراج کند و دراختیار انسانها قرار دهد.
۲. کاربردهای NLP فقط برای کمک به کسبوکارها برای بیشتر بهرهبردن از دادهها و شناختن عمیقتر مشتریان و همچنین رشدوتوسعهی حوزهی هوش مصنوعی نیست. پردازش زبان طبیعی کاربردهای علمی-آکادمیک برای متخصصان زبانشناسی هم دارد.
۳. NLP درست مانند هوش مصنوعی هرروز پیشرفت میکند و کاربردهای جدیدی مییابد. بههمیندلیل، اگر کسی علاقه دارد تا به ماشینها یاد بدهد که زبان انسان را بفهمند، حتما در آینده در هر نقطهای در این جهان که باشد؛ برای او کاری پیدا میشود.
۴. پردازش زبان طبیعی حوزهای میانرشتهای است. اما برای ورود و کارکردن در آن حوزه الزاما نباید زبانشناس بود و در دانشگاه تحصیل کرد. چون با یادگیری پایتون میشود الگوریتمها و مدلهای NLP را ساخت.
۵. برای علاقهمندانی که در ایران زندگی میکنند و نگران آیندهی شغلی پردازش زبان طبیعی هستند، ۲ راهحل وجود دارد: آموزش ماشین لرنینگ یا دیپ لرنینگ. دراینصورت، علاقهمند میتواند علاوهبر پروژههای پردازش زبان طبیعی در پروژههای دیگری که به یادگیری ماشین و دیپ لرنینگ نیاز است مشغول شود.
از یادگیری ماشین می توان در صنایع مختلف با اهداف مختلف استفاده کرد. ماشین لرنینگ باعث افزایش بهره وری در صنایع می شود، به بازاریابی محصول کمک کرده و پیش بینی دقیق فروش را ساده تر می کند. پیش بینی های دقیق پزشکی و تشخیص ها را تسهیل می کند. دقت در قوانین و مدل های مالی را بهبود می بخشد. به سیستم های توصیه گر، الگوریتم های فرا ابتکاری و حرکت ربات ها کمک خواهد کرد. در بحث فروش میتواند محصولات مناسب تری را به مشتری پیشنهاد دهد( با کمک به تقسیم بندی بهتر و پیش بینی دقیق طول عمر محصولات ) و ...
استفاده از سیستم های ماشین لرنینگ می تواند تا حد زیادی حجم کاری ما را کاهش دهد. به خصوص کارهایی که نیاز به آنالیز حجم عظیمی از داده و تصمیم گیری بر اساس این داده ها را دارد بسیار تسهیل می کند. سیستم های مبتنی بر ماشین لرنینگ ظرفیت انجام کار صد نفر را همزمان دارد و تنها به کمک ماشین ها می توان بدون صرف وقت و انرژی زیاد، کارهای سنگین را انجام داده و در عین حال پول و درآمد بیشتری کسب کرد. ماشین لرنینگ با خودکارسازی فرایندها و صرفه جویی در زمان، به ما کمک می کند تا بتوانیم زمان و انرژی خود را بر تصمیم گیری های پیچیده تری متمرکز کنیم.
ادامه...
از یادگیری ماشین می توان در صنایع مختلف با اهداف مختلف استفاده کرد. ماشین لرنینگ باعث افزایش بهره وری در صنایع می شود، به بازاریابی محصول کمک کرده و پیش بینی دقیق فروش را ساده تر می کند. پیش بینی های دقیق پزشکی و تشخیص ها را تسهیل می کند. دقت در قوانین و مدل های مالی را بهبود می بخشد. به سیستم های توصیه گر، الگوریتم های فرا ابتکاری و حرکت ربات ها کمک خواهد کرد. در بحث فروش میتواند محصولات مناسب تری را به مشتری پیشنهاد دهد( با کمک به تقسیم بندی بهتر و پیش بینی دقیق طول عمر محصولات ) و ...
استفاده از سیستم های ماشین لرنینگ می تواند تا حد زیادی حجم کاری ما را کاهش دهد. به خصوص کارهایی که نیاز به آنالیز حجم عظیمی از داده و تصمیم گیری بر اساس این داده ها را دارد بسیار تسهیل می کند. سیستم های مبتنی بر ماشین لرنینگ ظرفیت انجام کار صد نفر را همزمان دارد و تنها به کمک ماشین ها می توان بدون صرف وقت و انرژی زیاد، کارهای سنگین را انجام داده و در عین حال پول و درآمد بیشتری کسب کرد. ماشین لرنینگ با خودکارسازی فرایندها و صرفه جویی در زمان، به ما کمک می کند تا بتوانیم زمان و انرژی خود را بر تصمیم گیری های پیچیده تری متمرکز کنیم.
ادامه...
مهدیه اسماعیلی