发明内容
本发明提供一种基于贝叶斯网络的问答装置、方法及计算机可读存储介 质,其主要目的在于使智能问答过程具备深度推理能力。
为实现上述目的,本发明提供一种基于贝叶斯网络的问答装置,该装置 包括:存储器、处理器,所述存储器上存储有基于贝叶斯网络的问答程序,, 所述基于贝叶斯网络的问答程序被所述处理器执行时实现如下步骤:
参数提取步骤:接收并解析用户通过客户端输入的问句,以从问句中识 别代表用户意图的目标参数和与目标参数相关联的属性参数;
推断步骤:将所述目标参数和属性参数输入预先训练好的贝叶斯网络模 型,利用所述贝叶斯网络模型的有向无环图及条件概率表集合推断得到目标 参数的取值;及
答案生成步骤:将贝叶斯网络模型推断得到的目标参数的取值反馈给用 户。
优选地,所述贝叶斯网络的模型构建步骤具体包括:
从历史业务数据的每一笔历史违约数据中提取违约客户相关联的属性, 计算各属性之间的条件互信息值;
对各属性的条件互信息值降序排序,选择条件互信息值高的属性对作为 节点,遵循不产生环路的原则,构建最大权重跨度树,直到为n个节点选择 n-1条边,构成一个无向无环图;
确定无向无环图中每个节点的根节点,由根节点到子节点的方向为节点 之间的方向,将无向无环图变为有向无环图;及
根据历史业务数据计算所述有向无环图中各个节点所代表的随机变量之 间的条件概率,得到贝叶斯网络模型的条件概率表集合。
优选地,所述参数提取步骤包括:
将提取的目标参数和属性参数转换成标准格式的参数。
优选地,所述答案生成步骤包括:
将贝叶斯网络模型推断得到的目标参数的取值转换为文本,并将文本格 式的结果作为答案反馈至用户。
此外,为实现上述目的,本发明还提供一种基于贝叶斯网络的问答方法, 该方法包括:
参数提取步骤:接收并解析用户通过客户端输入的问句,以从问句中识 别代表用户意图的目标参数和与目标参数相关联的属性参数;
推断步骤:将所述目标参数和属性参数输入预先训练好的贝叶斯网络模 型,利用所述贝叶斯网络模型的有向无环图及条件概率表集合推断得到目标 参数的取值;及
答案生成步骤:将贝叶斯网络模型推断得到的目标参数的取值反馈给用 户。
优选地,所述贝叶斯网络的模型构建步骤具体包括:
从历史业务数据的每一笔历史违约数据中提取违约客户相关联的属性, 计算各属性之间的条件互信息值;
对各属性的条件互信息值降序排序,选择条件互信息值高的属性对作为 节点,遵循不产生环路的原则,构建最大权重跨度树,直到为n个节点选择 n-1条边,构成一个无向无环图;
确定无向无环图中每个节点的根节点,由根节点到子节点的方向为节点 之间的方向,将无向无环图变为有向无环图;及
根据历史业务数据计算所述有向无环图中各个节点所代表的随机变量之 间的条件概率,得到贝叶斯网络模型的条件概率表集合。
优选地,所述参数提取步骤包括:
将提取的目标参数和属性参数转换成标准格式的参数。
优选地,所述答案生成步骤包括:
将贝叶斯网络模型推断得到的目标参数的取值转换为文本,并将文本格 式的结果作为答案反馈至用户。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述 计算机可读存储介质上存储有基于贝叶斯网络的问答程序,所述基于贝叶斯 网络的问答程序被处理器执行时实现如上所述的基于贝叶斯网络的问答方法 的步骤。
相较于现有技术,本发明提出的基于贝叶斯网络的问答装置、方法及计 算机可读存储介质,可通过贝叶斯网络模型,对用户输入的问句进行因果推 理,并基于推理结果回答用户提出的问题。通过自然对话的方式理解用户需 求,提升用户交互体验。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限 定本发明。
本发明提供一种基于贝叶斯网络的问答装置1。参照图1所示,为本发明 基于贝叶斯网络的问答装置1较佳实施例的示意图。
在本实施例中,基于贝叶斯网络的问答装置1可以是智能手机、平板电 脑、电子书阅读器、便携计算机等具有运算功能的电子设备。
该基于贝叶斯网络的问答装置1包括存储器11、处理器12、显示器13、 通信总线14及网络接口15。该装置通过网络从业务数据库获取业务数据。
存储器11包括内存及至少一种类型的可读存储介质。内存为移动终端的 运行提供缓存;可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等 的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述基于 贝叶斯网络的问答装置1的内部存储单元,例如该基于贝叶斯网络的问答装 置1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述基于贝叶 斯网络的问答装置1的外部存储设备,例如所述基于贝叶斯网络的问答装置1 上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。
在本实施例中,所述存储器11的可读存储介质通常用于存储安装于所述 基于贝叶斯网络的问答装置1的应用软件及历史业务数据,例如基于贝叶斯 网络的问答程序10、客户历史违约数据等。所述存储器11还可以用于暂时地 存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代 码或处理数据,例如执行基于贝叶斯网络的问答程序10,以实现下述基于贝 叶斯网络的问答方法中的任一步骤。
显示器13在一些实施例中可以是LED显示器、液晶显示器、触控式液 晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸 器等。显示器13用于显示在基于贝叶斯网络的问答装置1中处理的结果以及 可视化的用户界面。
通信总线14用于实现这些组件之间的连接通信。
网络接口15主要用于连接服务器,与服务器进行数据通信。
优选地,该基于贝叶斯网络的问答装置1还可以包括用户接口,包括标 准的有线接口、无线接口。可选的用户接口可以包括输入单元比如键盘 (Keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能 的设备、语音输出装置比如音响、耳机等。
优选地,当基于贝叶斯网络的问答装置1为移动电子装置,例如手机时, 还可以包括至少一种传感器,比如光传感器、运动传感器以及其他传感器。 具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可 根据环境光线的明暗来调节显示面板的亮度,接近传感器可在手机移动到耳 边时,关闭显示面板和/或背光。作为运动传感器的一种,加速计传感器可检 测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及 方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿 态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的 指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿 度计、温度计、红外线传感器等其他传感器,在此不再赘述。
图1仅示出了具有组件11-14以及基于贝叶斯网络的问答程序10的基于 贝叶斯网络的问答装置1,但是应理解的是,并不要求实施所有示出的组件, 可以替代的实施更多或者更少的组件。
如图2所示,是图1中基于贝叶斯网络的问答程序10较佳实施例的模块 图。
在本实施例中,所述基于贝叶斯网络的问答程序10可以被分割成参数提 取模块110、推断模块120及答案生成模块130。上述多个模块被存储于所述 存储器11中,并由一个或多个处理器12所执行,以完成本发明。本发明所 称的模块是指能够完成特定功能的一系列计算机程序指令段。以下描述将具 体介绍所述参数提取模块110、推断模块120及答案生成模块130所实现的操 作和功能。
所述参数提取模块110,用于接收并解析用户通过客户端输入的问句,以 从问句中识别代表用户意图的目标参数和与目标参数相关联的属性参数。
对于一段给定的文本,参数提取模块110会将特定文本解析成标准格式 的参数,主要分为规则模板单元111和概率判别单元112两个部分。
规则模板单元111主要是使用正则表达式和特定的语法结构进行配置, 其中正则表达式用于参数的提取,而特殊的语法结构用于对提取的参数进行 标准格式的映射。应用一个正则表达式及预设的语法结构,利用该正则表达 式从用户输入的自然语言问句所包含的字符串中提取参数,并将提取的参数 解析成预设的语法结构输出。正则表达式是对字符串操作的一种逻辑公式, 用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符 串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。例如,“年龄”的 规则模板如下:
也就是说,将客户年龄进行分段赋值,小于25岁赋值为0,25-30岁为 1,31-35岁为2等。
同理,将客户的学历情况也进行分类赋值,学历为小学-初中的赋值为0, 高中为1,本科为2,硕士研究生为3等。
同理,将客户收入情况也进行分类赋值,年收入为50000元以下赋值为0, 50000-100000元为1,100000-200000元为2,超过200000元为3。
概率判别单元112主要是通过样本及其对应的分类模型进行训练,用于 计算一段文本多个潜在结果的概率,并选择一个最能代表用户意图的结果进 行解析。利用机器学习模型从该自然语言问句所有的数据结构中筛选出一个 最符合用户意图的数据结构。例如,该机器学习模型可以为基于朴素贝叶斯 分类模型,朴素贝叶斯分类模型基于大量的自然语言问句与数据结构训练语 料的训练得到。例如,用户输入问题:"贷10万XXXX银行个人购车贷款每 月要还多少钱"。用户意图为“利息计算”,规则模板单元111提取参数“XXXX 银行”、“个人购车贷款”、“月”、“10万”。生成的数据结构可能包括:
数据结构1:(!fb:property.context.LoanAmountRange(argmax(number 1)(number 10)(and(fb:type.loan.loanN fb:loanN.gerengouchedaikuan1) (fb:type.loan.company fb:company.XXXX))(reverse(lambda x (!fb:rank.entity.rank(var x))))))
数据结构2:(!fb:property.context.MonthFeeRate (!fb:property.context.LoanAmountRange fb:company.XXXX))
数据结构3:fb:company.XXXX
数据结构4:(*(!fb:attribute.attribute.MonthFeeRateD (!fb:property.context.MonthFeeRate(and(and(fb:type.loan.loanN fb:loanN.gerengouchedaikuan1)(fb:type.loan.company fb:company.XXXX)) (fb:property.context.LoanAmountRange (fb:attribute.attribute.MaxLoanAmountRange(>=(number 100000)))))))(number 100000))
该4个数据结构经过朴素贝叶斯分类模型后,概率判别单元112会从中 筛选出一个数据结构作为最能代表用户意图的数据结构。
进一步地,所述参数提取模块110,还用于将提取的目标参数和属性参数 转换成标准格式的参数。例如,问句“年收入300000元的硕士研究生的逾期率是多少?”中,对参数的标准映射情况包括:年收入-recent_income-300000 元-3,学历-education-硕士-3,还款情况-debt-逾期-1。那么,该问句会被解析 如下:
所述推断模块120,用于将所述目标参数和属性参数输入预先训练好的贝 叶斯网络模型,利用所述贝叶斯网络模型的有向无环图及条件概率表集合推 断得到目标参数的取值。
贝叶斯网络的推理是利用贝叶斯网络的结构及其条件概率表,在给定节 点属性值后计算其他某些节点取值的概率。我们采用的是消息传递算法进行 精确推理,它主要是给每个节点分配一个处理器,每个处理器会利用相邻节 点传递来的概率和存储于该处理器内部的条件概率进行计算,求得自身的后 验概率,并将计算结果向相邻节点传播。
例如,当问句变为“年收入300000元的客户的逾期率是多少?”则,问句 中出现的客户属性只有年收入-recent_income-300000元-3,还款情况-debt-逾 期-1。根据上述有向无环图和条件概率表,当客户的年收入确定时,可以根据 客户的学历情况对客户还款逾期的概率进行推断,也就是说,不同的学历情 况会影响客户还款逾期的概率。
所述答案生成模块130,用于将贝叶斯网络模型推断得到的目标参数的取 值反馈给用户。
当用户将问句输入贝叶斯网络模型之后,会得到目标参数的取值如下:
key:income=3,education=3;debt=1;value:0.01935
为了使结果更为直观,答案生成模块130将输出的标准数据格式的目标 参数取值转换为文本,并将文本形式的结果作为答案反馈给用户。上述目标 参数取值转换后的结果如下:
年收入300000元的硕士研究生的逾期率是1.935%。
本发明之基于贝叶斯网络的问答***,可以通过自然对话的方式理解用 户需求,并根据用户的问句进行深度推理,提升用户人机交互体验。
此外,本发明还提供一种基于贝叶斯网络的问答方法。参照图3所示, 为本发明基于贝叶斯网络的问答方法较佳实施例的流程图。该方法可以由一 个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,基于贝叶斯网络的问答方法包括:
步骤S10,接收并解析用户通过客户端输入的问句,以从问句中识别代表 用户意图的目标参数和与目标参数相关联的属性参数。
对于一段给定的文本,将特定文本解析成标准格式的参数,主要分为规 则模板和概率判别两个部分。
规则模板主要是使用正则表达式和特定的语法结构进行配置,其中正则 表达式用于参数的提取,而特殊的语法结构用于对提取的参数进行标准格式 的映射。应用一个正则表达式及预设的语法结构,利用该正则表达式从用户 输入的自然语言问句所包含的字符串中提取参数,并将提取的参数解析成预 设的语法结构输出。正则表达式是对字符串操作的一种逻辑公式,用事先定 义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个 “规则字符串”用来表达对字符串的一种过滤逻辑。例如,“年龄”的规则模板如 下:
也就是说,将客户年龄进行分段赋值,小于25岁赋值为0,25-30岁为 1,31-35岁为2,…。
同理,将客户的学历情况也进行分类赋值,学历为小学-初中的赋值为0, 高中为1,本科为2,研究生为3,…。
同理,将客户收入情况也进行分类赋值,年收入为50000元以下赋值为0, 50000-100000元为1,100000-200000元为2,超过200000元为3。
概率判别主要是通过样本及其对应的分类模型进行训练,用于计算一段 文本多个潜在结果的概率,并选择一个最能代表用户意图的结果进行解析。 利用机器学习模型从该自然语言问句所有的数据结构中筛选出一个最符合用 户意图的数据结构。例如,该机器学习模型可以为基于朴素贝叶斯分类模型, 朴素贝叶斯分类模型基于大量的自然语言问句与数据结构训练语料的训练得 到。例如,用户输入问题:"贷10万XXXX银行个人购车贷款每月要还多少 钱"。用户意图为“利息计算”,规则模板单元111提取参数“XXXX银行”、“个人购车贷款”、“月”、“10万”。生成的数据结构可能包括:
数据结构1:(!fb:property.context.LoanAmountRange(argmax(number 1)(number 10)(and(fb:type.loan.loanN fb:loanN.gerengouchedaikuan1) (fb:type.loan.company fb:company.XXXX))(reverse(lambda x (!fb:rank.entity.rank(var x))))))
数据结构2:(!fb:property.context.MonthFeeRate (!fb:property.context.LoanAmountRange fb:company.XXXX))
数据结构3:fb:company.XXXX
数据结构4:(*(!fb:attribute.attribute.MonthFeeRateD (!fb:property.context.MonthFeeRate(and(and(fb:type.loan.loanN fb:loanN.gerengouchedaikuan1)(fb:type.loan.company fb:company.XXXX)) (fb:property.context.LoanAmountRange (fb:attribute.attribute.MaxLoanAmountRange(>=(number 100000)))))))(number 100000))
该4个数据结构经过朴素贝叶斯分类模型后,概率判别单元112会从中 筛选出一个数据结构作为最能代表用户意图的数据结构。
进一步地,所述步骤S10还包括:将提取的目标参数和属性参数转换成 标准格式的参数。例如,问句“年收入300000元的硕士研究生的逾期率是多少?”中,对参数的标准映射情况包括:年收入-recent_income-300000元-3, 学历-education-硕士-3,还款情况-debt-逾期-1。那么,该问句会被解析如下:
步骤S20,将所述目标参数和属性参数输入预先训练好的贝叶斯网络模型, 利用所述贝叶斯网络模型的有向无环图及条件概率表集合推断得到目标参数 的取值。
贝叶斯网络的推理是利用贝叶斯网络的结构及其条件概率表,在给定节 点属性值后计算其他某些节点取值的概率。
我们采用的是消息传递算法进行精确推理,它主要是给每个节点分配一 个处理器,每个处理器会利用相邻节点传递来的概率和存储于该处理器内部 的条件概率进行计算,求得自身的后验概率,并将计算结果向相邻节点传播。
例如,当问句变为“年收入300000元的客户的逾期率是多少?”则,问句 中出现的客户属性只有年收入-recent_income-300000元-3,还款情况-debt-逾 期-1。根据上述有向无环图和条件概率表,当客户的年收入确定时,可以根据 客户的学历情况对客户还款逾期的概率进行推断,也就是说,不同的学历情 况会影响客户还款逾期的概率。
步骤S30,将贝叶斯网络模型推断得到的目标参数的取值反馈给用户。
当用户将问句输入贝叶斯网络模型之后,会得到目标参数的取值如下:
key:income=3,education=3;debt=1;value:0.01935
为了使结果更为直观,将输出的标准数据格式的目标参数取值转换为文 本,并将文本形式的结果作为答案反馈给用户。上述目标参数取值转换后的 结果如下:
年收入300000元的硕士研究生的逾期率是1.935%。
本发明之基于贝叶斯网络的问答方法,可以通过自然对话的方式理解用 户需求,并根据用户的问句进行深度推理,提升用户人机交互体验。
基于第一实施例提出本发明基于贝叶斯网络的问答方法的第二实施例。 参照图4所示,在本实施例中,图3中所述贝叶斯网络模型的具体构建步骤 包括:
步骤S01,从历史业务数据的每一笔历史违约数据中提取违约客户相关联 的属性,计算各属性之间的条件互信息;
步骤S02,对各属性的条件互信息值降序排序,选择条件互信息值高的属 性对作为节点,遵循不产生环路的原则,构建最大权重跨度树,直到为n个 节点选择n-1条边,构成一个无向无环图;
步骤S03,确定无向无环图中每个节点的根节点,由根节点到子节点的方 向为节点之间的方向,将无向无环图变为有向无环图;及
步骤S04,根据历史业务数据计算所述有向无环图中各个节点所代表的随 机变量之间的条件概率,得到贝叶斯网络模型的条件概率表集合。
构造贝叶斯网络主要是确定随机变量间的拓扑关系形成DAG(Directed AcyclicGraph,有向无环图),采用的方法主要是先确定贝叶斯网络的节点, 然后用大量的训练数据来学习贝叶斯网络的结构。采用TAN(Tree Augmented Naive Bays,树增广的朴素贝叶斯)算法进行结构学习。
训练贝叶斯网络,即进行参数学习,主要是确定条件概率表,即随机变 量间的条件依赖关系。参数学习主要分为完整数据的参数学习和不完整数据 的参数学习,完整数据是指每个实例都具有完整的观测数据,即既有教育数 据又有收入数据等,不完备数据是指某些实例有部分缺失或观测异常,如, 一些人有教育数据,另一些人没有教育数据而有收入数据。通常情况下,都 是不完整数据。完整的观测数据的参数学习采用的是最大似然估计的方法, 对于不完整数据的参数学习采用的是EM算法(Expectation-maximization,最大期望算法)。
根据历史业务数据计算所述DAG中各个节点所代表的随机变量之间的 条件概率,得到贝叶斯网络模型的条件概率表集合。
本实施例中的贝叶斯网络包括一个DAG和一个概率表集合,参照图2b、 2c所示。
在图2b中,DAG中三个节点表示三个随机变量,有向边表示随机变量 间的条件依赖。
在其他实施例中,每个节点代表的随机变量可以是可直接观测变量,也 可以是隐藏变量,所述隐藏变量指不能被直接精确观测或虽能被观测但尚需 通过其它方法加以综合的变量,比如说智力水平。
在图2c中,条件概率表中的每一个元素对应DAG中唯一的节点,存储 此节点对于其所有直接前驱节点的联合条件概率:
其中,E为违约客户的学历情况、I为年收入情况、P为概率、T为还款 逾期情况、F为还款正常情况。
例如,从某金融服务机构的历史违约数据中提取违约客户相关联的属性, 如:违约客户年龄、学历、年收入、性别、国籍、工作经验、资产情况(是 否有车或有房)、是否拥有保险及婚姻状态等等,并计算不同属性之间的条件 互信息。
在TAN中会有类变量属性的加入,因为属性之间的关联性的前提是要在 某一分类属性确定下进行重新计算,不同的类属性值会有不同的属性关联性, 故计算公式如下:
其中,P(x,y|c)为两个随机变量x、y的联合分布,P(x|c),P(y|c)分别为随 机变量X、Y的边际分布,C为类变量,X、Y分别表示该违约客户相关联的 属性变量,I(X,Y|C)表示属性X、Y之间的条件互信息。
若上述计算各属性间的条件互信息情况为:学历与年收入的互信息值 (0.8)>年收入与逾期的互信息值(0.7)>年龄与年收入的互信息值(0.4)> 性别与逾期的互信息值(0.2)。那么,依次选出互信息值较高的属性对作为节 点。
进一步地,所述步骤S02还包括:预设一个互信息阈值作为保留多少个 属性对或者边的标准。之所以按照互信息值从高到低选择的原因,就是要保 留关联性更高的关联依赖性的边。假设,预设的互信息阈值为0.5,那么选择 互信息值高于0.5的属性对作为节点,即将学历、年收入、及逾期作为节点, 构成一个如图2a所示的无向无环图。
将“逾期”节点、“学历”节点和“年收入”节点连接,形成如图2b所示的有 向无环图。
本发明之基于贝叶斯网络的问答方法,通过构建贝叶斯网络模型,使该 问答方法通过自然对话的方式理解用户需求,并根据用户的问句进行深度推 理,提升用户人机交互体验。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读 存储介质上存储有基于贝叶斯网络的问答程序,所述基于贝叶斯网络的问答 程序被处理器执行时实现如下操作:
参数提取步骤:接收并解析用户通过客户端输入的问句,以从问句中识 别代表用户意图的目标参数和与目标参数相关联的属性参数;
推断步骤:将所述目标参数和属性参数输入预先训练好的贝叶斯网络模 型,利用所述贝叶斯网络模型的有向无环图及条件概率表集合推断得到目标 参数的取值;及
答案生成步骤:将贝叶斯网络模型推断得到的目标参数的取值反馈给用 户。
本发明之计算机可读存储介质的具体实施方式与上述基于贝叶斯网络的 问答方法的具体实施方式大致相同,故不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在 涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方 法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括 为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下, 由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物 品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上 的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可 借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很 多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计 算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘) 中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或 者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是 利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间 接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。