一种中文自动应答方法及系统的制作方法

文档序号:6562864阅读:173来源:国知局
专利名称:一种中文自动应答方法及系统的制作方法
技术领域
本发明涉及计算机应用领域,尤其涉及一种中文自动应答方法及系统。
背景技术
自然语言理解技术是人工智能领域中的一个重要研究方向,它使计算机能 够理解和运用人类的自然语言,可以实现人与计算机之间基于自然语言的有效 通信。这里的自然语言包括人类使用的各种自然语言,例如中文、英文等等。
QA ( automatic Question Answering,自动应答)系统是一种以自然i吾言理解4支 术为核心, 一方面完成对用户问题的分析处理,另一方面完成正确答案生成的 系统。
自动应答系统的性能主要通过准确率和召回率两个指标进行表征,下面分 别予以说明
自动应答系统的准确率是指自动应答系统做出正确应答的次数与总共的 应答次数的比值,例如用户向自动应答系统输入了 100个问题语句,自动应答 系统做出了 100次应答,其中有20个是正确的,那么这个自动应答系统的准 确率就是20%。
自动应答系统的召回率是指自动应答系统做出正确应答的次数与自动应 答系统问答语句库中对应存在正确应答的个数的比值,例如用户向自动应答系 统中输入了 100个问题语句,自动应答系统做出了 100次应答,其中有20次 是正确的,但是针对用户输入的100个问题语句,自动应答系统问答语句库中 具有其中25个问题语句的正确应答,那么这个自动应答系统的召回率就是 ■。
现有技术中的中文自动应答系统大多是参考英文自动应答系统,采用简单
的模式匹配技术实现的。其基本的算法就是从第一个词开始,对用户当前输入 的问题语句和问答语句库中预先存储的全部问题语句进行匹配,如果两个词相 同就继续下一个词的匹配,重复这一过程直到用户输入的整个问题语句匹配完 毕,如果匹配成功就将问答语句库中的该问题语句对应的系统应答返回给用 户。但是相比英文句子而言,中文句子具有用词灵活、句法复杂多变的特点, 因此仅采用简单的模式匹配技术的中文自动应答系统普遍存在问答语句库覆 盖面窄、系统的准确率和召回率低的缺点,下面举例说明采用简单的模式匹配 技术实现的中文自动应答系统的缺点。
假设自动应答系统的问答语句库中存在以下一组问答语句对,其中包括一
个问题语句和相应的系统应答
问题语句地球为什么围绕太阳转? 系统应答因为地球是太阳的行星。
这样当用户向自动应答系统中输入"地球为什么围绕太阳转?"这一问题
题语句进行匹配,通过匹配能够查找到问答语句库中存储的上述问答语句对, 将该问答语句对中的系统应答取出返回给用户。但是,当用户输入与上述问题 语句的句义相同,句法不同的其他句子时,由于系统问答语句库中没有存储相 应的问题语句,因此无法给出正确的应答。例如,当用户输入"地球为何围绕 太阳转?"或者"地球围绕太阳转是什么原因?"时,系统无法给出正确的应 答。
若希望在现有中文自动应答系统中解决上述问题,就必须在系统的问答语 句库中再构造下面两组问答语句对 用户句子地球为何围绕太阳转? 系统应答因为地球是太阳的行星。 以及
用户句子地球围绕太阳转是什么原因?
系统应答因为地球是太阳的行星。
但是中文的句法非常灵活,而且用词灵活多变,所以通过增加问答语句对 来解决上述问题,无论是从工作量还是系统效率的角度来看,都是不可接受的。
综上可见,现有技术中采用简单的模式匹配技术实现中文自动应答时,存 在着建立中文问答语句库工作量巨大,且覆盖面窄的问题。

