چگونه از پردازش زبان طبیعی ( NLP ) در پایتون استفاده کنیم

این یک مثال مرحله به مرحه عملی برای پی بردن به مهارت های موردنیاز متخصصین علم داده به همراه NLTK است.

در این مقاله ما کاربرد پردازش زبان طبیعی ( NLP ) را بصورت مرحله به مرحله در قالب مثالی از فرصت  های ارتقا شغلی ارائه می دهیم.

در واقع این مقاله یک توضیح است که در آن ابزار ها، مهارت ها و حداقل آموزشی که مورد نیاز اغلب کارفرمایان است را فراهم کرده ایم.

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

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

آماده سازی : استخراج اطلاعات

ما فرصت های ارتقا شغلی برای متخصصین داده را از ۸ شهر مختلف استخراج کرده ایم که شامل شهرهای بوستون، لس آنجلس، مونترال، شیکاگو، سان فرانسیسکو، تورنتو و ونکوور می شود.

متغیر های این آزمایش شامل عنوان شغلی ( job_title )، شرکت ( company )، موقعیت ( location ) و شرح شغل ( job_description ) است.

ما در این مقاله وارد جزییات این فرایند نخواهیم شد ولی شما می توانید در صورت تمایل به کد ها در اینجا مراجعه کنید.

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

حالا که مرحله آماده سازی انجام شد، آزمایش را شروع می کنیم.

مرحله اول : بارگذاری و پاکسازی اطلاعات

ابتدا فایل های داده این ۸ شهر را در پایتون بارگذاری و ترکیب می کنیم.

در این مرحله اگر دو تا ردیف و یا فرصت شغلی با ویژگی های عنوان شغل، شرح شغل و یا شهر بطور مشابه وجود داشت، آن را حذف می کنیم.

حالا با داشتن مجموعه اطلاعاتی شامل پنج ویژگی و ۲۶۸۱ ردیف به مرحله دوم می رویم.

پردازش زبان طبیعی nlp دسته بندی

مرحه دوم : تشکیل لیست هایی شامل کلمات کلیدی

ما قبل از جستجو در توضیحات شغلی ، به لیست هایی از واژگان کلیدی که ابزار ها، مهارت ها و رتبه ها را نشان می دهد، نیاز داریم.

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

ابتدا بر اساس میزان دانش خود از علم اطلاعات، لیستی از واژگان کلیدی ابزار های مورد نیاز تهیه می کنیم. البته به خوبی می دانیم که این ابزارها شامل Paython ، R ، Hadoop ، spark و…. است. ما اطلاعات مناسبی از این زمینه داریم. بنابراین این لیست اولیه خوب است که بسیاری از ابزارهای ذکر شده در پست های شغلی را پوشش داده است.

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

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

اغلب بوسیله مطابقت های ساده رشته ها، می توان خیلی راحت تر و بهتر از واژگان کلیدی چند کلمه ای در شناسایی شرح شغل استفاده کرد. بطور مثال واژه کلیدی تک حرفی “c” در مقاله ما به زبان برنامه نویسی C اشاره دارد. اما “c” همچنین یک حرف معمولی است که در بسیاری از کلمات از جمله can” ، “clustering استفاده می شود. بنابراین ما باید این واژگان تک حرفی را از طریق توکن سازی پردازش کنیم درا ین صورت حرف “c” تنها با واژگان مشابه در شرح شغل تطابق پیدا می کند.

در زیر لیست هایی از واژگان کلیدی برای ابزارهای رمزگذاری شده در پایتون وجود دارد.

با ادامه فرایندی مشابه فرایند بکار گرفته شده برای ابزار ها، می توان به لیست هایی از کلمات کلیدی از مهارت ها دست یافت.

همچنین باید به این نکته توجه شود که ما برای سطوح تحصیلاتی مختلف از روش های متفاوتی استفاده می کنیم.

از آنجایی که ما به دنبال حداقل سطح تحصیلات مورد نیاز هستیم ، برای رتبه بندی تحصیلات به یک عددی احتیاج داریم که نشاند هنده آن سطح باشد. به عنوان مثال ، ما از عدد ۱ برای نشان دادن سطح “کارشناسی” یا “دانشجوی دوره کارشناسی” استفاده کرده و از عدد ۲ برای نشان دادن سطح “کارشناسی ارشد” یا “فارغ التحصیل” و غیره استفاده می کنیم.

به این ترتیب، ما دارای رتبه بندی از اعداد ۱ تا ۴ هستیم که در این رتبه بندی هرچه از عدد ۱ به عدد ۴ برویم، سطح تحصیلات نیز بالاتر می رود.

مرحله سوم: ساده سازی شرح شغلی با استفاده از تکنیک های NLP

