从node-nlp中的话语中提取实体

时间:2019-06-05 15:58:11

标签: node.js nlp named-entity-recognition ner

我正在使用node-nlp创建一个聊天机器人,以帮助用户预订包裹/行程,我想从话语中提取destination_name,start_date,end_date,成人和儿童。目前,我正在使用以下方法:

   nlp_manager.addDocument('en', 'planning %destination_name% from %start_date% till %end_date% with %adult% parents and %child% kids','book_package');
   nlp_manager.addDocument('en', 'visiting %destination_name% from %start_date% to %end_date% with %adult% adult and %child% childs','book_package');

对于拉动实体,我使用修剪命名的实体:

   const destination_name = manager.addTrimEntity('destination_name','trim');
   destination_name.addBetweenCondition('en', 'visit', 'with');
   destination_name.addBetweenCondition('en', 'visit', 'from');
   destination_name.addBetweenCondition('en', 'going to', 'from');
   destination_name.addBetweenCondition('en', 'going to', 'with');
   destination_name.addBetweenCondition('en', 'packages to', 'with');
   destination_name.addBetweenCondition('en', 'package to', 'with');
   destination_name.addBetweenCondition('en', 'package to', 'from');

   const adult = manager.addTrimEntity('adult','trim');
   adult.addBetweenCondition('en','with','adults and');
   adult.addBetweenCondition('en','and','adults');

   const child = manager.addTrimEntity('child','trim');
   child.addBetweenCondition('en','and','childs');
   child.addBetweenCondition('en','with','childs and');

   const start_date = manager.addTrimEntity('start_date','trim');
   start_date.addBetweenCondition('en','from','to');
   start_date.addBetweenCondition('en','from','till');

   const end_date = manager.addTrimEntity('end_date','trim');
   end_date.addBetweenCondition('en','to','with');
   end_date.addBetweenCondition('en','till','with');

在训练了模型并向机器人发出语音之后,NER管理器无法从语音中提取实体。话语示例:

   i am planning to visit europe from 21 june to 25 june with 2 adults and 3 childs

您能建议一种更好的方法吗? 这是指向软件包https://www.npmjs.com/package/node-nlp

的链接

0 个答案:

没有答案