首页 / 专利库 / 人工智能 / 词性标注 / 一种基于神经网络的中文问答系统

一种基于神经网络的中文问答系统

阅读:692发布:2021-08-27

专利汇可以提供一种基于神经网络的中文问答系统专利检索,专利查询,专利分析的服务。并且本 发明 公开一种基于神经网络的中文问答系统,包括有用户 接口 模 块 、问题预分词模块、神经元预标注模块、学习训练模块、神经元 知识库 模块、语义块识别模块、问题集索引模块和答案推理模块。通过该系统,首先采用SIE编码方式,对语义块内词按相对 位置 进行编码;然后将问句语义块识别问题转 化成 一个标记分类问题,采用基于神经网络的分类模型来确定问句的语义结构;最后结合问句的语义结构,实现基于神经网络的问句相似度计算,通过对已标注完成的问句语义特征 抽取 ,比较问句各个语义特征之间的权重,为最终答案推理提供依据。本发明将句子的句法、语义和语境知识融为一体,能够模拟人处理句子的过程。,下面是一种基于神经网络的中文问答系统专利的具体信息内容。

1.一种基于神经网络的中文问答系统,其特征在于:包括有用户接口(10)、 问题预分词模块(20)、神经元预标注模块(30)、学习训练模块(40)、神经元 知识库模块(50)、语义块识别模块(60)、问题集索引模块(70)和答案推理 模块(80);
用户接口模块(10)用于实现用户交互,包括接受用户输入问题,然后对 用户输入问题的表达进行检查,将通过检查的用户输入问题提交到问题预分词 模块(20),并将答案推理模块(80)所得结果反馈用户;
问题预分词模块(20)用于接收用户接口模块(10)传递的用户输入问题, 对用户输入问题进行预处理,所述预处理包括对用户输入问题进行分词、语义 消歧及确定词性;并将预处理后的用户输入问题提交给语义块识别模块(60);
神经元提供模块(30),用于提供训练语料给学习训练模块(40),所述训 练语料是预先对训练用问句进行分词、语义消歧、确定词性并进行语义块标注 形成的语义块序列;所述语义块标注,是为语义块内所含词,根据其位置设定 语义块分类标记;
学习训练模块(40),用于对神经网络进行训练直至网络收敛,得到稳定的 神经网络;所述神经网络根据训练语料建立,其结构包括输入层、隐含层和输 出层,其中输入层根据语义块所含词的词义和语境设定节点输出层根据语义 块分类设定节点,隐含层用于实现输入层到输出层的传递;
神经元知识库模块(50),用于保存学习训练模块(40)所得稳定的神经网 络;
语义块识别模块(60),用于当出现用户输入问题时,从神经元知识库模块 (50)中提取运行学习训练模块(40)所得稳定的神经网络并运行,从问题预 分词模块(20)所得预处理后的用户输入问题中识别得到语义块,从用户输入 问题识别得到的所有语义块构成语义块序列;
问题集索引库模块(70),用于存放已知问题和答案对的索引文件;所述索 引文件记载有已知问题的语义块序列和答案的位置信息,为回答用户输入问题 提供知识来源;
答案推理模块(80),用于查询问题集索引库模块(70)所提供索引文件, 找到与用户输入问题具有相同或相似关键字的相关问题,取得每个相关问题与 用户输入问题的相似度,根据相似度选择应答用的相关问题,根据索引文件记 载的位置信息提取应答用的相关问题的答案,通过用户接口模块(10)输出相 关问题的答案实现应答;所述相关问题与用户输入问题的相似度,根据相关问 题与用户输入问题的语义块序列相似度以及语境相似度得到,其中语义块序列 相似度根据语义块间的相似度得到,语义块间的相似度由语义块内词间的相似 度得到。
2.如权利要求1所述的中文问答系统,其特征在于:答案推理模块(80)包括 有问题推理单元、问题检索单元和问题相似度计算单元;
问题推理单元,用于选取用户输入问题中核心的语义块做同义词扩展,并 将扩展后的语义块序列传给问题相似度计算单元;
问题检索单元,用于调用问题集索引库单元(70)存放的索引文件,找到 与用户输入问题具有相同或相似关键字的相关问题;
问题相似度计算单元,用于分别计算每个相关问题与用户输入问题的相似 度,选取相似度最高的相关问题的相应答案作为对用户输入问题的应答。
3.如权利要求1或2所述的中文问答系统,其特征在于:设置样本补充学习模 块(90),用于向神经元提供模块(30)输入补充训练语料。
4.如权利要求1或2所述的中文问答系统,其特征在于:所述输入层根据语义 块所含词的词义块分类标记和语境设定,其中语境包括词语本身、词的词性及 与该词性相对应的共现词。

