نوشته‌ها

آموزش کار با ابزارهای پردازش زبان طبیعی (نسخه متنی – کار در لینوکس)

برای کار با ابزارهای پردازش زبان طبیعی همچون NLTK و هضم بر آن شدیم تا یک یادداشت اختصاصی برای مخاطبان خود داشته باشیم. در این یادداشت سعی میشود مطالبی خلاصه اما کاربردی بیان گردد. همه مطالبی که بیان میگردد تقریبا مثل موارد آموزش داده شده در فیلم آموزش موجود در لینک است. اما نکته اصلی که وجود دارد این است که در فیلم مذکور، با Anaconda کار پیگیری شد و این بیشتر بدرد فضای آموزشی میخورد. در فضای عملی که بخواهید یک پروژه بنویسید و یا یک نسخه release به مشتری بدهید، نیاز است تا یک خورده اصولی تر به بحث نگاه کنید. لذا در اینجا ما با پایتون خام (pure) کار را پی میگیریم…

تقریبا همه کارهایمان را در دایرکتوری ذیل انجام میدهیم:

 

گام اول :

برای انجام پروژه های مختلف پیشنهاد میشود تا با استفاده از virtualenv کار ها را اختصاصی و در فضای ایزوله مختص هر پروژه پیش ببرید. آموزش مربوط به virtualenv در یک یادداشت اختصاصی در لینک آمده است. خلاصه آنها در ذیل آمده است:

برای فعالسازی در دفعات بعدی :

 

گام دوم:

در این گام قرار است تا یک بستر و محیطی برای مشاهده کارها و فعالیت های کدنویسی پایتونی را آماده کنیم. شما میتوانید از IDEهای خوبی که با یک جستجو ساده در محیط نت هم پیدا میکنید کار کنید. IntelliJ، Spyder و همچنین Ipython از محیط های خوب برای کدنویسی هستند (همانطور که گفتم ابزارها زیاد هستند مثلا sublime و … اما نکته اصلی بحث راحتی شماست که با کدام راحت هستید). پیشنهاد ما استفاده از Ipython برای بارهای اول است. این یک محیط تعاملیست که طبق آن میتوانید خیلی جالب و راحت کارهایتان را پی بگیرید.

برای نصب ipython در محیط ایزوله خودتان کافیست پس از ایجاد یک محیط ایزوله و فعال کردن آن (در آموزش این لینک قبلا توضیح داده شده است)، کد ذیل را در محیط فعال ایزوله تان در terminal وارد کنید:

همچنین برای بهتر کار کردن یک «نوت بوک» هم نصب کنید که بتوانید از امکانات خوب Jupeter که با Ipython نیز در ارتباط است، استفاده کنید.

پس از نصب کامل، همه چیز فراهم شده و کافیست از طریق کامند به پوشه پروژه های مورد نظر بروید. مثلا در اینجا من با این فرض ادامه میدهم که در دایرکتوری خودم یک پوشه با نام nlpta دارم و سپس در درون این پوشه قبلا در یک زیرپوشه ای به نام ev هست که قبلا سعی میکردم گام یک که بحث virtualenv ها بود را در آنجا ایجاد کنم. اینک در این پوشه نیز یک پوشه با نام prj اینک میسازم و بحث های مربوط به پروژه های مرتبط با پردازش زبان طبیعی ام را در اینجا انجام میدهم. پس طبق کد ذیل جلو میروم:

حال ما در پوشه prj قرار داریم. کافیست در اینجا یک زیر پروژه ایجاد کنیم مثلا پروژه شماره یک:

حال در اینجا کافیست یک «نوت بوک» را ایجاد کنیم و کار کنیم. برای اینکار کافیست کد ذیل را بزنید:

سپس چند لحظه صبر کنید. سپس متوجه میشوید که یک آدرس به نشانی مثلا ۱۲۷٫۰٫۰٫۱:۸۸۸۸ برای شما آماده کرده تا از آن استفاده نمایید. اگر به طور اتوماتیک مرورگر باز نشد کافیست شما این آدرس را در مرورگر خود وارد کنید. وقتی که باز کردید دقیقا این فضایی که مشاهده میکنید فضای Jupeter است که محیط Ipython را در یک فضای گرافیکی همراه با قابلیت ایجاد نوت های مختلف آماده کرده است. سپس شما کافیست از قسمت راست بالا، روی New کلیک کنید و روی بخش notebook و نسخه پایتون آن نوت تان را انتخاب کنید. مثلا ما از بخش notebook نسخه پایتون۳ را انتخاب میکنیم. سپس یک محیط «نوت بوک» برای یادداشت موارد پایتونی ما آماده میکند. خب تقریبا همه چیز محیا شده تا به گام بعدی برویم…

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

گام سوم:

پس از گذراندن گام دوم، میبایست NLTK را نصب کنید.

برای نصب NLTK طبق آموزش لینک پیش روید. یعنی درواقع همانطور که قبلا نیز بیان شده کار خاصی ندارد کافیست شما طبق داکیومنت موجود در سایت رسمی nltk.org پی بگیریدو پیشروید (ما دقیقا همانند کدهایی که در سایت رسمی برای تست در صفحه اصلی آن رفته ادامه هم برایتان آورده ایم) :

