خوارزمية CYK

في علم الحاسوب ، تُعدّ خوارزمية كوك-يونغر-كاسامي (المعروفة أيضًا باسم CYK أو CKY ) خوارزمية تحليل نحوي للقواعد النحوية الخالية من السياق، وقد نشرها إيتيرو ساكاي عام 1961. [ 1 ] [ 2 ] سُمّيت الخوارزمية نسبةً إلى بعض مكتشفيها: جون كوك ، ودانيال يونغر، وتاداو كاسامي ، وجاكوب تي. شوارتز . وتعتمد الخوارزمية على التحليل النحوي التصاعدي والبرمجة الديناميكية .

يعمل الإصدار القياسي من CYK فقط على القواعد النحوية الخالية من السياق المعطاة بصيغة تشومسكي العادية (CNF). ومع ذلك، يمكن تحويل أي قاعدة نحوية خالية من السياق خوارزميًا إلى قاعدة CNF تعبر عن اللغة نفسها ( سيبسر 1997 ) .

تكمن أهمية خوارزمية CYK في كفاءتها العالية في بعض الحالات. باستخدام ترميز Big O ، يكون وقت تشغيل CYK في أسوأ الحالات هويا(ن3|جي|){\displaystyle {\mathcal {O}}\left(n^{3}\cdot \left|G\right|\right)}، أينن{\displaystyle n}يمثل طول السلسلة المُحللة و|جي|{\displaystyle \left|G\right|}حجم قواعد CNFجي{\displaystyle G}( هوبكروفت وأولمان 1979 ، ص 140) . وهذا يجعلها واحدة من أكثر خوارزميات التحليل كفاءة من حيث التعقيد التقاربي في أسوأ الحالات ، على الرغم من وجود خوارزميات أخرى ذات متوسط ​​وقت تشغيل أفضل في العديد من السيناريوهات العملية. 

النموذج القياسي

تتطلب خوارزمية البرمجة الديناميكية تحويل قواعد اللغة الخالية من السياق إلى صيغة تشومسكي الطبيعية (CNF)، لأنها تختبر إمكانية تقسيم التسلسل الحالي إلى تسلسلين أصغر. يمكن تمثيل أي قواعد لغة خالية من السياق لا تُنتج سلسلة فارغة بصيغة CNF باستخدام قواعد الإنتاج من الصيغ التالية فقط.أα{\displaystyle A\rightarrow \alpha }وأبج{\displaystyle A\rightarrow BC}للسماح بالسلسلة الفارغة، يمكن السماح بذلك صراحةًSε{\displaystyle S\to \varepsilon }، أينS{\displaystyle S}هو رمز البداية. [ 3 ]

الخوارزمية

كشفرة زائفة

الخوارزمية مكتوبة بلغة شبه رمزية كما يلي:

ليكن المدخل سلسلة نصية I تتكون من n حرفًا: a1 ... an . ولتكن القواعد النحوية تحتوي على r رمزًا غير طرفي R1 ... Rr، حيث R1 هو رمز البداية. ولتكن P[n, n, r ] مصفوفة من القيم المنطقية . قم بتهيئة جميع عناصر P إلى خطأ . ولتكن back [n, n , r ] مصفوفة من قوائم من ثلاثيات تشير إلى الخلف . قم بتهيئة جميع عناصر back إلى قائمة فارغة.لكل قيمة s من 1 إلى ولكل وحدة إنتاج R va  اجعل P [ 1 , s , v ] = صحيحًا لكل l = 2 إلى n -- طول المدى لكل s = 1 إلى n - l + 1 -- بداية المدى لكل p = 1 إلى l - 1 تقسيم المدى لكل إنتاج R aR b R c إذا كان P [ p , s , b ] و P [ l - p , s + p , c ] ، فضع P [ l , s , a ] = صحيح. أضف <p,b,c> إلى الخلف [ l , s , a ] إذا كانت P [n, 1 , 1 ] صحيحة، فإن I ينتمي إلى اللغة، لذا يُعاد تنفيذ الدالة back . من خلال تتبع الخطوات السابقة، يمكن بسهولة إنشاء جميع أشجار التحليل الممكنة للسلسلة. وإلا، تُعاد الدالة "ليس ينتمي إلى اللغة".

