SceneGraphparser ( sng_parser ) عبارة عن مجموعة أدوات Python لجمل تحليل الجمل (باللغة الطبيعية) في الرسوم البيانية للمشهد (كتمثيل رمزي) استنادًا إلى تحليل التبعية. هذا المشروع مستوحى من محلل الرسم البياني للمشهد في ستانفورد.
يختلف عن نسخة ستانفورد ، هذا المحلل مكتوب بحتة من قبل بيثون. يحتوي على واجهة مستخدم سهلة الاستخدام وتصميم سهل التكوين. إنه يوسع الجمل في الرسوم البيانية حيث تكون العقد هي الأسماء (مع المعدلات مثل المحددات أو الصفات) والحواف هي العلاقات بين الأسماء. يرجى الاطلاع على قسم المثال للحصول على التفاصيل.
تسليط الضوء: لا يزال هذا المشروع قيد التطوير. جميع واجهات برمجة التطبيقات تخضع لأي تغيير.
ملاحظة : كما قد تلاحظ ، يتم التحليل من خلال مجموعة من القواعد المكتوبة على الإنسان على شجرة التحليل. وبالتالي ، نحتاج إلى مساعدة من الجميع على جمع حالات الفشل/الزاوية في البرنامج الحالي. يجب أن تكون أي نوع من التقارير أو المساعدة أكثر من موضع ترحيب.
تم تطوير هذا الريبو من أجل:
التضمينات البصرية الدلالية الموحدة: سد الرؤية واللغة مع تمثيلات المعنى المنظم
Hao Wu ، Jiayuan Mao ، Yufeng Zhang ، Yuning Jiang ، Lei Li ، Weiwei Sun ، و Wei-ing
في مؤتمر حول رؤية الكمبيوتر والتعرف على الأنماط (CVPR) 2019 (عرض شفهي)
يرجى التفكير في ذكر ورقتنا إذا كنت تشعر بالراحة :). يمكن العثور على الفرق بين هذا الريبو ومحلل الرسم البياني للمشهد في ستانفورد الأصلي في رقم 7.
يمكن تثبيت الحزمة باستخدام PIP. نظرًا لأنها تدعم حاليًا فقط SPACY كواجهة خلفية ، يجب تنزيل الحزمة الإنجليزية بعد التثبيت.
pip install SceneGraphParser
python -m spacy download en # to use the parser for English أسهل طريقة لاستخدام هذه الأداة هي استدعاء وظيفة parse . في التصميم ، يدعم sng_parser الخلفية المختلفة. حاليا ، نحن ندعم فقط الخلفية Spacy.
pip install spacy
> >> import sng_parser
> >> graph = sng_parser . parse ( 'A woman is playing the piano in the room.' ) > >> from pprint import pprint
> >> pprint ( graph ) {'entities': [{'head': 'woman',
'lemma_head': 'woman',
'lemma_span': 'a woman',
'modifiers': [{'dep': 'det', 'lemma_span': 'a', 'span': 'A'}],
'span': 'A woman'},
{'head': 'piano',
'lemma_head': 'piano',
'lemma_span': 'the piano',
'modifiers': [{'dep': 'det',
'lemma_span': 'the',
'span': 'the'}],
'span': 'the piano'},
{'head': 'room',
'lemma_head': 'room',
'lemma_span': 'the room',
'modifiers': [{'dep': 'det',
'lemma_span': 'the',
'span': 'the'}],
'span': 'the room'}],
'relations': [{'object': 1, 'relation': 'playing', 'subject': 0},
{'object': 2, 'relation': 'in', 'subject': 0}]}
> >> sng_parser . tprint ( graph ) # we provide a tabular visualization of the graph. Entities:
+--------+-----------+-------------+
| Head | Span | Modifiers |
|--------+-----------+-------------|
| woman | a woman | a |
| piano | the piano | the |
| room | the room | the |
+--------+-----------+-------------+
Relations:
+-----------+------------+----------+
| Subject | Relation | Object |
|-----------+------------+----------|
| woman | playing | piano |
| woman | in | room |
+-----------+------------+----------+
بدلاً من ذلك ، يمكنك تكوين المحلل الخاص بك:
> >> import sng_parser
> >> parser = sng_parser . Parser ( 'spacy' , model = 'en' ) # the positional argument specifies the backend, and the keyward arguments are for the backend initialization.
> >> graph = parser . parse ( 'A woman is playing the piano in the room.' ) نستخدم dict list النقية لتمثيل الرسم البياني. على الرغم من أن هذه المرونة قد تجلب بعض المشكلات غير المرغوب فيها ، إلا أننا نفضل هذا التمثيل لأن:
تتطابق الرسوم البيانية المشهد التي تم إنشاؤها مع المواصفات التالية:
{
'entities' : [ # a list of entities
{
'span' : "the full span of a noun phrase" ,
'lemma_span' : "the lemmatized version of the span" ,
'head' : "the head noun" ,
'lemma_head' : "the lemmatized version of the head noun" ,
'modifiers' : [
{
'dep' : "the dependency type" ,
'span' : "the span of the modifier" ,
'lemma_span' : "the lemmatized version of the span"
},
# other modifiers...
]
},
# other entities...
],
'relations' : [ # a list of relations
# the subject and object fields are sometimes called "head" and "tail" in relation extraction papers.
{
'subject' : "the entity id of the subject" ,
'object' : "the entity id of the object" ,
'relation' : "the relation"
}
# other relations...
]
}