本发明属于数据处理,具体涉及一种基于nlp的智慧问答方法。
背景技术:
1、目前,在各个各业中均存在大量的客服,客服不仅是服务业中人数较多的岗位,其流动性大于其他岗位。每当客服离职后,都需要新招客服,并进行一定时间的培训后,客服才能够上岗作业,导致消耗的时间成本较大。并且在现有的客服往往通过打字跟客户交流问题,但是,采用打字的形式交流问题,导致效率较低的问题产生。
技术实现思路
1、针对现有技术中的上述不足,本发明提供的一种基于nlp的智慧问答方法解决了现有技术中存在的问题。
2、为了达到上述发明目的,本发明采用的技术方案为:一种基于nlp的智慧问答方法,包括:
3、获取包括实体数据以及实体关系的语料数据,并对语料数据进行预处理,得到基本支持数据;
4、采用nlp模型构建实体抽取模型以及实体关系抽取模型,并对实体抽取模型以及实体关系抽取模型进行训练,得到训练完成的实体抽取模型以及实体关系抽取模型;
5、根据所述基本支持数据,采用训练完成的实体抽取模型以及实体关系抽取模型,构建问答数据库;
6、获取用户所发送的提问语句信息,得到待分析文本,以待分析文本构建查询语句,并根据所述查询语句在所述问答数据库中匹配目标实体数据以及目标实体关系;
7、根据目标实体数据以及目标实体关系,生成提问语句信息对应的回答信息,完成智慧问答。
8、在一种可能的实施方式中,获取包括实体数据以及实体关系的语料数据,并对语料数据进行预处理,得到基本支持数据,包括:
9、通过网络爬虫工具获取包括实体数据以及实体关系的多条语料数据,或者通过人机交互的方式获取包括实体数据以及实体关系的多条语料数据,或者获取语料数据库中包括实体数据以及实体关系的多条语料数据;
10、将获取的语料数据转换为txt格式,得到转换后的语料数据,并对转换后的语料数据进行清洗、分割处理以及命名实体数据增强处理,得到基本支持数据。
11、在一种可能的实施方式中,对转换后的语料数据进行清洗、分割处理以及命名实体数据增强处理,得到基本支持数据,包括:
12、对转换后的语料数据进行重复内容的去除,得到第一语料数据;
13、调用第三方智能纠错api对第一语料数据进行纠错,得到第二语料数据;
14、采用正则表达式对第二语料数据中冗余词汇进行剔除,得到第三语料数据,所述冗余词汇用于表征预先设定的待剔除词汇;
15、采用jieba分词工具对第三语料数据进行分词,再去除第三语料数据中的停用词,得到第四语料数据;
16、按照预设文本长度限制阈值对第四语料数据进行分割,得到至少一个第五语料数据;
17、将第五语料数据中的文本实体词汇进行近义词替换,或者随机交换两个相邻文字的位置,或者通过第三方翻译软件对第五语料数据进行回译增强,得到增强语料数据;
18、将第五语料数据以及增强语料数据共同作为基本支持数据。
19、在一种可能的实施方式中,采用nlp模型构建实体抽取模型以及实体关系抽取模型,并对实体抽取模型以及实体关系抽取模型进行训练,得到训练完成的实体抽取模型以及实体关系抽取模型,包括:
20、采用nlp模型中的albert-bilstm-crf模型构建实体抽取模型,采用nlp模型中的mutil att_bigru模型构建实体关系抽取模型;
21、采用训练数据对实体抽取模型以及实体关系抽取模型进行训练,得到训练完成的实体抽取模型以及实体关系抽取模型。
22、在一种可能的实施方式中,所述实体抽取模型包括第一输入层、albert层、bilstm层、crf层以及第一输出层;
23、所述实体关系抽取模型包括第二输入层、表示层、bigru层、字符注意力层、语句注意力层以及输出层;
24、采用训练数据对实体抽取模型以及实体关系抽取模型进行训练,包括:
25、获取训练语料数据,对训练语料数据进行预处理,得到预处理后的训练语料数据;
26、采用bio标注方式对预处理后的训练语料数据进行标注,得到预处理后的训练语料数据以及对应bio标注;
27、根据预处理后的训练语料数据以及对应bio标注,对实体抽取模型进行训练,得到训练完成的实体抽取模型;
28、以预处理后的训练语料数据进行关系标注,得到预处理后的训练语料数据以及对应的关系标注;
29、根据预处理后的训练语料数据以及对应的关系标注,对实体关系抽取模型进行训练,得到训练完成的实体关系抽取模型。
30、在一种可能的实施方式中,根据预处理后的训练语料数据以及对应bio标注,对实体抽取模型进行训练,得到训练完成的实体抽取模型,包括:
31、将预处理后的训练语料数据划分为第一训练集以及第一验证集;
32、将所述第一训练集中的训练语料数据作为实体抽取模型的实际输入,将训练语料数据的bio标注作为实体抽取模型的期望输出,采用改进的mbo算法对实体抽取模型的网络参数进行训练若干次;
33、将所述第一验证集中的训练语料数据作为实体抽取模型的实际输入,获取实体抽取模型的第一训练结果,所述第一训练结果包括训练完成或者训练未完成;
34、若第一训练结果为训练完成,则将此时的网络参数作为实体抽取模型的最终网络参数,得到训练完成的实体抽取模型;若第一训练结果为训练未完成,则根据第一训练集重新进行训练,直至第一训练结果为训练完成,获取训练完成的实体抽取模型。
35、在一种可能的实施方式中,根据预处理后的训练语料数据以及对应的关系标注,对实体关系抽取模型进行训练,得到训练完成的实体关系抽取模型,包括:
36、将预处理后的训练语料数据划分为第二训练集以及第二验证集;
37、将所述第二训练集中的训练语料数据作为实体关系抽取模型的实际输入,将训练语料数据的关系标注作为实体关系抽取模型的期望输出,采用改进的mbo算法对实体关系抽取模型的网络参数进行训练若干次;
38、将所述第二验证集中的训练语料数据作为实体关系抽取模型的实际输入,获取实体关系抽取模型的第二训练结果,所述第二训练结果包括训练完成或者训练未完成;
39、若第二训练结果为训练完成,则将此时的网络参数作为实体关系抽取模型的最终网络参数,得到训练完成的实体关系抽取模型;若第二训练结果为训练未完成,则根据第一训练集重新进行训练,直至第二训练结果为训练完成,获取训练完成的实体关系抽取模型。
40、在一种可能的实施方式中,改进的mbo算法,包括:
41、a1、随机生成待训练模型的网络参数,得到初始个体;
42、a2、随机生成n个初始个体,得到初始种群;
43、a3、获取初始种群中每个个体的适应度值,并将初始种群中的个体按适应度值大小排序,将前np1个个体作为第一子种群,将后np2个个体作为第二子种群;其中,np1=ceil(p*np),np2=np-np1,np表示初始种群中个体总数,p表示迁移率,且p=5/12,ceil表示取整函数;
44、a4、设置第一计数器t=1、第二计数器i=1以及第三计数器j=1;
45、a5、取出第t次训练时第一子种群中第i个个体并令k的初始值为1;
46、a6、获取个体对应的第一更新指标参数r1=rand*1.2,rand表示(0,1)中的随机数;
47、判断第一更新指标参数r1是否小于或者等于迁移率p,若是,则对个体中第k个值进行第一更新,并进入步骤a7,否则对个体中第k个值进行第二更新,并进入步骤a7;
48、所述第一更新包括:
49、a611、对个体中第k个值更新为:
50、
51、其中,表示个体中第k个值更新后的值,k=1,2,…,k,k表示待训练模型的网络参数总数,表示当前适应度值最大的个体中第k个值,表示第一子种群中第一随机个体的第k个值,表示第一子种群中第二随机个体的第k个值,表示第一子种群中第三随机个体的第k个值;
52、a612、判断包括的个体的适应度是否大于包括的个体的适应度,若是,则接收对个体中第k个值的更新,否则拒绝对个体中第k个值的更新;
53、所述第二更新包括:
54、a621、对个体中第k个值更新为:
55、
56、其中,表示第一子种群中第四随机个体的第k个值,且r1、r2、q1以及q2互不相同;
57、a622、判断包括的个体的适应度是否大于包括的个体的适应度,若是,则接收对个体中第k个值的更新,否则拒绝对个体中第k个值的更新;
58、a7、判断k的值是否等于或者大于k,若是,完成对个体的更新,则进入步骤a8,否则返回步骤a6;
59、a8、判断第二计数器i是否等于或者大于np1,若是,则进入步骤a9,否则令第二计数器i的计数值加一,并返回步骤a5;
60、a9、取出第t次训练时第二子种群中第j个个体并令k的初始值为1;
61、a10、获取个体对应的调整率bar为:
62、bar=λ+μt
63、
64、
65、其中,λ表示第一常数因子,μ表示第二常数因子,tmax表示最大迭代次数,barmin表示调整率的下限,barmax表示调整率的上限;
66、a11、获取第二更新指标参数为r2=rand,并判断第二更新指标参数r2是否小于或者等于迁移率p,若是,则对个体进行第三更新,并进入a12,否则对个体进行第四更新,并进入a12;
67、所述第三更新包括:
68、a1111、对个体中第k个值更新为:
69、
70、其中,表示个体中第k个值更新后的值,表示第t轮训练时适应度值最大的个体中第k个值;
71、a1112、判断包括的个体的适应度是否大于包括的个体的适应度,若是,则接收对个体中第k个值的更新,否则拒绝对个体中第k个值的更新;
72、所述第四更新包括:
73、a1121、对个体中第k个值更新为:
74、
75、其中,表示第二子种群中随机个体的第k个值;
76、a1122、判断包括的个体的适应度是否大于包括的个体的适应度,若是,则接收对个体中第k个值的更新,否则拒绝对个体中第k个值的更新;
77、a12、判断第二更新指标参数r2是否大于调整率bar,若是,则将个体中第k个值更新为否则直接进入步骤a13;其中,dxk表示随机步长,α表示权重因子,smax表示最大步长;
78、a13、判断k的值是否等于或者大于k,若是,则进入步骤a14,否则令k的计数值加一,并返回步骤a11;
79、a14、重新获取第一子种群以及第二子种群中每个个体的适应度值,并确定适应度值最大的l个目标个体,对目标个体进行变异更新,该变异更新为:
80、
81、其中,表示第t次训练时目标个体中第k个值,表示更新后的表示当前适应度最大的个体中第k个值,cauchy(0,1)表示标准柯西分布产生的随机数;
82、a15、判断第一计数器t是否等于或者大于最大迭代次数tmax,若是,则将此时适应度最大的个体作为待训练模型的最终网络参数,否则领第一计数器t的计数值加一,并返回步骤a5。
83、在一种可能的实施方式中,根据所述基本支持数据,采用训练完成的实体抽取模型以及实体关系抽取模型,构建问答数据库,包括:
84、采用训练完成的实体抽取模型识别基本支持数据中的实体数据,以实体数据作为图谱节点;
85、采用训练完成的实体关系抽取模型识别基本支持数据中的实体关系数据,以实体关系数据作为图谱节点之间的连接边,得到知识图谱数据;
86、将所述知识图谱数据作为问答数据库。
87、在一种可能的实施方式中,以待分析文本构建查询语句,并根据所述查询语句在所述问答数据库中匹配目标实体数据以及目标实体关系,包括:
88、对待分析文本进行分词、实体抽取以及实体关系抽取操作,得到抽取数据;
89、以抽取数据为基础,生成查询语句,并根据查询语句在问答数据库中匹配目标实体数据以及目标实体关系。
90、本发明提供的一种基于nlp的智慧问答方法,通过构建知识图谱,从而可以确定各类实体以及实体之间的关系,当用户存在疑问时,通过用户输入的问句构建查询语句,从而可以查询问句对应的实体以及实体之间的关系,产生问句对应的答案,能够提升客服效率,并且减小时间成本的开销。