پایان نامه پروژه درس پردازش زبان طبيعي (NLP)
1: فهرست مطالب
2:
1: گرامرمستقل از متن مورد نظر 4
3-4: پياده سازي گرامر با استفاده از تجزيه گر PC-PATR.. 10
4-2: پياده سازي گرامر به وسيله لينک گرامر. 19
5-1: پياده سازي گرامر HDPSG به وسيله ابزار LKB.. 30
3:
4: فهرست اشکال
5:
شکل 1: نمونه اي از دو ساختار در گرامر يکسان ساز 6
شکل 2: مثالي از کلي ترين يکسان ساز براي مثال بالا. 7
شکل 3: مثالي از لغتنامه گرامر زنجيري.. 17
شکل 4: مثالي از جمله صحيح بدست آمده به وسيله گرامر زنجيري.. 18
شکل 5: مثالي از جمله غلط بدست آمده به وسيله گرامر زنجيري.. 18
شکل 6 : نمونه اي از ويژگيهاي گرامر HPSG.. 23
شکل7: مثالي از گرامر HPSG.. 24
شکل 8: نمونه اي از ويژگيها که نمايشدهنده اطلاعات لغوي مي باشند. 25
شکل 9: ويژگيهاي لغوي و الحاقات هر کلمه. 26
شکل 10: نمونهايي از ويژگي CONTENT. 27
شکل 11: نمونه اي از ويژگيهاي معنايي بکار رفته در CONTENT. 28
شکل12: ساير ويژگيهاي مورد نياز در نمايش گرامر HPSG.. 28
شکل 13: نمونه اي از ساختار کلمات موجود در لغت نامه. 29
شکل 14: نمونه اي از ساختار عبارات در گرامر HPSG.. 30
شکل 15: نمونه اي از نمايش جمله با استفاده از گرامر HPSG.. 31
شکل 16ساختار ويژگي ايجاد شده 32
شکل 17 درخت پارس جمله چند جمله نمونه که تطابق در آنها رعايت شده است با استفاده از گرامر HPSG.. 34
شکل 18 درخت پارس جمله ” اين سگ زشت به علي حمله کرد” با استفاده از گرامر HPSG.. 34
شکل19: درخت پارس جمله ” حسن علي را زد” با استفاده از گرامر HPSG.. 35
در اين قسمت سعي بر پياده سازي يک گرامر ساده براي زبان فارسي مي باشد که بتوان با کمترين ابهام جمله “با ادامه حضور نظاميان آمريکايي در عراق و اسرار در دامن زدن به نا امني ها در اين کشور آمار کشته شدگان روز به روز افزايش مي يابد” را به شکل صحيح پارس کند. همچنين سعي شده است تا علاوه بر جمله بالا جملات جدول زير را نيز که نشاندهنده موارد مختلف تطابق بين فعل و فاعل هستند را نيز پارس شود.
جملات مورد نظر براي تست | موارد مورد نظر |
علي رفت | تطابق فعل و فاعل |
من رفتم | تطابق فعل و فاعل |
تو و من رفتيم | تطابق فعل و فاعل |
تو و علي رفتيد | تطابق فعل و فاعل |
تو با من رفتي | تطابق فعل و فاعل- با من مسند اليه نيست |
من تو را زدم | فعل لازم = فاعل / مفعول / فعل |
من علي مرادي را به وسيله ماشين شخصي زيبايم زير کردم | پارس جمله |
با ادامه حضور نظاميان آمريکايي در عراق و اسرار در دامن زدن به نا امني ها در اين کشور آمار کشته شدگان روز به روز افزايش مي يابد | پارس جمله |
براي پياده سازي گرامرههاي مورد نظر از سه ابزار اسفاده شده است ابتدا از ابزار PC-PATR براي پياده سازي گرامر Unification Base بر پايه فرماليزم PATRII استفاده شده است. همچنين با استفاده از پارس ويژه لينک گرامر نيز اين گرامر پياده سازي شده است. در انتها نيز سعي شده است تا نمونه ساده از گرامر HPSG، با استفاده از ابزار LKB پياده سازي شود.
يک گرامر مستقل از متن ساده به تنهايي قادر نيست زبان طبيعي را توصيف کند. به همين دليل، سعي بر آن است که از تعميمي از آن استفاده کنند. يک صورت تعميم يافته، استفاده از گرامر مستقل از متن به همراه مجموعه ويژگي هاست. چنين گرامري، گرامر مستقل از متن افزوده ناميده مي شود.
اما ممکن است ساختار ويژگي را آنقدر گسترش دهيم که ديگر به گرامر مستقل از متن نياز چنداني نداشته باشيم. در اين صورت، گرامر به صورت مجموعه اي از قيود بين ساختارهاي ويژگي ارائه مي شود. چنين سيستم هايي را گرامرهاي يکسان سازي مي گويند.
مفهوم کليدي در يک گرامر يکسان ساز، شموليت با خاص/کلي بودن است. گوييم ساختار ويژگي F1، خاص تر از F2، است يا F1، F2 را شامل مي شود، اگر که هر ويژگي- مقدار موجود در F1، در F2 هم آمده باشد. براي مثال، ساختارهاي زير را در نظر بگيريد. ساختارهاي (ب) و (ج) هر دو از ساختارِ (الف) خاص ترند يا آنها را در بر مي گيرند، چرا که هر دو شامل ساختاري [CAT verb] مي باشند. اما ساختارهاي (ب) و (ج) هيچکدام همديگر را شامل نمي شوند. چرا که (ب)، فاقد ساختار [VFORM present] و (ج)، فاقد ساختار [ROOT cry] است.
الف. ب.
ج.
شکل 1: نمونه اي از دو ساختار در گرامر يکسان ساز
دو ساختار ويژگي يکسان مي شود اگر ساختاري وجود داشته باشد که خاص تر از هر دو باشد. کلي ترين يکسان ساز، ساختار ويژگيِ کمينه اي است که از هر دو خاص تر باشد. براي مثال، ساختار ويژگيِ زير، کلي ترين يکسان سازِ ساختارهاي مثال ب و ج مي باشد.
شکل 2: مثالي از کلي ترين يکسان ساز براي مثال بالا
با اين فرضيات، اکنون ببينيم که قانوني مثل S ® NP VP را چگونه مي توان در قالب يک گرامر يکسان ساز بيان کرد:
X0 ® X1 X2 CAT0 = S
CAT1 = NP
CAT2 = VP
AGR0 = AGR1 = AGR2
VFORM0 = VFORM2
عبارات فوق بيانگر آنند که سازۀ X0، ممکن است از قرار گرفتن کنار هم سازه ها X1، X2 به وجود آيد، اگر که ويژگي CAT يا مقوله X0، X1 و X2 به ترتيب S، NP و VP باشد و مقدار ويژگي AGR يا تطابق همه سازه ها با هم يکسان باشد و همچنين مقدار ويژگي VFORM، در سازهاي X0 و X2 همانند باشد.
از نقاط قوت فرماليزم هاي يکسان سازي يکي آن است که در اين فرماليزم ها مي توان بيشتر اطلاعات گرامري را در واژگان ذخيره کرد و تعداد کمي قاعده گرامري داشت. در ادامه با توجه به توضيحات داده شده به چند نمونه از ابزارهاي مورد استفاده و پياده سازي انجام شده پرداخته مي شود.
7-1: گرامرمستقل از متن پياده سازي شده
گرامري مستقل از متني که سعي در پياده سازي آن با استفاده از ابزار PC-PATR شده است به شکل زير مي باشد:
S = (ADVP) NP {TVP/IVP}
IVP = VP (AdvP)
TVP = NP (RA-OBJ) VP (AdvP)
VP = (SPEC-V) V”
V” = (COMP-V) V’
V’ = V
SPEC-V = ADVP
COMP-V = PrepP
NP = (SPEC-N) N”
N” = N’ ( COMP-N )
N’ = N (AD-MOD-N)
SPEC-N = { PRE_N4 (PRE_N3) (PRE_N2) (PRE_N1)} / {PRE_N3 (PRE_N2) (PRE_N1)} / {PRE_N2 (PRE_N1)} / PRE_N1
AD-MOD-N = ADJP
COMP-N = NP / preP
NP = PR
NP = NP CJ NP
ADVP = AV (SubCl)
ADVP = CONNECT PP NP
ADVP = PP CONNECT NP
PrepP = PP NP
SubCl = CJ S
ADJP = AJ (ADJP_1)
در ادامه ابتدا به توضيح مختصري پيرامون گرامر هاي يکسان ساز که ترکيبي از گرامر مستقل از متن به همراه مجموعه اي از ويژگيها مي باشد مي پردازيم و سپس نتايج پياده سازي آورده شده است.
با استفاده از اين تجزيه گر مي توان گرامر را با استفاده از فرماليزم PATR-II پياده سازي کرد. در اين تجزيه گر از يک چارت پارسر پايين به بالا و چپ به راست استفاده مي کند براي تجزيه جمله استفاده مي شود. همچنين در اين تجزيه گر امکان اضافه کردن ويژگي به قوانين گرامر نيز وجود دارد.
تجزيه گر PC-PATR با استفاده از سه فايل عمل تجزيه جمله را انجام مي دهد. فايل اول فايل گرامر است که شامل مجموعه قواعد زبان مورد نظر است. فايل ديگر فايل واژگان مي باشد که با استفاده از آن مي توان کلمات مورد نظر همرا با مقولات نحوي و ويژگي هاي مورد نياز آنها را وارد کرد. آخرين فايل شامل جملات ورودي براي عمل پارس مي باشد که مي توان به عنوان ورودي به برنامه وارد کرد. وجود اين فايل اختياري مي باشد به اين معني که از اين فايل مي توان صرف نظر کرد.
در فرماليزم PATR-II هر قاعده به شکل يک قاعده مستقل از متن به همراه مجموعه اي از محدوديتها مي باشد که يکسان سازي بر روي ساختارهاي ويژگي مرتبط با سازه هاي قواعد ساختار عبارت انجام مي گيرد. در ادامه به توضيح در مورد نحوه پياده سازي گرامر مورد نظر مي پردازيم.
نحو فايل گرامر
براي جدا کردن عناصر در فايل گرامر از کاراکترهاي Space يا Tab استفاده مي شود. همچنين براي اضافه کردن توضيح از كاراكتر(;) semicolon استفاده مي شود. توضيحات ممكن است در هرجايي از فايل گرامر قرار بگيرند و از هرچيزي كه در ادامه كاراكتر كامنت تا انتهاي خط بيايد صرف نظر مي شود.
فايل گرامر به فيلدهايي تقسيم مي شود كه به كمك يك مجموعه كوچك از كلمات كليدي تعريف مي شوند.
- با كلمه كليدي “Rule” يك قاعده ساختار مستقل از متن، به همراه مجموعه اي از محدوديت ها تعريف مي شود. براي مثال در زير نمونه اي از قاعده تعريف جمله كه شامل گروه اسمي و گروه فعل مي باشد آورده شده است:
RULE
S = (ADVP) NP {TVP/IVP}
<NP head agr> = <IVP head agr>
<NP head agr> = <TVP head agr>
<S head> = <TVP head>
<S head> = <IVP head>
<S subj> = <NP>
<S obj> = <TVP obj>
- “END” براي مشخص کردن انتهاي فايل استفاده شده و از هرچيزي كه بعد از آن آورده شود صرف نظر مي شود.
هريك از فيلدهاي فايل گرامر مي تواند با يك نقطه (اختيار) به پايان برده شود و چنانچه نقطه اي وجود نداشته باشد كلمه كليدي بعدي پايان فيلد قبلي و شروع فيلد جديد را اعلام مي كند.
همانگونه که در مثال بالا نيز مشاهده مي شود، قواعد گرامري در PC-PATR به ترتيب شامل بخش هاي زير مي باشد:
- كلمه كليدي .”Rule”
- نماد ( ) که براي مشخص کردن اختياري بودن، مورد استفاده قرار مي گيرد.
- از نماد { } براي جدا کردن دسته اي از قواعد بکار ميرود.
- نماد / به معني or ( يا ) مي باشد.
- نماد ناپايانه اي كه بايد بسط داده شود.
- يك علامت فلش (®) ويا علامت تساوي (=)
- صفر يا تعدادي از نمادهاي پايانه و ناپايانه که ممكن است نشانه اي مبني برجايگزيني يا اختياري بودن داشته باشد.
- يك علامت دو نقطه (:) كه اختياري است.
- صفر يا تعدادي محدوديت هاي ويژگي.
- يك نقطه (.) اختياري درپايان قاعده.
در تعريف شناسه قواعد از کليه حروف و اعداد به غير از كاراكتر مربوط به كامنت مي توان استفاده کرد. پايانه ها و ناپايانه هايي كه در قواعد مي آيند خصوصيات زير را دارا مي باشند:
- حروف بزرگ وكوچكي كه در اين نمادها استفاده مي شود متفاوت ديده مي شوند. براي مثال “NOUN” و “noun” متفاوت هستند.
- نماد X براي دلالت بر هر پايانه ويا ناپايانه اي به كار مي رود. براي مثال قاعده زير بيان مي كند كه هر گروهي در قواعد گرامري مي تواند با دوكپي از همان نوع گروه كه با يك “CJ” به هم مرتبط شده اند جايگزين شود.
RULE
X = X_1 CJ X_2
<X cat> = <X_1 cat>
<X cat> = <X_2 cat>
<X arg1> = <X_1 arg1>
<X arg1> = <X_2 arg1>
به جاي قواعد ديگر براي مثال قاعده هاي زير مي توان از همان قاده بالا استفاده کرد.
RULE
NP = NP_1 CJ NP_2 يا S = S_1 CJ S_2
اعداد انديس براي تمايز قايل شدن بين نمادهايي كه بيش از يكبار در يك قاعده استفاده مي شوند به كار مي رود. اين انديس ها پس از افزودن كاراكتر (_) در انتهاي نماد مورد نظر مي آيند كه نمونه اي از آن را مي توانيد در مثال بالا مشاهده کنيد. كاراكتر” _” تنها براي انديس دادن به نمادها مي تواند به كار رود. به طور پيش فرض نماد سمت چپ اولين قاعده گرامري در فايل گرامر به عنوان عنصر شروع در نظر گرفته مي شود.
يك قالب براي ويژگي در PC-PATR شامل اجزاي زير است:
- كلمه كليدي LET
- نام الگو
- كلمه كليدي be
- يك تعريف ويژگي
- علامت نقطه که اختياري مي باشد.
براي مثال به ساختار زير که براي تعريف نماد پاياني اسم (N) استفاده مي شود توجه کنيد:
;Noun
LET N be <cat> = N
<head pos> = N
<head agr person> = !3
<head agr number> = !sg
<head number> = !SG
<head proper> = !-
<head verbal> = !-
<root_pos> = !N
همانگونه که در مثال بالا ديده مي شود در تعريف اين ساختار خود از ساختارهاي ديگر مانند person يا number استفاده شده است که بايد تعريف شده باشند مانند مثال زير که مفرد يا جمع بودن ويژگي عدد يك لغت را تعريف مي کند:
LET sg be <head number> = SG
<head agr number> = sg
LET pl be <head number> = PL
<head agr number> = pl
LET sg-pl be {[sg] [pl]}
فايل واژگان يك فايل پايگاه داده ها شامل تعدادي ركورد است كه هر يک از آنها بازنمايي يكي از لغات مي باشد. اين ركورد ها به تعدادي فيلد تقسيم مي شوند كه هر يك از اين فيلدها با يك نشانه فرمت استاندارد در ابتداي يك خط شروع مي شوند. اين نشانه ها با كاراكتر “/” آغاز وبدنبال آن يك يا چند كاراكتر حرف يا عدد مي آيد. هر ركورد با يك فيلد مشخص آغاز مي شود. PC-PATR چهار فيلد مختلف را با نشانه هاي پيش فرض براي تعريف فايل واژگاني داراست:
- “\w” فرم واژگاني يک لغت را بيان مي کند.
- “\c” که براي مشخص کردن مقوله نحوي لغت مورد استفاده قرار مي گيرد
- “\g” که براي مشخص کردن فهرست معاني لغت مورد استفاده مي شود
- “\f” ويژگيهاي اين لغت را بيان مي كند.
توجه كنيد كه فليدهاي شامل فرم واژگاني كلمه (“\w”) و (“\c”) مقوله نحوي آن براي هر كلمه بايد حتماً در واژگان حضور داشته باشند و دوفيلد ديگر اختياري مي باشند. در زير چند نمونه از کلمات مختلف آورده شده است:
ضمير | اسم | فعل | صفت | حرف ربط |
\w man
\c PR \g \f 1 sg
|
\w ali
\c N \g `ali \f 3 sg proper |
\w raft
\c V \g `raft \f 3 sg |
\w ziba
\c AJ |
\w va
\c CJ \g be`cause |
8-4: پياده سازي گرامر با استفاده از تجزيه گر PC-PATR
در اين بخش به نتايج بدست آمده از پياده سازي گرامر با استفاده از اين روش مي پردازيم. لازم به ذکر است که گرامر پياده سازي شده بر پايه نظريه X-bar مي باشد. براي اين کار از ساختاري مشابه زير براي گروه ها استفاده مي شود:
XP → (YP) X’ Specifier rule
X’ →YP X’ Adjunct rule
X’ YP
X’ →X (YP) Complement rule
XP را معمولا به شکل X” نيز نشان مي دهند و به آن گره فرافکن بيشينه گفته مي شود. همانگونه که در قاعده اول ديده مي شود، گره فرافکن بيشينه به مشخص گر(Specifier) و گره تيره بازنويسي شده است. قاعده دوم گره يک تيره را به گره YP و يک تيره بازنويسي کرده است. و قاعده سوم نيز گره يک تيره را به گره صفر تيره (X0) يا بدون تيره و گره YP بازنويسي مي کند. گره بدون تيره همان هسته گروه مي باشد و گره YP خواهر هسته است و گره مادر مشترک آنها نيز X’ مي باشد. در زير نمونه اي از قوانين گرامر را براي تعريف گروه اسمي که به اين روش پياده سازي شده است مشاهده مي شود:
RULE
NP = (SPEC-N) N”
<NP head> = <N” head>
RULE
N” = N’ (AD-MOD-N)
<N” head> = <N’ head>
RULE
N’ = N ( COMP-N )
<N’ head> = <N head>
RULE
SPEC-N = { PRE_N4 (PRE_N3) (PRE_N2) (PRE_N1)} / {PRE_N3 (PRE_N2) (PRE_N1)} / {PRE_N2 (PRE_N1)} / PRE_N1
RULE
AD-MOD-N = ADJP
RULE
COMP-N = NP / preP
<COMP-N head> = <NP head>
براي ساير گروه ها نيز به همين روش عمل شده است. در ادامه به توضيح موارد در نظر گرفته شده از جمله تطابق مسنداليه و گروه اسناد يا همان گروه فعلي مي پردازيم. براي اين کار جملات نمونه بيان شده و نتيجه آن آورده شده است. ابتدا جمله ” علي رفت ” را مورد بررسي قرار مي دهيم. همان گونه که مشاهده مي شود چون مسنداليه يعني “علي” سوم شخص مفرد است بنابر اين فعل نيز بايد سوم شخص مفرد باشد. براي مثال نمي توان در اين جمله از فعل “رفتم” يا “رفتند” که به ترتيب اول شخص مفرد و سوم شخص جمع است استفاده کرد. همچنين در مثال ديگر جمله “من رفتم” نشان داده شده است که در آن نيز تطابق را مشاهده مي کنيد. از ديگر مواردي که در نظر گرفته شده است مسنداليه مرکب مي باشد. يعني در مواردي که دو گروه اسمي با استفاده از حروف ربط به هم پيوند خورده باشند. همانگونه که مي دانيم در اين مواقع چند نکته را بايد در نظر گرفت.
- چنانچه ضمير اول شخص در بين گروهها باشد آن ضمير حاکم است: من و برادر بزرگ او رفتيم
- چنانچه ضمير اول شخص در بين گروهها نباشد ولي ضمير دوم شخص باشد آن ضمير حاکم است: تو و برادر بزرگ او رفتيد
- اگر ضمير اول شخص و ضمير دوم شخص نباشد اسناد بصورت سوم شخص خواهد بود
مثال: من و تو رفتيم / من و شما رفتيم / من و او رفتيم / من و آنها رفتيم/ تو و او رفتيد / تو و منوچهر رفتيد / تو و رفقايت رفتيد / او و برادرش رفتند / او و رفقايش رفتند
- در مثالهاي زير “با من، با تو، با او …” جزو مسنداليه نيست. بلکه گروه قيدي هستند بنابر اين در تطابق اثر ندارند.
مثال: تو با من رفتي / من با تو رفتيم / تو با او رفتي / تو با آنها رفتي / ما با تو رفتيم / شما با ما رفتيد / ما با شما رفتيم
نقد و بررسیها
هنوز بررسیای ثبت نشده است.