CYK الاحتمالي (لإيجاد التحليل الأكثر احتمالاً)

يسمح باستعادة التحليل الأكثر احتمالاً بالنظر إلى احتمالات جميع عمليات الإنتاج.

ليكن المدخل سلسلة نصية I تتكون من n حرفًا: a1 ... an . ولتكن القواعد النحوية تحتوي على r رمزًا غير طرفي R1 ... Rr، حيث R1 هو رمز البداية. ولتكن P[n, n , r ] مصفوفة من الأعداد الحقيقية . قم بتهيئة جميع عناصر P إلى الصفر . ولتكن back [ n , n , r ] مصفوفة من ثلاثيات الإشارة العكسية . لكل s = 1 إلى لكل وحدة إنتاج R va  اجعل P [ 1 , s , v ] = Pr( R va s ). لكل l = 2 إلى n ، طول النطاق. لكل s = 1 إلى n - l + 1 ، بداية النطاق. لكل p = 1 إلى l - 1 ، تقسيم النطاق. لكل وحدة إنتاج R aR b R c ، يكون احتمال التقسيم = Pr( R aR b R c ) * P [ p , s , b ] * P [ l - p , s + p , c ]. إذا كان احتمال التقسيم > P [ l , s , a ] ، فاجعل P [ l , s , a ] = احتمال التقسيم. اجعل back [ l , s , a ] = <p, b, c>إذا كانت P [n, 1 , 1 ] > 0 ، فابحث عن شجرة التحليل بالرجوع إلى الوراء ، ثم أعد شجرة التحليل، وإلا فأعد "ليس عضوًا في اللغة".

كنص نثري

بصورة غير رسمية، تأخذ هذه الخوارزمية في الاعتبار كل سلسلة فرعية ممكنة من سلسلة الإدخال وتحددP[ل،s،v]{\displaystyle P[l,s,v]}يكون صحيحًا إذا كانت السلسلة الفرعية ذات الطولل{\displaystyle l}ابتداءً منs{\displaystyle s}يمكن توليدها من الرمز غير الطرفيRv{\displaystyle R_{v}}بعد معالجة السلاسل الفرعية ذات الطول 1، ينتقل إلى السلاسل الفرعية ذات الطول 2، وهكذا. بالنسبة للسلاسل الفرعية ذات الطول 2 فأكثر، يُدرس كل تقسيم ممكن للسلسلة الفرعية إلى جزأين، ويتحقق من وجود قاعدة إنتاجية.أبج{\displaystyle A\to B\;C}بحيثب{\displaystyle B}يتطابق مع الجزء الأول وج{\displaystyle C}يتطابق مع الجزء الثاني. إذا كان الأمر كذلك، فإنه يسجلأ{\displaystyle A}بمجرد اكتمال هذه العملية، يتم إنشاء سلسلة الإدخال بواسطة القواعد النحوية إذا تطابقت السلسلة الفرعية التي تحتوي على سلسلة الإدخال بأكملها مع رمز البداية.

مثال

تحليل الجمل باستخدام خوارزمية CYK

هذا مثال على القواعد النحوية:

S NP نائب الرئيسنائب الرئيس نائب الرئيس PPنائب الرئيس V NPنائب الرئيس يأكلPP P NPNP المحقق شمالNP هيV يأكلP معشمال سمكةشمال شوكةالمحقق أ{\displaystyle {\begin{aligned}{\ce {S}}&\ {\ce {->NP\ VP}}\\{\ce {VP}}&\ {\ce {->VP\ PP}}\\{\ce {VP}}&\ {\ce {->V\ NP}}\\{\ce {VP}}&\ {\ce {->eats}}\\{\ce {PP}}&\ {\ce {->P\ NP}}\\{\ce {NP}}&\ {\ce {->Det\ N}}\\{\ce {NP}}&\ {\ce {->she}}\\{\ce {V}}&\ {\ce {->eats}}\\{\ce {P}}&\ {\ce {->with}}\\{\ce {N}}&\ {\ce {->fish}}\\{\ce {N}}&\ {\ce {->fork}}\\{\ce {Det}}&\ {\ce {->a}}\end{aligned}}}

