A Bottom-Up Chart Parser

Download Report

Transcript A Bottom-Up Chart Parser

In The Name Of God
Natural language Understanding
James Allen
Chapter 3 : Grammers and Parsing
3-4 : A Bottom - Up Chart Parser
1
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
‫برای تجزیه و تحلیل و محاسباتی نمودن ساختار جمله به دو مورد زیر باید‬
‫توجه کرد‪:‬‬
‫ گرامر‬‫‪ -‬پارس‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪2‬‬
‫گرامر‪:‬یک تعریف قاعده مند برای یک ساختار مجاز در زبان‪.‬‬
‫پارس‪:‬روش تحلیل یک جمله نمونه برای تعیین ساختار آن براساس گرامر‪.‬‬
‫‪ -‬پارس فرآیندی برای کنترل صحت ساختار جمله بر اساس گرامر آن است‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪3‬‬
‫الگوریتم پارس‪:‬‬
‫الگوریتم پارس روالی را برای تولید درخت از جمله ورودی براساس گرامر آن‬
‫مشخص میکند‪.‬‬
‫الگوریتم پارس موجب تایید یا عدم تایید صحت جمله ورودی در رابطه با‬
‫گرامر آن میشود‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪4‬‬
:‫روش های پارس‬
)Top Down(‫ باال به پایین‬
)Buttom Up(‫ پایین به باال‬
5
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
‫باال به پایین ‪)Top-Down( :‬‬
‫در این روش از نشانه ‪ S‬عملیات پارس را شروع میکنیم تا به ترمینال هایی‬
‫برسیم که جمله ورودی را تشکیل داده اند ‪.‬‬
‫از ‪ S‬شروع می کنیم تا به ترمینال (‪)symbol‬برسیم‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪6‬‬
‫پایین به باال‪)Buttom-Up( :‬‬
‫در این روش از ترمینالهایی که در جمله ورودی هستند عملیات پارس را شروع می کنیم‬
‫و این ترمینالها را با طرف چپ قوانین گرامری (غیر ترمینال) جایگزین می کنیم تا به‬
‫نشانه ‪ s‬برسیم‪.‬‬
‫‪S‬‬
‫از ترمینال شروع می کنیم تا به نشانه ‪ s‬برسیم‪.‬‬
‫‪VP‬‬
‫‪NP‬‬
‫‪NP‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪N‬‬
‫‪ART‬‬
‫‪V‬‬
‫‪N‬‬
‫‪apple‬‬
‫‪an‬‬
‫‪eats‬‬
‫‪ali‬‬
‫‪7‬‬
‫تعریف‪:‬‬
‫‪:Symbol List ‬‬
‫در هر مرحله از الگوریتم پارسر ‪ ،‬حالت فعلی با لیستی از سمبل ها نشان داده میشود‪.‬‬
‫‪S→NP VP‬‬
‫با استفاده از قانون باال حالت پارسر‪ NPVP‬است‪.‬‬
‫‪: Lexicon ‬‬
‫شامل اطالعاتی در مورد کلمات (ترمینال ها) می باشد‪.‬‬
‫‪Can:N,V,AUX‬‬
‫‪The:ART‬‬
‫‪: State Of Parser ‬‬
‫موقعیت پارسر با یک عدد نمایش داده میشود‪.‬‬
‫‪8‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪1 The 2 Large 3 can 4can 5 hold 6the 7water‬‬
‫‪8‬‬
‫استراتژی پارس‪:‬‬
‫‪ ‬استراتژی اول – عمق(‪)depth-first strategy‬‬
‫در این استراتژی حاالت ممکنه (‪ )possibilities list‬در داخل پشته (‪)Stack‬‬
‫قرار میگیرد و به صورت ‪ )Last In First Out( LIFO‬عمل خواهد کرد‪.‬‬
‫‪ ‬استراتژی اول ‪ -‬سطح (‪)breath first strategy‬‬
‫در این استراتژی حاالت ممکنه (‪ )possibilities list‬در داخل صف (‪)queue‬‬
‫قرار میگیرد و به صورت ‪ )First In First Out( FIFO‬عمل خواهد کرد‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪9‬‬
‫اختالف استراتژی پارس‪:‬‬
‫در استراتژی اول عمق (‪ : )depth-first‬یک مسیر ممکن برای جستجو تا زمانی که به بن بست یا‬
‫موفقیت برسد ادامه مییابد‪ .‬در صورت بن بست‪ ،‬مسیر دیگر انتخاب میشود‪.‬‬
‫این استراتژی اغلب سریع به جواب میرسد اما در بعضی مواقع با جستجوی مسیرهای بیهوده‪ ،‬زمان زیادی‬
‫طول میکشد تا به جواب برسد‪.‬‬
‫در استراتژی اول – سطح (‪ : )breath-first‬تمام مسیرهای ممکن در هر مرحله بسط داده میشود‪.‬‬
‫در این استراتژی تمام حاالت ممکنه قبل از اینکه وارد عمق پایینتر شود‪ ،‬بررسی میگردد‪.‬‬
‫‪‬‬
‫در هر دو استراتژی به جواب میرسید اما ترتیب جستجوی آنها با هم متفاوت است‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪10‬‬
‫مشکالت روش باال به پایین‪:‬‬
‫ممکن است به حالت پایان نرسند‪.‬‬
‫ممکن است پس از طی مراحل زیادی (نمایی) به جواب برسد و متوقف شود‪.‬‬
‫محاسبات تکراری زیاد داریم‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪11‬‬
‫مشکالت روش پایین به باال‪:‬‬
‫تمام حاالت ممکنه برای زیر رشته (‪ )substring‬تولید شده و ممکن است‬
‫یک سری از این حاالت اصال به ‪ S‬ختم نشود و یا اینکه با طرف راست‬
‫خود نتواند تطبیق پیدا کند‪.‬‬
‫محاسبات تکراری داریم‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪12‬‬
‫‪A Buttom Up Chart Parser:‬‬
‫اختالف اصلی در روش پارس باال به پایین و پایین به باال در نحوه استفاده از قوانین گرامر است‪.‬‬
‫در روش پایین به باال ‪ ،‬از طرف راست قوانین گرامری به سمت چپ حرکت می کنیم تا به ‪ S‬برسیم‬
‫در روش پایین به باال با توجه به عبارت ورودی ‪ ،‬ترتیبی از نشانه ها را در کنار هم قرار می دهیم تا با‬
‫طرف راست قانون گرامر مطابقت داشته باشد و سپس آن را با طرف چپ قانون جایگزین می کنیم ‪.‬‬
‫‪NP → ART ADJ N‬‬
‫در این مثال ‪ ،‬نشانه ها (‪ )symbol‬را در کنار هم قرار می دهیم تا به ترتیب ‪ ART ADJ N‬برسیم و‬
‫سپس آن را با ‪ NP‬جایگزین می کنیم‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪13‬‬
‫‪NP → ART ADJ‬‬
‫‪N‬‬
‫پارسر پایین به باال‬
‫دنباله ‪ ART ADJ N‬را در جمله پیدا می کند‬
‫‪Created by S.Ghouth‬‬
‫پارسر باال به پایین‬
‫‪ NP‬را در جمله پیدا می کند‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪14‬‬
‫ پارسر پایین به باال را می توان با فرموله کردن فرایند مطابقت بعنوان یک‬‫فرایند جستجو در نظر گرفت‪.‬‬
‫ حالت(‪ )state‬شامل لیستی از نشانه ها (‪ )symbol list‬است‪.‬‬‫‪ -‬حاالت پایانی یا موفقیت ( ‪ ) successor state‬با تشریح همه حاالت ممکن‬
‫تولید می شوند‪.‬‬
‫‪ ‬در این روش ابتدا کلمات (‪ )word‬را با توجه به طبقه (‪)category‬آنها در‬
‫فرهنگ لغات (‪ )Lexicon‬بازنویسی میکنیم‬
‫‪ ‬جایگزین کردن یک رشته از نشانه هایی که طرف راست قوانین گرامری را‬
‫با طرف چپ مطابقت می دهند‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪15‬‬
‫‪Chart:‬‬
‫‪ Chart‬یک ساختمان داده است که این امکان را به ما می دهد تا نتایج‬
‫جزئی مطابقت هایی که تاکنون صورت گرفته را ذخیره کنیم‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪16‬‬
Key:
.‫ جز اصلی در یک گرامر است‬: ‫کلید‬
The: ART
17
NP → ART N
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
‫برای پیدا کردن قوانینی که با رشته ای که شامل کلید است مطابقت داشته‬
‫باشد ‪ ،‬باید به دنبال قوانینی باشیم که یا با کلید شروع می شوند یا کلمه‬
‫کلیدی نزدیک به ابتدای جمله باشد‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪18‬‬
A Simple Grammar
1. S → NP VP
2. NP → ART ADJ N
3. NP → ART N
4. NP → ADJ N
5. VP → AUX VP
6. VP → V NP
19
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
G:
1. S → NP VP
2. NP → ART ADJ N
3. NP → ART N
4. NP → ADJ N
5. VP → AUX VP
6. VP → V NP
.‫ شروع میشود‬ART ‫فرض کنید جمله ای با‬
The large can can hold the water
2. NP → ART ADJ N
2'. NP → ART ◦ ADJ N
3. NP → ART N
3'. NP → ART ◦ N
4. NP → ADJ N
20
4'. NP → ADJ ◦ N
2''. NP → ART ADJ ◦ N
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
‫‪Active Arcs:‬‬
‫‪ Active Arcs‬سابقه ی قوانینی را که به صورت جزئی مطابقت داده شده اند‬
‫ولی کامل نیستند نگهداری می کند‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪21‬‬
1
G:
1. S → NP VP
2. NP → ART ADJ N
3. NP → ART N
4. NP → ADJ N
5. VP → AUX VP
6. VP → V NP
The 2 large 3
ART1
1
ADJ1
NP → ART ◦ ADJ N
2
3
NP → ART ◦ N
NP → ADJ ◦ N
NP → ART ADJ ◦ N
22
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
‫‪Agenda:‬‬
‫عمل اصلی یک پارسر ‪ chart-based‬شامل ترکیب یک ‪ active arc‬با‬
‫یک عضو کامل می باشد و نتیجه آن ایجاد یک عضو کامل جدید یا یک‬
‫‪ active arc‬جدید است‪.‬‬
‫اعضای کامل جدید در یک لیست بنام ‪ agenda‬نگهداری میشوند تا‬
‫زمانی که خودشان به ‪ chart‬اضافه شوند‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪23‬‬
The Arc Extension Algorithm:
24
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
A Bottom-up chart parsing algoritm:
Do until there is no input left:
1.If the agenda is empty, look up the interpretations for the next word in the
input and add them to the agenda.
2.Select a constituent from the agenda(lets call it constituent C from position P1 to P2).
3.For each rule in the grammar of form X → C X1 … Xn, add an active arc of
from X → C ◦ C ◦ X1 … Xn from position p1 to p2.
4.Add C to the chart using the arc extention algorim above.
25
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
‫همانطور که در پارسرهای باال به پایین ممکن است از استراتژی جستجوی‬
‫سطحی یا عمقی استفاده کنید‪ agenda ،‬هم در یک پشته یا صف اجرا‬
‫می شود‪.‬‬
‫در اینجا یک مثال با استراتژی اول عمق دنبال می کنیم‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪26‬‬
A sample:
Input: The large can can hold the water.
Lexicon:
the: ART
large: ADJ
can: N, AUX, V
hold: N, V
water: N, V
27
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
G:
1. S → NP VP
2. NP → ART ADJ N
3. NP → ART N
4. NP → ADJ N
5. VP → AUX VP
6. VP → V NP
Input: The large can can hold the water.
NP (rule4)
ART1
1 The
NP1(rule2)
ADJ1
N1
AUX1
V1
3 can
2 large
4
NP → ART ◦ ADJ N
NP → ART ◦ N
NP → ADJ ◦ N
NP → ART ADJ ◦ N
S → NP ◦ VP
S → NP ◦ VP
VP → AUX ◦ VP
VP → V ◦ NP
28
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
The chart after all the NPs are found
NP2(rule 4)
NP1(rule 2)
ART1
1 The
N1
V1
AUX1
ADJ1
2 large
3 can
N2
V2
AUX2
4 can
NP3(rule 3)
V3
N3
5 hold
V4
N4
ART2
6 The
7 water
8
S → NP ◦ VP
S → NP ◦ VP
VP → AUX ◦ VP
VP → V ◦ NP
VP →V◦ NP
G:
1. S → NP VP
2. NP → ART ADJ N
3. NP → ART N
4. NP → ADJ N
5. VP → AUX VP
6. VP → V NP
VP → AUX◦ VP
VP →V◦ NP
NP → ART ◦ ADJ N
NP → ART ◦ N
S → NP ◦ VP
Input: The large can can hold the water.
29
NLP -A Bottom-Up Chart Parser
VP →V◦ NP
Created by S.Ghouth
G:
1. S → NP VP
2. NP → ART ADJ N
3. NP → ART N
4. NP → ADJ N
5. VP → AUX VP
6. VP → V NP
ART1
1 The
S1(rule 1 with NP1 and VP2)
S2(rule 1 with NP2 and VP2)
VP3(rule 5 with AUX1 and VP2)
NP2(rule 4)
VP2(rule 5)
NP1(rule 2)
VP1(rule 6)
N1
N2
NP3(rule 3)
V1
V2
V3
V4
ADJ1
AUX1
AUX2
N3
ART2
N4
2 large
3 can
4 can
5 hold
6 The
7 water
8
The final chart
30
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth
‫‪ ‬پارسرهایی که براساس چارت کار می کنند بطور قابل مالحظه ای کارآمدتر از پارسرهایی هستند که‬
‫فقط بر پایه جستجو عمل می کنند زیرا در پارسرهای ‪ Chart-based‬اعضا بیشتر از یکبار ساخته‬
‫نمی شوند‪.‬‬
‫‪ ‬یک استراتژی جستجوی باال به پایین یا پایین به باال به زمانی معادل ‪ ، Cn‬برای پارس جمله ای به‬
‫طول ‪ n‬نیاز دارند‪ : C(.‬ثابتی است که بستگی به الگوریتم مورد استفاده دارد‪).‬‬
‫اما در پارسرهای ‪ Chart-based‬در بدترین حالت به ‪ K*n3‬زمان نیاز داریم‪ : K(.‬ثابتی است که‬
‫بستگی به الگوریتم مورد استفاده دارد‪).‬‬
‫‪ -‬برای مقایسه فرض کنید ‪ K=1000‬و ‪ C=10‬باشد و طول جمله ‪12‬کلمه باشد پس داریم ‪ 1012‬برای‬
‫الگوریتم های جستجویی و‪ 1000×123‬برای پارسرهای ‪.Chart-base‬‬
‫بااین فرضیات پارسر‪ 500000 Chart-base‬بار سریعتراز الگوریتم های جستجوی می باشد‪.‬‬
‫‪Created by S.Ghouth‬‬
‫‪NLP -A Bottom-Up Chart Parser‬‬
‫‪31‬‬
‫پایان‬
32
NLP -A Bottom-Up Chart Parser
Created by S.Ghouth