در این مرحله ، می خاوهیم متن توضیحات شغلی را ساد سازی کنیم. درک متن توضیحات شغلی توسط برنامه های کامپیوتری ساده تر خواهد شد در نتیجه بطور کارآمدتری این متن ها با لیست واژگان کلیدی تطابق پیدا می کند.

شرح شغل موجود در مجموعه داده های ما در زیر نشان داده شده است.

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

توکن سازی توصیفات شغل

توکن سازی یا همان جداسازی واژگان فرایندی است که در آن یک داده متنی داده شده به واحدهای زبانی کوچکتری به نام توکن تقسیم بندی می شود و از آنجا که برنامه های کامپیوتری متونی که جداسازی شده است را بهتر درک می کنند، این کار ضروری است.

برای اینکار باید رشته های متون مربوط به توصیفات شغل را توسط فاصله هایی از یکدیگر جدا کرده و به توکن های متفاوت تقسیم کرد. ما برای انجام این عمل از تابع word_tokenize استفاده میکنیم.

پس از این فرآیند، رشته های متون مربوط به شرح کار، همانند زیر به توکن ها (کلمات) تقسیم می شوند در نتیجه کامپیوتر می تواند این توکن ها را آسان تر بخواند و پردازش کند.

برای مثال حرف کلیدی “c” که قبلا امکان داشت با کلماتی که حرف ابتدایی آن ها “c” است مانند “can” و یا ” clustering” تطبیق پیدا کند، الان تنها با توکن هایی که حرف “c” دارند تطبیق پیدا می کند.

پردازش زبان طبیعی توکن سازی کلمات

لطفا همچنان به خواندن کدهای پایتون ادامه دهید چون ما توکن سازی را با تعدادی از روند های بعدی ترکیب خواهیم کرد.

برچسب گذاری اجزای کلام ( Parts Of Speech ) توضیحات شغل

توضیحات شغل اغلب طولانی است در نتیجه ما باید کلمات مفید برای تجزیه و تحلیل خود را حفظ کنیم و باقی را حذف کنیم و برای رسیدن به این هدف از برچسب گذاری اجزای کلام ( POS Tagging ) استفاده می کنیم.

برچسب گذاری برچسب گذاری اجزای کلام یک روش NLP برای برچسب گذاری با صرف نظر از اینکه کلمه یک اسم ، صفت ، فعل و غیره، است. ویکی پدیا این روش را به خوبی توضیح می دهد:

الگوریتم برچسب گذاری اجزا کلام ( POS Tagging ) فرآیند علامت گذاری یک کلمه در یک متن بر اساس مطابقت آن کلمه با تعریف آن و زمینه محتوایی که آن کلمه در آن ظاهر می شود، است. به عنوان مثال، واحدهای زبانی مجاور و مرتبط در یک عبارت، جمله یا پاراگراف. نوع ساده تری از این روش به طور معمول در مدارس به دانش آموزان در قالب نقش های دستوری مانند اسم (noun)، فعل (verb)، صفت (adjective) آموزش داده می شود.

به لطف NLTK می توانیم این برچسب گذاری را در پایتون استفاده کنیم.

با استفاده از این روش در لیست کلمات کلیدی، می توانیم برچسب های مربوط به آزمایش خود را پیدا کنیم.

ما در جدول زیر لیست کلمات کلیدی را برچسب گذاری کرده ایم تا به شما چگونگی انجام این عملیات را نشان دهیم.

ترکیب مختلف حروف معرفی کننده ی تگ ها هستند. برای مثال دو حرف “NN” نشان دهنده اسم ها و کلمات مفرد مانند “Paython” است و یا “JJ” نشان دهنده صفت هایی مانند “big” است. لیست کاملی از آن ها در پایین برای شما قرارداده شده است.

همانطور که می بینید برچسب گذاری بدون نقص نیست برای مثال “sql” بصورت “JJ”  و صفت برچسب گذاری شده است ولی خب حداقل به ما کمک می کند تا کلمات مورد نیاز خود را از بقیه جدا کنیم.

برچسب گذاری اجزای کلام nlp

ما می توانیم از لیست برچسب های تمام کلمات کلیدی برای جداسازی توضیحات شغل استفاده کنیم. با اینکار ما فقط کلماتی از توضیحات شغل را نگه می داریم که برچسب مشابهی از کلمات کلیدی دارند. برای مثال کلماتی از توضیحات شغل با برچسب های “NN” و “JJ” را نگه می داریم. با اینکار ما واژه هایی مانند “the” و “then” را که کلمات مفیدی برای تحلیل ما نیستند را از بقیه جدا می کنیم.

