หากคุณกำลังมองหาเอกสารเวอร์ชัน 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
ตัวอย่างนี้สามารถฝึกบอทและบันทึกโมเดลลงในไฟล์ ดังนั้นเมื่อบอทเริ่มต้นอีกครั้ง โมเดลจะถูกโหลดแทนที่จะฝึกอีกครั้ง
คุณสามารถเริ่มสร้าง NLP ของคุณตั้งแต่เริ่มต้นได้ภายในไม่กี่บรรทัด:
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
ดังนั้น หากคุณลองตัวอย่างก่อนหน้านี้ด้วยคำว่า " I have to go " มันจะคืนค่าเจตนา None
เนื่องจากไม่เคยเห็นคำ 2 ใน 4 คำนี้มาก่อนขณะฝึก หากคุณไม่ต้องการหลีกเลี่ยงผลบวกลวงเหล่านั้น และคุณรู้สึกสบายใจมากขึ้นที่จะจัดหมวดหมู่ตามเจตนาที่คุณประกาศ คุณสามารถปิดการใช้งานลักษณะการทำงานนี้ได้โดยการตั้งค่า useNoneFeature
เป็นเท็จ:
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 } } ) ;
คุณสามารถอ่านคำแนะนำเกี่ยวกับวิธีการมีส่วนร่วมได้ที่การบริจาค
ทำด้วยผู้มีส่วนร่วม-img
คุณสามารถอ่านหลักจรรยาบรรณได้ที่จรรยาบรรณ
?
โครงการนี้พัฒนาโดย AXA Group Operations Spain SA
หากคุณต้องการติดต่อเรา คุณสามารถทำได้ที่อีเมล [email protected]
ลิขสิทธิ์ (c) AXA Group Operations Spain SA
อนุญาตให้บุคคลใดก็ตามที่ได้รับสำเนาของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") อนุญาตโดยไม่เสียค่าใช้จ่าย เพื่อจัดการกับซอฟต์แวร์โดยไม่มีข้อจำกัด รวมถึงแต่ไม่จำกัดเพียงสิทธิ์ในการใช้ คัดลอก ปรับเปลี่ยน ผสาน เผยแพร่ แจกจ่าย ให้อนุญาตช่วง และ/หรือขายสำเนาของซอฟต์แวร์ และอนุญาตให้บุคคลที่ได้รับซอฟต์แวร์นี้สามารถทำได้ ภายใต้เงื่อนไขต่อไปนี้:
ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์นี้มีให้ "ตามที่เป็น" โดยไม่มีการรับประกันใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันความสามารถในการค้าขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ และการไม่ละเมิด ไม่ว่าในกรณีใดผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดต่อการเรียกร้องค่าเสียหายหรือความรับผิดอื่นใดไม่ว่าในการกระทำของสัญญาการละเมิดหรืออย่างอื่นที่เกิดขึ้นจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือข้อตกลงอื่น ๆ ใน ซอฟต์แวร์.