Presentation is loading. Please wait.

Presentation is loading. Please wait.

سیستم‌های مبتنی بر دانش

Similar presentations


Presentation on theme: "سیستم‌های مبتنی بر دانش"— Presentation transcript:

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

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

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

4 مقدمه Parsing (1) Parsing یا تجزیه‌ی یک جمله
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 الگوریتم CKY برای تشخیص ساختارها و ذخیره‌ی آنها در چارت طراحی شد.
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 الگوریتم CKY Parsing (1) الگوریتم CKY برای تجزیه‌ی مبتنی بر چارت
26 الگوریتم CKY الگوریتم CKY برای تجزیه‌ی مبتنی بر چارت این الگوریتم کامل و از مرتبه‌ی O(n3) است.

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

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

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

31 الگوریتم CKY - مثال 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 Binary branching rule: VPTV NP (2,3) & (3,4)  (2,4)
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 الگوریتم CKY - مثال 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 الگوریتم CKY محدودیت‌های CKY 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 الگوریتم CKY رفع این محدودیت
Parsing (1) 36 الگوریتم CKY رفع این محدودیت افزودن یک فیلد اضافه برای ذخیره‌ی نحوه‌ی تولید هر خانه از جدول

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

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

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

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

42 الگوریتم Earley 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 الگوریتم Earley Parsing (1)
43 الگوریتم Earley اگوریتم Earley چارت را با یک بار عبور از روی ورودی پر می‌کند. اندازه‌ی چارت N+1 و N تعداد کلمات ورودی است. چارت برای هر موقعیت کلمه در ورودی، لیستی از حالت‌ها را نگه می‌دارد. درخت‌های تجزیه‌ی جزئی که تاکنون تولید شده‌اند.

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

46 الگوریتم Earley مثال Parsing (1) نمایش گرافی حالت‌ها 45
در ابتدای جمله، VP پیش‌بینی شده است. S  ● VP [0,0] یک NP در حال پردازش است. Det از 1 تا 2 پیدا شده است و پیش‌بینی می‌شود در ادامهNominal ظاهر شود. NP  Det ● Nominal [1,2] VP ظاهر شده است با شروع از صفر و پایان در 3 VP  V NP ● [0,3]

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

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

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

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

51 الگوریتم Earley مشکلات این روش Parsing (1)
50 الگوریتم Earley مشکلات این روش نسخه‌ی بالا به پایین الگوریتم Earley چیزهایی را در چارت ذخیره می‌کند که بلااستفاده هستند. مسئله‌ی ابهام را حل نمی‌کند. هر دو روش CKY و Earley ممکن است برای ورودی [0,N] جدول، به چندین ساختار S ختم شوند.

52 الگوریتم Earley استراتژی‌های دیگری برای بهبود عملکرد این الگوریتم:
Parsing (1) 51 الگوریتم Earley استراتژی‌های دیگری برای بهبود عملکرد این الگوریتم: استراتژی پایین به بالا استراتژی ابتدا بهترین (A*) گسترش حالت‌ها بر اساس احتمال هر کدام از ساختارها احتمال هر کدام از ساختارها در زمان تجزیه محاسبه و ذخیره می‌شود.

53 نرم افزارهای موجود Stanford Parser Berkeley Parser Parsing (1)
52 نرم افزارهای موجود Stanford Parser پارسر آماری و به زبان جاوا پشتیبانی زبان‌های انگلیسی، چینی، آلمانی، عربی، ایتالیایی، فرانسوی و...  Berkeley Parser مبتنی بر یادگیری گرامرهای مستقل از متن احتمالاتی پشتیبانی از چندین زبان

54 Parsing (1) 53 منابع Philipp Koehn, "Advanced Natural Language Processing", school of informatics, september 2012. Hesham Faili, "Introduction to NLP", chapter 13: Parsing with contex-free grammars, University of Tehran. Zubair Buitms, "Natural Language Processing", available at: Laura Kassner, "Left-corner parsing", Lecture for course Computational Linguistics II: Parsing, 2007.

55 ؟ با تشکر ارائه‌ی بعد تجزیه‌ی آماری تجزیه‌ی وابستگی
تجزیه در زبان فارسی


Download ppt "سیستم‌های مبتنی بر دانش"

Similar presentations


Ads by Google