我正在使用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
的链接