发明内容
本发明提供一种中文自动应答方法及系统,用以解决现有技术中采用模式 匹配技术实现中文自动应答时,建立中文问答语句库的工作量巨大且覆盖面窄 的问题。
本发明技术方案包括
一种中文自动应答方法,包括步骤
A、 确定用户输入的中文语句的类别及关键词序列,从问答语句库中查找 与用户输入语句类别相同的关键词序列;
B、 将用户输入语句的关键词序列与所述查找到的关键词序列进行匹配, 将其中匹配成功的关键词序列对应的应答语句返回给用户。
较佳的,确定用户输入语句的类别及关键词序列的具体步骤为 对用户输入语句进行中文分词处理,得到词序列;
根据所述词序列中包含的句类特征词确定用户输入语句的类别,将句类特 征词及停用词从所述词序列中删除,余下的词序列为用户输入语句的关键词序 列。
较佳的,所述步骤B中,若匹配不成功,则向用户返回缺省应答语句。 较佳的,所述步骤B具体包括步骤
Bl、提取用户输入语句的关键词序列中的第一个关键词做为匹配依据,将 所述查找到的关键词序列全部添加到结果集合中;
B2、将做为匹配依据的关键词与结果集合中各关键词序列的相应位置的内
容分别进行匹配,将其中匹配不成功的关键词序列从结杲集合中剔除;
B3、判断所述结果集合中是否有剩余的关键词序列,若是,执行步骤B4, 否则,随机选择一个与用户输入语句的类别相对应的缺省应答语句返回给用
户;
B4、判断用户输入语句的关键词序列中是否存在下一个关键词,若存在, 将其做为匹配依据,返回步骤B2,否则,将当前结果集合中的关键词序列对 应的应答语句返回给用户。
较佳的,所述步骤B2中,按照做为匹配依据的关键词在用户输入语句的 关鍵词序列中的位置,查找结果集合中各关键词序列在该位置的内容,若该位 置的内容为任意词通配符或者与做为匹配依据的关键词相同,则本次匹配成 功。
较佳的,所述问答语句库用于存储已定义的问答语句对,所述问答语句对 由管理员输入的问题语句的关键词序列、类别及相应的应答语句构成。 较佳的,利用管理员输入的问答语句对更新问答语句库的过程为 确定所述问答语句对中的问题语句的类别及关键词序列; 查找问答语句库中是否存在与所述问题语句类别相同的关键词序列,若存 在,则将所述问答语句对中的应答语句添加到问答语句库中,与查找到的关键 词序列关联保存,否则,将所述问题语句的关键词序列、类别与问答语句对中 的应答语句关联保存到问答语句库中。
较佳的,确定所述问答语句对中的问题语句的类别及关键词序列的具体过 程为
对管理员输入的问题语句进行中文分词处理,得到词序列; 根据所述词序列中包含的句类特征词确定所述问题语句的类别,将句类特
征词及停用词从所述词序列中删除,余下的词序列为所述问题语句的关键词序列。
较佳的,若管理员输入的问题语句中包含有任意词通配符,则该问题语句
的关键词序列中包舍有任意词通配符。
一种中文自动应答系统,包括
用户语句分析模块,用于确定用户输入的中文语句的类别及关键词序列; 查询模块,用于从问答语句库中查找与用户输入语句类别相同的关键词序
列,将用户输入语句的关键词序列与所述查找到的关键词序列进行匹配,将其 中匹配成功的关键词序列对应的应答语句返回给用户。 较佳的,所迷用户语句分析模块具体包括
第一分词子模块,用于对用户输入语句进行中文分词处理,得到词序列; 第一句类分析子模块,用于根据所述词序列中包含的句类特征词确定用户 输入语句的类别,并将句类特征词及停用词从所述词序列中删除,得到用户输
入语句的关^:词序列。
较佳的,所迷查询;漠块具体包括
匹配处理子模块,用于从问答语句库中查找与用户输入语句类别相同的关 键词序列,将用户输入语句的关键词序列与所述查找到的关键词序列进行匹 配,若匹配成功,则将匹配成功的关键词序列对应的应答语句发送给结果反馈 子模块,否则,随机选择一个与用户输入语句的类别相对应的缺省应答语句发 送给结果反馈子模块;
结果反馈子模块,用于将匹配处理子模块发出的应答语句返回给用户。
较佳的,还包括
管理员语句分析模块,用于确定管理员输入的问答语句对中的问题语句的 类别及关键词序列;
更新模块,用于查找问答语句库中是否存在与所述问题语句类别相同的关 键词序列,若存在,则将该问答语句对中的应答语句添加到问答语句库中,与 查找到的关键词序列关联保存,否则,将所述问题语句的关键词序列、类别与 应答语句对中的应答语句关联保存到问答语句库中。
较佳的,所述管理员语句分析模块具体包括管理员输入的问题语句进行中丈分词处理,得到
词序列;
第二句类分析子模块,用于才艮据所述词序列中包含的句类特征词确定管理 员输入的问题语句的类别,并将句类特征词及停用词从所述词序列中删除,得 到管理员输入的问题语句的关键词序列。
本发明有益效果如下
本发明技术方案在对用户输入的中文问题语句进行自动应答处理时,通过 确定出用户输入的中文问题语句的类别及关键词序列,然后在问答语句库中查 找与用户输入语句类别相同的问题语句的关键词序列,将用户输入语句的关键 词序列与所述查找到的关键词序列进行匹配,将其中匹配成功的关键词序列对 应的应答语句返回给用户,从而消除了由于中文句法灵活而导致的用户输入的 问题语句与问答语句库中的问题语句之间的不匹配,提高了问答语句库的内容 覆盖面,减少了建库的工作量,同时显著的提高了中文自动应答系统的准确率 及召回率。