الآن، يتم تحليل جملة " هي تأكل سمكة بالشوكة" باستخدام خوارزمية CYK. في الجدول التالي، فيP[أنا،ج،ك]{\displaystyle P[i,j,k]}، i هو رقم الصف (بدءًا من الأسفل عند 1)، و j هو رقم العمود (بدءًا من اليسار عند 1).

جدول CYK
S
نائب الرئيس
 
S
نائب الرئيسPP
SNPNP
NPV، VPالمحققشمالPالمحققشمال
هييأكلأسمكةمعأشوكة

لتبسيط القراءة، يتم تمثيل جدول CYK الخاص بـ P هنا كمصفوفة ثنائية الأبعاد M تحتوي على مجموعة من الرموز غير الطرفية، بحيث يكون R k فيم[أنا،ج]{\displaystyle M[i,j]}إذا ، وفقط إذا ،P[أنا،ج،ك]{\displaystyle P[i,j,k]}في المثال أعلاه ، بما أن رمز البداية S موجود فيم[7،1]{\displaystyle M[7,1]}، يمكن توليد الجملة بواسطة القواعد النحوية.

الإضافات

توليد شجرة تحليل نحوي

الخوارزمية المذكورة أعلاه هي أداة تمييز تحدد فقط ما إذا كانت الجملة تنتمي إلى اللغة. من السهل توسيعها لتصبح محللاً نحوياً يقوم أيضاً بإنشاء شجرة تحليل ، وذلك بتخزين عقد شجرة التحليل كعناصر في المصفوفة، بدلاً من القيمة المنطقية 1. ترتبط العقدة بعناصر المصفوفة التي استُخدمت لإنتاجها، وذلك لبناء بنية الشجرة. يكفي وجود عقدة واحدة فقط في كل عنصر من عناصر المصفوفة إذا كان المطلوب إنتاج شجرة تحليل واحدة فقط. مع ذلك، إذا كان المطلوب الاحتفاظ بجميع أشجار تحليل الجملة الغامضة، فمن الضروري تخزين قائمة في عنصر المصفوفة بجميع الطرق التي يمكن من خلالها الحصول على العقدة المقابلة في عملية التحليل. يتم ذلك أحياناً باستخدام جدول ثانٍ B[n,n,r] لما يُسمى بالمؤشرات الخلفية . والنتيجة النهائية هي غابة مشتركة من أشجار التحليل الممكنة، حيث يتم دمج أجزاء الأشجار المشتركة بين عمليات التحليل المختلفة. يمكن قراءة هذه الغابة المشتركة بسهولة على أنها قواعد نحوية غامضة تولد فقط الجملة التي تم تحليلها، ولكن بنفس الغموض الذي تتسم به القواعد النحوية الأصلية، ونفس أشجار التحليل حتى إعادة تسمية بسيطة للغاية للرموز غير الطرفية، كما هو موضح من قبل لانغ (1994) .

تحليل القواعد النحوية الخالية من السياق غير CNF

كما أشار لانج وليس (2009) ، فإن عيب جميع التحويلات المعروفة إلى صيغة تشومسكي العادية هو أنها قد تؤدي إلى تضخم غير مرغوب فيه في حجم القواعد النحوية. حجم القواعد النحوية هو مجموع أحجام قواعد الإنتاج الخاصة بها، حيث يكون حجم القاعدة واحدًا زائد طول جانبها الأيمن. باستخدامز{\displaystyle g}للدلالة على حجم القواعد الأصلية، قد يتراوح حجم التضخم في أسوأ الحالات منز2{\displaystyle g^{2}}ل22ز{\displaystyle 2^{2g}}، وذلك بحسب خوارزمية التحويل المستخدمة. وللاستخدام في التدريس، يقترح لانج وليس تعميمًا طفيفًا لخوارزمية CYK، "دون المساس بكفاءة الخوارزمية أو وضوح عرضها أو بساطة البراهين" ( لانج وليس 2009 ) .

تحليل القواعد النحوية الموزونة الخالية من السياق

