WinkNLP هي مكتبة جافا سكريبت لمعالجة اللغات الطبيعية (NLP). تم تصميم winkNLP خصيصًا لجعل تطوير تطبيقات البرمجة اللغوية العصبية (NLP) أسهل وأسرع ، وقد تم تحسينه لتحقيق التوازن الصحيح بين الأداء والدقة.
يفتح دعم تضمين الكلمات تحليلًا أعمق للنص. قم بتمثيل الكلمات والنص كمتجهات رقمية بسهولة، مما يوفر دقة أعلى في مهام مثل التشابه الدلالي وتصنيف النص وما بعده - حتى داخل المتصفح .
لقد تم تصميمه من البداية دون أي تبعية خارجية ويحتوي على قاعدة تعليمات برمجية بسيطة تصل إلى 10 كيلوبايت تقريبًا ومُصغرة ومضغوطة بواسطة gzipp. إن تغطية الاختبار بنسبة 100% تقريبًا والامتثال لأفضل ممارسات مؤسسة Open Source Security Foundation تجعل من winkNLP الأداة المثالية لبناء أنظمة درجة الإنتاج بثقة.
WinkNLP مع دعم Typescript الكامل، يعمل على Node.js ومتصفحات الويب وDeno.
الجدول الزمني لمقالة ويكيبيديا | سحابة كلمة واعية بالسياق | كشف الجمل الرئيسية |
---|---|---|
توجه إلى الأمثلة الحية لاستكشاف المزيد.
يمكن لـ WinkNLP معالجة كمية كبيرة من النص الخام بسهولة بسرعات تزيد عن 650.000 رمز مميز/الثانية على جهاز M1 Macbook Pro في كل من بيئات المتصفح وNode.js. حتى أنه يعمل بسلاسة على متصفح الهواتف الذكية ذات المواصفات المنخفضة.
بيئة | أمر قياس الأداء |
---|---|
Node.js | معيار العقدة/تشغيل |
المتصفح | كيفية قياس سرعة winkNLP على المتصفحات؟ |
لدى WinkNLP خط أنابيب شامل لمعالجة اللغة الطبيعية (NLP) يغطي الترميز، واكتشاف حدود الجملة (sbd)، ومعالجة النفي، وتحليل المشاعر، ووضع علامات على جزء من الكلام (pos)، والتعرف على الكيانات المسماة (ner)، والتعرف على الكيانات المخصصة (cer) . يقدم مجموعة ميزات غنية:
؟ أداة رمزية سريعة وغير قابلة للضياع ومتعددة اللغات | على سبيل المثال، يتم ترميز السلسلة النصية متعددة اللغات "¡Hola! नमस्कार! Hi! Bonjour chéri" كـ ["¡", "Hola", "!", "नमस्कार", "!", "Hi", "!", "Bonjour", "chéri"] . يقوم برنامج الرمز المميز بمعالجة النص بسرعة تقترب من 4 ملايين رمز مميز في الثانية على متصفح M1 MBP. |
واجهة برمجة تطبيقات سهلة الاستخدام وبديهية للمطورين | باستخدام WinkNLP، يمكنك معالجة أي نص باستخدام بناء جملة تعريفي بسيط؛ تحتوي معظم الأمثلة الحية على 30-40 سطرًا من التعليمات البرمجية. |
؟ أفضل تصور للنص في فئته | قم بوضع علامة برمجية على الرموز المميزة والجمل والكيانات وما إلى ذلك باستخدام علامة HTML أو أي علامة أخرى من اختيارك. |
♻️ ميزات معالجة النصوص واسعة النطاق | إزالة و/أو الاحتفاظ بالرموز المميزة بسمات محددة مثل جزء من الكلام ونوع الكيان المسمى ونوع الرمز المميز وكلمة التوقف والشكل وغير ذلك الكثير؛ حساب درجة سهولة قراءة Flesch؛ توليد ن غرام. تطبيع، lemmatise أو الجذعية. اكتشف كيف أنه باستخدام النوع الصحيح من المعالجة المسبقة للنص، حتى مصنف Naive Bayes يحقق دقة مذهلة (≥90%) في تحليل المشاعر ومهام تصنيف نوايا برنامج الدردشة الآلية. |
؟ نماذج لغوية مدربة مسبقاً | أحجام صغيرة تبدأ من ~1 ميجابايت (مصغرة ومضغوطة) - تقلل وقت تحميل النموذج بشكل كبير إلى ~1 ثانية على شبكة 4G. |
تضمينات للكلمات الإنجليزية ذات 100 بُعد لأكثر من 350 ألف كلمة إنجليزية، والتي تم تحسينها لـ winkNLP. يسمح بحساب سهل للجملة أو تضمين الوثيقة. |
استخدم تثبيت npm:
npm install wink-nlp --save
لاستخدام winkNLP بعد تثبيته، تحتاج أيضًا إلى تثبيت نموذج لغة وفقًا لإصدار العقدة المستخدم. يوضح الجدول أدناه أمر التثبيت الخاص بالإصدار:
نسخة Node.js | تثبيت |
---|---|
16 أو 18 | npm install wink-eng-lite-web-model --save |
14 أو 12 | node -e "require('wink-nlp/models/install')" |
تم تصميم نموذج الويب wink-eng-lite للعمل مع الإصدار 16 أو 18 من Node.js. ويمكنه أيضًا العمل على المتصفحات كما هو موضح في القسم التالي. هذا هو النموذج الموصى به .
يقوم الأمر الثاني بتثبيت نموذج wink-eng-lite، الذي يعمل مع الإصدار 14 أو 12 من Node.js.
قم بتمكين esModuleInterop
و allowSyntheticDefaultImports
في ملف tsconfig.json
:
"compilerOptions": {
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
...
}
إذا كنت تستخدم winkNLP في المتصفح، استخدم wink-eng-lite-web-model. تعرف على كيفية تثبيته واستخدامه في دليلنا لاستخدام winkNLP في المتصفح. استكشف وصفات winkNLP على Observable للحصول على أمثلة مباشرة تعتمد على المتصفح.
اتبع المثال على Relit.
هنا "مرحبا بالعالم!" من WinkNLP:
// Load wink-nlp package.
const winkNLP = require ( 'wink-nlp' ) ;
// Load english language model.
const model = require ( 'wink-eng-lite-web-model' ) ;
// Instantiate winkNLP.
const nlp = winkNLP ( model ) ;
// Obtain "its" helper to extract item properties.
const its = nlp . its ;
// Obtain "as" reducer helper to reduce a collection.
const as = nlp . as ;
// NLP Code.
const text = 'Hello World?! How are you?' ;
const doc = nlp . readDoc ( text ) ;
console . log ( doc . out ( ) ) ;
// -> Hello World?! How are you?
console . log ( doc . sentences ( ) . out ( ) ) ;
// -> [ 'Hello World?!', 'How are you?' ]
console . log ( doc . entities ( ) . out ( its . detail ) ) ;
// -> [ { value: '?', type: 'EMOJI' } ]
console . log ( doc . tokens ( ) . out ( ) ) ;
// -> [ 'Hello', 'World', '?', '!', 'How', 'are', 'you', '?' ]
console . log ( doc . tokens ( ) . out ( its . type , as . freqTable ) ) ;
// -> [ [ 'word', 5 ], [ 'punctuation', 2 ], [ 'emoji', 1 ] ]
قم بتجربة winkNLP على RunKit.
يقوم WinkNLP بمعالجة النص الخام بمعدل 650.000 رمزًا في الثانية تقريبًا باستخدام نموذج الويب wink-eng-lite، عند قياسه باستخدام "Ch 13 of Ulysses by James Joyce" على جهاز M1 Macbook Pro المزود بذاكرة وصول عشوائي (RAM) سعة 16 جيجابايت. تضمنت المعالجة مسار البرمجة اللغوية العصبية بالكامل - الترميز، واكتشاف حدود الجملة، ومعالجة النفي، وتحليل المشاعر، ووضع علامات على جزء من الكلام، واستخراج الكيان المسمى. هذه السرعة تتقدم بكثير على معايير السرعة السائدة.
تم إجراء الاختبار على الإصدارين 16 و18 من Node.js.
إنه يضع علامات على مجموعة فرعية من مجموعة WSJ بدقة تصل إلى 95٪ تقريبًا - وهذا يشمل ترميز النص الخام قبل وضع علامات pos . تبلغ دقة أحدث التقنيات الحالية حوالي 97% ولكن بسرعات أقل ويتم حسابها بشكل عام باستخدام مجموعة المعايير الذهبية المُرمزة مسبقًا.
يوفر تحليل المشاعر للأغراض العامة درجة f تصل إلى 84.5% تقريبًا ، عند التحقق من صحتها باستخدام مجموعة بيانات الجمل الموسومة بمراجعة منتج Amazon في مستودع التعلم الآلي التابع لـ UCI. يمكن أن تتراوح دقة القياس الحالية للنماذج المدربة خصيصًا حوالي 95%.
يقدم Wink NLP هذا الأداء مع الحد الأدنى من الحمل على ذاكرة الوصول العشوائي. على سبيل المثال، يقوم بمعالجة المجلد الأول من تاريخ الهند بالكامل بإجمالي متطلبات ذروة الذاكرة التي تقل عن 80 ميجابايت . يحتوي الكتاب على حوالي 350 صفحة والتي تترجم إلى أكثر من 125000 رمزًا.
يرجى السؤال في Stack Overflow أو المناقشة في مناقشات Wink JS GitHub أو الدردشة معنا في Wink JS Gitter Lobby.
إذا اكتشفت خطأ ولم يتم الإبلاغ عنه بعد، فقم بطرح مشكلة جديدة أو فكر في إصلاحه وإرسال علاقات عامة.
إذا كنت تبحث عن ميزة جديدة، فاطلبها عبر منتدى مناقشة الميزات والأفكار الجديدة أو فكر في أن تصبح مساهمًا.
WinkJS هي مجموعة من الحزم مفتوحة المصدر لمعالجة اللغات الطبيعية والتعلم الآلي والتحليل الإحصائي في NodeJS. تم توثيق التعليمات البرمجية بدقة لتسهيل الفهم البشري، كما أنها تتمتع بتغطية اختبار تصل إلى 100% تقريبًا من حيث الموثوقية لإنشاء حلول على مستوى الإنتاج.
حقوق الطبع والنشر لـ Wink NLP محفوظة لـ 2017-24 GRAYPE Systems Private Limited.
إنه مرخص بموجب شروط ترخيص MIT.