Wenn Sie nach den Dokumenten für Version 3 suchen, finden Sie diese hier Version 3
„NLP.js“ ist ein allgemeines Dienstprogramm in natürlicher Sprache für NodeJS. Unterstützt derzeit:
!
Version 4 unterscheidet sich stark von früheren Versionen. Vor dieser Version war NLP.js eine monolithische Bibliothek. Die großen Veränderungen:
normalize -> tokenize -> removeStopwords -> stem -> arrToObj
hear
und say
. Beispiele für Konnektoren sind: Console Connector, Microsoft Bot Framework Connector und ein Direct Line Offline Connector (mit diesem können Sie einen Web-Chatbot mit dem Microsoft Webchat erstellen, ohne jedoch etwas in Azure bereitstellen zu müssen).Wenn Sie NLP.js in Ihrer Node-Anwendung verwenden möchten, können Sie die Installation über NPM wie folgt durchführen:
npm install node-nlp
Es gibt eine Version von NLP.js, die in React Native funktioniert, sodass Sie Chatbots erstellen können, die auch ohne Internet auf dem Mobilgerät trainiert und ausgeführt werden können. Sie können es über NPM installieren:
npm install node-nlp-rn
Einige Einschränkungen:
Ein tolles Anwendungsbeispiel können Sie im Ordner /examples/02-qna-classic
sehen. In diesem Beispiel ist es möglich, den Bot zu trainieren und das Modell in einer Datei zu speichern. Wenn der Bot also erneut gestartet wird, wird das Modell geladen, anstatt erneut trainiert zu werden.
Sie können mit ein paar Zeilen beginnen, Ihr NLP von Grund auf aufzubauen:
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 ) ;
} ) ( ) ;
Dies führt in einer Konsole zu folgendem Ergebnis:
{ 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 ' }
Standardmäßig versucht das neuronale Netzwerk, Fehlalarme zu vermeiden. Um dies zu erreichen, besteht einer der internen Prozesse darin, dass Wörter, die das Netzwerk nie sieht, als Merkmal dargestellt werden, das der Absicht None
etwas Gewicht verleiht. Wenn Sie also das vorherige Beispiel mit „ Ich muss gehen “ ausprobieren, wird die Absicht None
zurückgegeben, da zwei der vier Wörter während des Trainings nie gesehen wurden. Wenn Sie diese Fehlalarme nicht vermeiden möchten und sich mit Klassifizierungen in die von Ihnen deklarierten Absichten wohler fühlen, können Sie dieses Verhalten deaktivieren, indem Sie useNoneFeature
auf „false“ setzen:
const manager = new NlpManager ( { languages : [ 'en' ] , nlu : { useNoneFeature : false } } ) ;
Sie können auch einen Protokollfortschritt hinzufügen, sodass Sie verfolgen können, was während des Trainings passiert. Sie können den Fortschritt in der Konsole protokollieren:
const nlpManager = new NlpManager ( { languages : [ 'en' ] , nlu : { log : true } } ) ;
Oder Sie können Ihre eigene Protokollfunktion bereitstellen:
const logfn = ( status , time ) => console . log ( status , time ) ;
const nlpManager = new NlpManager ( { languages : [ 'en' ] , nlu : { log : logfn } } ) ;
Den Leitfaden zum Mitwirken können Sie unter „Beitragen“ lesen.
Hergestellt mit Mitwirkenden-img.
Den Verhaltenskodex können Sie unter Verhaltenskodex lesen.
?
Dieses Projekt wird von AXA Group Operations Spain SA entwickelt
Wenn Sie uns kontaktieren möchten, können Sie dies unter der E-Mail-Adresse [email protected] tun
Urheberrecht (c) AXA Group Operations Spain SA
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software“) erhält, kostenlos die Erlaubnis erteilt, mit der Software ohne Einschränkung zu handeln, einschließlich und ohne Einschränkung der Rechte zur Nutzung, zum Kopieren, Ändern und Zusammenführen , Kopien der Software zu veröffentlichen, zu verteilen, unterzulizenzieren und/oder zu verkaufen und Personen, denen die Software zur Verfügung gestellt wird, dies zu gestatten, vorbehaltlich der folgenden Bedingungen:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD „WIE BESEHEN“ ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHT-INHABER HAFTBAR FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNG, WEDER AUS EINER VERTRAGLICHEN HANDLUNG, AUS HANDLUNG ODER ANDERWEITIG, DIE SICH AUS, AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN HANDELN IN DER SOFTWARE ERGEBEN SOFTWARE.