1 / 55

Parsing (1)

دانشکده مهندسی گروه مهندسی کامپیوتر. Parsing (1). ارائه دهنده: مجید یاقوتی استاد: دکتر کاهانی درس: سیستم‌های مبتنی بر دانش فروردین 92. Parsing (1). 1. فهرست. مقدمه استراتژی‌های جستجو تجزیه‌ی بالا به پایین تجزیه‌ی پایین به بالا. Parsing (1). 2. فهرست. برنامه‌نویسی پویا

lisbet
Download Presentation

Parsing (1)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. دانشکده مهندسی گروه مهندسی کامپیوتر Parsing(1) ارائه دهنده: مجید یاقوتی استاد: دکتر کاهانی درس: سیستم‌های مبتنی بر دانش فروردین 92

  2. Parsing (1) 1 فهرست • مقدمه • استراتژی‌های جستجو • تجزیه‌ی بالا به پایین • تجزیه‌ی پایین به بالا

  3. Parsing (1) 2 فهرست • برنامه‌نویسی پویا • الگوریتم CKY • الگوریتم Earley • نرم‌افزارهای موجود

  4. Parsing (1) 3 مقدمه • Parsing یا تجزیه‌ی یک جمله • ساختن یک درخت یا اشتقاق صحیح با داشتن گرامر • «صحیح»: صرفا به معنی سازگار بودن درخت با ورودی و گرامر • یک درخت با وجود صحیح بودن ممکن است درخت واقعی عبارت ورودی و گرامر داده شده نباشد. • برگ‌های درخت: اجزای جمله‌ی ورودی

  5. Parsing (1) 4 مقدمه • پارسر: الگوریتمی برای محاسبه‌ی یک ساختاری برای رشته‌ی ورودی با توجه به گرامر • دو ویژگی همه‌ی پارسرها • جهت: روند یا مراحل تولید ساختار • بالا به پایین یا پایین به بالا • استراتژی جستجو: روش پیمایش فضای جستجوی انواع مختلف تجزیه‌ها • اول سطح یا اول عمق

  6. Parsing (1) 5 مقدمه • فرض‌های اولیه قبل از تجزیه • همه‌ی کلمات را در یک بافر در اختیار داریم. • همه‌ی کلمات شناخته شده هستند.

  7. Parsing (1) 6 مقدمه • مثال: یک گرامر و دیکشنری لغات • درخت متناظر با عبارت «Book that flight»

  8. Parsing (1) 7 تجزیه‌ی بالا به پایین • از ریشه‌ی درخت شروع به ساختن آن می‌کنیم. • حرکت به سمت برگ‌های درخت (کلمات) با استفاده از قوانین گرامر و عمل اشتقاق • هدف نهایی • پیدا کردن درختی که ریشه اش S باشد و رشته‌ی ورودی را تولید کند. • دارای سرعت کمتر نسبت به سایر روش‌ها

  9. Parsing (1) 8 تجزیه‌ی بالا به پایین • نمونه‌ای از یک تجزیه‌ی بالا به پایین

  10. Parsing (1) 9 تجزیه‌ی بالا به پایین • نحوه‌ی اشتقاق و رسیدن از ریشه به برگ‌ها • روش اول عمق: پیمایش یک شاخه از فضای جستجو در هر زمان • بازگشت به عقب در صورت بن بست • اول سطح: پیمایش موازی تمام شاخه‌های ممکن • محدودیت حافظه

  11. Parsing (1) 10 تجزیه‌ی بالا به پایین • مشکلات روش بالا به پایین • جستجو توسط ورودی هدایت نمی‌شود. • تولید درخت‌های صحیحی که رشته‌ی ورودی را تولید نمی‌کنند.

  12. Parsing (1) 11 تجزیه‌ی بالا به پایین • مشکلات روش بالا به پایین • ابهام سراسری و محلی • ابهام سراسری: چندین تجزیه‌ی ساختاری به دلیل قوانین گرامری و یا لغوی • ابهام محلی: حتی اگر کل جمله بدون ابهام باشد، ممکن است زیر رشته هایی وجود داشته باشند که ابهام دارند. • «book» در جمله‌ی «Book that flight» دو تفسیر متفاوت دارد (اسم و فعل). • ابهام محلی در زبان‌های طبیعی بسیار معمول است.

  13. Parsing (1) 12 تجزیه‌ی بالا به پایین • مشکلات روش بالا به پایین • اثر ابهام ساختاری در گرامر و ابهام لغوی در کلمات • حرکت در مسیر اشتباه • تولید چند باره‌ی یک زیر درخت خاص • بازگشت به عقب شروع مجدد • پیچیدگی این بازگشت به عقب در بدترین حالت از مرتبه‌ی نمایی است.

  14. Parsing (1) 13 تجزیه‌ی پایین به بالا • حرکت از کلمات رشته‌ی ورودی به سمت بالای درخت • با تطبیق دادن یک یا چند گره در لبه‌ی بالایی درخت با سمت راست یک قانون از گرامر • افزودن سمت چپ آن قانون به درخت به عنوان والد آن گره یا گره‌ها • به کار گیری جستجوی اول عمق و اول سطح

  15. Parsing (1) 14 تجزیه‌ی پایین به بالا • نمونه‌ای از تجزیه‌ی پایین به بالا با رویکرد اول سطح

  16. Parsing (1) 15 تجزیه‌ی پایین به بالا • مزیت • سازگاری هر درخت ختم شده به Sبا رشته‌ی ورودی • مشکلات روش پایین به بالا • ابهام سراسری و محلی و در نتیجه محاسبات تکراری • تولید درخت هایی که از لحاظ ساختار کلی، بدون معنا هستند. • در فضاهای نامتناهی به مشکل بر خواهد خورد.

  17. Parsing (1) 16 برنامه‌نویسی پویا • پارسر باید بتواند از آنالیز تکراری زیررشته‌ها اجتناب کند. • آنالیز هر زیررشته، به بقیه‌ی فرآیند تجزیه وابسته نیست. • کشف این عدم وابستگی‌ها با استفاده از برنامه‌نویسی پویا • برنامه‌نویسی پویا اساس همه‌ی الگوریتم‌های تجزیه‌ی مبتنی بر چارت است.

  18. Parsing (1) 17 برنامه‌نویسی پویا • در برنامه‌نویسی پویا • پر کردن یک جدول که حاوی راه حل بهینه‌ی زیرمسئله‌هاست • ذخیره‌ی جواب‌های بهینه تا در آینده مجبور به محاسبه‌ی مجدد آنها نباشیم. • رسیدن به جواب مسئله‌ی کلی با ترکیب جواب‌های زیرمسائل

  19. Parsing (1) 18 برنامه‌نویسی پویا • در مسائل تجزیه، زیرمسئله‌ها آنالیز زیررشته‌ها هستند. • هر آنالیز • مربوط به یک ساختار (زیردرخت) کامل است که توسط محل‌های شروع و پایان زیررشته مشخص شده است. • و یا یک فرض در مورد یک ساختار کامل که ممکن است پیدا شود.

  20. Parsing (1) 19 برنامه‌نویسی پویا • در این روش • جستجوی زیردرخت‌ها به جای آنالیز دوباره‌ی آنها • کمک در مواجهه با ابهام • ذخیره‌ی تمام تجزیه‌های ممکن را در چارت • بازنمایی بصورت ماتریس یا گراف • سطرها و ستون‌های ماتریس، نشان دهنده‌ی محل‌های شروع و پایان یک محدوده

  21. Parsing (1) 20 برنامه‌نویسی پویا • هر خانه از ماتریس مربوط به زیررشته ای است که شروعش اندیس سطر و پایانش اندیس ستون آن خانه است. • حاوی اطلاعاتی درباره‌ی • نوع ساختار آن محدوده از زیررشته • اشاره گرهایی به زیرساختارهای آن • و یا پیش‌بینی هایی در مورد ساختارهایی که ممکن است در ادامه‌ی زیررشته ظاهر شوند.

  22. Parsing (1) 21 برنامه‌نویسی پویا • مثال: تجزیه‌ی عبارت «See with a telescope in hand» با روش برنامه‌نویسی پویا و استفاده از ماتریس

  23. Parsing (1) 22 برنامه‌نویسی پویا • در بازنمایی گرافی • رئوس گراف: نشان دهنده‌ی محل‌های شروع و پایان • یال‌های گراف: مشخص کننده‌ی شروع و پایان یک محدوده از یک زیررشته • قرارگیری اطلاعات خانه‌های ماتریس در یال‌ها

  24. Parsing (1) 23 برنامه‌نویسی پویا • تجزیه‌ی زیررشته‌ی «with a telescope» با روش برنامه‌نویسی پویا و استفاده از گراف

  25. Parsing (1) 24 برنامه‌نویسی پویا • الگوریتم‌هایی برای تجزیه‌ی مبتنی بر چارت: • الگوریتم CKY:فقط ساختارها را ذخیره می‌کند. • الگوریتم Earley:هم ساختارها و هم پیش شرط‌ها را ذخیره می‌کند.

  26. Parsing (1) 25 الگوریتم CKY • برای تشخیص ساختارها و ذخیره‌ی آنها در چارت طراحی شد. • طراحی اولیه برای فرم نرمال چامسکی (ABC; Aa) • توسط گری و هریسون تعمیم داده شد. • ساختار A را در خانه‌ی i,j وارد می‌شود اگر یک قانون وجود داشته باشد که: • AB و B در خانه‌ی i,j وجود داشته باشد و یا • ABCو B در خانه‌ی i,k و C در خانه‌ی k,j وجود داشته باشد.

  27. Parsing (1) 26 الگوریتم CKY • الگوریتم CKY برای تجزیه‌ی مبتنی بر چارت • این الگوریتم کامل و از مرتبه‌ی O(n3) است.

  28. Parsing (1) 27 الگوریتم CKY - مثال • گرامر

  29. Parsing (1) 28 الگوریتم CKY - مثال • مراحل پر شدن جدول برای عبارت «the frogs ate fish»: Unary branching rules: detthe

  30. Parsing (1) 29 الگوریتم CKY - مثال • مراحل پر شدن جدول برای عبارت «the frogs ate fish»: Unary branching rules: Nfrogs, NomN, NPNom Unary branching rules: tvate

  31. Parsing (1) 30 الگوریتم CKY - مثال • مراحل پر شدن جدول برای عبارت «the frogs ate fish»: Unary branching rules: Nfrogs, NomN, NPNom, ivfish, vpiv Binary branching rules: NPDet Nom(0,1) & (1,2)  (0,2)

  32. Parsing (1) 31 الگوریتم CKY - مثال • مراحل پر شدن جدول برای عبارت «the frogs ate fish»: (1,2) & (2,3)  × Binary branching rule: VPTV NP(2,3) & (3,4)  (2,4)

  33. Parsing (1) 32 الگوریتم CKY - مثال • مراحل پر شدن جدول برای عبارت «the frogs ate fish»: Binary branching rule: S  NP VP(0,1) & (1,4)  ×(0,2) & (2,4)  (0,4)(0,3) & (3,4)  × Binary branching rule: S NP VP(1,2) & (2,4)  (1,4)(1,3) & (3,4)  ×

  34. Parsing (1) 33 الگوریتم CKY • محدودیت‌های CKY • علت ذخیره‌ی اطلاعات هر خانه از ماتریس یا گراف را نگه نمی‌دارد. • اگر دو قانون به صورت VP  V NPو VP  VP PPداشته باشیم و رشته‌ی ورودی «The boy opened the box on the floor» باشد، نمی‌دانیم یال VP چه چیزی را تولید می‌کند؛ VP  V NPو یا VP  VP PP؟

  35. Parsing (1) 34 الگوریتم CKY • با در نظر گرفتن قانون VP  V NP

  36. Parsing (1) 35 الگوریتم CKY • با در نظر گرفتن قانون VP  VP PP

  37. Parsing (1) 36 الگوریتم CKY • رفع این محدودیت • افزودن یک فیلد اضافه برای ذخیره‌ی نحوه‌ی تولید هر خانه از جدول

  38. Parsing (1) 37 الگوریتم CKY • محدودیت‌های CKY • استفاده از روش پایین به بالا • ختم نشدن بسیاری از زیردرخت‌های تولید شده، به ریشه • رفع مشکل: • استفاده از روش‌های فیلترینگ خاصی برای تشخیص این زیردرخت‌ها • استفاده از استراتژی بالا به پایین

  39. Parsing (1) 38 الگوریتم Earley • مجبور نیستم فقط قوانین کامل شده را ذخیره کنیم. • ذخیره‌ی قوانین کامل نشده • ساختارهای ناقص: پیش‌بینی‌هایی از آنچه که در ادامه ظاهر خواهد شد. • بیان ساختارهای ناقص با استفاده از قوانین نقطه‌دار • نقطه، مشخص می‌کند که چه مقدار از سمت راست یک قانون تاکنون پیدا شده است و مابقی آن، یک پیش‌بینی از چیزی است که در ادامه ظاهر خواهد شد.

  40. Parsing (1) 39 الگوریتم Earley - مثال • قانون VP  V NP می‌تواند قوانین نقطه‌دار زیر را تولید کند: VP  ● V NPیال ناقصVP  V ● NPیال ناقصVP  V NP ●یال کامل

  41. Parsing (1) 40 الگوریتم Earley • ذخیره‌ی قوانین تولید برای ساختارهای کامل • از ابتدا تا انتهایش ظاهر شده است • ذخیره‌ی قوانین نقطه‌دار برای ساختارهای ناقص • بخشی از قانون (سمت چپ نقطه) ظاهر شده است و بخش دیگر آن (سمت راست نقطه) انتظار می‌رود که ظاهر شود.

  42. Parsing (1) 41 الگوریتم Earley • مثال: برای زیررشته‌ی «…5 on 6 the 7 floor 8» عبارت NP Det ● N, [6,7]در چارت ذخیره می‌شود. • مشخص می‌کند کلمه‌ی بین 6 و 7 یک Det است و پیش‌بینی می‌شود یک N در ادامه ظاهر شود. • اگر ظاهر شود، یک رشته‌ی NPرا در موقعیت 6 خواهیم داشت.

  43. Parsing (1) 42 الگوریتم Earley • یک چارت با قوانین نقطه‌دار

  44. Parsing (1) 43 الگوریتم Earley • اگوریتم Earley چارت را با یک بار عبور از روی ورودی پر می‌کند. • اندازه‌ی چارت N+1 و N تعداد کلمات ورودی است. • چارت برای هر موقعیت کلمه در ورودی، لیستی از حالت‌ها را نگه می‌دارد. • درخت‌های تجزیه‌ی جزئی که تاکنون تولید شده‌اند.

  45. Parsing (1) 44 الگوریتم Earley • ورودی‌های چارت سه نوع مختلف دارند: • ساختارهای کامل شده • ساختارهای در حال پردازش • ساختارهای پیش‌بینی شده

  46. Parsing (1) 45 الگوریتم Earley • مثال • نمایش گرافی حالت‌ها

  47. Parsing (1) 46 الگوریتم Earley • روند تجزیه: • حرکت از حالت صفر تا N بر روی جدول • شروع از S و حرکت از بالا به پایین • تولید 3 نوع حالتی که در بالا بیان شد • تولید حالت‌های پیش‌بینی شده بر اساس ورودی‌های موجود در جدول • تولید حالت‌های در حال پردازش جدید با توسعه‌ی حالت‌های موجود • تولید حالت‌های کامل شده‌ی جدید زمانی که نقطه در یک حالت در حال پردازش به انتهای قانون می‌رسد.

  48. Parsing (1) 47 الگوریتم Earley • بازگشت به عقبی وجود ندارد. • هیچ حالتی حذف نمی‌شود. • تجزیه‌ی موفقیت‌آمیز • حالت S  α ● [0,N]در آخرین ورودی چارت

  49. Parsing (1) 48 الگوریتم Earley – شبه کد

  50. Parsing (1) 49 الگوریتم Earley • الگوریتم Earley سه تابع اصلی دارد: • Predictor: پیش‌بینی‌ها را به چارت اضافه می‌کند. • Completer: زمانی که ساختارهای جدید پیدا می‌شوند، نقطه را به سمت راست حرکت می‌دهد. • Scanner: کلمات ورودی را خوانده و حالت‌هایی که بیان‌کننده‌ی آن کلمات هستند را وارد چارت می‌کند.

More Related