学习闭环--DataKit挖掘对话日志攻略
tiancorn 发布于2019-05 浏览:7075 回复:10
5
收藏
最后编辑于2019-07

今天给大家介绍一个从对话日志中挖掘对话训练样本来优化「对话技能」模型理解效果的小工具。目标是帮助大家低成本地把模型理解效果从80分往90分,从90分往95分去优化

使用该工具需要开发者已经在UNIT平台上积累了大量了的对话日志(可以在自己的业务系统里记录、积累UNIT的对话日志),且最好是生产环境的日志,即产品在正式线上积累的对话日志。

下面介绍详细的方法:

1、周期性的在UNIT平台下载生产环境的日志

比如一周一次、一个月一次。这里需要注意的是:下载的日志最好是生产环境的,如果沙盒环境的对话日志是真实的用户对话(非内部测试的)也可以用:

操作步骤:进入技能的「对话日志」页面——>选择「生产环境」——>点击右上角的「导出日志明细」——>时间范围选择最近一周(这里大家根据自己的数量灵活调整,定期下载固定周期的日志),导出文件类型选择「JSON文件」,确定——>下载导出的文件

2、执行挖掘对话日志的Python脚本挖掘日志

比如上面下载的对话日志文件为:unit_1000.json.txt

执行命令:python extract_train_data.py  unit_1000.json.txt  1正例样本.txt  2负例样本.txt  3无结果样本.txt

上述Python代码下载链接:https://pan.baidu.com/s/16g9l40aqT8GdcGzDLWB5Yw 密码:0p6t

需要在Python2.7 环境下运行。

3.对挖掘出来对话样本文件进行后续处理

3.1、「1正例样本.txt」一般情况下,可不进行review,直接导入对话技能的样本集里作为训练数据即可(已经是标注好的格式)。

3.2、「2负例样本.txt」 为当前平台识别为SYS_OTER的样本,可简单review后在对话技能的训练数据中创建一个单独的负例样本集,导入该文件,作为负例训练数据,再下次训练时选择使用。

3.3、「3无结果样本.txt」为当前平台没有解析结果的对话样本,这些建议重点关注,看看那些应该识别却没有识别,摘出来导入样本集进行人工标注。哪些样本不应该识别?导入负例样本集,标注成SYS_OTHER意图。

总结

1、周期性的下载存储平台上的JSON格式的对话日志;2、周期性从日志里挖掘对话样本;3、针对不同样本继续不同处理。这样你的对话技能模型效果会更上一层楼。

另外,需要了解的是:下载、挖掘日志的周期可以根据技能的对话日志量以及能挖掘出来的正例样本量来评估,一般情况下挖掘出1000条以上的正例样本结合已有的样本和对话模板用来训练模型才能在模型上效果上带来正向的提升。而需要从多少条对话日志、多长时间段的对话日志里才能挖掘出1000条正例样本,这主要取决于您技能的使用情况(比如生产环境的会更好,因为它对应你产品的正式使用环境,对话量大,对话数据真实),也与对话场景、模型已有的对话效果有关系,需要开发者进行一些尝试,找到符合自己的一个日志挖掘周期。

 

附:UNIT2.0日志分析说明  https://ai.baidu.com/forum/topic/show/865317

收藏
点赞
5
个赞
共10条回复 最后由果断叫小黑回复于2019-07
#11果断叫小黑回复于2019-07

学习

0
#10tiancorn回复于2019-07
#8 提问的学生回复
请问1正例样本.txt   2负例样本.txt   3无结果样本.txt 三个文件是怎么得到的?
展开

先建好3个这样文件名的txt文件放在和python脚本同目录的文件下

0
#9188******00回复于2019-07

学习一下

0
#8提问的学生回复于2019-07

请问1正例样本.txt   2负例样本.txt   3无结果样本.txt 三个文件是怎么得到的?

0
#7rose20135188回复于2019-06

这个好,我得认真学习一下,谢谢楼主分享。

0
#6tiancorn回复于2019-05
#5 kusoft8181回复
是python 3写的吗?

Python2.7

0
#5kusoft8181回复于2019-05

是python 3写的吗?

0
#4有钱给钱2回复于2019-05

请问最新的技能管理API文档什么时候更新出来?现在通过API创建技能都是对话技能

0
#3liguanghui2588回复于2019-05

这个动画般教程挺好,入门超方便

0
#2tiancorn回复于2019-05

欢迎试用、留言交流

0
TOP
切换版块