说明书全文

技术领域

发明属于信息检索技术领域,特别涉及一种基于神经网络的中文问 答系统。

背景技术

问答系统(Question Answering System)是指能够对计算机用户输入的 使用自然语言描述的问题做出回答的系统,一般采用计算机软件系统技术 实现。问答系统集自然语言处理、信息检索、知识表示为一体,正日益成 为国际上研究的热点。它既能够让用户用自然语言提问,又能够为用户返 回一个简洁、准确的答案,而不是一些相关的网页。因此,问答系统和传 统依靠关键字匹配的搜索引擎相比,能够更好地满足用户的检索需求,更 准确地找出用户所需要的答案,具有方便、快捷、高效等特点。
信息检索技术和自然语言处理技术是自动问答系统研究的基础。目前, 信息检索技术已经逐步走向成熟,其中搜索引擎技术已经发展的比较完善。 分词、词性标注命名实体识别等基础自然语言处理技术研究也已经取得 了很大的成绩。这些基础技术的蓬勃发展以及用户的巨大需求都预示着问 答系统的研发将要进入一个空前的大发展时期。
现有的应用于汉语问题理解的机器学习方法有很多,隐尔可夫模型 (HMM),最大熵(Maximium Sntropy),支持向量机(SV)等,中文自动 问答系统大多参考国外一些优秀的英文自动问答系统。但是与英文相比, 中文具有用词灵活、句法复杂多变的特点,简单的模仿英文自动问答技术, 导致中文自动问答系统普遍存在中文知识库覆盖面窄、系统的准确率和 召回率都很低的问题,对用户体验造成了伤害。

发明内容

