버전 3 문서를 찾고 있다면 여기에서 찾을 수 있습니다 . 버전 3
"NLP.js"는 nodejs의 일반적인 자연어 유틸리티입니다. 현재 지원하는 것:
!
버전 4는 이전 버전과 매우 다릅니다. 이 버전 이전에는 NLP.js가 모놀리식 라이브러리였습니다. 큰 변화:
normalize -> tokenize -> removeStopwords -> stem -> arrToObj
hear
및 say
이 있는 것으로 이해됩니다. 포함된 커넥터의 예: 콘솔 커넥터, Microsoft Bot Framework 커넥터 및 Direct Line Offline Connector(이 커넥터를 사용하면 Microsoft Webchat을 사용하여 웹 챗봇을 구축할 수 있지만 Azure에 아무것도 배포할 필요가 없음)Node 애플리케이션에서 NLP.js를 사용하려는 경우 다음과 같이 NPM을 통해 설치할 수 있습니다.
npm install node-nlp
React Native에서 작동하는 NLP.js 버전이 있으므로 인터넷 없이도 모바일에서 훈련하고 실행할 수 있는 챗봇을 구축할 수 있습니다. 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 "로 이전 예제를 시도하면 4개 단어 중 2개는 훈련 중에 본 적이 없기 때문에 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 } } ) ;
기여 방법에 대한 가이드는 기여에서 읽을 수 있습니다.
contributors-img로 제작되었습니다.
행동강령에서 행동강령을 읽어보실 수 있습니다.
?
이 프로젝트는 AXA Group Operations Spain SA에서 개발했습니다.
문의사항이 있으시면 [email protected]으로 이메일을 보내주세요.
저작권 (c) AXA 그룹 운영 스페인 SA
본 소프트웨어 및 관련 문서 파일("소프트웨어")의 사본을 취득한 모든 사람에게 사용, 복사, 수정, 병합에 대한 권리를 포함하되 이에 국한되지 않고 제한 없이 소프트웨어를 취급할 수 있는 권한이 무료로 부여됩니다. , 소프트웨어 사본을 게시, 배포, 재라이센스 부여 및/또는 판매하고, 소프트웨어를 제공받은 사람에게 다음 조건에 따라 그렇게 하도록 허용합니다.
위의 저작권 고지와 본 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함됩니다.
소프트웨어는 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. 어떠한 경우에도 작성자나 저작권 보유자는 계약, 불법 행위 또는 기타 행위로 인해 소프트웨어나 사용 또는 기타 거래와 관련하여 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다. 소프트웨어.