Jika Anda mencari dokumen versi 3, Anda dapat menemukannya di sini Versi 3
"NLP.js" adalah utilitas bahasa alami umum untuk nodejs. Saat ini mendukung:
!
Versi 4 sangat berbeda dengan versi sebelumnya. Sebelum versi ini, NLP.js adalah perpustakaan monolitik. Perubahan besar:
normalize -> tokenize -> removeStopwords -> stem -> arrToObj
hear
dan say
. Contoh konektor termasuk: Konektor Konsol, Konektor Microsoft Bot Framework, dan Konektor Offline Direct Line (yang ini memungkinkan Anda membuat chatbot web menggunakan Microsoft Webchat, tetapi tanpa harus menyebarkan apa pun di Azure).Jika Anda ingin menggunakan NLP.js di aplikasi Node Anda, Anda dapat menginstal melalui NPM seperti:
npm install node-nlp
Ada versi NLP.js yang berfungsi di React Native, sehingga Anda dapat membuat chatbot yang dapat dilatih dan dijalankan di perangkat seluler bahkan tanpa internet. Anda dapat menginstalnya melalui NPM:
npm install node-nlp-rn
Beberapa batasan:
Anda dapat melihat contoh penggunaan yang bagus di folder /examples/02-qna-classic
. Contoh ini mampu melatih bot dan menyimpan model ke file, sehingga ketika bot dimulai lagi, model akan dimuat alih-alih dilatih lagi.
Anda dapat mulai membangun NLP Anda dari awal dengan beberapa baris:
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 ) ;
} ) ( ) ;
Ini menghasilkan hasil berikut di konsol:
{ 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 ' }
Secara default, jaringan saraf mencoba menghindari kesalahan positif. Untuk mencapai hal tersebut, salah satu proses internalnya adalah kata-kata yang tidak pernah dilihat oleh jaringan direpresentasikan sebagai fitur yang memberi bobot pada maksud None
. Jadi, jika Anda mencoba contoh sebelumnya dengan " Saya harus pergi " maka akan mengembalikan maksud None
karena 2 dari 4 kata tersebut belum pernah terlihat saat latihan. Jika Anda tidak ingin menghindari kesalahan positif tersebut, dan Anda merasa lebih nyaman dengan klasifikasi ke dalam maksud yang Anda nyatakan, maka Anda dapat menonaktifkan perilaku ini dengan menyetel useNoneFeature
ke false:
const manager = new NlpManager ( { languages : [ 'en' ] , nlu : { useNoneFeature : false } } ) ;
Anda juga dapat menambahkan kemajuan log, sehingga Anda dapat melacak apa yang terjadi selama pelatihan. Anda dapat mencatat kemajuannya ke konsol:
const nlpManager = new NlpManager ( { languages : [ 'en' ] , nlu : { log : true } } ) ;
Atau Anda dapat menyediakan fungsi log Anda sendiri:
const logfn = ( status , time ) => console . log ( status , time ) ;
const nlpManager = new NlpManager ( { languages : [ 'en' ] , nlu : { log : logfn } } ) ;
Anda dapat membaca panduan cara berkontribusi di Berkontribusi.
Dibuat dengan kontributor-img.
Anda dapat membaca Kode Etik di Kode Etik.
?
Proyek ini dikembangkan oleh AXA Group Operations Spain SA
Jika Anda perlu menghubungi kami, Anda dapat melakukannya di email [email protected]
Hak Cipta (c) Operasi Grup AXA Spanyol SA
Izin dengan ini diberikan, secara gratis, kepada siapa pun yang memperoleh salinan perangkat lunak ini dan file dokumentasi terkait ("Perangkat Lunak"), untuk menggunakan Perangkat Lunak tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, menggabungkan , mempublikasikan, mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak, dan mengizinkan orang yang menerima Perangkat Lunak untuk melakukan hal tersebut, dengan tunduk pada ketentuan berikut:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini akan disertakan dalam semua salinan atau sebagian besar Perangkat Lunak.
PERANGKAT LUNAK INI DISEDIAKAN "APA ADANYA", TANPA JAMINAN APA PUN, TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, DAN TIDAK ADA PELANGGARAN. DALAM KEADAAN APA PUN PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN, ATAU TANGGUNG JAWAB LAINNYA, BAIK DALAM TINDAKAN KONTRAK, HUKUM ATAU LAINNYA, YANG TIMBUL DARI, ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU HAL-HAL LAIN DALAM PERANGKAT LUNAK.