本发明目的在于解决现有技术不足,提出了一种基于神经网络的中文 问答系统。
本发明的技术方案是包括有用户接口(10)、问题预分词模块(20)、 神经元预标注模块(30)、学习训练模块(40)、神经元知识库模块(50)、 语义块识别模块(60)、问题集索引模块(70)和答案推理模块(80);
用户接口模块(10)用于实现用户交互,包括接受用户输入问题,然 后对用户输入问题的表达进行检查,将通过检查的用户输入问题提交到问 题预分词模块(20),并将答案推理模块(80)所得结果反馈用户;
问题预分词模块(20)用于接收用户接口模块(10)传递的用户输入 问题,对用户输入问题进行预处理,所述预处理包括对用户输入问题进行 分词、语义消歧及确定词性;并将预处理后的用户输入问题提交给语义块 识别模块(60);
神经元提供模块(30),用于提供训练语料给学习训练模块(40),所 述训练语料是预先对训练用问句进行分词、语义消歧、确定词性并进行语 义块标注形成的语义块序列;所述语义块标注,是为语义块内所含词,根 据其位置设定语义块分类标记;
学习训练模块(40),用于对神经网络进行训练直至网络收敛,得到稳 定的神经网络;所述神经网络根据训练语料建立,其结构包括输入层、隐 含层和输出层,其中输入层根据语义块所含词的词义和语境设定节点,输 出层根据语义块分类设定节点,隐含层用于实现输入层到输出层的传递;
神经元知识库模块(50),用于保存学习训练模块(40)所得稳定的神 经网络;
语义块识别模块(60),用于当出现用户输入问题时,从神经元知识库 模块(50)中提取运行学习训练模块(40)所得稳定的神经网络并运行, 从问题预分词模块(20)所得预处理后的用户输入问题中识别得到语义块, 从用户输入问题识别得到的所有语义块构成语义块序列;
问题集索引库模块(70),用于存放已知问题和答案对的索引文件;所 述索引文件记载有已知问题的语义块序列和答案的位置信息,为回答用户 输入问题提供知识来源;
答案推理模块(80),用于查询问题集索引库模块(70)所提供索引文 件,找到与用户输入问题具有相同或相似关键字的相关问题,取得每个相 关问题与用户输入问题的相似度,根据相似度选择应答用的相关问题,根 据索引文件记载的位置信息提取应答用的相关问题的答案,通过用户接口 模块(10)输出相关问题的答案实现应答;所述相关问题与用户输入问题 的相似度,根据相关问题与用户输入问题的语义块序列相似度以及语境相 似度得到,其中语义块序列相似度根据语义块间的相似度得到,语义块间 的相似度由语义块内词之间的相似度得到。
而且,答案推理模块(80)包括有问题推理单元、问题检索单元和问 题相似度计算单元;
问题推理单元,用于选取用户输入问题中核心的语义块做同义词扩展, 并将扩展后的语义块序列传给问题相似度计算单元;
问题检索单元,用于调用问题集索引库单元(70)存放的索引文件, 找到与用户输入问题具有相同或相似关键字的相关问题;
问题相似度计算单元,用于分别计算每个相关问题与用户输入问题的 相似度,选取相似度最高的相关问题的相应答案作为对用户输入问题的应 答。
而且,设置样本补充学习模块(90),用于向神经元提供模块(30) 输入补充训练语料。
而且,所述输入层根据语义块所含词的词义块分类标记和语境设定, 其中语境包括词语本身、词的词性及与该词性相对应的共现词。
本发明提出将神经网络应用到问答系统领域,能够将句法、语义和语 境知识融为一体,自动问答过程接近于人处理中文句子的过程。并且,本 发明通过对语义块内词的相对位置进行编码,将问题语义块识别问题转化 成一个标记分类问题,具体分析。本发明具有以下优点:
(1)人类对语言的理解,是综合运用句法、语义和语境知识的结果。 本发明将这三种知识融为一体,对问题进行分析时,同时运用了这三种知 识,网络的行为表现出一定的预期性;因此,在某种程度上较接近于人处 理句子的过程。
(2)由于采用神经网络模型,在上下文取词个数方面可以突破二元语 法的限制,同时也不会引起空间的过度膨胀。在提高准确率的同时,避免 了普通语义分析所带来的空间开销。
(3)运用神经网络知识存储和自适应特征,可以通过适应补充学习样 本,实现历史经验与新知识完满结合,在发展过程中动态地评价系统状态, 提高系统的准确率。
附图说明
图1是本发明实施例的系统结构图。
图2是本发明实施例的训练阶段流程图
图3是本发明实施例的测试阶段流程图。
图4是本发明实施例的运行阶段流程图。

具体实施方式

下面结合附图和实例对本发明作进一步详细的说明。
如图1所示,本发明实施例提供的中文问答系统包括有用户接口模块 10、问题预分词模块20、神经元预标注模块30、学习训练模块40、神经 元知识库模块50、语义块识别模块60、问题集索引模块70、答案推理模 块80以及另外样本补充学习模块90,各模块可由本领域技术人员根据本 发明技术方案采用计算机软件技术实现。
用户接口模块10用于实现用户交互,包括两方面的功能:其一是接受 用户输入问题,然后对用户输入问题的表达进行检查,将通过检查的用户 输入问题提交到问题预分词模块20。对用户输入问题的表达检查可以防止 错误,例如出现无法理解的符号、长度不够等情况时,不予接受,提示用 户修改输入问题。只有用户输入问题的表达符合规范时,允许用户输入问 题通过检查,并将其传送到问题预分词模块20进行下一步处理。其二是将 答案推理模块80所得结果,即相关问题的答案反馈给用户,从而实现对用 户输入问题的应答。
问题预分词模块20用于接收用户接口模块10传递的用户输入问题, 对用户输入问题进行预处理,所述预处理包括对用户输入问题进行分词、 语义消歧及确定词性;并将预处理后的用户输入问题提交给语义块识别模 块60。问题预分词替换20可以利用现有分词软件实现预处理,例如SEGTAG。
为了利用神经网络进行自动问答,需要提供网络收敛的稳定神经网络。 通过训练神经网络最终得到稳定的神经网络的过程,可称为训练阶段。本 发明实施例为训练阶段提供了神经元提供模块30、学习训练模块40和神 经元知识库模块50。
神经元提供模块30,用于提供训练语料给学习训练模块40,所述训练 语料是预先对训练用问句进行分词、语义消歧、确定词性并进行语义块标 注形成的语义块;所述语义块标注,是为语义块内所含词,根据其位置设 定了语义块分类标记。可以预先在神经元提供模块30中存入事先准备好的 训练语料;也可以利用用户接口模块10输入训练用问句,在问题预分词模 块20利用分词软件进行分词、语义消歧、确定词性,再通过用户接口模块 10提供的用户交互功能实现人工语义块标注,最终形成的语义块序列作为 训练语料传送到神经元提供模块30保存,参见图2提供的训练阶段流程。
语义块分类标记是一种介于词汇和句子之间的、具有非递归特性的核 心成分,每个语义块由句子中的单词或多词单元组成,并且具有固定的语 义。
发明人对5000句中文问题分析,总结出问题划分的5种语义块,如表1 所示:
表1语义块类型
  语义块类型   名称   Av   属性值块   At   属性块   Sn   主体块   Ev   事件块   Qf   焦点块
