021-71053903 [email protected] پشتیبانی از شنبه تا چهارشنبه ساعت 9 الی 16

کتابخانه davat دوات

کتابخانه Davat

کتابخانه davat

با سلام و عرض ادب خدمت تمامی کابران وبسایت پایتونی های با یک پست آموزشی دیگه در خدمتتون هستیم برای معرفی یکی از کتابخانه های خوب زبان به نام کتابخانه davat برنامه نویسی پایتون که برای پردازش زبان طبیعی استفاده میشه.

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

لینک سایت منبع این کتابخانه در ادرس زیر قرارداده :

https://pypi.org/project/davat/

این صفحه مربوط به سایت Pypi.org هستش که کتابخانه در آخرین آپدیت در تاریخ به روزرسانی شده. برای دستور نصب کتابخانه در پکیج منجر PIP می توانید از دستور زیر استفاده کنید:

pip install davat

 

از ویژگی های بارز این کتابخانه می توان به موارد زیر اشاره کرد:

  • ساده کرده متون عربی به فارسی
  • تبدیل اعداد انگیلیسی به فارسی
  • حذف و ساد سازی حروف صدادار
  • تبدیل هشتگ ها به حروف عادی
  • حذف لینک ها و منشن ها
  • حذف ایموجی ها
  • حذف حروف غیرفارسی
  • فیلتر کردن علام دستوری و نگارشی
  • پشتیبانی از پایتون 3

مزایا کتابخانه

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

به عنوان مثال ما یک پروژه در خصوص ساخت یک ربات فروشگاهی داریم و می خواهیم بجای شخص پشتبان یک ربان برای ما همه کار ها انجام داده و در تعامل با انسان برای رفتار او جواب مناسب ارسال کند !توجه داشته این پروژه به صورت کاملا ساده و بدون استفاده از سیستم های یادگیری ماشین و یا شبکه عصبی قرار است برنامه ریزی شود.

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

نصب-davat

نصب-davat

برای نصب کتابخانه دوات در محیط ژوپیتر نوت بوک باید از تیکه کد زیر استفاده و سلول خودتون رو اجرا کنید:

!pip install davat

 

سناریو پروژه

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

 

ساخت منبع

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

# 1

# جملات مورد نیاز ما
dict_ = {'سلام':'سلام به پایتونی ها خوش آمدید',
         'سلام خوبی':'مرسی ممنون چه کمک از دستم برماید براتون انجام بدم؟',
         'ییخشید یه سوال داشتم':'سلام در خدمتتون هستم سوالتون چیه؟',
         'چجوری می تونم از پشتیبانی استفاده کنم؟':'کافیه فقط سوال خودتون رو بپرسید',
         'کد تخفیف هم دارید':'مدل انواع کد تخفیف ها وجود داره به صفحه اصلی سایت مراجعه کنید',
        }

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

جملاتی که استفاده شده برای درک بهتر شما در زیر تجزیه خواهد شد.

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

‘سلام’=======> ‘سلام به پایتونی ها خوش آمدید’
‘سلام خوبی’=======> ‘مرسی ممنون چه کمک از دستم برماید براتون انجام بدم؟’
‘ییخشید یه سوال داشتم’=======> ‘سلام در خدمتتون هستم سوالتون چیه؟’
‘چجوری می تونم از پشتیبانی استفاده کنم؟’=======> ‘کافیه فقط سوال خودتون رو بپرسید’
‘کد تخفیف هم دارید’=======> ‘مدل انواع کد تخفیف ها وجود داره به صفحه اصلی سایت مراجعه کنید’

خوب، به شما تبریک میگیم شما تونستید سخت ترین مرحله کار که در واقع اماده کرده جملات خودتون هستش رو برای کاربر قرار بدید بریم سراغ سایر مراحل کار:

 

دریافت ورودی از کاربر

