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