图1为本发明中文自动应答方法的实施例的流程图2为本发明中对问答语句库中存储的内容进行更新的流程图3为本发明中文自动应答系统的结构框图。
具体实施例方式
本发明技术方案的主要设计构思是针对现有的中文自动应答系统采用模 式匹配技术实现中文自动应答时,建立中文问答语句库的工作量巨大且覆盖面 窄的问题,而提出一种能够减小建立中文问答语句库的工作量,并且显著提高 问答语句库的内容覆盖面的解决方案,该方案首先确定出用户输入的中文语句 的类别及关键词序列,然后在问答语句库中查找与用户输入语句类别相同的问
题语句的关键词序列,将用户输入语句的关键词序列与所述查找到的关键词序 列进行匹配,将其中匹配成功的关键词序列对应的应答语句返回给用户。从而
题语句之间的不匹配,提高了问答语句库的内容覆盖面,减少了建库的工作量, 同时显著的提高了中文自动应答系统的准确率及召回率。
下面将结合各个附图对本发明技术方案的具体实施过程进行进一步详细 的阐述。
请参阅图1,该图为本发明中文自动应答方法的实施例的流程图,其主要
实现过程为
步骤SIO、用户向自动应答系统输入中文问题语句。
步骤Sll,自动应答系统利用预设的词库对用户输入的中文问题语句进行 分词处理,得到词序列。
下面举例说明自动应答系统对用户输入的中文问题语句进行中文分词处 理的具体过程
1) 对用户输入的中文问题语句进行原子切分,将其中每一个原子标注为 一个切分单元,所述原子为分词的最小单位,典型的一个汉字就是一个原子, 一个连续的半角字符串也是一个原子;
2) 对切分词图中的原子序列进行遍历,根据所述预设词库中包含的词汇, 查找该原子序列中包含的在词库中出现过的词,将其标注为切分单元;
3) 根据切分单元的标注结果确定出该问题语句的概率最大的分词路径, 得到相应的词序列。
步骤S12 、自动应答系统根据所述词序列中包含的句类特征词确定出用户 输入的中文问题语句的类别,将句类特征词及停用词从所述词序列中删除,余 下的词序列为用户输入的中文问题语句的关键词序列。
其中,所述句类特征词是句子类别的标志词,根据预先定义的句类特征词 可对用户输入的中文问题语句的类别进行判定;所述停用词为对句子的句义贡
献很小的词。
步骤S13、自动应答系统从问答语句库中查找与用户输入的中文问题语句 类别相同的关键词序列。
所述问答语句库用于存储已定义的问答语句对,所述问答语句对由管理员 输入的问题语句的关键词序列、类别及相应的应答语句构成。
步骤S14 、自动应答系统将用户输入的问题语句的关4定词序列中的第 一 个 关键词做为匹配依据,将上述步骤S13中查找到的关键词序列做为结果集合。
步骤S15 、自动应答系统将做为匹配依据的关键词与结果集合中各关键词 序列的相应位置的内容分别进行匹配,将其中匹配不成功的关键词序列从结果 集合中剔除。
自动应答系统进行匹配处理的具体过程如下
按照做为匹配依据的关键词在用户输入语句的关键词序列中的位置,查找 结果集合中各关键词序列在该位置的内容,若该位置的内容为任意词通配符或 者与做为匹配依据的关键词相同,则本次匹配成功。
步骤S16、自动应答系统判断所述结果集合中是否有剩余的关键词序列, 若是,执行步骤S18,否则,执行步骤S17。
步骤S17 、随机选择一个与用户输入语句的类别相对应的缺省应答语句, 并返回给用户,流程结束。
步骤S18 、自动应答系统判新用户输入语句的关键词序列中是否存在下一 个关键词,若存在,执行步骤S19,否则,执行步骤S20。
步骤S19、将用户输入语句的关键词序列中的下一个关鍵词做为匹配依据, 返回步骤S15。
步骤S20、自动应答系统将结果集合中的关键词序列对应的应答语句返回 给用户,流程结束。
本发明中,问答语句库用于存储已定义的问答语句对,所述问答语句对由 管理员输入的问题语句的关键词序列、类别及相应的应答语句构成。请参阅图
2,该图为本发明中对问答语句库中存储的内容进行更新的流程图,其主要实
现过程为
步骤S30、管理员向自动应答系统输入中文问答语句对。
步骤S31 、自动应答系统利用预设词库对管理员输入的问答语句对中的问 题语句进行中文分词处理,得到词序列。
步骤S32、自动应答系统根据所述词序列中包含的句类特征词确定管理员 输入的问题语句的类别,将句类特征词及停用词从词序列中删除,余下的词序 列为管理员输入的问题语句的关键词序列。
若管理员输入的问题语句中包含有任意词通配符,则该问题语句的关键词 序列中包含有任意词通配符。
步骤S33 、自动应答系统判断问答语句库中是否存在与管理员输入的问题 语句类别相同的关键词序列,若存在,执行步骤S34,否则,执行步骤S35。
步骤S34、自动应答系统将管理员输入的问答语句对中的应答语句添加到 问答语句库中,与查找到的关键词序列关联保存。
步骤S35、自动应答系统将所迷问题语句的关键词序列、类别与管理员输 入的应答语句关联保存到问答语句库中。
相应于本发明上述中文自动应答方法,本发明进而提出了一种中文自动应 答系统,请参阅图3,该图为本发明中文自动应答系统的结构框图,其主要包 括用户语句分析模块30和查询模块40,其中各组成模块的主要作用如下
用户语句分析模块30,用于确定用户输入的中文问题语句的类别及关键词 序列;
查询模块40,用于从问答语句库中查找与用户输入的中文问题语句类别相 同的关键词序列,将用户输入的中文问题语句的关键词序列与所述查找到的关 键词序列进行匹配,将其中匹配成功的关键词序列对应的应答语句返回给用户。
所述用户语句分析模块30具体包括第一分词子模块301和第一句类分析
子模块302,其中各子模块的主要作用如下
第一分词子模块301,用于利用预设词库对用户输入的中文问题语句进行 中文分词处理,得到词序列,将其输出给第一句类分析子模块302;
第一句类分析子模块302,用于根据所述词序列中包含的句类特征词确定 用户输入的中文问题语句的类别,并将句类特征词及停用词从所述词序列中删 除,得到用户输入的中文问题语句的关键词序列。
所述查询才莫块40具体包括匹配处理子才莫块401和结果反馈子^^莫块402,其 中各子模块的主要作用如下
匹配处理子模块401 ,用于从问答语句库中查找与用户输入语句类别相同 的关键词序列,将用户输入语句的关键词序列与所述查找到的关键词序列进行 匹配,若匹配成功,则将匹配成功的关键词序列对应的应答语句发送给结果反 馈子模块402,否则,随机选择一个与用户输入语句的类别相对应的缺省应答 语句发送给结果反馈子模块402;
所述匹配处理子模块401将用户输入的中文问题语句的关键词序列与所述 查找到的关键词序列进行匹配的具体步骤如下
1) 将用户输入的问题语句的关键词序列中的第一个关键词做为匹配依据,
集合;
2) 将做为匹配依据的关键词与当前结果集合中各关键词序列的相应位置 的内容分别进行匹配,将其中匹配不成功的关键词序列从结果集合中剔除;
3) 判断所述结果集合中是否有剩余的关键词序列,若是,执行步骤4), 否则,执行步骤6);
4) 判断用户输入的问题语句的关键词序列中是否存在下一个关键词,若 存在,将其做为匹配依据,返回步骤2),否则,执行步骤5);
5) 将结果集合中的关键词序列对应的应答语句发送给结果反馈子模块
402;
6)随机选择一个与用户输入语句的类别相对应的缺省应答语句发送给结
果反馈子模块402。
结果反馈子模块402,用于将匹配处理子模块发出的应答语句返回给用户。
本发明中,管理员通过向中文自动应答系统输入问答语句对对问答语句库 中存储的内容进行更新,因此本发明中文自动应答系统还包括
管理员语句分析模块50 ,用于确定管理员输入的问答语句对中的问题语句 的类别及关键词序列;
更新模块60 ,用于查找问答语句库中是否存在与所述问题语句类别相同的 关键词序列,若存在,则将该问答语句对中的应答语句添加到问答语句库中, 与查找到的关键词序列关联保存,否则,将所述问题语句的关键词序列、类别 与应答语句对中的应答语句关联保存到问答语句库中。
所述管理员语句分析模块50具体包括第二分词子模块501和第二句类分 析子模块502,其中各个子模块的具体作用如下
第二分词子模块501,用于对管理员输入的问题语句进行中文分词处理, 得到词序列;
第二句类分析子才莫块502,用于根据所述词序列中包含的句类特征词确定 管理员输入的问题语句的类别,并将句类特征词及停用词从所述词序列中删 除,得到管理员输入的问题语句的关键词序列。
综上可见,本发明在对用户输入的中文问题语句进行自动应答处理时,通 过确定出用户输入的中文问题语句的类别及关键词序列,然后在问答语句库中 查找与用户输入语句类别相同的问题语句的关键词序列,将用户输入语句的关 键词序列与所述查找到的关键词序列进行匹配,将其中匹配成功的关键词序列 对应的应答语句返回给用户,从而消除了由于中文句法灵活而导致的用户输入 的问题语句与问答语句库中的问题语句之间的不匹配,提高了问答语句库的内 容覆盖面,减少了建库的工作量,同时显著的提高了中文自动应答系统的准确 率及召回率。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种中文自动应答方法,其特征在于,包括步骤A、确定用户输入的中文语句的类别及关键词序列,从问答语句库中查找与用户输入语句类别相同的关键词序列;B、将用户输入语句的关键词序列与所述查找到的关键词序列进行匹配,将其中匹配成功的关键词序列对应的应答语句返回给用户。
2、 如权利要求1所述的方法,其特征在于,确定用户输入语句的类别及 关键词序列的具体步骤为对用户输入语句进^f亍中文分词处理,得到词序列;根据所述词序列中包含的句类特征词确定用户输入语句的类别,将句类特 征词及停用词从所述词序列中删除,余下的词序列为用户输入语句的关键词序列。
3、 如权利要求1所述的方法,其特征在于,所述步骤B中,若匹配不成 功,则向用户返回缺省应答语句。
4、 如权利要求1或3所述的方法,其特征在于,所述步骤B具体包括步骤Bl、提取用户输入语句的关键词序列中的第一个关键词做为匹配依据,将 所述查找到的关键词序列全部添加到结果集合中;B2、将做为匹配依据的关键词与结果集合中各关键词序列的相应位置的内 容分别进行匹配,将其中匹配不成功的关键词序列从结果集合中剔除;B3、判断所述结果集合中是否有剩余的关键词序列,若是,执行步骤B4, 否则,随机选择一个与用户输入语句的类别相对应的缺省应答语句返回给用 户;B4、判断用户输入语句的关键词序列中是否存在下一个关键词,若存在, 将其做为匹配依据,返回步骤B2,否则,将当前结果集合中的关键词序列对 应的应答语句返回给用户。
5、 如权利要求4所述的方法,其特征在于,所述步骤B2中,按照做为匹 配依据的关键词在用户输入语句的关键词序列中的位置,查找结果集合中各关 键词序列在该位置的内容,若该位置的内容为任意词通配符或者与做为匹配依 据的关键词相同,则本次匹配成功。
6、 如权利要求1所述的方法,其特征在于,所述问答语句库用于存储已 定义的问答语句对,所述问答语句对由管理员输入的问题语句的关键词序列、 类别及相应的应答语句构成。
7、 如权利要求6所述的方法,其特征在于,利用管理员输入的问答语句 对更新问答语句库的过程为确定所述问答语句对中的问题语句的类别及关键词序列; 查找问答语句库中是否存在与所述问题语句类别相同的关键词序列,若存 在,则将所述问答语句对中的应答语句添加到问答语句库中,与查找到的关键 词序列关联保存,否则,将所述问题语句的关键词序列、类别与问答语句对中 的应答语句关联保存到问答语句库中。
8、 如权利要求7所述的方法,其特征在于,确定所述问答语句对中的问 题语句的类别及关键词序列的具体过程为对管理员输入的问题语句进行中文分词处理,得到词序列; 根据所述词序列中包含的句类特征词确定所述问题语句的类别,将句类特征词及停用词从所述词序列中删除,余下的词序列为所述问题语句的关键词序列。
9、 如权利要求7所述的方法,其特征在于,若管理员输入的问题语句中 包含有任意词通配符,则该问题语句的关键词序列中包含有任意词通配符。
10、 一种中文自动应答系统,其特征在于,包括用户语句分析模块,用于确定用户输入的中文语句的类别及关键词序列; 查询模块,用于从问答语句库中查找与用户输入语句类别相同的关键词序 列,将用户输入语句的关键词序列与所述查找到的关键词序列进行匹配,将其 中匹配成功的关键词序列对应的应答语句返回给用户。
11、 如权利要求IO所述的系统,其特征在于,所述用户语句分析模块具 体包括第一分词子模块,用于对用户输入语句进行中文分词处理,得到词序列; 第一句类分析子模块,用于根据所述词序列中包含的句类特征词确定用户输入语句的类别,并将句类特征词及停用词从所述词序列中删除,得到用户输入语句的关键词序列。
12、 如权利要求IO所述的系统,其特征在于,所述查询模块具体包括 匹配处理子模块,用于从问答语句库中查找与用户输入语句类别相同的关键词序列,将用户输入语句的关键词序列与所述查找到的关键词序列进行匹 配,若匹配成功,则将匹配成功的关键词序列对应的应答语句发送给结果反馈 子模块,否则,随机选择一个与用户输入语句的类别相对应的缺省应答语句发 送给结果反馈子模块;结果反馈子模块,用于将匹配处理子模块发出的应答语句返回给用户。
13、 如权利要求10或11所述的系统,其特征在于,还包括管理员语句分析模块,用于确定管理员输入的问答语句对中的问题语句的 类别及关键词序列;更新模块,用于查找问答语句库中是否存在与所述问题语句类别相同的关 键词序列,若存在,则将该问答语句对中的应答语句添加到问答语句库中,与 查找到的关键词序列关联保存,否则,将所述问题语句的关键词序列、类别与 应答语句对中的应答语句关联保存到问答语句库中。
14、 如权利要求13所述的系统,其特征在于,所述管理员语句分析模块 具体包括第二分词子模块,用于对管理员输入的问题语句进行中文分词处理,得到 词序列;第二句类分析子模块,用于根据所述词序列中包含的句类特征词确定管理员输入的问题语句的类别,并将句类特征词及停用词从所述词序列中删除,得 到管理员输入的问题语句的关键词序列。
全文摘要
本发明公开了一种中文自动应答方法及系统,用以解决现有技术中采用模式匹配技术实现中文自动应答时,建立中文问答语句库的工作量巨大且覆盖面窄的问题。所述方法包括步骤确定用户输入的中文语句的类别及关键词序列,从问答语句库中查找与用户输入语句类别相同的关键词序列,将用户输入语句的关键词序列与所述查找到的关键词序列进行匹配,将其中匹配成功的关键词序列对应的应答语句返回给用户;所述系统包括用户语句分析模块和查询模块。本发明提高了问答语句库的内容覆盖面,减少了建库的工作量,同时显著的提高了中文自动应答系统的准确率及召回率。
文档编号G06F17/30GK101178711SQ20061014598
公开日2008年5月14日 申请日期2006年11月30日 优先权日2006年11月30日
发明者杨海松 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1