این مرحله ساده ترین مرحله نوشتن نرم افزار هستش جوری که شما باید بنا به به استفاده از نرم افزار خودتون حالا یا در طراحی وبسایت و یا در طراحی نرم افزار های گرافیکی و حتی نرم افزار موبایل باید به این موضوع توجه داشته باشید که شما نیاز به ورودی دارید تا با کاربر در تعامل باشید برای دریافت ورودی از کاربر در پایتون باید از ورودی زیر استفاده کنید:

# 2

user = input('سلام، من پشتبان وبسایت پایتونی ها هستم چجوری می تونم کمکتون کنم ؟ \n')

خوب ما تا اینجا تونستیم هم اطلاعات خودمو رو دریافت کنیم و هم تعداد جمله رو به عنوان جلات پیش فرض برای کاربران قرار بدیم البته تعدادی خیلی محدود.

 

 

خواندن ورودی از کاربران

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

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

کتابخانه davat

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

پاکسازی داده ها

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

خوب حالا که متوجه قضیه شدید کتابخانه دوات 2 تا تابع اصلی برای این کار در اختیار ما قرارداده پیرو مثال قبل ما با استفاده از همان کلمه سلام با اعراب عربی میایم و سلام و عادی سازی می کنیم تا بتونیم خیلی راحت ازش استفاده کنیم.

حالت مختلف نگارش کلمه سلام:

  • ســـــلام
  • سلاٍم
  •  می تونه تعداد بی نهایت حالت مختلف نگارش داشته باشه…

عادی سازی داده ها

برای نرمال سازی یا همان عادی سازی کلمه سلام باید از تابع که در کتابخانه davat وجود داره و کد زیر برای اینکار استفاده کرد:

import davat

davat.normalize('ســـــلام')

خروجی:

 

کتابخانه davat

 

 

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

راه حل:

خوب همانطور که قبلا اشاره کردیم کتابخانه davat این مشکل رو حل کرده ! راه حل این مورده استفاده از تمیز کردن داده های ورودی با یکی دیگر از توابع دوات است که شما می توانید به راحتی ایموجی و لینک ها و منشن ها را از کد خود حذف کنید.

برای اینکار به مثال زیر دقت کنید:

import davat

davat.clean('https://pythonih.ir 🙃 ســـــلام')

در قطعه کد بالا ما هم سلام کردیم هم ایموجی ارسال کردیم و هم لینک خود را ارسال کردیم اما خروجی :

کتابخانه davat

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

 

ادامه نرم افزار اصلی

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

به تکه کد زیر دقت کنید:

ما به صورت مثال ورودی ( سلام خوبی ) به نرم افزار ارسال کردیم و سپس با استفاده از عادی سازی و نرمال سازی داده توانستیم جواب زیر را از نرم افزار حاصل کنیم:

# 2
import davat

user = input('سلام، من پشتبان وبسایت پایتونی ها هستم چجوری می تونم کمکتون کنم ؟ \n')

user_normal = davat.normalize(user)

user_clean = davat.clean(user_normal)
print(user_clean)

try:
    if user_clean in dict_:
        print(dict_[user_clean])
    else:
        print('No')

except:
    print('لطفا سوال خودتون رو به درستی مطرح کنید.')

خروجی نهایی :

کتابخانه davat

و حالا شما با استفاده از دانشی که بالا کسب کردید می تونید پروژه های بیشتری برای خود انجام بدید و شروع به نوشتن نرم افزار کنید.

در ضمن اگر با استفاده از ژوپیتر نوت بوک برنامه نویسی می کنید می توانید فایل کامل این پروژه رو در ضمینه همین پست دانلود که و برای استفاده در سیستم عامل خودتون قراربدید.

دانلود باکس

محمدرضا حسنی

224 مطلب منتشر شده

دانش آموخته رشته فناوری اطلاعات / موسس پایتونی ها

درباره این مطلب نظر دهید !

مطالب پرمخاطب پایتونی ها

کتابخانه NLTK

3
دقیـقه مطالعه
ادامه ...

محصولات فروش پایتونی ها

%60
تخفیف

آموزش فیگما (Figma)

30,000 تومان
3
%69
تخفیف

آموزش برنامه نویسی پایتون

35,000 تومان
2