主体块(Sn):主体块主要描述了问题中施事和受事主体,主要是一 些名词和名词短语。
焦点块(Qf):焦点块是问题询问信息的焦点,焦点块是对问点的完全 描述。通常文典块由疑问词和相关词结合而成。
属性块(At)和属性值块(Av):属性块主要描述了实体的属性,属性 值块描述了实体属性的值。
事件块(Ev):事件块描述了问题中实体的动作。
在这种语义块划分基础上,可以采用SIE编码方式为语义块内所含词设 定语义块分类标记。其中,S表示一个语义块的开始,I表示语义块内部,E 表示语义块结束。
例如句子:具哪些条件的学生才可以申请奖学金?
经过分词软件进行分词、语义消歧、确定词性处理后,句子的词序列 如下:
[具备/v][哪些/r条件/n]的[学生/n][才/d可以/v申请/v][奖 学金/n]?/w
其中,词性v表示动词、r表示代词、n表示名词、w表示符号词。
加上语义块类型信息后,变成如下形式:
[Ev具备/v][Qf哪些/r条件/n]的[Sn学生/n][Ev才/d可以/v 申请/v][Sn奖学金/n]?/w
根据SIE编码方式,可以在语义块类型信息基础上为每个词附上语义块 分类标记,编码为以下语义块序列:
具备/S-Ev那些/S-Qf条件/I-Qf的/E学生/S-Sn才/S-Ev可以 /I-Ev申请/I-Ev奖学金/S-Ev?/E
其中‘S-Ev’表示一个类型为事件块的语义块中的第一个词,‘I-Ev’ 表示一个类型为事件块的语义块中的内部词。E和S同时代表语义块的结束, 比如具备/S-Ev那些/S-Qf条件/I-Qf的/E,通过该规则可以直接识别出 语义块【具备】/Ev和【那些条件】/Qf。这样,针对每一种语义块分别有 S-和I-两种标记,如果有G种语义块类别则对应有2G种语义块分类标记, 语义块识别问题就转化为2G类分类器问题。本发明实施例按表1将语义块划 分定义为5种类型,则语义块识别可以转化为10类的分类问题。具体实施时, 也可以采用其他语义块划分方式和相应分类。
本发明实施例对训练用问句进行语义块标注的实现过程为:以经过切 分和词性标注的训练用问句为语义块标注对象,用S=(W,T)表示,其中 W=(w1,w2,w3,...,wnum)表示词序列,T=(t1,t2,t3,...,tnum)表示对应的词性序列, C=(c1,c2,c3,...,cnum)表示训练用问句S=(W,T)的语义块分类标记序列, S=(s1,s2,s3,...,snum)表示共现词词频序列。共现词词频可通过在神经元提供模 块30所有训练语料中考察词的相邻词,统计词的共现次数得到。则对训练 用问句的语义块标注问题转化为已知词序列W和词性序列T,标注语义块分 类标记序列C。
例如语义块序列:具备/S-Ev那些/S-Qf条件/I-Qf的/E学生/S-Sn 才/S-Ev可以/I-Ev申请/I-Ev奖学金/S-Ev?/E
此时下标num为8,
W=(1,2,3,...,8),T=(v,r,n,...,n),C=(S-Ev,S-Qf,I-Qf,...,S-Ev), S=(0,0,..5,5)。其中,1,2,3,...,8表示问句中每个词“具备”、“那些”、“条件”... “奖学金”的位置信息,v,r,n,...,n表示各词的词性、S-Ev,S-Qf,I-Qf,...,S-Ev 就是各词的语义块分类标记,0,0,..5,5表示各词的共现词词频。
学习训练模块40,用于对神经网络进行训练直至网络收敛,得到稳定 的神经网络;所述神经网络根据训练语料建立,其结构包括输入层、隐含 层和输出层,其中输入层根据语义块所含词的词义和语境设定节点,输出 层根据语义块分类设定节点,隐含层用于实现输入层到输出层的传递。
输入层对输入的训练语料以词为单元进行处理。为了充分发挥上下文 对语义块标记的影响,本发明实施例的输入层设计不但考虑当前词的语义 块分类标注P(ci+1|ci),还考虑了当前词的上下文环境,即语境。语境包括3 个方面:词语本身P(Wi|ci)、词语的词性P(Ti|ci),与词性P(Si|ci)相对应的共 现词。因此实施例将P(Wi|ci)、P(Ti|ci)、P(ci+1|ci)、P(Si|ci)作为神经网络的输 入特征,对不同的输入特征分别设计输入节点,输入节点是和当前词有关 的输入的所有可能性的表达。具体设计方式如下:
设L为当前词左边的词数,R为当前词右边的词数(L和R的值在隐含层 确定),|X|为语义块分类标记的数目,|Y|为词性的数目,|Z|为该词对应 的共现词记数。本发明实施例的|X|=10;SEGTAG软件提供28种词性,因此 实施例|Y|=28;|Z|则根据具体的共现词词频而定。
(1)输入特征P(Wi|ci):即考虑当前词左边L个词和右边R个词的影响, 每个节点都是一个二维向量IW(i,k)。i对应词的位置,取1~num;k表示 第k种语义块分类标记,取1~|X|。当前词的输入特征P(Wi|ci)对应共 (L+1+R)*|X|个节点。
(2)输入特征P(Ti|ci):即考虑当前词左边L个词和右边R个词的词性的 影响,每个节点都是一个三维向量IT(i,j,k)。i对应词的位置,取1~num; j表示第j种词性,取1~|Y|,取1~|X|;k表示第k种语义块分类标记, 取1~|X|。当前词的输入特征P(Ti|ci)对应共(L+1+R)*|X|*|Y|个节点。
(3)输入特征P(Si|ci):即考虑当前词左边L个词和右边R个词中出现共 现词的影响,每个节点都是一个三维向量IS(i,a,b)。i对应词的位置,取1~ num;a表示左边第a个位置出现共现词;b表示右边第b个位置出现共现词。 当前词的输入特征P(Si|ci)对应共(L+1+R)*|X|*|Z|个节点。
(4)、输入特征P(ci+1|ci):即考虑当前词左边L个词和右边R个词的语义 的影响,每个节点都是一个二维向量IC(i,k)。i对应词的位置,取1~num; k表示第k种语义块分类标记,取1~|X|。当前词的输入特征P(ci+1|ci)对应 共(L+1+R)*|X|个节点。
具体实施时,根据P(Wi|ci)、P(Ti|ci)、P(ci+1|ci)、P(Si|ci)分别设定神经网 络中输入层的节点数目,也就是输入层总共只设定4个特征。当用户输入问 题分词后得到num个词后,其中每个词对应(L+1+R)个输入,即当前词左 边的词、当前词和当前词右边的词。因此针对一个用户输入问题,输出层 每个特征有(L+1+R)*num组数据,共(L+1+R)*num组数据。具体实施时,输 入层特征可采用现有神经网络工具箱(可从MATLAB的官网下载)中的 premnmx函数对每组数据进行处理,归一化后的数据都处于-1~1的区域范 围内,这样可以减小,结果误差率低。Premnmx对数据进行处理的算法为: pn=2*(pn-min p)/(max p-min p)-1,其中,min p和max p是样本数据的最小值和 最大值,pn就是每组数据归一化后的取值。
输出层的设计直接关系到语义块识别模块60最终对语义块的选取。本 发明实施例将神经网络的输出层设定为一个10类的分类器,也就是说输出 层包括10个节点。每一类代表一个SIE标记,具体见表2
表2语义块分类标记集
    标记类型     名称     S-Av     属性值块开始词     I-Av     属性值块中间词     S-At     属性块开始词     I-At     属性块中间词     S-Sn     主题块开始词     I-Sn     主题块中间词     S-Ev     事件块开始词     I-Ev     事件块中间词     S-Qf     焦点块开始词     I-Qf     焦点块中间词
