4
写在前面
NLP自动化工具由马力老师和郑二佳老师交接给我和唐泓婧老师,我主要负责后端python代码,这里主要总结一下交接之后的改动和对一部分有改动的代码的逻辑解释,没有改动的部分可以在马力的交接文档中查看。
2 部分工具的内容
这一部分会说明每个工具在后端调用的函数,及该函数的作用。
1) 相似话术筛查工具
主要功能:筛查出意图可能有问题的话术供业务方调整。
调用函数包括:
IntentBase.intent_url.intentckeck_url
从网页中读取要检查的文件,先去重,返回给网页去重的个数,再与df中的合法意图比较,分为错误意图文档和正确意图文档,输出这两个文档,并返回错误意图文档给网页展示。其中,df文件从basepath路径中读取。
SimilarSentence.SimilarSentence_url.similarsentence
根据chose选择入库方式,然后遍历上传的增量文件中的话术,在es库中搜索recall_size个匹配话术,按一定规则过滤,然后用lr模型计算相似度,返回高于阈值的话术条,筛选出意图不正确的话术条,再根据相似度降序排序,输出前filter_num个话术条,最后删除新建的索引。
2) 单条跑测相似话术工具
主要功能:输入单条话术,找出最相似的多条话术及对应意图,供业务方标注参考。
调用函数包括:
SimilarSentence.singleSimilarSentence.singleSimilarSentence.do_similarsentence
从前端接收查询话术列表,存到data文件夹下,再用pandas读出来,在指定的es库中搜索recall_size个匹配话术,按一定规则过滤,然后用lr模型计算相似度,返回相似度最高的话术和其对应的意图。
3) 相似话术意图匹配工具
主要功能:输入批量话术,找出最相似话术及对应意图,供业务方标注参考。
调用函数包括:
SimilarSentence.batchSimilarSentence.batchSimilarSentence.do_similarsentence
从前端接收查询话术列表,存到data文件夹下,再用pandas读出来,在指定的es库中搜索recall_size个匹配话术,过滤掉话术相同并且意图也相同的,然后用lr模型计算相似度,返回高于阈值的话术条。
4) 入库数据删除替换工具
主要功能:对入库数据的删除替换。
调用函数包括:
ReplaceIntent.replace_intent
在入库数据中删除指定指定意图对应的话术,用通用意图库更新入库数据(如果在入库数据中存在该话术就更新,如果不存在就添加进去)。
5) 文件质检工具
主要功能:质检出user_say相同、intent不同的问题话术。
调用函数包括:
SameSenDiffIntent.SameSenDiffIntent_url.diffintent
对所有user_say先去语气词,将原始user_say保存到第三列,再对user_say和intent两列去重,然后筛选出user_say相同、intent不同的话术,分别输出筛选出的话术和剩下的话术,工具中可以读取后这两个文件,并且在界面中展示前一个文件。
6) 文件去重工具
主要功能:去重和筛除错误意图文档。
调用函数包括:
IntentBase.intent_url.intentckeck_url
从网页中读取要检查的文件,先去重,返回给网页去重的个数,再与df中的合法意图比较,分为错误意图文档和正确意图文档,输出这两个文档,并返回错误意图文档给网页展示。df文件从basepath路径中读取。
7) 数据新增替换整理工具
主要功能:更新es中的意图库。
调用函数包括:
IntentBase.intent_url.intentckeck_url
同文件去重工具。
SameSenDiffIntent.SameSenDiffIntent_url.samesendiffintent
先去重,然后筛选出user_say相同、intent不同的话术,分别输出筛选出的问题话术和剩下的话术。这一步之后可以在页面中操作问题话术,下载矫正后文件。
databseimport.dataimport_url.es_import
接收前端的action,如果是新增入库就做入库操作,如果是全量入库就删除库再重建库。这里是es和mysql同时做相应的操作。这一步通过入库整理按钮触发,之后没有下载按钮。
8) 产险意图库筛查工具
主要功能:类似寿险的质检工具,筛查出user_say相同、intent不同的问题话术。
调用函数包括:
cx_intent_database_inspection.code.cx_intent_database_inspection2.format_trans
预处理(包括去语气词,去符号),将原始话术保存到第三列;找到并输出user_say相同、intent不同的话术(存在原始话术不同,预处理之后相同的情况,这时候两个话术应该都要输出,所以预处理之后不能做去重操作)。
3 脚本的说明
1) 敏感词统计
包括敏感词的统计和查找两个脚本。
代码见下方压缩包:
2) 词频统计
用jieba分词,然后统计词频,并按词频降序排列。