如果您正在寻找版本 3 文档,您可以在此处找到它们版本 3
“NLP.js”是 Nodejs 的通用自然语言实用程序。目前支持:
!
版本 4 与以前的版本有很大不同。在此版本之前,NLP.js 是一个整体库。大的变化:
normalize -> tokenize -> removeStopwords -> stem -> arrToObj
hear
和say
。连接器示例包括:控制台连接器、Microsoft Bot Framework 连接器和 Direct Line Offline 连接器(该连接器允许您使用 Microsoft Webchat 构建 Web 聊天机器人,但无需在 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
意图赋予一定的权重。因此,如果您尝试前面的示例“我必须走了”,它将返回None
意图,因为这 4 个单词中有 2 个在训练时从未见过。如果您不想避免这些误报,并且您觉得对声明的意图进行分类更舒服,那么您可以通过将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 } } ) ;
您可以在 Contributing 中阅读有关如何做出贡献的指南。
由贡献者-img 制作。
您可以在行为准则中阅读行为准则。
?
该项目由 AXA Group Operations Spain SA 开发
如果您需要联系我们,可以发送电子邮件至 [email protected]
版权所有 (c) AXA Group Operations Spain SA
特此免费授予获得本软件和相关文档文件(“软件”)副本的任何人不受限制地使用本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或销售软件的副本,并允许向其提供软件的人员这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有者均不对因本软件或本软件中的使用或其他交易而产生或与之相关的任何索赔、损害或其他责任负责,无论是合同、侵权行为还是其他行为。软件。