CN114003773A - 一种基于自构建多场景的对话追踪方法 - Google Patents
一种基于自构建多场景的对话追踪方法 Download PDFInfo
- Publication number
- CN114003773A CN114003773A CN202111150461.3A CN202111150461A CN114003773A CN 114003773 A CN114003773 A CN 114003773A CN 202111150461 A CN202111150461 A CN 202111150461A CN 114003773 A CN114003773 A CN 114003773A
- Authority
- CN
- China
- Prior art keywords
- question
- module
- answer
- questions
- sequence
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- 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
- B25J11/0005—Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于自构建多场景的对话追踪方法,该系统首先对用户输入的问句进行特征工程处理,然后将处理过的问句送入多层级的线性过滤器中,使其先后通过模板匹配、图谱检索、问题检索、模型预测、联网搜索等多个模块,最终得到答案返回给用户。多个模块负责不同类型的问答,最后如果都无法匹配答案则调用外部接口进行联网搜索,这种结构设计能够充分利用各个模块的技术优势,从而有效提高了最后输出的回答的可靠性,减少了聊天机器人常见的安全回答现象,同时也保证了程序能够应用于多数聊天场景之中,提高了泛用性。
Description
技术领域
本发明涉及机器人技术领域,尤其涉及一种基于自构建多场景的对话追踪方法。
背景技术
聊天机器人也可被称作自动问答系统,其是指利用计算机自动回答用户所提出的问题以满足用户知识需求任务的系统,主要应用于客户服务等领域。与现有搜索引擎不同,自动问答系统不再是基于简单的关键词匹配排序得到一个网页集合,而是能够精准的生成自然语言答案返回给用户。聊天机器人的存在让用户无需逐个浏览和仔细阅读搜索引擎返回的每个链接网址中的信息,再剔除冗余信息后才能得到期望的答案,这为用户节约了大量的时间。近年来,随着人工智能的飞速发展,自动问答系统作为自然语言处理的一个重要分支,已经成为倍受关注且发展前景广泛的研究方向。
目前,市面上现有的中文聊天机器人主要分为以下三种类型:
1.基于人工模板的聊天机器人。该方法是根据用户输入的句子,在模板库中找到匹配的问句模板,然后按照对应的应答模板生成答案,返回给用户。这种方法的优点是精确,缺点是需要大量的人力,并且缺乏灵活性,可扩展性差。
2.基于检索的聊天机器人。基于检索技术的聊天机器人根据用户输入的句子,在对话库中以搜索匹配的方式进行匹配,从中找到最合适的应答内容,将答案提取出来返回给用户。这种方法对对话库的要求很高,并且需要足够大,但是它的优点是回答质量高,表达比较自然。
3.基于深度学习的聊天机器人。基于深度学习的聊天机器人根据用户输入的句子,利用模型逐词或逐字生成答案,然后将答案回复给用户。其中多数技术采用了Encoder-Decoder模型,即编码-解码模型。这种方法思路简单,可扩展,能够更好地理解上下文,但是模型很难训练,回复时经常存在一些语法错误。
上文中提到的三种类型的聊天机器人都有其各自的优缺点,但是目前的聊天机器人通常都只使用单一的技术思路去实现,这造成了最终产品的泛用性较低,无法适用于多种聊天场景,对于一些特定的使用场景甚至需要特别定制,这也使得成本大幅攀升。
发明内容
本发明的目的就在于为了解决上述问题而提供一种基于自构建多场景的对话追踪方法。
本发明通过以下技术方案来实现上述目的:
本发明包括以下步骤:
S1:首先对用户输入的问句进行特征工程处理以满足后续模块处理的需要;
S2:将经过处理的问句送入多层级问答处理模块;
S3:进入图谱检索模块;
S4:在问题检索模块会利用倒排索引,根据问题的余弦相似度在问答库中查询相似问题从而筛选出答案;
S5:在模型预测模块启动时,需要加载已经预训练过的seq2seq模型;
S6:最后一个模块为联网搜索模块,当问题送入联网搜索模块即意味着本地语料库没有匹配到答案,因此将会调用搜狗问问提供的接口获取相似问题的链接,再通过从搜索结果页面中收集答案,并输出给用户。
本发明的有益效果在于:
本发明是一种基于自构建多场景的对话追踪方法,与现有技术相比,本发明是基于模板、检索与深度学习的多场景聊天机器人系统,该系统首先对用户输入的问句进行特征工程处理,然后将处理过的问句送入多层级的线性过滤器中,使其先后通过模板匹配、图谱检索、问题检索、模型预测、联网搜索等多个模块,最终得到答案返回给用户。多个模块负责不同类型的问答,模板匹配负责回答聊天机器人自身相关的问题,图谱检索负责专利性强的领域问题,问题检索负责常见的聊天问题,模型预测则负责日常聊天,最后如果都无法匹配答案则调用外部接口进行联网搜索,这种结构设计能够充分利用各个模块的技术优势,从而有效提高了最后输出的回答的可靠性,减少了聊天机器人常见的安全回答现象,同时也保证了程序能够应用于多数聊天场景之中,提高了泛用性。
附图说明
图1是本发明的系统流程图;
图2是本发明的特征工程模块的内部结构图;
图3是本发明的多层级问答处理模块结构图.
具体实施方式
下面结合附图对本发明作进一步说明:
如图1-3所示:本发明的目的是实现一种多场景的中文聊天机器人系统,其能够利用模板匹配、图谱检索、问题检索、模型预测、联网搜索多个问答处理模块对用户输入的问句进行处理,最后将回答输出给用户。多个问答处理模块采用了线性多层级的结构,让用户输入的问句依次通过多级模块的处理从而提高了最终输出的可靠性,这种结构的设计也保证了程序能够应用于多数聊天场景之中。其具体流程示意图如图1所示,主要包括了如下步骤:
S1.首先对用户输入的问句进行特征工程处理以满足后续模块处理的需要,特征工程模块的内部结构图如图2所示,该模块包括了如下具体步骤。
语句清洗:去除空格、去除标点、去除停用词;
中文分词:按照不同模式进行分词;
文本标注:词性标注、语义角色标注、命名实体识别;
语义分析:依存句法分析、语义依存树图分析;
文本过滤:剔除敏感词汇、剔除不雅词汇;
文本数值化:构建词向量、生成句子向量;
特征提取:提取关键词、判断主题类型、构建其他特征;
句子长度约束:补全短句,删减长句。
在这一模块中,该系统主要使用了在中文自然语言处理中常用的jieba开源库以及LTP云平台。
在对用户输入的问句处理之前,首先需要添加自定义词典,通常为一些领域内的专有名词,防止分词破坏了完整词汇也了提高分词的正确率。
在特征工程模块启动后,首先利用jieba对用户输入的问句进行清洗、分词等处理。随后对语料库进行预处理,从系统保存的序列语料库中加载语料,通过jieba对语料库中的问句与回答进行清洗、分词等处理,然后根据问句构建倒排索引,从而得到词词典和倒排文件。倒排索引是实现“词-文档矩阵”的一种具体存储形式,将内容关键字作为索引(key),其所在网页作为内容(value),通过倒排索引可以根据词来快速获取包含这个词的文档列表。
预处理结束后,通过TextRank算法对语料进行关键词提取。TextRank用于关键词提取的算法如下:
1.首先把给定的文本T按照完整句子进行分割,即:T=[S1,S2,…,Sm]。
2.然后对于每个句子,进行分词和词性标注处理,并过滤停用词,只保留指定词性的词,即:Si=[ti,1,ti,2,…,ti,m],其中ti,j是保留后的候选关键词。
3.构建候选关键词图G=(V,E),其中V为节点集,由2中生成的候选关键词组成,然后采用共现关系构造任两点之间的边,仅当它们对应的词在长度为K的窗口中共现,这两个节点之间才存在边,其中K表示窗口大小,即最多共现K个词。
4.迭代传播各节点的权重,直至收敛。
5.对节点权重进行倒序排序,从而得到最重要的T个词,作为候选关键词。
6.由5中得到最重要的T个词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。
在该系统中主要通过jieba包里的analyse函数实现这种关键词提取算法。
在提取关键词后,利用gensim工具包的word2vec类中的Skip-Gram模型来训练词向量,最终得到word2vec模型。Skip-Gram是根据当前的词来预测上下文的词。若有一组词序列[w1,w2,w3,…,wT],
S2.将经过处理的问句送入多层级问答处理模块。该模块整体结构为一个多层级的线性过滤器,通过该层级过滤器控制各子模块的顺序运行。其将问题先后通过模板匹配、图谱检索、问题检索、模型预测、联网搜索多个模块进行处理,这些模块负责不同类型的问答,其中模板匹配负责回答聊天机器人自身相关的问题,图谱检索负责专利性强的领域问题,问题检索负责常见的聊天问题,模型预测则负责日常聊天,最后如果都无法匹配答案则调用外部接口进行联网搜索。如果某一模块搜索到答案,则返回给用户答案不再继续向下执行,如果没有获得答案,则交给下一层继续处理,如果最终没有获得相关答案则返回默认答案。多层级问答处理模块结构图如图3所示。
首先将问题送入模板匹配模块,该模块主要回答一些关于聊天机器人自身相关的问题。模板匹配模块会提前利用xml文件配置聊天机器人的固定人格信息,例如姓名、年龄、职业等。当问句被输入后,该模块会加载机器人的人格信息,随后该模块将根据输入语句通过正则表达式进行答案匹配。如果没有匹配到答案,问题则会被送入图谱检索模块。
S3.进入图谱检索模块,该模块主要负责回答专业领域内的相关问题(例如医疗领域)。在该模块启动后首先会加载知识图谱,随后通过LTP云平台对问句进行分词、词性标注以及句法分析等处理,根据问题中的关键词与知识图谱中的节点进行匹配从而查询得到结果,最后再将查询到的结果根据问题类别套入不同的模板中返回。若未查询到结果,问题则会被送入问题检索模块。
S4.在问题检索模块会利用倒排索引,根据问题的余弦相似度在问答库中查询相似问题从而筛选出答案。其中余弦相似度是n维空间中两个n维向量之间角度的余弦,余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性",而由于语句也可以用向量来表示,因此余弦相似性可以用来表示两个句子的相似程度。具体的计算公式为:
值得说明的是,问题检索模块需要预先设置一个阈值,该阈值用来判断两个句子计算出来的余弦相似度是否足够相似,若余弦相似度大于阈值即说明足够相似,从而可以得到返回结果,若小于阈值则认定为并未检索到结果。当问题检索模块没有得到答案时,问题将被送入模型预测模块。
S5.在模型预测模块启动时,需要加载已经预训练过的seq2seq模型。Seq2Seq模型属于encoder-decoder结构的一种,基本思想就是利用两个RNN(循环神经网络),一个RNN作为encoder,另一个RNN作为decoder。encoder负责将输入序列压缩成指定长度的向量,这个向量就可以看成是这个序列的语义,这个过程称为编码;而decoder则负责根据语义向量生成指定的序列,这个过程也称为解码。对于RNN,对于某个序列,对于时刻t,它的词向量输出概率为P(xt|x1,x2,…,xt-1),则softmax层每个神经元的计算为:
其中ht是隐含状态,它与上一时刻的状态及当前输入有关,即ht=f(ht-1,xt),那么整个序列的概率就为而对于encoder-decoder模型,设有输入序列x1,x2,…,xT,输出序列y1,y2,…,yT,输入序列和输出序列的长度可能不同。那么其实就需要根据输入序列去得到输出序列可能输出的词概率,于是有下面的条件概率,在x1,x2,…,xT发生的情况下,y1,y2,…,yT发生的概率等于p(yt|v,y1,y2,…,yt-1)连乘,如下公式所示。
其中v表示对应的隐含状态向量,它其实可以等同表示输入序列。
此时,ht=f(ht-1,yt-1,v),decode编码器中隐含状态与上一时刻状态、上一时刻输出和状态v都有关,于是decoder的某一时刻的概率分布可表示为p(yt|v,y1,y2,…,yt-1)=g(ht,yt-1,v)。
在使用模型预测模块时,加载的预训练过的模型将会对于输入的问题进行预测从而得到答案,如果在模型预测模块也没有匹配到答案则会进入最后一个模块。
S6.最后一个模块为联网搜索模块,当问题送入联网搜索模块即意味着本地语料库没有匹配到答案,因此将会调用搜狗问问提供的接口获取相似问题的链接,再通过从搜索结果页面中收集答案,并输出给用户。
以上显示和描述了本发明的基本原理和主要特征及本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (6)
1.一种基于自构建多场景的对话追踪方法,其特征在于:包括以下步骤:
S1:首先对用户输入的问句进行特征工程处理以满足后续模块处理的需要;
S2:将经过处理的问句送入多层级问答处理模块;
S3:进入图谱检索模块;
S4:在问题检索模块会利用倒排索引,根据问题的余弦相似度在问答库中查询相似问题从而筛选出答案;
S5:在模型预测模块启动时,需要加载已经预训练过的seq2seq模型;
S6:最后一个模块为联网搜索模块,当问题送入联网搜索模块即意味着本地语料库没有匹配到答案,因此将会调用搜狗问问提供的接口获取相似问题的链接,再通过从搜索结果页面中收集答案,并输出给用户。
2.根据权利要求1所述的一种基于自构建多场景的对话追踪方法,其特征在于:所述步骤S1包括以下步骤:
语句清洗:去除空格、去除标点、去除停用词;
中文分词:按照不同模式进行分词;
文本标注:词性标注、语义角色标注、命名实体识别;
语义分析:依存句法分析、语义依存树图分析;
文本过滤:剔除敏感词汇、剔除不雅词汇;
文本数值化:构建词向量、生成句子向量;
特征提取:提取关键词、判断主题类型、构建其他特征;
句子长度约束:补全短句,删减长句。
3.根据权利要求1所述的一种基于自构建多场景的对话追踪方法,其特征在于:所述步骤S2多层级问答处理模块整体结构为一个多层级的线性过滤器,通过该层级过滤器控制各子模块的顺序运行。其将问题先后通过模板匹配、图谱检索、问题检索、模型预测、联网搜索多个模块进行处理,这些模块负责不同类型的问答,其中模板匹配负责回答聊天机器人自身相关的问题,图谱检索负责专利性强的领域问题,问题检索负责常见的聊天问题,模型预测则负责日常聊天,最后如果都无法匹配答案则调用外部接口进行联网搜索。如果某一模块搜索到答案,则返回给用户答案不再继续向下执行,如果没有获得答案,则交给下一层继续处理,如果最终没有获得相关答案则返回默认答案。
4.根据权利要求1所述的一种基于自构建多场景的对话追踪方法,其特征在于:所述步骤S3图谱检索模块主要负责回答专业领域内的相关问题,在该模块启动后首先会加载知识图谱,随后通过LTP云平台对问句进行分词、词性标注以及句法分析等处理,根据问题中的关键词与知识图谱中的节点进行匹配从而查询得到结果,最后再将查询到的结果根据问题类别套入不同的模板中返回。若未查询到结果,问题则会被送入问题检索模块。
6.根据权利要求1所述的一种基于自构建多场景的对话追踪方法,其特征在于:所述步骤S5中Seq2Seq模型属于encoder-decoder结构的一种,基本思想就是利用两个RNN,一个RNN作为encoder,另一个RNN作为decoder;encoder负责将输入序列压缩成指定长度的向量,这个向量就可以看成是这个序列的语义,这个过程称为编码;而decoder则负责根据语义向量生成指定的序列,这个过程也称为解码;对于RNN,对于某个序列,对于时刻t,它的词向量输出概率为P(xt|x1,x2,…,xt-1),则softmax层每个神经元的计算为:
其中ht是隐含状态,它与上一时刻的状态及当前输入有关,即ht=f(ht-1,xt),那么整个序列的概率就为而对于encoder-decoder模型,设有输入序列x1,x2,…,xT,输出序列y1,y2,…,yT,输入序列和输出序列的长度可能不同;那么其实就需要根据输入序列去得到输出序列可能输出的词概率,于是有下面的条件概率,在x1,x2,…,xT发生的情况下,y1,y2,…,yT发生的概率等于p(yt|v,y1,y2,…,yt-1)连乘,如下公式所示:
其中v表示对应的隐含状态向量,它其实可以等同表示输入序列;
此时,ht=f(ht-1,yt-1,v),decode编码器中隐含状态与上一时刻状态、上一时刻输出和状态v都有关,于是decoder的某一时刻的概率分布可表示为p(yt|v,y1,y2,…,yt-1)=g(ht,yt-1,v);
在使用模型预测模块时,加载的预训练过的模型将会对于输入的问题进行预测从而得到答案,如果在模型预测模块也没有匹配到答案则会进入最后一个模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111150461.3A CN114003773A (zh) | 2021-09-29 | 2021-09-29 | 一种基于自构建多场景的对话追踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111150461.3A CN114003773A (zh) | 2021-09-29 | 2021-09-29 | 一种基于自构建多场景的对话追踪方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114003773A true CN114003773A (zh) | 2022-02-01 |
Family
ID=79922022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111150461.3A Pending CN114003773A (zh) | 2021-09-29 | 2021-09-29 | 一种基于自构建多场景的对话追踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003773A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881426A (zh) * | 2023-08-30 | 2023-10-13 | 环球数科集团有限公司 | 一种基于aigc的自解释问答系统 |
-
2021
- 2021-09-29 CN CN202111150461.3A patent/CN114003773A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881426A (zh) * | 2023-08-30 | 2023-10-13 | 环球数科集团有限公司 | 一种基于aigc的自解释问答系统 |
CN116881426B (zh) * | 2023-08-30 | 2023-11-10 | 环球数科集团有限公司 | 一种基于aigc的自解释问答系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753566B (zh) | 基于卷积神经网络的跨领域情感分析的模型训练方法 | |
CN113011533B (zh) | 文本分类方法、装置、计算机设备和存储介质 | |
CN112131350B (zh) | 文本标签确定方法、装置、终端及可读存储介质 | |
CN106776562B (zh) | 一种关键词提取方法和提取系统 | |
CN113239700A (zh) | 改进bert的文本语义匹配设备、系统、方法及存储介质 | |
CN110321563B (zh) | 基于混合监督模型的文本情感分析方法 | |
CN108932342A (zh) | 一种语义匹配的方法、模型的学习方法及服务器 | |
CN111274790B (zh) | 基于句法依存图的篇章级事件嵌入方法及装置 | |
CN109460459B (zh) | 一种基于日志学习的对话系统自动优化方法 | |
CN110457708B (zh) | 基于人工智能的词汇挖掘方法、装置、服务器及存储介质 | |
CN111950287B (zh) | 一种基于文本的实体识别方法及相关装置 | |
CN113282711B (zh) | 一种车联网文本匹配方法、装置、电子设备及存储介质 | |
CN113239169A (zh) | 基于人工智能的回答生成方法、装置、设备及存储介质 | |
CN114065758A (zh) | 一种基于超图随机游走的文档关键词抽取方法 | |
CN111914556A (zh) | 基于情感语义转移图谱的情感引导方法及系统 | |
CN113196277A (zh) | 用于检索自然语言文档的系统 | |
CN112328800A (zh) | 自动生成编程规范问题答案的系统及方法 | |
CN113761868B (zh) | 文本处理方法、装置、电子设备及可读存储介质 | |
CN114428850B (zh) | 一种文本检索匹配方法和系统 | |
CN114020906A (zh) | 基于孪生神经网络的中文医疗文本信息匹配方法及系统 | |
CN109271636B (zh) | 词嵌入模型的训练方法及装置 | |
CN117094291B (zh) | 基于智能写作的自动新闻生成系统 | |
CN112632258A (zh) | 文本数据处理方法、装置、计算机设备和存储介质 | |
CN115329075A (zh) | 基于分布式机器学习的文本分类方法 | |
CN117828024A (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 |