Если вы ищете документацию по версии 3, вы можете найти ее здесь Версия 3
«NLP.js» — это общая утилита естественного языка для nodejs. В настоящее время поддерживаются:
!
Версия 4 сильно отличается от предыдущих версий. До этой версии NLP.js представляла собой монолитную библиотеку. Большие изменения:
normalize -> tokenize -> removeStopwords -> stem -> arrToObj
hear
и say
. Примеры соединителей: консольный соединитель, соединитель Microsoft Bot Framework и автономный соединитель прямой линии (он позволяет создать веб-чат-бота с помощью веб-чата Microsoft, но без необходимости развертывания чего-либо в 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
, поскольку 2 из 4 слов никогда не встречались во время обучения. Если вы не хотите избегать этих ложных срабатываний и вам удобнее классифицировать объявленные вами намерения, вы можете отключить это поведение, установив для 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 } } ) ;
Вы можете прочитать руководство о том, как внести свой вклад, на странице «Вклад».
Сделано с помощью авторов-img.
С Кодексом поведения можно ознакомиться на странице Кодекс поведения.
?
Этот проект разработан AXA Group Operations Spain SA.
Если вам нужно связаться с нами, вы можете сделать это по электронной почте [email protected].
Авторские права (c) AXA Group Operations Spain SA
Настоящим бесплатно любому лицу, получившему копию этого программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), предоставляется разрешение на работу с Программным обеспечением без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение. публиковать, распространять, сублицензировать и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставлено Программное обеспечение, делать это при соблюдении следующих условий:
Вышеупомянутое уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ЦЕННОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, БУДЬ В ДЕЙСТВИЯХ ПО КОНТРАКТУ, ПРАВОНАРУШЕНИЮ ИЛИ ДРУГИМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ОТ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.