من الممكن أيضًا توسيع خوارزمية CYK لتحليل السلاسل النصية باستخدام قواعد نحوية موزونة وعشوائية خالية من السياق . تُخزَّن الأوزان (الاحتمالات) في الجدول P بدلًا من القيم المنطقية، لذا سيحتوي P[i,j,A] على أقل وزن (أعلى احتمال) يمكن من خلاله اشتقاق السلسلة الفرعية من i إلى j من A. تسمح امتدادات أخرى للخوارزمية بترقيم جميع تحليلات السلسلة النصية من أقل وزن إلى أعلى وزن (من أعلى احتمال إلى أقل احتمال).

الاستقرار العددي

عند تطبيق خوارزمية CYK الاحتمالية على سلسلة نصية طويلة، قد تصبح احتمالية التقسيم ضئيلة للغاية نتيجة لضرب العديد من الاحتمالات معًا. ويمكن معالجة ذلك بجمع لوغاريتمات الاحتمالات بدلًا من ضربها.

خوارزمية فاليانت

أسوأ وقت تشغيل لـ CYK هوΘ(ن3|جي|){\displaystyle \Theta (n^{3}\cdot |G|)}حيث n هو طول السلسلة المُحللة و| G | هو حجم قواعد اللغة CNF G. وهذا ما يجعلها من أكثر الخوارزميات كفاءةً للتعرف على لغات السياق العام في التطبيق العملي. قدّم فاليانت (1975) امتدادًا لخوارزمية CYK. تحسب خوارزميته نفس جدول التحليل الذي تحسبه خوارزمية CYK؛ ومع ذلك، فقد بيّن أنه يمكن استخدام خوارزميات الضرب الفعال للمصفوفات ذات المدخلات 0-1 لإجراء هذا الحساب.

باستخدام خوارزمية كوبرسميث-وينوغراد لضرب هذه المصفوفات، ينتج عن ذلك وقت تشغيل تقاربي في أسوأ الحالات يبلغيا(ن2.38|جي|){\displaystyle O(n^{2.38}\cdot |G|)}مع ذلك، فإن الحد الثابت الذي تخفيه صيغة Big O كبير جدًا لدرجة أن خوارزمية Coppersmith-Winograd لا تُجدي نفعًا إلا مع المصفوفات الكبيرة جدًا التي يصعب على الحواسيب الحالية التعامل معها ( Knuth 1997 ) ، ويتطلب هذا النهج الطرح، لذا فهو مناسب فقط للتعرف. ولا يمكن تجنب الاعتماد على ضرب المصفوفات بكفاءة تمامًا: فقد أثبت Lee (2002) أن أي محلل نحوي لقواعد اللغة الخالية من السياق يعمل في وقتيا(ن3-ε|جي|){\displaystyle O(n^{3-\varepsilon }\cdot |G|)}يمكن تحويلها بشكل فعال إلى خوارزمية لحساب ناتج(ن×ن){\displaystyle (n\times n)}المصفوفات ذات المدخلات 0-1 في الزمنيا(ن3-ε/3){\displaystyle O(n^{3-\varepsilon /3})}وقد تم توسيع هذا بواسطة Abboud et al. [ 4 ] ليطبق على قواعد نحوية ذات حجم ثابت.

انظر أيضاً

مراجع

  1. غرون، ديك (2008). تقنيات التحليل النحوي  : دليل عملي (  الطبعة الثانية). نيويورك: سبرينغر. ص  579. ISBN 978-0-387-20248-8.
  2. إيتيرو ساكاي، "النحو في الترجمة العالمية". في وقائع المؤتمر الدولي لعام 1961 حول الترجمة الآلية للغات وتحليل اللغة التطبيقي، مكتب القرطاسية التابع لجلالة الملكة، لندن، ص 593-608، 1962.
  3. سيبسر، مايكل (2006). مقدمة في نظرية الحوسبة ( الطبعة الثانية). بوسطن: تومسون كورس تكنولوجي. التعريف 2.8. ISBN  0-534-95097-3. OCLC 58544333 . 
  4. عبود، أمير؛ باكورس، أرتورس؛ ويليامز، فيرجينيا فاسيليفسكا (2015-11-05). "إذا كانت خوارزميات الزمرة الحالية مثالية، فإن محلل فاليانت كذلك". arXiv : 1504.01431 [ cs.CC ].

مصادر