CN113515613A - 一种集成闲聊、知识和任务问答的智能机器人 - Google Patents
一种集成闲聊、知识和任务问答的智能机器人 Download PDFInfo
- Publication number
- CN113515613A CN113515613A CN202110711655.XA CN202110711655A CN113515613A CN 113515613 A CN113515613 A CN 113515613A CN 202110711655 A CN202110711655 A CN 202110711655A CN 113515613 A CN113515613 A CN 113515613A
- Authority
- CN
- China
- Prior art keywords
- question
- module
- knowledge
- dialogue
- intention
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种集成闲聊、知识和任务问答的智能机器人,包括:系统交互模块,用于提供可视化的交互界面,接收用户的输入信息作为问题输入;对话管理模块,用于处理对话逻辑,所述对话管理模块包括问题重写子模块、意图识别子模块和问题响应子模块;对话引擎模块,用于实现各子系统内部逻辑,包含闲聊问答、知识问答和任务问答,为问答提供算法支持;对话数据模块,用于存储和管理各子引擎所涉及的模型和语料,为问答系统提供数据支持;系统支持模块,对配置文件和日志进行管理,支持模块化部署和测试。本发明通过判断用户意图和处理对话逻辑,经对话引擎模块、对话数据模块处理后得到问题答案。
Description
技术领域
本发明涉及自然语言处理技术,尤其涉及一种集成闲聊、知识和任务问答的智能机器人。
背景技术
智能对话系统作为新一代人机交互技术,能够和用户进行闲聊、回答用户所提出的问题、完成用户指定的任务,有效降低互联网用户获取信息的门槛,提升工作和学习效率。例如,微软小冰能够在开放域对话中和用户进行闲聊;百度小度能够在信息检索系统中回答用户提出的问题;天猫精灵能够在智能家居中完成用户指定的任务。
目前,多数对话系统应用场景单一,仅考虑娱乐、学习、任务中某一方面,设计上缺乏扩展性。例如,以娱乐为主的闲聊型机器人,其仅采用端到端模型来生成模糊回复,用户体验后很快失去兴趣;以具有领域知识的知识型和任务型机器人,其需依赖专家知识和预定规则,不利于兼容更多的通用功能,存在扩展性低的问题。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种集成闲聊、知识和任务问答的智能机器人。
本发明解决其技术问题所采用的技术方案是:一种集成闲聊、知识和任务问答的智能机器人,包括:
系统交互模块,用于提供可视化的交互界面,接收用户的输入信息作为问题输入;
对话管理模块,用于处理对话逻辑,所述对话管理模块包括问题重写子模块、意图识别子模块和问题响应子模块
问题重写子模块,用于补全问题中的省略信息;
意图识别子模块,用于识别问题中隐藏的意图,判别问题的目的是闲聊、知识问答还是请求特定的任务;
问题响应子模块,用于根据意图识别的结果调用对应的问答子引擎对问题进行响应;
对话引擎模块,用于实现各子系统内部逻辑,包含闲聊问答、知识问答和任务问答,为问答提供算法支持;所述对话引擎模块包括闲聊对话子引擎、知识对话子引擎和任务对话子引擎;
对话数据模块,用于存储和管理各子引擎所涉及的模型和语料,为问答系统提供数据支持;
系统支持模块,对配置文件和日志进行管理,支持模块化部署和测试。
按上述方案,所述问题重写子模块包括对话历史编码单元、问题编码单元和指针解码单元;
问题编码模块,用于根据上一时间步计算问题的注意力分布,产生问题表示;
对话历史编码单元,用于根据问题表示计算对话历史信息的注意力分布,产生历史信息表示;
指针解码模块,用于对问题表示和历史信息表示应用线性网络得出指针值,以此融合对话历史编码信息和问题编码信息,从而得到对于对话历史和问题中所有单词的概率分布,以此确保当前时间步的解码结果所产生的单词必定来自于上文;然后输出完整的重写问题。
按上述方案,所述意图识别子模块使用TextCNN模型对问题进行意图分类,将意图分为闲聊问答、知识问答和任务问答。
按上述方案,所述意图识别子模块包含一级意图粗分类模块、二级意图细分类模块、意图检查模块;
所述粗分类模块负责使用TextCNN模型对问题进行粗略意图分类,将意图粗略分为闲聊问答、知识问答和任务问答;
所述细分类模块负责使用TextCNN对问题隐含的意图进行更细粒度分类,由于已经提前进行了粗略区分,此时每个TextCNN模型需要处理的类别数量更少,更易区分不同类别间的特征;
意图检查模块,对问题进行语义分析,按意图分类结果对语义细节进行检查,判断意图识别时意图分类是否发生误触现象,若判断为误触,则丢弃意图识别的最终结果。
按上述方案,所述闲聊对话子引擎包含前置规则触发器、敏感词过滤器和回复生成模块;
前置规则触发器用于处理高频问题、定制机器人个性化信息;
敏感词过滤器用于过滤输入问题中包含的敏感词;
回复生成模块采用端到端的方法来生成闲聊回复。
按上述方案,
所述回复生成模块生成闲聊回复包括以下步骤:
采用掩码多头注意力机制的信息编码器,将用户输入的问题X={x1,x2,……,xn}编码成一系列隐含向量;
Hl=MultiHeadAttentionl({x1,x2,……,xn})
其中,Hl代表第l层的隐含层向量,共包含12层Transformer结构;
最后,生成式预训练语言模型,通过最大化似然函数,即让训练集里面出现的用户输入-回复句子的概率最大化:
L=∑x,y logP(y|x1,x2,……,xn);
根据所得到的概率生成闲聊回复。
按上述方案,所述知识对话子引擎包括知识库、问句理解模块和答案推理模块,
所述知识库,用于保存知识问答的支持数据,包含现实世界中海量的三元组知识,数据存储至ES和Neo4j知识库;
所述问句理解模块,用于理解用户问句的深层语义信息,提取问句中所存在的实体和关系信息;具体如下:
1)提取问句中的候选指称
首先通过BERT获取问句的通用表征信息,然后利用双向长短期记忆网络(BiLSTM)学习文本的隐藏语义特征,最后借助条件随机场(CRF)来得到问句的序列标签,并从中识别得到候选指称;
2)将候选指称链接到知识图谱上,得到与之相关的候选实体
2.1)学习问句与实体之间的语义特征和统计特征,语义特征包括利用BiLSTM计算问句与实体信息间的语义相似度,统计特征包括指称重要度、实体流行度和字符匹配度;
2.2)利用逻辑回归(LR)算法对实体特征建模,排序后得到候选实体;
3)利用多级排序(Word2Vec、BERT)算法计算问句与关系间的语义相似度,通过LR排序后得到候选关系;
所述答案推理模块,根据问句理解模块的实体和关系信息,转换成Cypher查询路径,在Neo4j知识库中检索得到问题答案。
本发明产生的有益效果是:
1、本发明构建的智能聊天机器人能够满足用户对于闲聊、知识和任务的需求,在没有明确意图的场景中,提出统一的服务框架,根据用户的输入,集成闲聊、知识和任务问答功能,满足用户对于娱乐、知识、任务等需求。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的结构示意图;
图2是本发明实施例中对话管理的问句重写模型示意图;
图3是本发明实施例中对话管理的问句意图识别模型示意图;
图4是本发明实施例中闲聊问答的模型框架示意图;
图5是本发明实施例中闲聊问答的敏感词过滤模型示意图;
图6是本发明实施例中知识问答的模型框架示意图;
图7是本发明实施例中知识问答的BBC指称识别模型示意图;
图8是本发明实施例中任务问答的模型框架示意图;
图9是本发明实施例中任务问答的任务模版示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,一种基于闲聊、知识和任务问答的智能机器人,能够同时满足用户日常娱乐、知识获取和解决特定任务的需求。
包括:
系统交互模块,用于提供可视化的交互界面,接收用户的输入信息作为问题输入;
本发明提供网页端和微信端两种交互方式。用户通过网页端或微信端进行提问,将接收到的问句传递给对话管理模块进行处理,完成后将得到的答案经原路径返回给用户。通过提供网页端、微信端两种不同的交互界面,用户可随时与机器人进行聊天,有效提高问答效率。
对话管理模块,用于处理对话逻辑,所述对话管理模块包括问题重写子模块、意图识别子模块和问题响应子模块
问题重写子模块,用于补全问题中的省略信息;
意图识别子模块,用于识别问题中隐藏的意图,判别问题的目的是闲聊、知识问答还是请求特定的任务;
问题响应子模块,用于根据意图识别的结果调用对应的问答子引擎对问题进行响应;
问题重写的目的是补全问题中的省略信息,将问题中的句子成分进行扩展;意图识别的目的是识别问题中隐藏的意图,判别问题的目的是闲聊、知识问答还是请求特定的任务;问题响应的目的是根据意图来调用不同的问答子引擎来对问题进行响应,并在问答过程中进行自我验证,判别是否需要更换成其他的对话引擎。
针对问题重写,本发明为解决传统序列到序列模型解码时出现的OOV问题,提出了一种基于指针网络的问题重写模型。如图2所示,所述模型分为对话历史编码模块、问题编码模块和指针解码模块。其中,问题编码模块负责依据上一时间步计算问题的注意力分布,产生问题表示;对话历史编码模块负责依据问题表示计算对话历史信息的注意力分布,产生历史信息表示;指针解码模块首先对上述问题表示和历史信息表示应用线性网络得出指针值,以此融合对话历史编码信息和问题编码信息,从而得到对于对话历史和问题中所有单词的概率分布,以此确保当前时间步的解码结果所产生的单词必定来自于上文。最后,模型将输出完整的重写问题。
针对意图识别,为解决对话系统语料更新快、意图识别所用语料极易出现严重类别不平衡的问题,本发明提出树状层叠分类器。如图3所示,包含一级意图粗分类模块、二级意图细分类模块、意图检查模块。其中,粗分类模块负责使用TextCNN模型对问题进行粗略意图分类,将意图粗略分为闲聊问答、知识问答和任务问答,此类别设置可保证训练数据量级的相对平衡;细分类模块负责使用TextCNN对问题隐含的意图进行更细粒度分类,由于已经提前进行了粗略区分,此时每个TextCNN模型需要处理的类别数量更少,更易区分不同类别间的特征;意图检查模块对问题中的语义细节进行检查,筛选意图识别时可能发生的误触现象,如已被识别为任务问答-天气查询的“今天天气不错”将通过语义分析被认为是误触,从而丢弃意图识别的最终结果。
针对问题响应,根据意图来调用不同的问答子引擎来对问题进行响应,并对返回的答案进行验证。若答案判断正常,则将答案返回给用户;若答案判断异常,则更换到其他对话引擎,将所得到的答案返回给用户。
对话引擎模块,用于实现各子系统内部逻辑,包含闲聊问答、知识问答和任务问答,为问答提供算法支持;所述对话引擎模块包括闲聊对话子引擎、知识对话子引擎和任务对话子引擎;
闲聊对话子引擎包含前置规则触发器、敏感词过滤器和回复生成模块;
前置规则触发器用于处理高频问题、定制机器人个性化信息;
敏感词过滤器用于过滤输入问题中包含的敏感词;
回复生成模块采用端到端的方法来生成闲聊回复。
闲聊对话子引擎模型框架如图4所示,其中,前置规则触发器用于处理高频问题、定制机器人个性化信息;敏感词过滤器用于过滤输入问题中可能包含的敏感词;回复生成模块采用端到端的方法来生成闲聊回复。
针对前置规则触发器,主要包含两个功能。其一,解决对话问题中的高频回复,尽管闲聊问答涉及到的话题较广,但是其话题分布整体上呈现正态分布,因此针对头部高频问题,预设好人工回复则能够提供较好的用户体验。其二,由于该聊天机器人需要控制自己的个性属性设定,例如名称、性别、年龄等,因此针对此类问题采用可控性的规则触发器比直接给回复生成模块进行生成更合理。规则触发器主要实现方式是规则匹配+预设回复,首先规则匹配方面采用两种方式,一种是直接关键词触发,例如用户直接问“你是谁”这一类的问题,可以通过关键词迅速检测出来;另外一种是采用正则匹配,主要是通过构建模板范式,抽取某一类问题(如询问聊天机器人年龄)的通用模板,采用正则匹配的方式触发回复。值得注意的是预设回复包含多条不同的人工回复,通过从预设回复当中随机选择的方式,能够增加回复的新颖程度,避免陷入死板的问答模式。
针对敏感词过滤器,由于用户输入当中可能有一些不合法的敏感词,需要进行过滤处理,因此本发明采用图5所示的确定有穷自动机(Deterministic Finite Automaton,DFA)算法进行敏感词过滤。DFA算法计算从一个状态通过一系列的事件转换到另一个状态的概率,通过对于所有敏感词词典构建多个关键词数,即树的根节点是每个敏感词的第一个词,然后将随后的词语作为子节点构建树,此类构建方法能够节省存储空间,提高检索效率。过滤的过程是一个树匹配的过程,依次匹配待检测的句子构建的树和敏感词词典构建出的树,如果能够完整的匹配一个子树,则说明待检测的句子包含敏感词。
针对回复生成模块,本发明采用生成式预训练语言模型(Generative Pre-Training,GPT)作为核心引擎。该模型采用Transformer的Decoder作为核心模块,使用其中的掩码多头注意力机制进行信息编码,然后叠加多层特征提取,最后接全连接层生成相应回复。其主要过程如下:
所述回复生成模块生成闲聊回复包括以下步骤:
采用掩码多头注意力机制的信息编码器,将用户输入的问题X={x1,x2,……,xn}编码成一系列隐含向量;
Hl=MultiHeadAttentionl({x1,x2,……,xn})
其中,Hl代表第l层的隐含层向量,共包含12层Transformer结构;l代表GPT模型堆叠的Transformer层数;
最后,生成式预训练语言模型,通过最大化似然函数,即让训练集里面出现的用户输入-回复句子的概率最大化:
L=∑x,y logP(y|x1,x2,……,xn);
根据所得到的概率生成闲聊回复。
知识对话子引擎包括知识库、问句理解模块和答案推理模块,
所述知识库,用于保存知识问答的支持数据,包含现实世界中海量的三元组知识,数据存储至ES和Neo4j知识库;
所述问句理解模块,用于理解用户问句的深层语义信息,提取问句中所存在的实体和关系信息;具体如下:
1)提取问句中的候选指称
首先通过BERT获取问句的通用表征信息,然后利用双向长短期记忆网络(BiLSTM)学习文本的隐藏语义特征,最后借助条件随机场(CRF)来得到问句的序列标签,并从中识别得到候选指称;
2)将候选指称链接到知识图谱上,得到与之相关的候选实体
2.1)学习问句与实体之间的语义特征和统计特征,语义特征包括利用BiLSTM计算问句与实体信息间的语义相似度,统计特征包括指称重要度、实体流行度和字符匹配度;
2.2)利用逻辑回归(LR)算法对实体特征建模,排序后得到候选实体;
3)利用多级排序(Word2Vec、BERT)算法计算问句与关系间的语义相似度,通过LR排序后得到候选关系
所述答案推理模块,根据问句理解模块的实体和关系信息,转换成Cypher查询路径,在Neo4j知识库中检索得到问题答案。
知识对话子引擎模型框架如图6所示,针对用户提问的问题,首先通过问句理解模块提取得到目标实体和关系,然后利用答案检索模块将实体和关系转换成推理路径,最后在知识库中检索得到问题答案。其中,知识库是知识问答的数据支持模块,包含现实世界中海量的三元组知识,数据存储至ES和Neo4j知识库;问句理解模块是知识问答的算法支持模块,包括指称识别、实体链接和关系预测算法,目标是理解用户问句的深层语义信息,提取问句中所存在的实体和关系信息;答案检索是知识问答的知识推理模块,目的是根据问句理解模块得到的实体和关系来构建推理路径,在知识图谱中检索得到问题答案。
知识问答的重点是理解用户问句的深层语义信息,提取问句中的目标实体和目标关系。例如,针对问句“白鹿原的作者是谁?”,需利用指称识别、实体链接和关系预测算法提取问句中的实体“白鹿原(书籍)”和关系“作者”,进而在知识图谱中推理得到问题答案。
针对指称识别算法,本发明提出基于BERT-BiLSTM-CRF(BBC)序列标注和ElasticSearch(ES)精确检索的指称识别模型,用于提取问句中的候选指称。BBC模型如图7所示,首先通过BERT获取问句的通用表征信息,然后利用双向长短期记忆网络(BiLSTM)学习文本的隐藏语义特征,最后借助条件随机场(CRF)来得到问句的序列标签,并从中识别得到候选指称。基于ES精确检索的方法是将问句分词,将筛选后的词语在ES数据库中精确匹配到对应的候选指称。
针对实体链接算法,本发明提出提出基于特征计算和特征排序的实体链接模型,用于将候选指称链接到知识图谱上,得到与之相关的候选实体。基于特征计算的方法是学习问句与实体之间的语义特征和统计特征,语义特征包括利用BiLSTM计算问句与实体信息间的语义相似度,统计特征包括指称重要度、实体流行度和字符匹配度。基于特征排序的方法是利用逻辑回归(LR)算法对实体特征建模,排序后得到候选实体。
针对关系预测算法,本发明提出基于语义相似度的关系预测模型,用于识别问句中的候选关系。基于语义相似度的方法是利用多级排序(Word2Vec、BERT)算法计算问句与关系间的语义相似度,通过LR排序后得到候选关系。
最后,根据问句理解模块的实体和关系信息,转换成Cypher查询路径,在Neo4j知识库中检索得到问题答案。例如,针对问句“白鹿原的作者是谁?”,将目标实体“白鹿原(书籍)”和目标关系“作者”转换成Cypher查询语句"match(a:Entity)-[r1:Relation]->(b)where a.name=“白鹿原(书籍)”and r1.name=“作者”return b.name",进而在Neo4j知识库中检索得到问题答案“陈忠实”。
任务对话子引擎模型框架如图8所示,包括任务派分、子任务处理模块。其中,任务派分是将输入到任务型聊天的问句进行更细粒度的分类,对应分派到每个子任务中去,在相应子任务的对话逻辑下完成答复生成。子任务模块是对特定的任务进行响应,得到与之相关的问题答案,子类型包括车票查询、天气查询、时间查询、星座运势查询、新冠疫情查询、讲笑话、成语接龙。
针对任务派分模块,综合考虑准确度和效率的平衡,选择以卷积神经网络为基础框架的深度学习模型作为派分模块的分类器。针对子任务模块,由于子任务对话逻辑的不同,本发明针对不同类型的子任务设计了三种交互逻辑,包括接口、事件和模板。
通过接口的交互逻辑的前提为当前子任务无需提取额外的信息,与用户的对话是在单轮对话中完成,如讲笑话等。交互逻辑的实现是通过http的get请求访问与之对应的功能接口,返回结果即可。
通过事件的交互逻辑的前提是当前子任务需要持续与用户完成信息交互,在机器人答不出或用户打错的情况出现外需要一直在“游戏进行”的交互逻辑中,通过“回答错误”或“无答案回复”等相关事件的触发来终止游戏的交互逻辑,如成语接龙。
通过模板的交互逻辑的前提是当前子任务需要提取额外的信息,如天气查询需要得到查询天气所在的城市,车票查询需要得到车票出发地、目的地、出发日期等,与用户的对话是在多轮对话中完成。如图9所示,本发明通过引入模板机制来完成这种交互逻辑,即对于每个需要额外信息的子任务,都设计一个与其对应的模板,以天气查询为例,该模板中包含两个空白槽,分别是地点和时间。一旦在当前用户问句中无法填充完整当前模板的所有空白槽,便通过生成针对每个空白槽的问句答复,用于让用户进一步完成槽填充。
本发明包含闲聊、知识和任务类型的对话子引擎,分别用于处理闲聊型、知识型和任务型问题。其中,闲聊问答针对用户输入的日常性语句进行个性化回复,如用户提问“哎呀今天好热啊!”,闲聊问答回复“是的呀,武汉也好热!”;知识问答针对用户提问的百科类的知识问题直接回复确切的答案,如用户提问“白鹿原的作者是谁?”,知识问答直接回复“陈忠实”;任务问答针对用户指定的任务进行处理,如车票查询、天气查询、时间查询、星座运势查询、新冠疫情查询、讲笑话、成语接龙等。
对话数据模块,用于存储和管理各子引擎所涉及的模型和语料,为问答系统提供数据支持;
闲聊问答语料采用NLPCC2018年发布的微博对话语料库,包含500万条训练数据,并已删除微博标签(Tag)、URL链接、表情符号等噪音数据。针对上述训练数据,采用Pytorch的DataLoader来进行加载,该Dataloader类能够返回一个迭代器,降低自己的数据库访问频次,利用多线程实现高效的批处理。
敏感词过滤数据包含14,413条敏感数据,包含现有国家法律禁止的敏感词和敏感话题,同时本发明对该敏感词词典进行预处理,包含过滤、筛选、剔除歧义敏感词等过程。另一方面,本发明对于敏感词进行分类标注处理,分为“政治敏感”、“暴力辱骂”等六类,便于针对不同类别的敏感词使用不同的兜底回复。
知识问答语料采用OwnThink知识图谱数据,包含1.4亿三元组、4500多万实体、48多万关系和1500多万指称信息,三元组信息如<白鹿原(书籍),作者,陈忠实>所示,其中“白鹿原(书籍)”表示头实体、“作者”表示关系、“陈忠实”表示尾实体、“白鹿原”表示指称。
针对知识图谱中的三元组信息,将存储至Neo4j图形数据库,其能够存储超百亿的节点,并可在毫秒级时间内利用Cypher查询语言检索得到问题答案。Neo4j图形数据库中数据以节点和边的方式进行存储,可借助图论算法进行高效的检索和推理操作,并提供优化的可视化界面,方便用户挖掘数据之间的关联关系,提高数据分析效率。
针对知识图谱中的指称和实体信息,将存储至ElasticSearch(ES)数据库,其能够通过RESTful API接口进行实时的精确检索、模糊检索等操作。另外,借助ES Kibana工具,可进行数据监控、数据告警、数据开发和可视化分析等操作,提升ES搜索引擎中数据的利用率。
任务问答语料采用人工来生成和标注训练数据,对于天气、车票、笑话、星座、日期、其他等6个子任务中的每个子任务有生成100条问句,共计600条数据。
针对接口类子任务的实现,通过http的get请求对应服务来完成,以天气查询为例,提交的get请求格式为“http://url/?date=2021-05-13&city=武汉”;针对事件类子任务的实现,通过关键词触发的方式完成,以成语接龙为例,子任务开始的触发词为“成语接龙”,结束的触发词为“结束”或“退出”,游戏中结束的触发事件为成语接龙失败;针对模板类子任务的实现,通过自定义模板数据结构的方式完成,以车票查询为例,模板的数据结构定义为:
{'date':null,'start_station':null,'arrival_station':null}
系统支持模块,对配置文件和日志进行管理,支持模块化部署和测试。
系统支持模块包括Docker容器化部署和MySQL数据持久化,用于提升问答系统运行效率,提升系统鲁棒性。其中,Docker容器化部署是将系统中各子模块编译成DockerImage,以容器化技术来管理各模块;MySQL数据持久化用于实时存储系统运行过程中所产生的日志数据。
针对Docker容器化部署,利用pip freeze生成项目所需的依赖环境,依次编写dockerfile将各问答程序编译成image文件。然后利用docker save命令将项目代码打包成tar文件部署至生产环境,部署过程中无需重复配置依赖环境。
针对MySQL数据持久化,本发明采用Python Threading模块,异步实时的将系统运行数据写入至MySQL数据库,包括时间、日志名称、日志等级、日志内容等信息。针对所存储的对话数据,后续可用于数据分析,更新各模块权重,提升问答效果。
本发明构建的智能聊天机器人能够满足用户对于闲聊、知识和任务的需求,在用户没有明确意图的场景中,可以基于闲聊问答功能,回复问候、情感类信息,以满足用户的娱乐需求;在用户希望得到具体答案的场景中,可以基于知识问答功能,检索得到确切的问题答案,以满足用户对于知识、信息的需求;在用户希望完成特定技能的场景中,可以基于任务问答功能,帮助用户完成指定的任务,如车票查询、天气查询、时间查询、星座运势查询、新冠疫情查询、讲笑话、成语接龙等。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (7)
1.一种集成闲聊、知识和任务问答的智能机器人,其特征在于,包括:
系统交互模块,用于提供可视化的交互界面,接收用户的输入信息作为问题输入;
对话管理模块,用于处理对话逻辑,所述对话管理模块包括问题重写子模块、意图识别子模块和问题响应子模块;
问题重写子模块,用于补全问题中的省略信息;
意图识别子模块,用于识别问题中隐藏的意图,判别问题的目的是闲聊、知识问答还是请求特定的任务;
问题响应子模块,用于根据意图识别的结果调用对应的问答子引擎对问题进行响应;
对话引擎模块,用于实现各子系统内部逻辑,包含闲聊问答、知识问答和任务问答,为问答提供算法支持;所述对话引擎模块包括闲聊对话子引擎、知识对话子引擎和任务对话子引擎;
对话数据模块,用于存储和管理各子引擎所涉及的模型和语料,为问答系统提供数据支持;
系统支持模块,对配置文件和日志进行管理,支持模块化部署和测试。
2.根据权利要求1所述的集成闲聊、知识和任务问答的智能机器人,其特征在于,所述问题重写子模块包括对话历史编码单元、问题编码单元和指针解码单元;
问题编码模块,用于根据上一时间步计算问题的注意力分布,产生问题表示;
对话历史编码单元,用于根据问题表示计算对话历史信息的注意力分布,产生历史信息表示;
指针解码模块,用于对问题表示和历史信息表示应用线性网络得出指针值,以此融合对话历史编码信息和问题编码信息,从而得到对于对话历史和问题中所有单词的概率分布;
根据所得到的概率分布来逐步生成单词,确保各时间步的解码结果来自于上文,最后将单词序列组合后得到重写问题。
3.根据权利要求1所述的集成闲聊、知识和任务问答的智能机器人,其特征在于,所述意图识别子模块使用TextCNN模型对问题进行意图分类,将意图分为闲聊问答、知识问答和任务问答。
4.根据权利要求1所述的集成闲聊、知识和任务问答的智能机器人,其特征在于,所述意图识别子模块包含一级意图粗分类模块、二级意图细分类模块、意图检查模块;
所述粗分类模块负责使用TextCNN模型对问题进行粗略意图分类,将意图粗略分为闲聊问答、知识问答和任务问答;
所述细分类模块负责使用TextCNN对问题隐含的意图进行更细粒度分类;
一级意图粗分类模块、二级意图细分类模块中的TextCNN分类模型采用不同数据集进行训练,完成后得到特定的训练参数,有效提升问句分类效果;
意图检查模块,对问题进行语义分析,按意图分类结果对语义细节进行检查,判断意图识别时意图分类是否发生误触现象,若判断为误触,则丢弃意图识别的最终结果。
5.根据权利要求1所述的集成闲聊、知识和任务问答的智能机器人,其特征在于,所述闲聊对话子引擎包含前置规则触发器、敏感词过滤器和回复生成模块;
前置规则触发器用于处理高频问题、定制机器人个性化信息;
敏感词过滤器用于过滤输入问题中包含的敏感词;
回复生成模块采用端到端的方法来生成闲聊回复。
6.根据权利要求5所述的集成闲聊、知识和任务问答的智能机器人,其特征在于,所述回复生成模块生成闲聊回复包括以下步骤:
采用掩码多头注意力机制的信息编码器,将用户输入的问题X={x1,x2,……,xn}编码成一系列隐含向量;
Hl=MultiHeadAttentionl({x1,x2,……,xn})
其中,Hl代表第l层的隐含层向量,共包含12层Transformer结构;
最后,生成式预训练语言模型,通过最大化似然函数,即让训练集里面出现的用户输入-回复句子的概率最大化:
L=∑x,ylogP(y|x1,x2,……,xn);
根据所得到的概率生成闲聊回复。
7.根据权利要求1所述的集成闲聊、知识和任务问答的智能机器人,其特征在于,所述知识对话子引擎包括知识库、问句理解模块和答案推理模块,
所述知识库,用于保存知识问答的支持数据,包含现实世界中海量的三元组知识,数据存储至ES和Neo4j知识库;
所述问句理解模块,用于理解用户问句的深层语义信息,提取问句中所存在的实体和关系信息;具体如下:
1)提取问句中的候选指称
首先通过BERT获取问句的通用表征信息,然后利用双向长短期记忆网络BiLSTM学习文本的隐藏语义特征,最后借助条件随机场CRF来得到问句的序列标签,并从中识别得到候选指称;
2)将候选指称链接到知识图谱上,得到与之相关的候选实体
2.1)学习问句与实体之间的语义特征和统计特征,语义特征包括利用BiLSTM计算问句与实体信息间的语义相似度,统计特征包括指称重要度、实体流行度和字符匹配度;
2.2)利用逻辑回归LR算法对实体特征建模,排序后得到候选实体;所述实体特征为语义特征和统计特征;
3)利用多级排序算法计算问句与关系间的语义相似度,通过LR排序后得到候选关系;
所述答案推理模块,根据问句理解模块的实体和关系信息,转换成Cypher查询路径,在Neo4j知识库中检索得到问题答案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110711655.XA CN113515613A (zh) | 2021-06-25 | 2021-06-25 | 一种集成闲聊、知识和任务问答的智能机器人 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110711655.XA CN113515613A (zh) | 2021-06-25 | 2021-06-25 | 一种集成闲聊、知识和任务问答的智能机器人 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113515613A true CN113515613A (zh) | 2021-10-19 |
Family
ID=78066347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110711655.XA Pending CN113515613A (zh) | 2021-06-25 | 2021-06-25 | 一种集成闲聊、知识和任务问答的智能机器人 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113515613A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153955A (zh) * | 2021-11-11 | 2022-03-08 | 科讯嘉联信息技术有限公司 | 一种融合闲聊和常识的多技能任务型对话系统构建方法 |
CN114187997A (zh) * | 2021-11-16 | 2022-03-15 | 同济大学 | 一种面向抑郁人群的心理咨询聊天机器人实现方法 |
CN114625861A (zh) * | 2022-05-11 | 2022-06-14 | 之江实验室 | 改进Transformer融入知识的端到端对话方法 |
CN114996433A (zh) * | 2022-08-08 | 2022-09-02 | 北京聆心智能科技有限公司 | 一种对话生成方法、装置及设备 |
CN115017276A (zh) * | 2022-03-28 | 2022-09-06 | 连芷萱 | 结合模糊逻辑与r-gcn的政务咨询多轮对话方法及系统 |
CN115048944A (zh) * | 2022-08-16 | 2022-09-13 | 之江实验室 | 一种基于主题增强的开放域对话回复方法及系统 |
CN115083412A (zh) * | 2022-08-11 | 2022-09-20 | 科大讯飞股份有限公司 | 语音交互方法及相关装置、电子设备、存储介质 |
CN115238101A (zh) * | 2022-09-23 | 2022-10-25 | 中国电子科技集团公司第十研究所 | 一种面向多类型知识库的多引擎智能问答系统 |
CN115392233A (zh) * | 2022-08-24 | 2022-11-25 | 上海恒格信息科技有限公司 | 基于中心句识别和Bert意图识别的智能催收辅助系统 |
CN116151273A (zh) * | 2023-04-24 | 2023-05-23 | 湖南超能机器人技术有限公司 | 基于Transformer和知识图谱的智能交互方法 |
CN116303962A (zh) * | 2023-03-21 | 2023-06-23 | 北京百度网讯科技有限公司 | 对话生成方法、深度学习模型的训练方法、装置和设备 |
CN116383367A (zh) * | 2023-06-06 | 2023-07-04 | 北京啄木鸟云健康科技有限公司 | 对话系统冷启动阶段的数据处理方法、装置、设备及介质 |
CN116737964A (zh) * | 2023-08-04 | 2023-09-12 | 联想新视界(北京)科技有限公司 | 一种人工智能大脑系统 |
CN116955592A (zh) * | 2023-07-21 | 2023-10-27 | 广州拓尔思大数据有限公司 | 基于可视化推理结果的数据处理方法及系统 |
CN117290468A (zh) * | 2023-08-25 | 2023-12-26 | 北京红棉小冰科技有限公司 | 智能对话方法、装置和存储介质 |
CN117408708A (zh) * | 2023-11-09 | 2024-01-16 | 南方电网储能股份有限公司信息通信分公司 | 一种基于大数据的客服中心调度系统 |
CN117556920A (zh) * | 2023-10-23 | 2024-02-13 | 星环信息科技(上海)股份有限公司 | 一种大模型幻觉治理方法、装置、设备及存储介质 |
CN117573834A (zh) * | 2023-11-30 | 2024-02-20 | 北京快牛智营科技有限公司 | 一种用于面向软件即服务平台的多机器人对话方法及系统 |
CN117688189A (zh) * | 2023-12-27 | 2024-03-12 | 珠江水利委员会珠江水利科学研究院 | 一种融合知识图谱、知识库和大型语言模型的问答系统构建方法 |
CN117851573A (zh) * | 2024-01-17 | 2024-04-09 | 广州大麦信息科技有限公司 | 基于动态知识图谱的虚拟主播智能闲聊系统 |
-
2021
- 2021-06-25 CN CN202110711655.XA patent/CN113515613A/zh active Pending
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153955A (zh) * | 2021-11-11 | 2022-03-08 | 科讯嘉联信息技术有限公司 | 一种融合闲聊和常识的多技能任务型对话系统构建方法 |
CN114187997A (zh) * | 2021-11-16 | 2022-03-15 | 同济大学 | 一种面向抑郁人群的心理咨询聊天机器人实现方法 |
CN115017276A (zh) * | 2022-03-28 | 2022-09-06 | 连芷萱 | 结合模糊逻辑与r-gcn的政务咨询多轮对话方法及系统 |
CN114625861A (zh) * | 2022-05-11 | 2022-06-14 | 之江实验室 | 改进Transformer融入知识的端到端对话方法 |
CN114625861B (zh) * | 2022-05-11 | 2022-09-06 | 之江实验室 | 改进Transformer融入知识的端到端对话方法 |
CN114996433A (zh) * | 2022-08-08 | 2022-09-02 | 北京聆心智能科技有限公司 | 一种对话生成方法、装置及设备 |
CN115083412A (zh) * | 2022-08-11 | 2022-09-20 | 科大讯飞股份有限公司 | 语音交互方法及相关装置、电子设备、存储介质 |
CN115048944A (zh) * | 2022-08-16 | 2022-09-13 | 之江实验室 | 一种基于主题增强的开放域对话回复方法及系统 |
CN115048944B (zh) * | 2022-08-16 | 2022-12-20 | 之江实验室 | 一种基于主题增强的开放域对话回复方法及系统 |
CN115392233A (zh) * | 2022-08-24 | 2022-11-25 | 上海恒格信息科技有限公司 | 基于中心句识别和Bert意图识别的智能催收辅助系统 |
CN115238101A (zh) * | 2022-09-23 | 2022-10-25 | 中国电子科技集团公司第十研究所 | 一种面向多类型知识库的多引擎智能问答系统 |
CN115238101B (zh) * | 2022-09-23 | 2023-01-03 | 中国电子科技集团公司第十研究所 | 一种面向多类型知识库的多引擎智能问答系统 |
CN116303962A (zh) * | 2023-03-21 | 2023-06-23 | 北京百度网讯科技有限公司 | 对话生成方法、深度学习模型的训练方法、装置和设备 |
CN116303962B (zh) * | 2023-03-21 | 2024-05-28 | 北京百度网讯科技有限公司 | 对话生成方法、深度学习模型的训练方法、装置和设备 |
CN116151273A (zh) * | 2023-04-24 | 2023-05-23 | 湖南超能机器人技术有限公司 | 基于Transformer和知识图谱的智能交互方法 |
CN116383367A (zh) * | 2023-06-06 | 2023-07-04 | 北京啄木鸟云健康科技有限公司 | 对话系统冷启动阶段的数据处理方法、装置、设备及介质 |
CN116383367B (zh) * | 2023-06-06 | 2023-08-11 | 北京啄木鸟云健康科技有限公司 | 对话系统冷启动阶段的数据处理方法、装置、设备及介质 |
CN116955592A (zh) * | 2023-07-21 | 2023-10-27 | 广州拓尔思大数据有限公司 | 基于可视化推理结果的数据处理方法及系统 |
CN116955592B (zh) * | 2023-07-21 | 2024-02-09 | 广州拓尔思大数据有限公司 | 基于可视化推理结果的数据处理方法及系统 |
CN116737964B (zh) * | 2023-08-04 | 2023-11-17 | 联想新视界(北京)科技有限公司 | 一种人工智能大脑系统 |
CN116737964A (zh) * | 2023-08-04 | 2023-09-12 | 联想新视界(北京)科技有限公司 | 一种人工智能大脑系统 |
CN117290468A (zh) * | 2023-08-25 | 2023-12-26 | 北京红棉小冰科技有限公司 | 智能对话方法、装置和存储介质 |
CN117290468B (zh) * | 2023-08-25 | 2024-06-04 | 北京红棉小冰科技有限公司 | 智能对话方法、装置和存储介质 |
CN117556920A (zh) * | 2023-10-23 | 2024-02-13 | 星环信息科技(上海)股份有限公司 | 一种大模型幻觉治理方法、装置、设备及存储介质 |
CN117556920B (zh) * | 2023-10-23 | 2024-05-31 | 星环信息科技(上海)股份有限公司 | 一种大模型幻觉治理方法、装置、设备及存储介质 |
CN117408708A (zh) * | 2023-11-09 | 2024-01-16 | 南方电网储能股份有限公司信息通信分公司 | 一种基于大数据的客服中心调度系统 |
CN117573834B (zh) * | 2023-11-30 | 2024-04-16 | 北京快牛智营科技有限公司 | 一种用于面向软件即服务平台的多机器人对话方法及系统 |
CN117573834A (zh) * | 2023-11-30 | 2024-02-20 | 北京快牛智营科技有限公司 | 一种用于面向软件即服务平台的多机器人对话方法及系统 |
CN117688189A (zh) * | 2023-12-27 | 2024-03-12 | 珠江水利委员会珠江水利科学研究院 | 一种融合知识图谱、知识库和大型语言模型的问答系统构建方法 |
CN117851573A (zh) * | 2024-01-17 | 2024-04-09 | 广州大麦信息科技有限公司 | 基于动态知识图谱的虚拟主播智能闲聊系统 |
CN117851573B (zh) * | 2024-01-17 | 2024-06-25 | 广州大麦信息科技有限公司 | 基于动态知识图谱的虚拟主播智能闲聊系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113515613A (zh) | 一种集成闲聊、知识和任务问答的智能机器人 | |
CN117033608B (zh) | 一种基于大语言模型的知识图谱生成式问答方法及系统 | |
CN108920622B (zh) | 一种意图识别的训练方法、训练装置和识别装置 | |
CN109493166B (zh) | 一种针对电子商务导购场景任务型对话系统的构建方法 | |
US20190272269A1 (en) | Method and system of classification in a natural language user interface | |
US9761225B2 (en) | Semantic re-ranking of NLU results in conversational dialogue applications | |
CN110727779A (zh) | 基于多模型融合的问答方法及系统 | |
US7174507B2 (en) | System method and computer program product for obtaining structured data from text | |
CN108932342A (zh) | 一种语义匹配的方法、模型的学习方法及服务器 | |
CN112800170A (zh) | 问题的匹配方法及装置、问题的回复方法及装置 | |
CN111046132A (zh) | 一种检索多轮对话的客服问答处理方法及其系统 | |
CN111291195B (zh) | 一种数据处理方法、装置、终端及可读存储介质 | |
US20150081277A1 (en) | System and Method for Automatically Classifying Text using Discourse Analysis | |
CN110765277B (zh) | 一种基于知识图谱的移动端的在线设备故障诊断方法 | |
US20240095468A1 (en) | Computer implemented methods for the automated analysis or use of data, including use of a large language model | |
CN111666400B (zh) | 消息获取方法、装置、计算机设备及存储介质 | |
CN117521675A (zh) | 基于大语言模型的信息处理方法、装置、设备及存储介质 | |
US20230274089A1 (en) | Computer implemented methods for the automated analysis or use of data, including use of a large language model | |
CN117390497B (zh) | 基于大语言模型的类目预测方法、装置和设备 | |
US20230229860A1 (en) | Method and system for hybrid entity recognition | |
CN112632224A (zh) | 基于案例知识图谱的案件推荐方法、装置和电子设备 | |
CN116955562A (zh) | 一种基于人工智能技术的智能客服系统 | |
Kshirsagar et al. | A Review on Application of Deep Learning in Natural Language Processing | |
CN114691828A (zh) | 数据处理方法、装置、设备以及介质 | |
CN114153942A (zh) | 一种基于动态注意力机制的事件时序关系抽取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |