NLP چیست؟
عبارات منظم در NLP (بخش سوم)
در بخش سوم آموزش ان ال پی لگوهای پیشرفته برای استخراج اطلاعات در متون بزرگ ارائه خواهد شد. سپس با استفاده از زبان برنامهنویسی پایتون مثالهایی در این زمینه حل میگردد.
ان ال پی چیست؟ (بخش سوم)
آموزش فارسی پردازش زبان طبیعی (بخش سوم)
در این بخش الگوهای پیشرفته برای استخراج اطلاعات در متون بزرگ ارائه خواهد شد. سپس با استفاده از زبان برنامهنویسی پایتون مثالهایی در این زمینه حل میگردد.
1- انفصال (disjunction) : در عبارات منظم انفصال به معنای زیر است :
با توجه به این مطلب که عبارات منظم در انگلیسی به حروف بزرگ یا کوچک حساس هستند اگر بخواهیم واژههای خاصی را در ابتدا و درون جمله پیدا کنیم باید از انفصال استفاده نمود:
مثلاً اگر بخواهیم تعداد تکرار واژه، اعداد یا کاراکترهای خاصی را در متون حجیم بیابیم باید از الگوهای زیر استفاده کنیم:
تصویر 3-3 نمونهای از انفصال
انفصال با استفاده از [] قابل پیادهسازی است. مثلاً اگر بخواهیم در متن واژههایی که با "آ" و "ا" شروع میشوند را تشخیص دهیم باید از دستور زیر استفاده کنیم:
تصویر 4-1. نمونهای از انفصال
در این تکه کد واژههای آبی و ابی هردو تشخیص داده میشوند، زیرا از انفصال استفاده نمودهایم:
تصویر 4-2 نتیجه اجرای کد
2- تعریف یک دامنه (Range): جهت راحتی استفاده از عبارات منظم میتوان از تعریف یک دامنه استفاده نمود. برای مثال اگر بخواهیم اعداد یک متن را استخراج کنیم، از دو روش میتوان این کار را انجام داد. در اولین قدم میتوان تمام اعداد را بهعنوان ورودی و الگو به نرمافزار داد که این کار منطقی نیست. راه دوم استفاده از یک دامنه یا range است.
تصویر 5-1. استفاده از range
تصویر 5-2 نتیجه کد
در این کد اعدا بهصورت تکتک استخراجشدهاند که در تصویر 5-2 نتیجه اجراشدن کد نمایش داده شده است.
تصویر 6. تعریف range با استفاده از "-"
همانطور که در تصویر 6 مشاهده میشود با استفاده از "-" و [] میتوان یک Range تعریف نمود.
[A-Z] یعنی تمامی کاراکترهای بزرگ از A تا Z
[a-z] یعنی تمامی کاراکترهای کوچک از a-z
[0-9] یعنی تمامی اعداد
برای مثال [A-Z] برابر است [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
تصویر 7. نمونهای از range
اگر کاراکتر شروع بعد از [ کاراکتر ^ باشد به این معنی است که تمامی range در [] بهصورت not میباشد و معنی به جز میدهد. مثلاً [A-Z^] به این معنی است همه حروف شناسایی شوند به جز حروف بزرگ.
تصویر 8-1 نمونه از negated range
تصویر 8-2 نتیجه اجرای کد
همانطور که در تصویر 8-2 مشاهده میشود، همه کاراکترهای موجود در متن تصویر 8-1 شناساییشدهاند بهجز کاراکترهای بزرگ. کاراکتر فاصله نیز شناسایی شده است.
3- تشخیص کاراکترهای optional
در این بخش مثلاً اگر بخواهیم واژههای color و colour را تشخیص دهیم نباید از [] استفاده نمود. در مثال زیر بهوضوح توضیح داده خواهد شد:
تصویر 9-1 Range
9-2 نتیجه اجرای کد
در این تکه کد فقط کلمه color تشخیص داده میشود و انتظار میرفت که کلمه colour نیز تشخیص داده شود. اما این مشکل باید با استفاده از کاراکتر ? و بدون استفاده از [] حل گردد. به کد زیر توجه نمایید:
تصویر 10-1 نمونهای استفاده از تشخیص کاراکتر optional
تصویر 10-2 نتیجه اجرای کد
ou در nlp
"?ou" به چه معناست:
"?ou" به این معناست که اگر بعد از o، u صفر بار یا بیشتر تکرار شود رشته موردنظر قابلقبول است. اگر u بعد از o نباشد رشته قابلقبول است و اگر موجود هم باشد بازهم رشته موردنظر قابلقبول است.
در مباحث بعدی درمورد عبارات منظم بیشتر بحث خواهد شد.