سپس برای تست nltk کافیست کدهای ذیل را در «نوت بوک» تان وارد کنید:

خب در قسمت کد بالا در ابتدا ما nltk را import کردیم و سپس یک رشته با یک مقدار را آماده کردیم. در گام بعدی قرار است ما با استفاده از یک توکنایزر آن را توکن توکن کنیم. لذا داریم :

احتمال دارد با زدن دستور بالا به خطا برخورد کنید و دلیل آن عموما این است که nltk شما احتمالا توکنایزر ندارد. لذا نیاز است تا طبق کامند ذیل آن را از بخش module پیدا و سپس ماژول های مورد نظر مثلا توکنایزر پنتریبنک را نصب کنید.

در حین نصب احتمال دارد به خاطر بحث های فیلترینگ نیاز به یک سری ابزارها ( ابزارهای عبور فیلترینگ 🙂 ) داشته باشید تا بتوانید آن را به راحتی نصب کنید. پس از اینکه نصب کردید کافیست مجددا کد مذکور (کد تولید توکن) را اجرا کنید.

اگر بخواهیم خروجی توکن های تولیدی را مشاهده کنیم کافیست با دستور print پایتون این کار را بکنیم. اما نکته ای که وجود دارد این است که ما میتوانیم این کار را در محیط Ipython بدون print هم انجام دهیم. ولی چون بعدها احتمال دارد بخواهید آنها را export بگیرید و در محیط های دیگری اجرا کنید پیشنهاد میشود از همان دستور printاستفاده کنید. لذا داریم :

خب به همین راحتی تست nltk هم به اتمام رسید.

گام چهارم:

پس از گذراندن گام سوم، برای کار با ابزارها و زبان فارسی میبایست هضم را نصب کنید.

برای نصب هضم طبق آموزش لینک پیش روید. یعنی درواقع همانطور که قبلا نیز بیان شده کار خاصی ندارد کافیست شما طبق داکیومنت موجود در سایت رسمی www.sobhe.ir/hazm پی بگیریدو پیشروید (ما دقیقا همانند کدهایی که در سایت رسمی برای تست در صفحه اصلی آن رفته ادامه هم برایتان آورده ایم) :

سپس برای تست هضم کافیست کدهای ذیل را در «نوت بوک» تان وارد کنید:

خب در قسمت کد بالا در ابتدا یک سری موارد که برای بحث های یونیکد و فارسی نیاز بوده اضافه کردیم سپس همه توابعی که از هضم داشته توسط * import کردیم. سپس یک رشته با یک مقدار را آماده کردیم. در گام بعدی قرار است ما با استفاده از یک توکنایزر آن را توکن توکن کنیم. لذا داریم :

خروجی آن نیز به صورت ذیل است:

 

موفق و موید باشید/.

گام های شروع کار در پردازش زبان طبیعی مبتنی بر پایتون

برای فعالیت در این حوزه پایتون یکی از زبان های خوبیست که شامل کتابخانه های متعددی است. در پردازش زبان طبیعی نیز استفاده از پایتون به خاطر جامعیت کاربری و … بیشتر کارشده است. پیشنهاد میشود طبق مراحل ذیل بحث سوال و مسئله را فراگیرید و پیش روید:

 

گام اول : فراگیری زبان پایتون

برای آموختن این زبان به نظر بنده ابتدا با یادداشت خاص قبلی پیش روید (آموزش اولیه سایت فرانش)

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

سپس شما به سطح مطلوبی رسیدید که قرار است به گام بعدی بروید. مدت زمانی که برای گام اول صرف میشود حداکثر یک هفته مطلوب هست.

 

گام دوم : مفاهیم NLTK و Hazm

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

فیلم ذیل میتوانید در این راستا دید خوبی بدهد و کلیات مسیر را تقریبا مشخص کند

 

گام سوم : فراگیری جزئیات NLTK و نوشتن مثال

پیشنهاد میشود به صورت سلسله وار از روی یک یا چند منبع معتبر پیشروید. برای شروع به نظر بنده کتاب Python 3 Text Processing with NLTK 3 Cookbook خوب هست. برای دانلود کتاب از منبع اول یا منبع دوم استفاده کنید. اگر در دانلود مشکلی بود اطلاع دهید تا لینک جایگزین درج گردد.

 

البته این مسیر پیشنهادیست.

اگر پیشنهاد بهتری دارید حتما در بخش نظرات بفرستید تا بررسی و در صورت صلاحدید اعمال نماییم.

موفق و موید باشید/.

 

نصب ابزار پردازش زبان طبیعی NLTK (Natural Language Toolkit)

برای نصب NLTK طبق توضیحات بیان شده در سایت رسمی آن به نشانی http://www.nltk.org عمل میکنیم. در صفحه نصب آن که در http://www.nltk.org/install.html وجود دارد پیش میرویم:

۱- کامند نصب ذیل را وارد کنید. :

۲- احیانا اگر numpy نداشتید :

 

تموم شد! 🙂

حال برای تست آن در یک پروژه پایتون کافیست تست کنید import nltk خطا ندهد.

به همین راحتی!