Nltk: chomsky_normal_form () لقواعد النحو

تم إنشاؤها على ١٣ نوفمبر ٢٠١٧  ·  4تعليقات  ·  مصدر: nltk/nltk

nltk.tree.Tree على دالة chomsky_normal_form() ، لكن القواعد النحوية ليست كذلك. نظرًا لأن CNF هو شكل من أشكال القواعد ، فيجب أن يكون كذلك.

enhancement nice idea parsing

ال 4 كومينتر

chomsky_normal_form() في NLTK هو دالة شجرة ثنائية. أعتقد أنه لا يمكن تطبيقه بشكل مباشر على القواعد النحوية ، راجع https://github.com/nltk/nltk/blob/develop/nltk/treetransforms.py

يعتبر تحويل القواعد إلى CNF معقدًا إلى حد ما ولم يتم تنفيذه بعد. سيكون من الجيد أن تكون هناك محاولة ، لكنها قد لا تكون ثلاثية.

إذا كان أي شخص مهتمًا بالمساهمة ، فإن الخوارزمية الجيدة للبدء هي

  • لانج ولييس (2009). "إلى CNF أم لا إلى CNF؟ إصدار فعال وقابل للتقديم من خوارزمية CYK"

كنت أبحث عن هذا بالضبط وتعثرت هنا ،
لقد أنشأت هذه الوظيفة من خلال استغلال عناصر nltk الداخلية لأحد مشاريعي (ومحلل CKY فوقها أيضًا ، على الرغم من عدم وجود معالجة فارغة ، لكنني أعتقد أنها مفيدة للعديد من القواعد النحوية على أي حال ، على سبيل المثال اختبار ATIS لقواعد اللغة ) ، سأكون سعيدًا لإرسال PR ، أردت فقط تأكيد ما إذا كانت هذه المشكلة لا تزال قائمة ومتاحة للعمل عليها (خاصة بعد التعليقات الأخيرة في https://github.com/nltk/nltk/issues/1722)

أيضًا إذا لم يكن هناك محلل CYK كما هو مذكور في المشكلة الأخرى ، فسأكون سعيدًا لإرسال PR لذلك أيضًا

تضمين التغريدة لقد أوقفت الحياة الطريق.

virresh إذا كنت ترغب في ضيفي . لقد كتبت تحويلًا إلى CNF منذ سنوات.

https://github.com/aetilley/pcfg/blob/master/src/pcfg.py#L524

أتذكر أنها أعادت ترتيب الخطوات في الخوارزمية المعتادة ولكني أتذكر أيضًا إقناع نفسي بأنها كانت متكافئة. التقدم بحذر.

سأغلق القضية الأخرى.

هناك مشكلة مع CNFs لـ CFGs ؛ إنهم يعيدون إنتاجات مكررة. يمكنك اختبار ذلك من خلال:

import nltk
grammar = nltk.data.load("grammars/large_grammars/atis.cfg")
grammar = grammar.chomsky_normal_form()
print(len(grammar.productions()))
print(len(list(set(grammar.productions()))))

تحتوي القواعد النحوية على إنتاجات 20344 ، والتي عند تحويلها إلى مجموعة تعطي إنتاجات 12396 .

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

Chris00 picture Chris00  ·  3تعليقات

mwess picture mwess  ·  5تعليقات

Zaazik picture Zaazik  ·  5تعليقات

ndvbd picture ndvbd  ·  4تعليقات

chaseireland picture chaseireland  ·  3تعليقات