إذا كنت تبحث عن مستندات الإصدار 3، فيمكنك العثور عليها هنا الإصدار 3
"NLP.js" هي أداة مساعدة عامة للغة الطبيعية لـNodejs. الدعم حاليا:
!
الإصدار 4 يختلف كثيرا عن الإصدارات السابقة. قبل هذا الإصدار، كان NLP.js مكتبة متجانسة. التغييرات الكبيرة:
normalize -> tokenize -> removeStopwords -> stem -> arrToObj
hear
say
. من أمثلة الموصلات المضمنة: Console Connector وMicrosoft Bot Framework Connector وDirect Line Offline Connector (يسمح لك هذا بإنشاء روبوت دردشة على الويب باستخدام Microsoft Webchat، ولكن دون الحاجة إلى نشر أي شيء في Azure).إذا كنت تتطلع إلى استخدام NLP.js في تطبيق Node الخاص بك، فيمكنك التثبيت عبر NPM كما يلي:
npm install node-nlp
هناك نسخة من NLP.js تعمل في React Native، بحيث يمكنك إنشاء روبوتات محادثة يمكن تدريبها وتنفيذها على الهاتف المحمول حتى بدون الإنترنت. يمكنك تثبيته عبر NPM:
npm install node-nlp-rn
بعض القيود:
يمكنك رؤية مثال رائع للاستخدام في المجلد /examples/02-qna-classic
. هذا المثال قادر على تدريب الروبوت وحفظ النموذج في ملف، لذلك عند بدء تشغيل الروبوت مرة أخرى، يتم تحميل النموذج بدلاً من تدريبه مرة أخرى.
يمكنك البدء في بناء البرمجة اللغوية العصبية الخاصة بك من الصفر ببضعة أسطر:
const { NlpManager } = require ( 'node-nlp' ) ;
const manager = new NlpManager ( { languages : [ 'en' ] , forceNER : true } ) ;
// Adds the utterances and intents for the NLP
manager . addDocument ( 'en' , 'goodbye for now' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'bye bye take care' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'okay see you later' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'bye for now' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'i must go' , 'greetings.bye' ) ;
manager . addDocument ( 'en' , 'hello' , 'greetings.hello' ) ;
manager . addDocument ( 'en' , 'hi' , 'greetings.hello' ) ;
manager . addDocument ( 'en' , 'howdy' , 'greetings.hello' ) ;
// Train also the NLG
manager . addAnswer ( 'en' , 'greetings.bye' , 'Till next time' ) ;
manager . addAnswer ( 'en' , 'greetings.bye' , 'see you soon!' ) ;
manager . addAnswer ( 'en' , 'greetings.hello' , 'Hey there!' ) ;
manager . addAnswer ( 'en' , 'greetings.hello' , 'Greetings!' ) ;
// Train and save the model.
( async ( ) => {
await manager . train ( ) ;
manager . save ( ) ;
const response = await manager . process ( 'en' , 'I should go now' ) ;
console . log ( response ) ;
} ) ( ) ;
يؤدي هذا إلى النتيجة التالية في وحدة التحكم:
{ utterance: ' I should go now ' ,
locale: ' en ' ,
languageGuessed: false,
localeIso2: ' en ' ,
language: ' English ' ,
domain: ' default ' ,
classifications:
[ { label: ' greetings.bye ' , value: 0.698219120207268 },
{ label: ' None ' , value: 0.30178087979273216 },
{ label: ' greetings.hello ' , value: 0 } ],
intent: ' greetings.bye ' ,
score: 0.698219120207268,
entities:
[ { start: 12,
end: 14,
len: 3,
accuracy: 0.95,
sourceText: ' now ' ,
utteranceText: ' now ' ,
entity: ' datetime ' ,
resolution: [Object] } ],
sentiment:
{ score: 1,
comparative: 0.25,
vote: ' positive ' ,
numWords: 4,
numHits: 2,
type: ' senticon ' ,
language: ' en ' },
actions: [],
srcAnswer: ' Till next time ' ,
answer: ' Till next time ' }
بشكل افتراضي، تحاول الشبكة العصبية تجنب النتائج الإيجابية الكاذبة. ولتحقيق ذلك، تتمثل إحدى العمليات الداخلية في أن الكلمات التي لم تراها الشبكة مطلقًا يتم تمثيلها كميزة تعطي بعض الوزن للقصد None
. لذا، إذا جربت المثال السابق مع " يجب أن أذهب " فسوف يُرجع القصد " None
" لأن اثنتين من الكلمات الأربع لم تتم رؤيتهما مطلقًا أثناء التدريب. إذا كنت لا ترغب في تجنب تلك الإيجابيات الكاذبة، وتشعر براحة أكبر تجاه التصنيفات في الأغراض التي تعلنها، فيمكنك تعطيل هذا السلوك عن طريق تعيين useNoneFeature
على false:
const manager = new NlpManager ( { languages : [ 'en' ] , nlu : { useNoneFeature : false } } ) ;
يمكنك أيضًا إضافة سجل التقدم، حتى تتمكن من تتبع ما يحدث أثناء التدريب. يمكنك تسجيل التقدم إلى وحدة التحكم:
const nlpManager = new NlpManager ( { languages : [ 'en' ] , nlu : { log : true } } ) ;
أو يمكنك توفير وظيفة السجل الخاصة بك:
const logfn = ( status , time ) => console . log ( status , time ) ;
const nlpManager = new NlpManager ( { languages : [ 'en' ] , nlu : { log : logfn } } ) ;
يمكنك قراءة الدليل الخاص بكيفية المساهمة في Contributing.
مصنوعة مع المساهمين-img.
يمكنك قراءة قواعد السلوك في مدونة قواعد السلوك.
?
تم تطوير هذا المشروع من قبل AXA Group Operations Spain SA
إذا كنت بحاجة إلى الاتصال بنا، يمكنك القيام بذلك على البريد الإلكتروني [email protected]
حقوق الطبع والنشر (ج) لشركة AXA Group Operations Spain SA
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج")، للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والدمج. ونشر و/أو توزيع وترخيص من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إجراء العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في برمجة.