اکنون در این مرحله ما توضیحات شغلی ساده شده ای داریم که کوتاه و جداسازی شده است. حالا می توانیم به مرحله بعد برویم.

مرحله چهارم : پردازش نهایی کلمات کلیدی و توصیفات شغلی

مرحله چهارم شامل پردازش نهایی کلمات کلیدی و توضیحات شغلی است که در این مرحله ما بیشتر لیست های کلمات کلیدی و توضیحات شغلی را پردازش می کنیم.

ریشه یابی ( Stemming ) کلمات

Stemming یا ریشه یابی کلمات فرایند بازگرداندن کلمات به شکل اولیه، ریشه ای و بطور کلی فرم نوشته شده ی کلمه است.

درواقع عملیات Stemming به کامپیوتر این امکان را می دهد که کلمات مختلفی که ظاهر متفاوت ولی ریشه یکسان دارند را شناسایی کند. در این صورت می توان کلمات را تا وقتی که ریشه مشابهی دارند، مطابقت داد. بطور مثال کلماتی مانند “models” و “modeling” هر دو از کلمه “model” گرفته شده اند و به عبارتی ریشه این دو “model” است.

اکنون ما هر دو لیست کلمات کلیدی و شرح شغل ساده تر شده را فهرست می کنیم.

عملیات Lowercasing

Lowercasing فرایند تبدیل تمامی کلمات موجود در متن به حروف کوچک است و ما در پایان کار کلمات موجود در توصیفات شغلی را با تبدیل آن ها به حروف کوچک استاندارد می کنیم زیرا لیست های کلمات کلیدی بر این مبنا ایجاد شده است.

همانطور که در بخش قبلی گفته شد، کد های پایتونی که در روش قبلی استفاده شد در زیر وجود دارد.

پس از انجام مراحل بالا، حالا تنها کلمات ( توکن ها ) در توضیحات شغلی که مرتبط با آزمایش ما هستند باقی می مانند. در زیر نمونه ای از توضیحات شغلی نهایی آمده است.

پردازش زبان طبیعی کلید واژه ها

در نهایت ما برای مرحله تطبیق کلمات کلیدی آماده هستیم.

مرحله پنجم : تطبیق کلمات کلیدی و توضیحات شغلی

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

ابزار ها / مهارت ها

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

آموزش

برای سطح اموزش، ما از روش مشابه با روش ابزار ها / مهارت ها برای تطبیق کلمات کلیدی استفاده می کنیم. با این تفاوت که در اینجا ما تنها به دنبال کمترین سطح هستیم.

اجازه بدهید این را در قالب یک مثال بیان کنیم. زمانیکه دو واژه “bachelor” و “master” هر دو در توضیحات شغلی وجود دارند، مدرک کارشناسی (bachelor degree) حداقل تحصیلات مورد نیاز برای شغل موردنظر می باشد.

کدهای پایتون و جزییات بیشتر در زیر وجود دارد.

مرحله ششم : تجسم نتایج

در نهایت ما نتایج را با نمودار میله ای خلاصه می کنیم.

در این مرحله ما برای هرکدام از کلمات کلیدی سطوح ابزار / مهارت / تحصیلات، توضیحات شغلی که با آن ها تطابق دارد را حساب می کنیم. همینطور در صد آن ها در میان تمام توضیحات شغلی را نیز حساب می کنیم.

ما برای لیست های ابزار ها و مهارت ها، تنها ۵۰ مورد برتر را ارائه می دهیم و برای سطح تحصیلات، آن ها را با توجه به حداقل سطح موردنیاز خلاصه می کنیم.

همچنین جزییات کد های پایتون در زیر وجود دارند.

ابزار های برتر مورد نیاز

۵۰ ابزار برتر برای مخصصین داده
۵۰ ابزار برتر برای مخصصین داده

مهارت های برتر مورد نیاز

۵۰ مهارت برتر مورد نیاز متخصصین داده
۵۰ مهارت برتر مورد نیاز متخصصین داده

حداقل تحصیلات مورد نیاز

حداقل سطح تحصیلات مورد نیاز برای متخصصین داده
حداقل سطح تحصیلات مورد نیاز برای متخصصین داده

تمام شد!

امیدواریم این مقاله برای شما مفید بوده باشد. لطفا کامنت بگذارید و نظر خود را به ما بگویید.

بیشتر بخوانید :

منبع Towards Data Science

همچنین ببینید

فناوری تشخیص چهره و کاربردهای آن، تاریخچه تکنولوژی تشخیص چهره

فناوری تشخیص چهره و کاربردهای آن + تاریخچه

فناوری تشخیص چهره یک فناوری بیومتریک است که با استفاده از تجزیه و تحلیل الگوهایی …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *