7-主要功能模块概要设计
7-1-模型处理模块概要设计
7-1-1-逻辑设计
7-1-1-1-功能概述
模型处理模块
主要完成的功能是对录音信息文件
进行模型规则匹配
,
并将匹配后的结果
存放在Onest上的指定目录
7-1-1-2-调用时序图
例如:
新建一个模型,
文本规则:宽带#办理 (宽带和办理之间的字符数小于20)
静音规则:关键字“办理”后出现5秒静音
模型匹配步骤为:
1. 将录音信息文件暂存到ES集群;
2. 从mysql数据库获取模型规则,
将文本规则转化成lucene语法,查询es集群;
如果文本规则需要使用来自第三方数据的维度信息,
需要国金方
将第三方数据与录音信息在ES集群
上建立索引,
供文本规则调用;
3. 根据获取到的ES数据,逐条在内存中计算是否有关键字“办理”后出现的5秒静音;
4. 最终筛选的数据进行标记,生成模型匹配结果文件,返回到Onest上,通知国金
;
5. 删除索引上的临时数据。
7-1-1-3-数据视图
说明:
MODEL_INFO:为模型数据类,保存的模型信息
MODEL_DEATIL:模型详细数据类,保存的是模型片段信息
TASK_INFO:任务信息,保存的是模型上线任务信息
MODEL_TASK_T:模型与任务的关联信息
7-1-2-物理设计
7-1-2-1-组件部署
模型处理服务器通过zookeeper来实现任务的调度
7-1-2-2-通讯设计
模型系统内部通过dubbo的方式来调用。
对外则采用http restful协议
7-1-3-系统的启动与关闭设计
航信模型处理系统
主要涉及对外接口服务
和模型处理能力平台
两个业务模块。
7-1-3-1-模型处理能力平台启动设计
启动步骤:
1-es集群状体检测
2-数据库连接检测和模型数据信息检测
3-Onest读写检测
7-1-3-2-接口服务启动设计
启动步骤:
1-Onest读写状态检测
2-模型能力平台启动状态检测
3-国金接口服务启动状态检测
7-1-3-3-模型处理能力平台关停设计
关停步骤:
1-接口服务状态检测
2-任务完成状态检测
7-1-3-4-接口服务关停设计
关停步骤:
1-启动关停检测程序
2-关停任务接收接口
3-关停任务回传接口
7-1-4-错误/异常设计
系统异常主要包含系统启停异常
,接口服务异常
,模型处理业务异常
三个部分。
1-系统启停异常:
系统在启停的过程中检测环境的异常,系统遵循重试3次的机制,
3次均出现检测异常时,系统记下详细的异常日志和错误码,停止启停。
2-接口服务异常
接口服务分为通知和任务处理。
对于通知类的服务,当出现异常时,系统遵循重试3次的机制。
对于任务处理类的接口服务,出现异常时,
记录详细的日志和接口出入参数,但不会重试。
并将详细的错误概述以报警邮件的方式进行推送。
3-模型处理业务异常
出现异常时,记录详细的日志和接口出入参数,但不会重试。
并将详细的错误概述以报警邮件的方式进行推送。
7-1-5-日志设计
模型处理系统统一采用slf4j+logback作为日志系统。
采用info级别记录系统日志。
1-正常的业务调用日志
级 别:INFO
记录方式:异步
记录位置:日志文件
记录内容:业务逻辑开始点,业务逻辑结束点,业务逻辑关键位置,业务逻辑易错位置
日志格式:发生时间,接口名称,处理逻辑名称,入参JSON串,系统返回参数。
2-异常的业务调用日志
级 别:WARN/ERROR
记录方式:异步
记录位置:日志文件
记录内容:业务逻辑异常点
日志格式:
发生时间,接口名称,处理逻辑名称,入参JSON串,系统返回参数,异常详细描述,错误码。
7-2-来电原因分析建模概要设计
7-2-1-方案一人工建模
通过参考在线相关业务知识以及大量的相关录音测听,
结合业务知识进行通话过程中客户和客服代表
表达相关的关键词或说法的总结,
依此进行模型建立、模型测听优化从而针对性对通话进行来电原因归类。
如“业务办理”相关模型建立,
根据现有业务并通过前期录音测听总结出业务办理相关录音中
坐席和客户关于业务办理的需求以及
业务办理的相关方式方法,
进行业务和办理的关键词及说法的收集,
再根据收集的资料进行模型建立,
最后进行模型优化使之满足准确率及覆盖率的要求。
7-2-2-方案二机器学习
7-2-1-1-功能描述
通过统计机器学习技术和语义理解技术,
计算处理语音转写后的文本,得到每通电话的来电原因。
首先,系统对文本进行语义抽取,提取每段音频的语义,
以及语义相关的标签信息;
其次,在来电原因库中搜索出与当前通话文本最接近的n个来电原因结果;
最后,系统对语义搜索的结果进行排序,最终获得最佳的结果。
具体的来电原因判别的应用场景中,
由于一通电话的来电原因通常有多个,
系统取语义搜索排序后的前n个结果,
判定为本通电话的来电原因。
7-2-1-2-逻辑设计
逻辑说明:
来电原因识别模块包括语义抽取、语义搜索、结果排序三个步骤:
a)语义抽取
首先针对电话语音转写后的文本,采用分词算法和消岐算法进行分词处理,提取该通电话文本对应的业务关键词;
其次使用多义词词义预测模型对业务关键词进行同义词规整,
提取语义,并进行语义消歧,形成多个语义明确的片段;
最后针对提取出的片段获得此片段的语义标签信息。
b)语义搜索
语义搜索模块,
在来电原因索引库中搜索与当前来电最接近的top n个结果,即nBest结果。
语义搜索中最重要的模块是来电原因索引库的建立,
索引库是基于大数据挖掘而成,
该库的建立需要业务方提供每个来电原因对应的原始通话数据,
通常每条来电原因对应200条左右的对话文本,
系统对含有来电原因分类标签的文本进行语义抽取操作,
建立来电原因的语义索引库。
c)结果排序
针对搜索的nBest结果进行排序,
得到各个结果的特征和最终置信度。
该步骤分为两个阶段:
一是语义排序模型建立阶段,
一个是系统对客户的来电原因进行识别阶段。
语义搜索排序模型的建立采用基于learning to rank方法,
训练模型为SVM分类模型,
特征为两个对比通话文本之间的语义距离,
语义距离的远近由对比的语义标签所决定。
二是识别阶段,系统将待识别的来电原因文本进行特征提取,
然后将来电原因文本的特征与各个来电原因语义搜索排序模型进行匹配度计算,
并最终对所有结果进行排序,
排序最高且未被拒识的数据,
即可确定本通电话的来电原因。