实施例的隐含层则采用tan sig(x)函数作为传输函数,tan sig(x)如下式: tan sig ( x ) = 2 ( 1 + exp ( - 2 x ) ) - 1
其中,exp(-2x)表示e的-2x次方,e为数学常量2.7182…
具体实施时,也可采用其他传送函数,一般可以采用MATLAB的自带函 数。
对于有限个输入到输出的映射,并不需要无限个隐含层节点,这就涉 及到如何选择隐含层节点数的问题。本发明实施例通过神经网络训练实验 来确定隐含层的神经元个数,具体方式为输入层与输出层网络结构不变, 通过调整隐含层,查看相应神经网络性能后决定:
(1)设置初始隐含层netSeal_1神经元节点数为1,得到初始的神经网 络保存其准确率;
(2)设置i为隐含层节点的数目,逐步增加i值,得到新的隐含层 netSeal_i以及神经网络,计算新的神经网络的准确率并与初始的神经网络 准确率的准确率比较,所得误差值保存;
(3)选择步骤2所得神经网络中误差值最小者,设置该神经网络中隐 含层的神经元节点个数为最终隐含层节点数。
神经元知识库模块50,用于保存学习训练模块40所得稳定的神经网 络。通过保存训练阶段的成果,为运行阶段提供支持。具体实施时,神经 元知识库模块50还可保存训练时所用训练语料、稳定的神经网络的输入和 输出所构成的固定连接矩阵,以及训练时神经网络所达到平的值矩阵, 以便为评价系统状态提供参考。
在运行阶段,主要工作模块是语义块识别模块60、问题集索引库模块 70和答案推理模块80,参见图4:
语义块识别模块60,用于实现问题标注,即当用户通过用户接口模块 10提交问题时,从问题预分词模块20所得预处理后的用户输入问题中识 别得到语义块,从用户输入问题识别得到的所有语义块构成语义块序列。 识别基于运行稳定的神经网络实现,实施例的识别处理流程为:
(1)将词word_i送入输入层,输入词word_i左L右R个词的词性、语义 块标记、语境、词本身位置等共4×(L+R+1)个参数,经隐含层传递后, 得到输出层对应参数wordParameter_1、wordParameter_2…, wordParameter_10,输出层对应参数的大小反应了word_i选择该参数所对 应语义块分类标记的可能性;
(2)找出wordParameter_1、wordParameter_2…,wordParameter_10 中值最大值,以其对应的语义块分类标记,作为词word_i的语义块分类标 记。
问题集索引库模块70,用于存放已知问题和答案对的索引文件;所述 索引文件记载有已知问题的语义块序列和答案的位置信息,为回答用户输 入问题提供知识来源。索引文件可以预先构建,具体实施时构建流程可以 为:
(1)从问答社区下载包含问题及答案的网页;
(2)利用现有htmlParser开源包从网页中识别出问题和对应的最佳答 案,构成已知问题和答案对。已知问题的语义块序列可以通过事先进行手 工标注得到,或者用神经元知识库模块50存放的神经网络训练得到。其中 手丁标注的准确性更高。
(3)利用现有lucene开源包,对已知问题和答案对建立倒排索引,形 成索引文件。建立索引时可以为问题分配相应的ID号码,方便调用。
问题集索引库模块70中不需要直接存放已知问题和答案对,这样可以 减少系统资源占用负担。通过记载答案的位置信息,就可以调用答案,例 如通过存放网址来利用含有丰富知识的互联网。记载已知问题的语义块序 列,则是为了实现用户输入问题与已知问题的相似性匹配,以便利用相似 的已知问题应答用户输入问题。
答案推理模块(80),用于查询问题集索引库模块(70)所提供索引文 件,找到与用户输入问题具有相同或相似关键字的相关问题,取得每个相 关问题与用户输入问题的相似度,根据相似度选择应答用的相关问题,根 据索引文件记载的位置信息提取应答用的相关问题的答案,通过用户接口 模块(10)输出相关问题的答案实现应答;所述相关问题与用户输入问题 的相似度,根据相关问题与用户输入问题的语义块序列相似度以及语境相 似度得到,其中语义块序列相似度根据语义块间的相似度得到,语义块间 的相似度由语义块内词间的相似度得到。
具体实施时可以对答案推理模块80进行更细致的单元设计,本发明实 施例的答案推理模块80包括有问题推理单元、问题检索单元和基于神经网 络的问题相似度计算单元:
问题推理单元,用于实现问题推理,即选取用户输入问题中核心的语 义块做同义词扩展,并将扩展后的语义块序列传给问题相似度计算单元。 根据汉语句子的表达习惯,在问题疑问词附近的词更能表达整个句子所要 表达的语义信息,对于问题分类常常具有更加重要的作用,特别是其中具 有名词特性的词,也就是分词时标记为“n”的词。疑问词右边标记为“n” 的词所表达的语义信息比疑问词左边标记为“n”的词更丰富和有效。实验 发现,如果同义词词典中存在有多个标记为“n”的词,并非选择的越多 越好,选取的过多反而会增加很多干扰信息,产生噪声。因此,本发明实 施例对于某一问题最多选取两个词扩展作为其语义特征,问题推理单元的 工作流程为:
(1)选取疑问词右边标记为“n”的词作为扩展词,调用《同义词词 林》,最多选取两个同义词扩展。如果疑问词的右边没有标记为“n”的词, 则转到第2步。
(2)在疑问词左边选取标记为“n”的词作为扩展词,调用《同义词 词林》,最多选取两个同义词扩展。
《同义词词林》也可以预先存放在神经元知识库模块50中,供问题推 理单元调用。
问题检索单元,用于实现问题检索,即调用问题集索引库模块70存放 的索引文件,找到与用户输入问题具有相同或相似关键字的相关问题。
问题相似度计算单元,用于实现问题相似度计算分别计算每个相关问 题与用户输入问题的相似度。本发明实施例的相似度计算具体步骤如下:
(1)接收问题推理单元针对用户输入问题Sen1扩展后的语义块序列 wordsList_1,以及从问题集索引库模块70提取相关的已知问题Sen2的语 义块序列wordsList_2;
(2)首先计算用户输入问题Sen1与相关问题Sen2的语义块序列相似度 Ssemantic=(V1,V2...,VN),Vj表示用户输入问题Sen1中第j个语义块与相关问题Sen2 中第j个语义块的语义块间相似度,j取1~N,N表示用户输入问题Sen1与 相关问题Sen2分别含有N个语义块。逐个取用户输入问题Sen1中第j个语义 块内所含带有语义块分类标记的词,与相关问题Sen2中第j个语义块的语 义块内所有带有语义块分类标记的词一一取关联度,得到一个关联度矩阵, 关联度矩阵中的最大值设为Vj。
根据语义块间相似度V1,V2...,VN加权得到相关问题Sen2与用户输入问题Sen1的 语义块序列相似度Ssemantic;
(3)然后计算用户输入问题Sen1与相关问题Sen2的语境相似度Scontext,即根 据相对共现词频词表(事先统计语义块之间的规则存入相对共现词频词表, 作为规则库存放在神经元知识库模块50中,以便标明哪些语义块分类标记 的词更容易同时出现),带入语境相似度公式
S context = ( ( 1 + α 1 ) N + Σ j = 1 N α j , ( 1 + α 2 ) N + Σ j = 1 N α j , . . . , ( 1 + α N ) N + Σ j = 1 N α j ) ,
其中αj的设计原理是基于互信息定义 MI ( a , b ) = p ( ab ) p ( a ) p ( b ) , p(ab)是a,b同 时发生的概率,p(a),p(b)是a,b独立发生的概率;在此基础进一步改进, 得出: α j = MI ( A , B ) = log m 2 ( m + k ) ( m + l ) , 用户输入问题Sen1中出现最多的共现词标 记为A,相关问题Sen2中出现最多的共现词标记为B。在用户输入问题Sen1中 第j个语义块与相关问题Sen2中第j个语义块中,共现词A、B同时出现的 次数为m;A出现而B没有出现的次数为k;B出现而A没有出现的次数为 l。如果A和B不相关,则αj值为0。
(4)语义块序列相似度Ssemantic与语境相似度Scontext进行点乘运算得到最终相 似度,即 S ultimate = ( ( 1 + α 1 ) N + Σ j = 1 N α j V 1 , ( 1 + α 2 ) N + Σ j = 1 N α j V 2 , . . . , ( 1 + α N ) N + Σ j = 1 N α j V N )
(5)输出Scontext作为所述相关问题与用户输入问题的相似度。
答案推理模块80中还可以设置答案匹配单元,取得每个相关问题与用 户输入问题的相似度,根据相似度选择应答用的相关问题。可以选取相似 度最高的相关问题的相应答案作为对用户输入问题的应答,也可以按照相 似度降序提供所有相关问题的相应答案一并作为应答,供用户自行选择。 具体实施时,也可将答案匹配单元合并到问题相似度计算单元,直接根据 相似度选取应答用的相关问题,方便高效。
为了保证自动问答准确率,本发明提出进一步技术方案:设置样本补 充学习模块90,用于向神经元提供模块30输入补充训练语料。训练语料 随时间推移需要不断演化、补充,可以利用神经网络自适应特征,采用多 重迭代方式,动态补充新知识存储。这样可以在训练阶段完成后,进行测 试阶段。参见图3,实施例的测试阶段具体实现方式为,样本补充学习模 块90中设置问句再训练集合,在问句再训练集合中存放R个问句 question_i,i取1~R;预先对R个问句question_i进行人工语义块标注; 然后逐句判断是否作为训练用问句使用,过程如下:
(1)从问句再训练集合中提取问句question_i,进行预处理,包括分词、 语义消歧及确定词性;
(2)运行已训练完毕的神经网络,对预处理后的问句question_i进行语 义块识别,得到其语义块序列;然后与人工语义块标注的目标结果进行比 较,判断其误差是否在预设的可接受范围内。若误差不在可接受范围,将 问句question_i的语义块序列作为新的训练语料加入神经元提供模块30, 由神经元提供模块30向学习训练模块40提供补充后的训练语料,由学习训 练模块40重新训练新的稳定神经网络后存入神经元知识库模块50。若误差 在可接受范围,则返回步骤(1),提取新的问句question_i进行新一轮识 别比较,直到处理完再训练集合中的所有问题。因为误差不在可接受范围 则需要再训练,所以要作为新训练语料补充;在范围内就没有训练意义了, 因为相似度已经很高了。
(3)神经元提供模块30向学习训练模块40提供补充后的训练语料,由学 习训练模块40训练新的稳定神经网络。
为了便于理解本发明技术方案,总结基于神经网络的中文问答系统建 议使用方法如下:
A训练阶段
神经元提供模块30输出训练语料给学习训练模块40,学习训练模块40训 练得到稳定的神经网络后存入神经元知识库模块50。
B检查阶段
样本补充学习模块90从神经元知识库模块50提取当前的神经网络,运行 已训练完毕的神经网络识别预处理后的问句,当误差不在可接收范围内时, 将该问句送往神经元提供模块30,由神经元提供模块30向学习训练模块 40提供补充后的训练语料,由学习训练模块40重新训练新的稳定神经网 络后存入神经元知识库模块50。
C运行阶段
用户接口模块10将用户输入问题送入问题预分词模块20,预处理后送到 神经元语义块识别模块60;
神经元语义块识别模块60从神经元知识库模块50提取学习训练模块40 所得稳定的神经网络,将预处理后的用户输入问题输入神经网络,识别得 到语义块序列后输入答案推理模块80,实现问题标注;
答案推理模块80查询问题集索引库模块70所提供索引文件,找到与用户 输入问题具有相同或相似关键字的相关问题,然后从问题集索引库模块70 提取相关问题的语义块序列;根据相关问题与用户输入问题的语义块序列 相似度以及语境相似度,得到相关问题与用户输入问题的相似度;根据相 关问题与用户输入问题的相似度选择应答用的相关问题,根据索引文件记 载的位置信息提取相应答案,通过用户接口模块10输出实现自动系统应 答。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