️ اعتبارًا من V2.0.0 ، يتم الآن دمج مرئيات الإزاحة في المكتبة الأساسية. انظر هنا لمزيد من التفاصيل حول كيفية تصور كائنDocمن داخل Spacy. نحن نعمل أيضًا على مجموعة جديدة من الأدوات لخدمة نماذج Spacy واختبارها. سيظل مدونة المرئيات المستقلة متوفرة على Github ، ولا يتم الحفاظ عليها بنشاط.
Dission.js هي مكتبة تصور حديثة ومستقلة للخدمة. نأمل أن يجعل هذا من السهل مقارنة الخدمات المختلفة ، واستكشاف الطرز الداخلية الخاصة بك. إذا كنت تستخدم محلل SPACY النحوي ، فيجب أن تكون القضبان جزءًا من سير العمل العادي. نظرًا لأن محلل Spacy إحصائي ، فغالبًا ما يكون من الصعب التنبؤ بكيفية تحليل جملة معينة. باستخدام الإزاحة ، يمكنك ببساطة محاولة الرؤية. يمكنك أيضًا مشاركة الصفحة للمناقشة مع فريقك ، أو حفظ SVG لاستخدامه في مكان آخر. إذا كنت تقوم بتطوير النموذج الخاص بك ، فيمكنك تشغيل الخدمة بنفسك - فهي مفتوحة بنسبة 100 ٪.
لقراءة المزيد حول Dission.js ، تحقق من منشور المدونة.
يتم تنفيذ هذا العرض التوضيحي في Jade (ويعرف أيضًا باسم Pug) ، وهي لغة قابلة للتمديد تم تجميعها إلى HTML ، وهي مصممة أو تخدمها Harp. لخدمته محليًا على http: // localhost: 9000 ، ببساطة تشغيل:
sudo npm install --global harp
git clone https://github.com/explosion/displacy
cd displacy
harp serverأو ببساطة تثبيته من NPM:
npm install displacy-demoتم كتابة العرض التوضيحي في ECMASCRIPT 6. من أجل توافق المتصفح الكامل ، تأكد من استخدام مترجم مثل بابل. لمزيد من المعلومات ، راجع جدول التوافق هذا.
لاستخدام الإشراف في مشروعك ، قم بتنزيل displacy.js من Github أو عبر NPM:
npm install displacyثم قم بتضمين الملف وتهيئة مثيل جديد يحدد واجهة برمجة التطبيقات والإعدادات:
const displacy = new displaCy ( 'http://localhost:8000' , {
container : '#displacy' ,
format : 'spacy' ,
distance : 300 ,
offsetX : 100
} ) ;خدمتنا التي تنتج بيانات الإدخال مفتوحة المصدر أيضًا. يمكنك العثور عليه في الخدمات Spacy.
الإعدادات التالية متوفرة:
| جلسة | وصف | تقصير |
|---|---|---|
| حاوية | العنصر لرسم الإزاحة في ، يمكن أن يكون أي محدد استعلام | #displacy |
| شكل | التنسيق المستخدم لإنشاء تحليل ( 'spacy' أو 'google' ) | 'spacy' |
| DefultText | النص المستخدم إذا تم تشغيل الإزاحة بدون نص محدد | 'Hello World.' |
| DefaultModel | النموذج المستخدم إذا تم تشغيل الإزاحة بدون نموذج محدد | 'en' |
| الانهيار | انهيار علامات الترقيم | true |
| الانهيار | عبارات الانهيار | true |
| مسافة | المسافة بين الكلمات في PX | 300 |
| Offsetx | تباعد على الجانب الأيسر من SVG في PX | 50 |
| Arrowspacing | التباعد بين الأسهم في PX لتجنب التداخل | 20 |
| سهام | عرض رأس السهم في PX | 10 |
| arrowstroke | عرض قوس في PX | 2 |
| Wordspacing | التباعد بين الكلمات والأقواس في PX | 50 |
| الخط | وجه الخط لجميع النصوص | 'inherit' |
| لون | لون النص ، سداسي عشري ، RGB أو أسماء الألوان | '#000000' |
| BG | لون الخلفية ، سداسي عشرة ، RGB أو أسماء الألوان | '#ffffff' |
| onstart | وظيفة ليتم تنفيذها عند بدء طلب الخادم | false |
| onsuccess | يتم تنفيذ وظيفة رد الاتصال على استجابة الخادم الناجحة | false |
| onerror | وظيفة ليتم تنفيذها في حالة فشل الطلب | false |
تقوم طريقة parse() بإعداد تحليل تم إنشاؤه بواسطة Spacy باعتباره SVG في الحاوية.
displacy . parse ( 'This is a sentence.' , 'en' , {
collapsePunct : false ,
collapsePhrase : false ,
color : '#ffffff' ,
bg : '#000000'
} ) ;تقوم الإعدادات المرئية المحددة هنا بتجاوز الإعدادات العالمية. الإعدادات المتاحة هي الانهيار ، الانهيار ، الخط ، واللون و BG .
بدلاً من ذلك ، يمكنك استخدام render() لتقديم مجموعة من الأقواس والكلمات يدويًا يدويًا:
const parse = {
arcs : [
{ dir : 'right' , end : 1 , label : 'npadvmod' , start : 0 }
] ,
words : [
{ tag : 'UH' , text : 'Hello' } ,
{ tag : 'NNP' , text : 'World.' }
]
} ;
displacy . render ( parse , {
color : '#ff0000'
} ) ;تقوم الإعدادات المرئية المحددة هنا بتجاوز الإعدادات العالمية. الإعدادات المتاحة هي الخط واللون و BG .
بشكل افتراضي ، تتوقع Displacy إخراج Spacy JSON في النمط التالي:
{
"arcs" : [
{ "dir" : " left " , "end" : 4 , "label" : " nsubj " , "start" : 0 }
],
"words" : [
{ "tag" : " NNS " , "text" : " Robots " }
]
} إذا تم ضبط format على 'google' ، يتم تحويل استجابة API من تنسيق Google. لإضافة قواعد التحويل الخاصة بك ، أضف حالة جديدة إلى handleConversion() :
handleConversion ( parse ) {
switch ( this . format ) {
case 'spacy' : return parse ; break ;
case 'google' : return ( { words : ... , arcs : ... } ) ; break ;
case 'your_format' : return ( { words : ... , arcs : ... } ) ; break ;
default : return parse ;
}
} يمكنك الآن تهيئة الإشراف بتنسيق format: 'your_format' .
يمكنك العثور على إعدادات السمة الحالية في /assets/css/_displacy-theme.sass _displacy-theme.sass. جميع العناصر الموجودة في إخراج SVG تأتي مع علامات وسمات البيانات ويمكن تصميمها بمرونة باستخدام CSS. بشكل افتراضي ، يتم استخدام currentColor للعنصر للتلوين ، مما يعني فقط تغيير خاصية color في CSS.
الفصول التالية متوفرة:
| اسم الفصل | وصف |
|---|---|
| .displacy-word | نص كلمة |
| .displacy-tag | علامة نقاط |
| .displacy-token | حاوية الكلمات وعلامة نقاط البيع |
| .displacy-arc | قوس السهم (بدون تسمية أو رأس سهم) |
| .displacy-label | نوع العلاقة (تسمية السهم) |
| .displacy-arrowhead | رأس السهم |
| .displacy-arrow | حاوية القوس والعلامة والأسهم رأس |
بالإضافة إلى ذلك ، يمكنك استخدام هذه السمات كمحددات السمات:
| يصف | قيمة | على العنصر |
|---|---|---|
| علامة البيانات | قيمة علامة POS | .displacy-token .displacy-word .displacy-tag |
| تسمية البيانات | قيمة نوع العلاقة | .displacy-arrow ، .displacy-arrowhead .displacy-label .displacy-arc ، |
| البيانات-DIR | اتجاه السهم | .displacy-arrow ، .displacy-arrowhead .displacy-label .displacy-arc ، |
باستخدام مزيج من هؤلاء المختارين وبعض منطق CSS الأساسي ، يمكنك إنشاء قوالب قوية جدًا لتنظيم العناصر بناءً على دورها ووظائفها في تحليلها. فيما يلي بعض الأمثلة:
/* Format all words in 12px Helvetica and grey */
. displacy-word {
font : 12 px Helvetica , Arial , sans-serif;
color : grey;
}
/* Make all noun phrases (tags that start with "NN") green */
. displacy-tag [ data-tag ^= "NN" ] {
color : green;
}
/* Make all right arrows red and hide their labels */
. displacy-arc [ data-dir = "right" ] ,
. displacy-arrowhead [ data-dir = "right" ] {
color : red;
}
. displacy-label [ data-dir = "right" ] {
display : none;
}
/* Hide all tags for verbs (tags that start with "VB") that are NOT the base form ("VB") */
. displacy-tag [ data-tag ^= "VB" ] : not ([ data-tag = "VB" ]) {
display : none;
}
/* Only display tags if word is hovered (with smooth transition) */
. displacy-tag {
opacity : 0 ;
transition : opacity 0.25 s ease;
}
. displacy-word : hover + . displacy-tag {
opacity : 1 ;
} تتيح لك الإشراف تحديد سمات مخصصة عبر تمثيل JSON للحالة على كل من words arcs :
"words" : [
{
"tag" : " NNS " ,
"text" : " Robots " ,
"data" : [
[ " custom " , " your value here " ],
[ " example " , " example text here " ]
]
}
] تتم إضافة سمات مخصصة كسمات بيانات مسبقة data- ، لذلك يجب ألا تحتوي أسمائها على مسافات أو أحرف خاصة. إذا تمت إضافتها إلى words ، يتم إرفاق سمات البيانات بالرمز المميز ( .displacy-token ) ، إذا تمت إضافتها إلى arcs ، فهي مرتبطة بالسهم ( .displacy-arrow ):
< text class =" displacy-token " data-custom =" your value here " data-example =" example text here " > ... </ text >