CN112836032B - 一种融合双重分词和迭代反馈的自动应答方法 - Google Patents

一种融合双重分词和迭代反馈的自动应答方法 Download PDF

Info

Publication number
CN112836032B
CN112836032B CN202110168128.9A CN202110168128A CN112836032B CN 112836032 B CN112836032 B CN 112836032B CN 202110168128 A CN202110168128 A CN 202110168128A CN 112836032 B CN112836032 B CN 112836032B
Authority
CN
China
Prior art keywords
word
words
response
candidate
output
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.)
Active
Application number
CN202110168128.9A
Other languages
English (en)
Other versions
CN112836032A (zh
Inventor
张宇
卜天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Dragon Totem Technology Achievement Transformation Co ltd
Original Assignee
Zhejiang Sci Tech University ZSTU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Sci Tech University ZSTU filed Critical Zhejiang Sci Tech University ZSTU
Priority to CN202110168128.9A priority Critical patent/CN112836032B/zh
Publication of CN112836032A publication Critical patent/CN112836032A/zh
Application granted granted Critical
Publication of CN112836032B publication Critical patent/CN112836032B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种融合双重分词和迭代反馈的自动应答方法,获取提问语句及其对应的应答语句作为语料库,将序列化后的语料库划分为第一训练集和第二训练集,采用第一训练集对构建的应答模型进行训练,训练得到应答模型,将第二训练集中的提问语句逐条输入到已经训练好的应答模型中,并且当应答模型的输出中包含未知符号时,对未知符号进行处理确定出对应的候选词集,将候选词集并入应答语句词典,遍历第二训练集更新应答模型。本发明提高了应答系统的输出效果。

Description

一种融合双重分词和迭代反馈的自动应答方法
技术领域
本发明属于机器人自动应答技术领域,尤其涉及一种融合双重分词和迭代反馈的自动应答方法。
背景技术
目前绝大多数的自动应答方法都仅仅利用了一种语言模型来进行实现,如Seq2seq、CBOW、Word2vec、Skip-gram、N-gram等。这些语言模型仅使用了以下两种方法中的一种:(1)将一个文字序列切分成一个一个单独的词;(2)将一个文字序列切分成一个一个单独的字(中文)或字母(英文)。而很少有研究者将上述两种方法融合起来进行自动应答的研究。
切分成单独的词(本申请将其称为分词)和切分成单独的字(本申请将其称为断字)这两种方法各有优劣。利用分词方法得到的字典保留了词语之间的语义关联性,训练出的模型使得自动应答的结果更加精准,特别是一些文言名词、成语、谚语以及典故之间的特有对仗,而断字方法却几乎无法通过训练得到相应的应答结果。除此以外,利用分词方法训练模型的参数规模比较小,训练速度更快。但是分词方法也有其相应的缺点:其得到的字典空间比较小,自动应答结果中更容易生成大量的UNK字符(unknown word未知符号);利用断字方法得到的字典空间比较大,自动应答结果中不容易产生UNK字符(未知符号),更容易获得有效的输出,应答的准确率会高于利用分词方法得到的准确率。但是断字方法也有其相应的缺点:自动应答结果中的词语和提问中词语之间的语义关联性较差。因此,本发明将融合上述两种方法来构建语言模型。
然而,目前的技术方案中,对预测中输出UNK字符的情况都没有相应的处理,使得自动应答结果不理想。
发明内容
本申请的目的是提供一种融合双重分词和迭代反馈的自动应答方法,对输出语句中含有UNK字符进行处理,提高应答系统的输出效果。
为了实现上述目的,本申请技术方案如下:
一种融合双重分词和迭代反馈的自动应答方法,包括:
获取提问语句及其对应的应答语句作为语料库S,对每组提问语句及其对应的应答语句进行中文分词得到分词后的语料库,将分词结果分别存入提问语句词典和应答语句词典并训练得到所有词的词向量,利用提问语句词典和应答语句词典对分词后的语料库进行序列化操作得到序列化后的语料库,将序列化后的语料库划分为第一训练集和第二训练集;
采用第一训练集对构建的应答模型进行训练,训练得到应答模型;
将第二训练集中的提问语句逐条输入到已经训练好的应答模型中,并且当应答模型的输出中包含未知符号时,对于每一个未知符号,进行如下处理:
确定与未知符号对应的提问语句集合中的词语t,将所确定的词语t和应答语句词典中所有词语的词向量进行聚类,将与词语t同簇的全部词语存入到第一候选集;
当第一候选集中词语数量少于候选阈值时,对词语t进行断字操作,同时对语料库S也进行断字操作,构建出提问语句字典和应答语句字典,将词语t断字后的所有字在提问语句字典中的序号输入到训练好的应答模型中,预测出词语t中每个字对应的字符输出,从每个字对应的字符输出中选择一个字符进行排列组合连接成词语,选取其中预设数值的词语组成第二候选集;
合并第一候选集和第二候选集,组成第三候选集,对第三候选集中的所有词语根据其与词语t的语义关联度进行打分,将分值大于支持度阈值的词语放入第四候选集。
将第四候选集中的词语放入应答语句词典中,将添加第四候选集后的应答语句词典作为下一个未知符号处理时的应答语句词典,遍历第二训练集,完成对应答模型的更新;
采用更新后应答模型,对输入的提问语句进行自动应答。
进一步的,所述将与词语t同簇的全部词语存入到第一候选集,还包括:
当词语t同簇的词语少于设定的同簇数量阈值时,计算每一个词语t的簇外词语与词语t的欧式距离,将距离小于距离阈值的词语加入到词语t所在的簇内。
进一步的,所述预测出词语t中每个字对应的字符输出,包括:
取预测概率由大到小前预设数量的字符作为字符输出。
进一步的,所述应答模型包括编码器和解码器,所述采用第一训练集对构建的应答模型进行训练,训练得到应答模型,包括:
将序列化后的第一训练提问语句集合中的每一条提问语句对应的词向量输入到编码器中,分别得到每一条提问语句对应的全部隐藏状态的一个有序集合,然后进入到解码器循环阶段;
在解码器的每一次循环中,都为所述有序集合中的所有隐藏状态重新分配权重,然后对全部隐藏状态加权求和得到对应的上下文向量,将上下文向量和上一次解码器的输出向量再次输入到解码器中进行循环;
在循环达到终止条件后,提取解码器输出的全部输出向量,将其和语料库中真实的应答语句利用交叉熵损失函数进行计算;
采用梯度下降法来确定应答模型中全部的隐藏状态和上下文向量的权重,实现对应答模型的参数优化,完成应答模型训练。
进一步的,所述终止条件为每一个隐藏状态的权重都曾获得过一个大于或等于权重阈值的取值。
进一步的,所述融合双重分词和迭代反馈的自动应答方法,还包括:
将同一个词语t对应的所有第四候选集构建成第五候选集,对于第二训练集中生成所有未知符号的词语,将生成的所有第五候选集进行合并生成候选共现集,并在候选共现集的基础上进行扩充得到扩充集合,所述扩充集合中每个元素包括词语t及其对应的第五候选集。
进一步的,所述采用更新后应答模型,对输入的提问语句进行自动应答,包括:
将提问语句输入到更新后的应答模型,若输出结果仍然包含未知符号,则先确定其对应的提问语句中生成该未知符号的词语q;
在扩充集合中查找与词语q相关的第五候选集,如果存在相关的第五候选集,则执行如下步骤:
构建词语q对应的待检索集合,其中,当词语q与扩充集合中的词语t相同时,将词语t对应的第五候选集加入到待检索集合中;当词语q与词语t不相同,但词语q存在于词语t的第五候选集中,则将词语t放入待检索集合中;
计算待检索集合中每个词语与词语q的关联度,选择关联度最大的词语作为词语q对应的字符输出;
在扩充集合中查找与词语q相关的第五候选集,如果不存在相关的第五候选集,则执行如下步骤:
将词语q拆分成一个一个的字,然后将这些字都输入到更新后的应答模型中,在解码器的每一次循环中,输出应答语句字典中概率值最大的字作为该次循环的输出,并将其输入到下一次循环中,当解码器的循环次数与输入词语q的字数相同时,循环终止;
将历次循环的输出的字依次进行拼接,得到词语q对应的字符输出。
本申请还提出了一种融合双重分词和迭代反馈的自动应答装置,包括处理器以及存储有若干计算机指令的存储器,其特征在于,所述计算机指令被处理器执行时实现融合双重分词和迭代反馈的自动应答方法的步骤。
本申请提出的一种融合双重分词和迭代反馈的自动应答方法,除了使用第一重传统的中文分词保留词语之间的对应关系,还使用了第二重断字分词从字与字之间的对应角度预测出目标词语的非UNK字符输出。使用聚类算法从词向量角度找到与目标词语语义最接近的词语作为非UNK字符输出。将两种方法得到的全部非UNK字符输出共同组合成一个候选词集,通过对候选词集中词语进行投票从而找到最适合目标词语的非UNK字符输出。本申请技术方案提高了应答系统的输出效果。
附图说明
图1为本申请一种融合双重分词和迭代反馈的自动应答流程图;
图2为本申请实施例应答模型训练流程图;
图3为本申请实施例应答模型预测流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请以中文自动应答方法作为研究对象,因此本申请后续仅讨论将文字序列切分成一个一个单独字的情况,而不再讨论将序列切分成一个一个单独字母的情况。
在一个实施例中,如图1所示,提供了一种融合双重分词和迭代反馈的自动应答方法,包括:
步骤S110、获取提问语句及其对应的应答语句作为语料库,进行预处理得到第一训练集和第二训练集。
具体的,获取提问语句及其对应的应答语句作为语料库S,对每组提问语句及其对应的应答语句进行中文分词得到分词后的语料库S′,将分词结果分别存入提问语句词典W1和应答语句词典W2并训练得到所有词的词向量,利用提问语句词典W1和应答语句词典W2对分词后的语料库S′进行序列化操作得到序列化后的语料库Sd,将序列化后的语料库Sd划分为训练集D和测试集T,再将训练集D细分为第一训练集D1和第二训练集D2。无论是训练集D还是测试集T,其中每一条样本都包括提问语句和应答语句,两者一一对应。其中序列化后的提问语句集合包括第一训练提问语句集合
Figure BDA0002938198800000051
第二训练提问语句集合
Figure BDA0002938198800000052
和测试提问语句集合
Figure BDA0002938198800000053
序列化后的应答语句集合包括第一训练应答语句集合
Figure BDA0002938198800000054
第二训练应答语句集合
Figure BDA0002938198800000055
和测试应答语句集合
Figure BDA0002938198800000056
本实施例以中国传统文化的对联为例进行说明,选择自动生成下联作为本申请应答模型的实施例。本实施例获取对联上句及其对应的对联下句作为语料库S,将对联上句作为提问语句,将对联下句作为应答语句。语料库S中共包括10万副对联,其内容来自百度、对联大全等网站,包括经典对联、新年对联、搞笑对联、名胜古迹对联等多种类型。
然后对语料库S进行预处理,去除其中的停用词、标点符号及乱码、对联上下句的拆分、横批的剔除。
利用jieba分词对语料库S中的每组上联语句和下联语句进行中文分词(分词后的语料库为S′)。本申请中共包含两重分词,本步骤进行的是第一重分词,即传统的中文分词。
分词后的语料库S′如下表所示:
Figure BDA0002938198800000061
表1
其中,分词后的上联语料库为S′upper,分词后的下联语料库为S′lower
接下来,统计S′upper和S′lower中分词结果的词频,本申请设定词频的阈值mw为3。将S′upper中词频大于或等于mw的词语存入到上联词典W1,将S′lower中词频大于或等于mw的词语存入到下联词典W2,如下表所示:
Figure BDA0002938198800000062
表2
词典W1和W2的前2个元素的含义分别为:
Figure BDA0002938198800000063
Figure BDA0002938198800000071
表3
接下来,根据词语在上联词典W1和下联词典W2中的序号,对语料库S′进行序列化操作(序列化后的语料库为Sd)。结果如下表所示:
Figure BDA0002938198800000072
表4
将Sd划分为训练集D和测试集T,再将训练集D细分为第一训练集D1和第二训练集D2。本实施例D1、D2、T三者所包含语句数量的比例为7:2:1。
特别地,集合D1、D2、T都由两部分组成:序列化后的上联语句集合(分别为:
Figure BDA0002938198800000073
)和下联语句集合(分别为:
Figure BDA0002938198800000074
)。上联语句集合和下联语句集合都是有序的,
Figure BDA0002938198800000075
Figure BDA0002938198800000076
Figure BDA0002938198800000077
Figure BDA0002938198800000078
中的上下联语句都是一一对应的,下面以
Figure BDA0002938198800000079
Figure BDA00029381988000000710
为例进行说明:
Figure BDA00029381988000000711
表5
最后,利用word2vec训练得到W1和W2中所有词的词向量,分别存入词向量矩阵
Figure BDA0002938198800000081
Figure BDA0002938198800000082
步骤S120、采用第一训练集对构建的应答模型进行训练,训练得到应答模型。
具体的,所述应答模型包括编码器和解码器,采用第一训练集对构建的应答模型进行训练,训练得到应答模型,包括:
将序列化后的第一训练提问语句集合中的每一条提问语句对应的词向量输入到编码器中,分别得到每一条提问语句对应的全部隐藏状态的一个有序集合,然后进入到解码器循环阶段;
在解码器的每一次循环中,都为所述有序集合中的所有隐藏状态重新分配权重,然后对全部隐藏状态加权求和得到对应的上下文向量,将上下文向量和上一次解码器的输出向量再次输入到解码器中进行循环;
在循环达到终止条件后,提取解码器输出的全部输出向量,将其和语料库中真实的应答语句利用交叉熵损失函数进行计算;
采用梯度下降法来确定应答模型中全部的隐藏状态和上下文向量的权重,实现对应答模型的参数优化,完成应答模型训练。
本实施例采用第一训练集D1对构建的应答模型进行训练,所述应答模型包括编码器和解码器,所述编码器包括g个GRU单元,所述解码器包括1个GRU单元。
将序列化后的第一训练提问语句集合
Figure BDA0002938198800000083
中的每一条提问语句ai对应的词向量输入到编码器的g个GRU单元中,分别得到其所对应的全部隐藏状态的一个有序集合Hi,然后进入到解码器的GRU单元循环阶段,有序集合Hi的最后一个向量输入到解码器中,在每一次循环中都为有序集合Hi中的所有隐藏状态重新分配权重,然后对全部隐藏状态加权求和得到第一训练提问语句集合
Figure BDA0002938198800000084
中第i条提问语句所对应于第j+1次循环的上下文向量
Figure BDA0002938198800000085
将上下文向量
Figure BDA0002938198800000086
和上一次循环解码器的输出
Figure BDA0002938198800000087
输入到解码器GRU单元中,得到一个新的预测值
Figure BDA0002938198800000088
在循环达到终止条件后,提取得到的全部输出向量
Figure BDA0002938198800000089
将其和语料库中真实的下联语句利用交叉熵损失函数进行计算,通过对
Figure BDA00029381988000000810
中的每一条上联语句ai进行多次损失函数的计算,并采用梯度下降法来确定应答模型中全部的隐藏状态和上下文向量的权重,从而实现了对应答模型的参数优化,完成应答模型训练。
本实施例应答模型(GAbS模型,GRU+Attention based Seq2seq model)包括编码器和解码器,其中编码器由g个GRU单元连接而成,g的数值为语料库S中最长语句中分词的个数。解码器由1个GRU单元构成。编码器中GRU单元的数量可以根据网络的复杂度进行设定,本申请不限于具体的GRU单元的数量。
进入编码器之前,需要对待输入上联语句中分词的个数进行调整:当上联语句中分词的个数大于g时,删除从g+1个分词到语句末尾的所有词语;当上联语句中分词的个数小于g时,用填充符(pad符号)从上联语句的末尾进行填充直到填满为止。
长度调整完毕后,将序列化后的上联语句集合
Figure BDA0002938198800000091
中的每一条语句ai(
Figure BDA0002938198800000092
为序列化后的上联语句集合
Figure BDA0002938198800000093
中的语句总数)对应的词向量输入到编码器的g个GRU单元中,分别得到其所对应的全部隐藏状态的一个有序集合
Figure BDA0002938198800000094
解码器由1个GRU单元构成,其功能通过这个唯一的GRU单元v次循环来实现。每次循环包括以下两个步骤:
1)、本实施例利用Minh-Thang Luong等人提出的LuongAttention方法,在每一次循环中都为
Figure BDA0002938198800000095
中的所有隐藏状态重新分配权重
Figure BDA0002938198800000096
(0≤j≤v-1),然后对全部隐藏状态加权求和得到
Figure BDA0002938198800000097
中第i条上联语句所对应于第j+1次循环的上下文向量
Figure BDA0002938198800000098
(
Figure BDA0002938198800000099
0≤j≤v-1,v为GRU单元循环的总次数,
Figure BDA00029381988000000910
为对应于第1次循环的上下文向量)。
以上联语句“万/户/春风/陶/礼/乐”为例(其对应的下联语句为“百年/事业/绍/箕/裘”),解码器GRU单元的第1次循环计算得到的Hi中各隐藏状态的权重如下表所示:
Figure BDA00029381988000000911
表6
隐藏状态
Figure BDA0002938198800000101
Figure BDA0002938198800000102
的权重约为0.5,其他隐藏状态的权重近似为0,第1次循环得到的上下文向量
Figure BDA0002938198800000103
重复上述过程,可以得到后面几次循环中所对应的上下文向量
Figure BDA0002938198800000104
2)、接下来,将上下文向量
Figure BDA0002938198800000105
和上一次循环的输出
Figure BDA0002938198800000106
输入到解码器GRU单元中,利用softmax函数计算得到概率最大的一个新的预测值
Figure BDA0002938198800000107
其中
Figure BDA0002938198800000108
0≤j≤v-1,由于在第1次循环中不存在前一次循环的输出,因此本方法利用一个初始化的零向量作为
Figure BDA0002938198800000109
需要说明的是,应答模型的输入分为两种情况:(1)仅仅输入一个词语或字,则解码器的GRU单元只执行一次,输出为应答词典中概率最大的那个词语或字。(2)输入为一条提问语句,根据中文分词的结果,解码器中的GRU单元需要循环多次,每一次都输出应答词典中概率最大的那个词语或字,最终多次循环输出的结果连接起来作为整个应答模型的输出。
重复步骤1)和2),直到满足循环的终止条件。本实施例设定的GRU单元v次循环的终止条件为:
Figure BDA00029381988000001010
中的每一个隐藏状态的权重
Figure BDA00029381988000001011
(
Figure BDA00029381988000001012
1≤l≤g,0≤j≤v-1)都曾获得过一个大于或等于0.2的取值。
在v次循环结束后,提取得到的全部输出向量
Figure BDA00029381988000001013
将其和语料库中真实的下联语句利用交叉熵损失函数进行计算,即:
Figure BDA00029381988000001014
其中,为
Figure BDA00029381988000001015
为下联词典W2中全部词语的总数量,pic为表示softmax函数计算得到的
Figure BDA00029381988000001016
个类别中各类别发生的概率。通过对
Figure BDA00029381988000001017
中的每一条上联语句ai进行多次损失函数的计算,并采用梯度下降法来确定应答模型中全部的隐藏状态和上下文向量的权重,从而实现了对应答模型的参数优化。
本申请利用softmax函数计算得到概率最大的一个新的预测值、利用交叉熵损失函数、采用梯度下降法来确定应答模型中全部的隐藏状态和上下文向量的权重,从而实现了对应答模型的参数优化,都是机器学习模型训练中比较成熟的技术,这里不再赘述。
步骤S130、将第二训练集中的提问语句逐条输入到已经训练好的应答模型中,当应答模型的输出中包含未知符号时,对未知符号进行处理确定出对应的候选词集,将候选词集并入应答语句词典,遍历第二训练集更新应答模型。
本实施例将第二训练集中的提问语句逐条输入到已经训练好的应答模型中,并且当应答模型的输出中包含未知符号时,对于每一个未知符号,进行如下处理:
确定与未知符号对应的提问语句集合中的词语t,将所确定的词语t和应答语句词典中所有词语的词向量进行聚类,将与词语t同簇的全部词语存入到第一候选集;
当第一候选集中词语数量少于候选阈值时,对词语t进行断字操作,同时对语料库S也进行断字操作,构建出提问语句字典B1和应答语句字典B2,将词语t断字后的所有字在提问语句字典B1中的序号输入到训练好的应答模型中,预测出词语t中每个字对应的字符输出,从每个字对应的字符输出中选择一个字符进行排列组合连接成词语,选取其中预设数值的词语组成第二候选集;
合并第一候选集和第二候选集,组成第三候选集,对第三候选集中的所有词语根据其与词语t的语义关联度进行打分,将分值大于支持度阈值的词语放入第四候选集。
将第四候选集中的词语放入应答语句词典W2中,将添加第四候选集后的应答语句词典W2作为下一个未知符号处理时的应答语句词典W2,遍历第二训练集D2,完成对应答模型的更新。
如图2所示,本实施例将序列化后的
Figure BDA0002938198800000111
中的上联语句逐条输入到已经训练好的应答模型中,应答模型的输出包括两种情况:(1)若输出的下联语句中不包含UNK字符,则直接作为有效结果输出;(2)若输出的下联语句包含UNK字符,则进行如下处理:
对于每一个生成的UNK字符uj(1≤j≤N,N为训练集D2中产生的UNK字符的总数量),确定其对应的上联语句中生成uj的词语ti(1≤i≤M≤N,M为训练集D2中全部上联语句所生成的UNK字符的总数量)。
在本实施例中,对于生成的第一个UNK字符u1,确定其对应的上联语句中生成u1的词语为第一个ti—“金樽”,即t1=“金樽”。从词向量矩阵
Figure BDA0002938198800000121
Figure BDA0002938198800000122
中读取出“金樽”和下联语句词典W2中全部词语的词向量,具体如下表所示:
Figure BDA0002938198800000123
表7
然后,对表7中的所有的词向量进行k-means聚类,结果如下所示:
Figure BDA0002938198800000124
表8
当ti所在簇的簇内词语总数少于10个时(10为预设的同簇数量阈值,该阈值大小可以根据实际应用进行设置),计算每一个ti的簇外词语和ti的欧式距离,将距离小于距离阈值md的词语加入到ti所在的簇内;当ti所在簇的簇内词语总数多于或等于10个时,则跳过欧式距离的计算步骤。本实施例中,阈值md的值设定为0.1。
在本实施例中,“金樽”所在簇的簇内词语总数少于10个(仅包含“金樽”、“玉盘”、“月斟”3个词语),因此,利用如下公式计算“金樽”的簇外词语(长笛、高歌、对酒、玉漏、落木、高唱、酒肠、清宴...)与“金樽”的欧式距离:
Figure BDA0002938198800000125
计算结果如下表所示:
簇外词 长笛 对酒 高歌 玉漏 落木 高唱 酒肠 清宴 ..
距离值 0.053 0.078 0.093 0.136 0.156 0.158 0.183 0.207 ..
表8
距离小于阈值md=0.1的词语有:长笛、对酒、高歌,把这三个词语加入到“金樽”所在的簇,最后,将与“金樽”同簇的全部词语(包括:玉盘、月斟、长笛、对酒、高歌)存入到聚类候选集
Figure BDA0002938198800000131
(第一候选集),即:
Figure BDA0002938198800000132
将与词语ti同簇的全部词语存入到聚类候选集
Figure BDA0002938198800000133
Figure BDA0002938198800000134
中的词语数量多于10个(候选阈值,该阈值大小可以根据实际应用进行设置)时,则直接将第一候选集作为第三候选集。否则当聚类候选集
Figure BDA0002938198800000135
中的词语数量少于10个时,则对ti进行断字操作,即将词语ti拆分成一个一个单独的字xik(1≤k≤E,E为ti中字的个数),ti就可以表示成如下一个集合:Xi={xi1,xi2...xiE}。从而实现了双重分词方法中的第二重分词。
为了输入到应答模型中进行训练,对语料库S也需要进行断字操作(断字后的语料库为S″)。过滤掉所有频率小于阈值mc的字,构建出提问语句字典B1和应答语句字典B2,本实施例设定词频的阈值mc为5。
完成上述步骤后,就可以将ti断字后生成的所有xik在上联语句字典B1中的序号输入到训练好的应答模型中,从而预测出ti对应的非UNK字符输出。
针对每一个xik,利用softmax函数计算应答语句字典B2中所有字的概率值,得到概率值最大的十个字
Figure BDA0002938198800000136
(1≤q≤10)(10为预设的阈值,该阈值大小可以根据实际应用进行设置),每个
Figure BDA0002938198800000137
对应的概率为
Figure BDA0002938198800000138
(1≤k≤E,1≤q≤10)。针对生成UNK字符uj的词语ti,经过本步骤共输出E×10个字。对于集合Xi={xi1,xi2...xiE}中的每一个字xik,通过应答模型都会生成一个集合包含概率最大的十个字
Figure BDA0002938198800000139
对于每一个ti,共生成E个
Figure BDA00029381988000001310
从每一个
Figure BDA00029381988000001311
中分别选取一个
Figure BDA00029381988000001312
的概率值
Figure BDA00029381988000001313
进行排列组合,共得到
Figure BDA00029381988000001314
种不同的组合结果,将每种组合中的
Figure BDA00029381988000001315
所对应的概率值
Figure BDA00029381988000001316
相乘,将结果最大的前10组(预设数值,可以根据实际应用进行设置)组合所对应的字在各自组合内连接成词语,然后将上述词语存入到断字候选集
Figure BDA0002938198800000141
(第二候选集)。
由于聚类候选集
Figure BDA0002938198800000142
中的词语数量少于10个,因此需要寻找第二候选集。进行第二重分词—断字操作,即将词语“金樽”拆分成2个单独的字x1k(1≤k≤2),“金樽”就可以表示成如下一个集合:X1={“金”,“樽”}。从而实现了双重分词方法中的第二重分词。
为了输入到应答模型中进行训练,对语料库S也需要进行断字操作(断字后的语料库为S″)。断字后的上联语料库为S〞upper,断字后的下联语料库为S〞lower。然后统计S〞upper和S″lower中所有字的字频,将S″upper中字频大于或等于mc的字存入到上联语句字典B1,将S″lower中字频大于或等于mc的字存入到下联语句字典B2。本发明设定字频的阈值mc为5。上联字典B1和下联字典B2如下表所示:
Figure BDA0002938198800000143
表9
完成上述步骤后,就可以将“金樽”断字后生成的所有x1k在上联语句字典B1中的序号输入到训练好的应答模型中,如下所示:
Figure BDA0002938198800000144
表10
输入到应答模型后,针对集合X1={“金”、”樽”}中的每一个字x1k,利用softmax函数计算下联语句字典B2中所有字的概率值,得到概率值最大的十个字
Figure BDA0002938198800000145
(1≤q≤10),并构建出每一个x1k所对应的集合,即:
Figure BDA0002938198800000146
Figure BDA0002938198800000151
Figure BDA0002938198800000152
经过上述步骤共输出2×10个字,每一个字对应的概率为
Figure BDA0002938198800000153
(1≤k≤2,1≤q≤10)。每次从
Figure BDA0002938198800000154
Figure BDA0002938198800000155
中各自选取一个
Figure BDA0002938198800000156
将它们对应的概率值
Figure BDA0002938198800000157
进行排列组合,共得到
Figure BDA0002938198800000158
种不同的组合结果,将每种组合中的
Figure BDA0002938198800000159
所对应的概率值
Figure BDA00029381988000001510
相乘,将结果最大的前10组组合所对应的字在各自组合内连接成词语,具体结果如下表所示:
Figure BDA00029381988000001511
表11然后将上述十个词语存入到断字候选集
Figure BDA00029381988000001512
中,即:
Figure BDA00029381988000001513
本实施例将集合
Figure BDA00029381988000001514
Figure BDA00029381988000001515
合并为集合
Figure BDA00029381988000001516
(
Figure BDA00029381988000001517
是同一个ti生成UNK字符的数量)(第三候选集)。选取若干个投票人,针对
Figure BDA00029381988000001518
中的每个词语pw(
Figure BDA00029381988000001519
为Uj中的词语总数),根据和目标词语ti的语义关联度,每位投票人对全部的pw进行投票,语义相关则投1;语义不相关则投0,每位投票人都至少投出一个1。
然后,利用上述投票结果,计算各个pw的支持度,将支持度大于阈值(支持度阈值)ms的词语存入到候选词集
Figure BDA00029381988000001520
(第四候选集),如果
Figure BDA00029381988000001521
中所有词语的支持度都小于ms,则将投票结果中票数最多的词语加入到候选词集
Figure BDA0002938198800000161
(如果票数最多的词语多于1个,则将这些词语都加入到
Figure BDA0002938198800000162
中)。本实施例中,阈值ms的值设定为0.3。
接下来,利用
Figure BDA0002938198800000163
扩展应答模型的应答语句词典W2,将W2词典中不存在的但却出现在
Figure BDA0002938198800000164
中的词语添加到词典W2中,从而实现了对GAbS模型的更新。
在本实施例中,将集合
Figure BDA0002938198800000165
Figure BDA0002938198800000166
合并为集合U“金樽”1,即:
U“金樽”1={玉盘、月斟、长笛、对酒、高歌、玉弦、玉简、玉勒、月落、明月、铁盘、竹杖、李趣、王谢、蒋径}
选取8个投票人,针对U“金樽”1中的每个词语pw(1≤w≤15),根据和目标词语“金樽”的词语意境关联度,每位投票人对全部的pw进行投票,意境相关则投1;意境不相关则投0,每位投票人都至少投出一个1。
本实施例的投票结果如下所示(标记下划线的词语来源于
Figure BDA0002938198800000167
集合,其余的词语来源于
Figure BDA0002938198800000168
集合):
投票人序号 <u>玉盘</u> <u>月斟</u> <u>长笛</u> <u>对酒</u> <u>高歌</u> 蒋径 王谢 李趣 月落 玉简 铁盘 玉弦 明月 玉勒 竹杖
1 1 1 1 1 1
2 1 1 1 1 1
3 1 1 1 1 1
4 1 1
5 1 1 1 1
6 1 1 1
7 1 1 1 1 1
8 1 1 1 1
表12
然后,利用上述投票结果,计算U“金樽”1中各个pw的支持度,结果如下所示:
Figure BDA0002938198800000169
Figure BDA0002938198800000171
表13
将支持度大于阈值ms=0.3的词语存入到候选词集U'“金樽”1,即表13中标记加粗的词语:
U'“金樽”1={玉盘,对酒,高歌,月落,玉简,玉弦}
接下来,利用U'“金樽”1扩展应答模型的下联语句词典W2。在本实施例中,词语“月落”、“玉简”和“玉弦”出现在U'“金樽”1中,却未出现在W2词典中,故将这3个词语添加到词典W2中,从而实现了对应答模型的更新。更新后的词典效果如下(标记加粗的是新加入W2词典的词语):
Figure BDA0002938198800000172
表14
需要注意的是,训练集D2中的每一个ti都会执行上述步骤来解决UNK字符问题,然后生成一个与之对应的候选词集
Figure BDA0002938198800000173
并将其添加到词典W2中,将添加更新后的词典W2作为下一次解决UNK字符问题的初始词典。通常情况下,在每一次ti执行上述步骤的过程中,词典W2中的词语数量会不断增加,词向量也会进行更新,最终在实际的应用时,这些新添加到词典W2中的词语也能作为预测应答语句中的词语进行输出,本申请将上述称之为迭代反馈过程。
步骤S140、采用更新后应答模型,对输入的提问语句进行自动应答。
在应答模型通过第一训练集D1和第二训练集D2训练好后,则可以应用于具体的场景中,进行自动应答。
在一个示例中,本申请一种融合双重分词和迭代反馈的自动应答方法,还包括:
将同一个词语t对应的所有第四候选集构建成第五候选集,对于第二训练集中生成所有未知符号的词语,将生成的所有第五候选集进行合并生成候选共现集,并在候选共现集的基础上进行扩充得到扩充集合,所述扩充集合中每个元素包括词语t及其对应的第五候选集。
具体的,在D2的训练过程中,同一个ti会生成
Figure BDA0002938198800000181
个不同的UNK字符,经过上述步骤S130会得到
Figure BDA0002938198800000182
个候选词集
Figure BDA0002938198800000183
针对每一个ti,将生成的全部候选词集构建成一个新的集合—ti候选总集:
Figure BDA0002938198800000184
(第五候选集)。对于训练集D2中生成所有UNK字符的ti,将生成的全部
Figure BDA0002938198800000185
构建成一个候选共现集
Figure BDA0002938198800000186
Figure BDA0002938198800000187
(M为训练集D2中全部提问语句所生成的UNK字符的总数量)。在此基础上构建扩充集合U°,从而可以利用U°中词语之间的共现关系来解决输出UNK字符的问题:
Figure BDA0002938198800000188
在D2中的全部语料都训练完毕后,“金樽”在整个训练过程中共生成5个不同的UNK字符,会得到5个候选词集U'“金樽”e(1≤e≤5),其中U'“金樽”1={玉盘,对酒,高歌,月落,玉简,玉弦}。
针对每一个ti,将生成的全部候选词集构建成一个新的集合—ti候选总集:在本实施例中,“金樽”的候选总集U'“金樽”={U'“金樽”1,U'“金樽”2,U'“金樽”3,U'“金樽”4,U'“金樽”5}。
Figure BDA0002938198800000189
表15
对于训练集D2中生成所有UNK字符的ti,将生成的全部
Figure BDA00029381988000001810
构建成一个集合
Figure BDA0002938198800000191
(M为训练集D2中全部上联语句所生成的UNK字符的词语的总数量)。在本实施例中,第一个ti(1≤i≤M)是“金樽”,即t1=“金樽”,故
Figure BDA0002938198800000192
在此基础上构建扩充集合U°:
Figure BDA0002938198800000193
在接下来的测试阶段或实际应用中,通过在U°中找词语与词语之间的共现关系来解决输出UNK字符的问题。
在接下来的一个示例中,如图3所示,所述采用更新后应答模型,对输入的提问语句进行自动应答,包括:
将提问语句输入到更新后的应答模型,若输出结果仍然包含未知符号,则先确定其对应的提问语句中生成该未知符号的词语q;
在扩充集合中查找与词语q相关的第五候选集,如果存在相关的第五候选集,则执行如下步骤:
构建词语q对应的待检索集合,其中,当词语q与扩充集合中的词语t相同时,将词语t对应的第五候选集加入到待检索集合中;当词语q与词语t不相同,但词语q存在于词语t的第五候选集中,则将词语t放入待检索集合中;
计算待检索集合中每个词语与词语q的关联度,选择关联度最大的词语作为词语q对应的字符输出。
在扩充集合中查找与词语q相关的第五候选集,如果不存在相关的第五候选集,则执行如下操作:
将词语q拆分成一个一个的字,然后将这些字都输入到更新后的应答模型中,在解码器的每一次循环中,输出应答语句字典B2中概率值最大的字作为该次循环的输出,并将其输入到下一次循环中,当解码器的循环次数与输入词语q的字数相同时,循环终止;
将历次循环的输出的字依次进行拼接,得到词语q对应的字符输出。
本实施例由于断字方法训练的模型参数保证了输入与输出之间的字数相同,故取每次循环中概率最大的字进行拼接,并将拼接后的词语作为词语q的非UNK字符的输出。
具体的,可以提取测试集T中的2条上联语句“绿意正浓惬意金樽欣美满”和“梧桐枝上栖双凤”为例,来描述实际的应用中,如何得到应答语句。首先对这2条上联语句进行序列化操作,再输入到更新后的应答模型中进行测试。如果输出的应答语句中不包括UNK字符,则直接以输出的语句进行应答,否则对UNK字符进行处理。
若输出结果仍然包含UNK字符,则先确定其对应的提问语句中生成该UNK字符的目标词语qt(1≤t≤MT,MT为训练集T中生成UNK字符所对应的提问语句中全部词语的总数量)。
首先提取构建好的候选共现集U*和扩充集合U°:U*由训练集D2中全部ti对应的候选总集
Figure BDA0002938198800000201
构成,
Figure BDA0002938198800000202
由同一个ti生成的多个候选词集
Figure BDA0002938198800000203
构成;ti
Figure BDA0002938198800000204
共同组合构成
Figure BDA0002938198800000205
ti
Figure BDA0002938198800000206
中的第一个元素,
Figure BDA0002938198800000207
是中
Figure BDA0002938198800000208
的第二个元素。然后,全部的
Figure BDA0002938198800000209
又构成了扩充集合U°。如果U°中找到与qt相关的
Figure BDA00029381988000002010
即U°中有与目标词语qt共现的词语,执行如下步骤:
构建词语qt的待检索集合
Figure BDA00029381988000002011
该集合由以下两个部分组成:1、当扩充集合U°中的
Figure BDA00029381988000002012
的第一个元素ti=qt时,将
Figure BDA00029381988000002013
的第二个元素
Figure BDA00029381988000002014
中的每一个元素
Figure BDA00029381988000002015
(
Figure BDA00029381988000002016
是同一个ti生成UNK字符的数量)中的全部词语加入到集合
Figure BDA00029381988000002017
中。2、当
Figure BDA00029381988000002018
的第二个元素
Figure BDA00029381988000002019
中的
Figure BDA00029381988000002020
中存在词语qt,且扩充集合U°中的
Figure BDA00029381988000002021
的第一个元素ti≠qt时,则将所有
Figure BDA00029381988000002022
对应的词语ti添加到
Figure BDA00029381988000002023
中。
定义一个参数NCW-CTF(Number of Co-occurrence Word sets—Co-occurrenceTotal sets Frequency)用来衡量待检索集合
Figure BDA00029381988000002024
中每个词语vr(1≤r≤lV,lV表示
Figure BDA00029381988000002025
中词语的个数)的关联程度,NCW-CTFrt的值越大表明vr与目标词语qt的关联性越强,具体计算公式如下:
NCWrt=满足vr和qt共现条件的候选词集的数量
其中,共现是指对于同一个
Figure BDA00029381988000002026
而言,当ti=vr时,如果
Figure BDA00029381988000002027
则qt和vr是共现的;当ti≠vr且ti=qt时,如果
Figure BDA00029381988000002028
则vr和qt是共现的。
Figure BDA00029381988000002029
其中,
Figure BDA0002938198800000211
为包含qt的候选总集的数量,
Figure BDA0002938198800000212
为包含vr的候选总集的数量。
NCW-CTFrt=NCWrt×CTFrt
为了计算出NCW-CTFrt的值,首先介绍NCWrt
Figure BDA0002938198800000213
Figure BDA0002938198800000214
三个参数的计算方法:
Figure BDA0002938198800000215
Figure BDA0002938198800000216
的计算公式如下:
Figure BDA0002938198800000217
Figure BDA0002938198800000218
的计算公式如下:
Figure BDA0002938198800000219
Figure BDA00029381988000002110
的值通过以下方法计算得到:对于一个确定的qt,遍历U°中的M个
Figure BDA00029381988000002111
当qt=ti或当
Figure BDA00029381988000002112
时,
Figure BDA00029381988000002113
的数值加1。遍历结束后输出
Figure BDA00029381988000002114
的值。
Figure BDA00029381988000002115
的值通过以下方法计算得到:对于一个确定的vr,遍历U°中的M个
Figure BDA00029381988000002116
当ti≠qt且ti=vr或当
Figure BDA00029381988000002117
时,则
Figure BDA00029381988000002118
的数值加1。遍历结束后输出
Figure BDA00029381988000002119
的值。
利用前两步中构建的待检索集合和定义的NCW-CTF公式,计算
Figure BDA00029381988000002120
中所有词语的NCW-CTF的值,并将其中NCW-CTF值最大的词语作为qt的非UNK字符的输出。
如果U°中没有找到与qt相关的
Figure BDA00029381988000002121
即U°中没有与目标词语qt共现的词语,也就是说找不到替换UNK字符的词语,则执行如下步骤:
将词语qt拆分成一个一个的字,然后将这些字都输入到参数更新后的应答模型中,在解码器的每一次循环中,利用softmax函数计算应答语句字典B2中概率值最大的字作为该次循环的输出,并将其输入到下一次循环中,当解码器的循环次数与输入词语qt的字数相同时,循环终止。将历次循环的输出的字依次进行拼接,得到qt的非UNK字符的输出。
由于断字方法训练的模型参数保证了输入与输出之间的字数相同,故取每次循环中概率最大的字进行拼接,并将拼接后的词语作为qt的非UNK字符的输出。
以测试集T中的2条上联语句“绿意正浓惬意金樽欣美满”和“梧桐枝上栖双凤”为例,应答模型的输出结果分别为“秋风更深柔情UNK庆团圆”和“菡萏花间立UNK”。由于输出的2句下联结果中都包含UNK字符,故需要对他们分别进行进一步的处理。
针对输出的第一条下联结果“秋风更深柔情UNK庆团圆”,确定其所对应的上联语句中生成UNK字符的目标词语,即:q1=“金樽”。执行以下两大步骤:
(一)具体步骤如下:
1、首先提取步骤S6中构建好的候选共现集U*和扩充集合U°。
在本实施例中,t1=“金樽”,故U°如下所示:
Figure BDA0002938198800000221
表16
在运行过程中,本实施例仅找到了4个与词语q1“金樽”相关的
Figure BDA0002938198800000222
其中,1≤a,b,c≤M,
Figure BDA0002938198800000223
Figure BDA0002938198800000224
是扩充集合U°中的3个元素,由于其下标的具体数值在程序的运行中不重要,因此本实施例中用a、b和c进行替代。
构建目标词语qt=“金樽”的待检索集合
Figure BDA0002938198800000225
集合
Figure BDA0002938198800000226
由以下两个部分组成:
i.当扩充集合U°中的
Figure BDA0002938198800000227
的第一个元素ti=qt时,将
Figure BDA0002938198800000228
的第二个元素
Figure BDA0002938198800000229
中的每一个元素
Figure BDA00029381988000002210
(
Figure BDA00029381988000002211
是同一个ti生成UNK字符的数量)中的全部词语加入到集合
Figure BDA00029381988000002212
中。
对于目标词语q1=“金樽”,根据表7.1,U°中的
Figure BDA00029381988000002213
的第一个元素:t1=“金樽”,满足条件t1=q1。故将
Figure BDA0002938198800000231
的第二个元素U'“金樽”中的每一个元素U'“金樽”e(1≤e≤5)中的全部词语加入到集合V“金樽”中,即:
V“金樽”={玉盘、对酒、高歌、月落、玉简、玉弦、金酒、春酒、银烛、玉柱}
ii.当
Figure BDA0002938198800000232
的第二个元素
Figure BDA0002938198800000233
中的
Figure BDA0002938198800000234
中存在词语qt,且扩充集合U°中的
Figure BDA0002938198800000235
的第一个元素ti≠qt时,则将所有
Figure BDA0002938198800000236
对应的词语ti添加到
Figure BDA0002938198800000237
中。
对于目标词语q1=“金樽”,U°中包含
Figure BDA0002938198800000238
Figure BDA0002938198800000239
这3个
Figure BDA00029381988000002310
它们的第二个元素
Figure BDA00029381988000002311
Figure BDA00029381988000002312
中的
Figure BDA00029381988000002313
Figure BDA00029381988000002314
中存在词语“金樽”,且这3个
Figure BDA00029381988000002315
中的第一个元素ta、tb和tc都不等于q1。故将
Figure BDA00029381988000002316
Figure BDA00029381988000002317
对应的词语月愁、玉腕、珠箔添加到V“金樽”中,得到:
V“金樽”={玉盘、对酒、高歌、月落、玉简、玉弦、春酒、银烛、金酒、玉柱、月愁、玉腕、珠箔}
计算待检索集合V“金樽”中每个词语vr(1≤r≤13)的NCW-CTF值,包括:
计算参数NCWrt的值:
NCWrt的计算过程由vr是否等于ti来决定,故本实施例选取了词语“玉盘”和“月愁”分别代表上述两种不同的情况来展示NCWrt的计算,其中,v1=“玉盘”,v2=“月愁”。
对于v1=“玉盘”且q1=“金樽”,t1=“金樽”,满足条件t1≠v1且t1=q1。从表7.1中可以得出,在“金樽”所对应的U'“金樽”中,存在4个U'“金樽”1、U'“金樽”2、U'“金樽”3、U'“金樽”4,满足v1=“玉盘”∈U'“金樽”e,故
Figure BDA00029381988000002318
Figure BDA00029381988000002319
对于v2=“月愁”和q1=“金樽”,ta=“月愁”,满足条件ta=v2。从表7.1中可以得出,在“月愁”所对应的U'“月愁”中,存在U'“月愁”2,满足q1=“金樽”∈U'“月愁”e,故
Figure BDA00029381988000002320
计算参数
Figure BDA00029381988000002321
的值:
对于q1=“金樽”,
Figure BDA0002938198800000241
中的t1=“金樽”,满足条件q1=t1,故
Figure BDA0002938198800000242
的数值加1;
Figure BDA0002938198800000243
中的
Figure BDA0002938198800000244
中的
Figure BDA0002938198800000245
Figure BDA0002938198800000246
中的
Figure BDA0002938198800000247
都包含词语“金樽”,满足条件
Figure BDA0002938198800000248
Figure BDA0002938198800000249
的数值加3。遍历结束后,
Figure BDA00029381988000002410
的数值为4。
计算参数
Figure BDA00029381988000002411
的值:
对于v1=“玉盘”,
Figure BDA00029381988000002424
中的U'“金樽”1、U'“金樽”2、U'“金樽”3和U'“金樽”4中包含词语“玉盘”,满足条件v1∈U'“金樽”e
Figure BDA00029381988000002413
的数值加1。遍历结束后,
Figure BDA00029381988000002414
的数值为1。
对于v2=“月愁”,
Figure BDA00029381988000002425
中的U'“月愁”1中包含词语“月愁”,满足条件v2∈U'“月愁”1
Figure BDA00029381988000002416
的数值加1;
Figure BDA00029381988000002417
中的ta=“月愁”,满足条件ta≠q1且ta=v2
Figure BDA00029381988000002418
的数值加1。遍历结束后,
Figure BDA00029381988000002419
的数值为2。
最后,对于v1=“玉盘”和v2=“月愁”,将求得的参数NCWrt
Figure BDA00029381988000002420
Figure BDA00029381988000002421
的值带入公式得到最终的NCW-CTF值:
Figure BDA00029381988000002422
表17计算待检索集合V“金樽”中全部词语的NCW-CTF值,结果如下:
Figure BDA00029381988000002423
表18
在本实施例中,NCW-CTF值最大的词语是“玉盘”,故将“玉盘”替换下联输出结果“秋风更深柔情UNK庆团圆”中的UNK字符。即输入到GAbS模型中的上联语句为:“绿意正浓惬意金樽欣美满”,经过UNK字符处理后的下联输出结果为:“秋风更深柔情玉盘庆团圆”。
将上联语句“梧桐枝上栖双凤”输入到应答模型中,得到的下联结果为:“菡萏花间立UNK”,确定上联语句中生成UNK字符的目标词语为:q2=“双凤”。为了解决输出下联语句中包含UNK字符的问题,首先提取构建好的候选共现集U*和扩充集合U°。
对于词语q2=“双凤”,在U°中没有找到与之相关的
Figure BDA0002938198800000251
也就是说找不到替换UNK字符的词语,故将词语“双凤”拆分成2个字:“双”和“凤”。然后将这2个字都输入到参数更新后的应答模型中,在解码器的每一次循环中,利用softmax函数计算下联语句字典B2中概率值最大的字作为该次循环的输出,并将其输入到下一次循环中。
在本实施例中,由于词语“双凤”仅包含2个字,因此解码器循环2次后终止。将2次循环输出的字依次进行拼接,结果如下:
Figure BDA0002938198800000252
表19
在本实施例中,将输出概率最大的字“对”“鸳”进行拼接后组合成词语“对鸳”,故将“对鸳”替换下联输出结果“菡萏花间立UNK”中的UNK字符。最终得到以下的一副对联,上联语句为:“梧桐枝上栖双凤”,下联输出结果为:“菡萏花间立对鸳”。
在另一个实施例中,本申请还提供了一种融合双重分词和迭代反馈的自动应答装置,包括处理器以及存储有若干计算机指令的存储器,所述计算机指令被处理器执行时实现所述融合双重分词和迭代反馈的自动应答方法的步骤。
关于融合双重分词和迭代反馈的自动应答装置的具体限定可以参见上文中对于融合双重分词和迭代反馈的自动应答方法的限定,在此不再赘述。
存储器和处理器之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件互相之间可以通过一条或多条通讯总线或信号线实现电性连接。存储器中存储有可在处理器上运行的计算机程序,所述处理器通过运行存储在存储器内的计算机程序,从而实现本发明实施例中的网络拓扑布局方法。
其中,所述存储器可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器用于存储程序,所述处理器在接收到执行指令后,执行所述程序。
所述处理器可能是一种集成电路芯片,具有数据的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等。可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种融合双重分词和迭代反馈的自动应答方法,其特征在于,所述融合双重分词和迭代反馈的自动应答方法,包括:
获取提问语句及其对应的应答语句作为语料库S,对每组提问语句及其对应的应答语句进行中文分词得到分词后的语料库,将分词结果分别存入提问语句词典和应答语句词典并训练得到所有词的词向量,利用提问语句词典和应答语句词典对分词后的语料库进行序列化操作得到序列化后的语料库,将序列化后的语料库划分为第一训练集和第二训练集;
采用第一训练集对构建的应答模型进行训练,训练得到应答模型;
将第二训练集中的提问语句逐条输入到已经训练好的应答模型中,并且当应答模型的输出中包含未知符号时,对于每一个未知符号,进行如下处理:
确定与未知符号对应的提问语句集合中的词语t,将所确定的词语t和应答语句词典中所有词语的词向量进行聚类,将与词语t同簇的全部词语存入到第一候选集;
当第一候选集中词语数量少于候选阈值时,对词语t进行断字操作,同时对语料库S也进行断字操作,构建出提问语句字典和应答语句字典,将词语t断字后的所有字在提问语句字典中的序号输入到训练好的应答模型中,预测出词语t中每个字对应的字符输出,从每个字对应的字符输出中选择一个字符进行排列组合连接成词语,选取其中预设数值的词语组成第二候选集;
合并第一候选集和第二候选集,组成第三候选集,对第三候选集中的所有词语根据其与词语t的语义关联度进行打分,将分值大于支持度阈值的词语放入第四候选集;
将第四候选集中的词语放入应答语句词典中,将添加第四候选集后的应答语句词典作为下一个未知符号处理时的应答语句词典,遍历第二训练集,完成对应答模型的更新;
采用更新后应答模型,对输入的提问语句进行自动应答。
2.如权利要求1所述的融合双重分词和迭代反馈的自动应答方法,其特征在于,所述将与词语t同簇的全部词语存入到第一候选集,还包括:
当词语t同簇的词语少于设定的同簇数量阈值时,计算每一个词语t的簇外词语与词语t的欧式距离,将距离小于距离阈值的词语加入到词语t所在的簇内。
3.如权利要求1所述的融合双重分词和迭代反馈的自动应答方法,其特征在于,所述预测出词语t中每个字对应的字符输出,包括:
取预测概率由大到小前预设数量的字符作为字符输出。
4.如权利要求1所述的融合双重分词和迭代反馈的自动应答方法,其特征在于,所述应答模型包括编码器和解码器,所述采用第一训练集对构建的应答模型进行训练,训练得到应答模型,包括:
将序列化后的第一训练提问语句集合中的每一条提问语句对应的词向量输入到编码器中,分别得到每一条提问语句对应的全部隐藏状态的一个有序集合,然后进入到解码器循环阶段;
在解码器的每一次循环中,都为所述有序集合中的所有隐藏状态重新分配权重,然后对全部隐藏状态加权求和得到对应的上下文向量,将上下文向量和上一次解码器的输出向量再次输入到解码器中进行循环;
在循环达到终止条件后,提取解码器输出的全部输出向量,将其和语料库中真实的应答语句利用交叉熵损失函数进行计算;
采用梯度下降法来确定应答模型中全部的隐藏状态和上下文向量的权重,实现对应答模型的参数优化,完成应答模型训练。
5.如权利要求4所述的融合双重分词和迭代反馈的自动应答方法,其特征在于,所述终止条件为每一个隐藏状态的权重都曾获得过一个大于或等于权重阈值的取值。
6.如权利要求1所述的融合双重分词和迭代反馈的自动应答方法,其特征在于,所述融合双重分词和迭代反馈的自动应答方法,还包括:
将同一个词语t对应的所有第四候选集构建成第五候选集,对于第二训练集中生成所有未知符号的词语,将生成的所有第五候选集进行合并生成候选共现集,并在候选共现集的基础上进行扩充得到扩充集合,所述扩充集合中每个元素包括词语t及其对应的第五候选集。
7.如权利要求6所述的融合双重分词和迭代反馈的自动应答方法,其特征在于,所述采用更新后应答模型,对输入的提问语句进行自动应答,包括:
将提问语句输入到更新后的应答模型,若输出结果仍然包含未知符号,则先确定其对应的提问语句中生成该未知符号的词语q;
在扩充集合中查找与词语q相关的第五候选集,如果存在相关的第五候选集,则执行如下步骤:
构建词语q对应的待检索集合,其中,当词语q与扩充集合中的词语t相同时,将词语t对应的第五候选集加入到待检索集合中;当词语q与词语t不相同,但词语q存在于词语t的第五候选集中,则将词语t放入待检索集合中;
计算待检索集合中每个词语与词语q的关联度,选择关联度最大的词语作为词语q对应的字符输出;
在扩充集合中查找与词语q相关的第五候选集,如果不存在相关的第五候选集,则执行如下步骤:
将词语q拆分成一个一个的字,然后将这些字都输入到更新后的应答模型中,在解码器的每一次循环中,输出应答语句字典中概率值最大的字作为该次循环的输出,并将其输入到下一次循环中,当解码器的循环次数与输入词语q的字数相同时,循环终止;
将历次循环的输出的字依次进行拼接,得到词语q对应的字符输出。
8.一种融合双重分词和迭代反馈的自动应答装置,包括处理器以及存储有若干计算机指令的存储器,其特征在于,所述计算机指令被处理器执行时实现权利要求1至权利要求7中任意一项所述方法的步骤。
CN202110168128.9A 2021-02-07 2021-02-07 一种融合双重分词和迭代反馈的自动应答方法 Active CN112836032B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110168128.9A CN112836032B (zh) 2021-02-07 2021-02-07 一种融合双重分词和迭代反馈的自动应答方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110168128.9A CN112836032B (zh) 2021-02-07 2021-02-07 一种融合双重分词和迭代反馈的自动应答方法

Publications (2)

Publication Number Publication Date
CN112836032A CN112836032A (zh) 2021-05-25
CN112836032B true CN112836032B (zh) 2022-05-06

Family

ID=75932645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110168128.9A Active CN112836032B (zh) 2021-02-07 2021-02-07 一种融合双重分词和迭代反馈的自动应答方法

Country Status (1)

Country Link
CN (1) CN112836032B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535922B (zh) * 2021-07-22 2024-02-02 唯品会(广州)软件有限公司 一种尺码信息确定方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679910A (zh) * 2015-03-25 2015-06-03 北京智齿博创科技有限公司 智能应答方法及系统
CN109062977A (zh) * 2018-06-29 2018-12-21 厦门快商通信息技术有限公司 一种基于语义相似度的自动问答文本匹配方法、自动问答方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10643139B2 (en) * 2017-04-20 2020-05-05 Cognitive Scale, Inc. Cognitive attribution

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679910A (zh) * 2015-03-25 2015-06-03 北京智齿博创科技有限公司 智能应答方法及系统
CN109062977A (zh) * 2018-06-29 2018-12-21 厦门快商通信息技术有限公司 一种基于语义相似度的自动问答文本匹配方法、自动问答方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Iterative Context-Aware Graph Inference for Visual Dialog;Dan Guo等;《Proceedings of the IEEECVF Conference on Computer Vision and Pattern Recognition (CVPR)》;20201231;全文 *
基于本体的领域自动问答系统研究;朱淑媛等;《计算机应用与软件》;20190831;全文 *

Also Published As

Publication number Publication date
CN112836032A (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN112559556B (zh) 表格模式解析和序列掩码的语言模型预训练方法及系统
CN106649783B (zh) 一种同义词挖掘方法和装置
US8069027B2 (en) Word alignment apparatus, method, and program product, and example sentence bilingual dictionary
CN102622338B (zh) 一种短文本间语义距离的计算机辅助计算方法
CN107239529A (zh) 一种基于深度学习的舆情热点类别划分方法
CN104778256B (zh) 一种领域问答系统咨询的快速可增量聚类方法
CN105094368B (zh) 一种对输入法候选项进行调频排序的控制方法及控制装置
CN104391842A (zh) 一种翻译模型构建方法和系统
CN103970730A (zh) 一种从单个中文文本中提取多主题词的方法
US20230117325A1 (en) System for generating compound structure representation
CN103608805B (zh) 辞典产生装置及方法
CN106227719A (zh) 中文分词歧义消除方法和系统
CN112836032B (zh) 一种融合双重分词和迭代反馈的自动应答方法
CN105956158A (zh) 基于海量微博文本和用户信息的网络新词自动提取的方法
JP2015022431A (ja) 学習モデル作成装置、翻訳装置、学習モデル作成方法、及びプログラム
CN101763403A (zh) 面向多语言信息检索系统的查询翻译方法
CN107577922B (zh) 一种基于ARM处理器的玉米lncRNA筛选分类方法
CN113743453A (zh) 一种基于随机森林的人口数量预测方法
Cathcart et al. In search of isoglosses: continuous and discrete language embeddings in Slavic historical phonology
Wang et al. EvaHan2023: Overview of the First International Ancient Chinese Translation Bakeoff
Rouhe et al. Morfessor-enriched features and multilingual training for canonical morphological segmentation
Kasthuri et al. An improved rule based iterative affix stripping stemmer for Tamil language using K-mean clustering
JP2014225158A (ja) 文書要約装置、方法、及びプログラム
Jha Document clustering using k-medoids
JP2006072787A (ja) 自動質問解答方法、そのためのモデル作成方法、およびコンピュータプログラム

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240806

Address after: Room 2202, 22 / F, Wantong building, No. 3002, Sungang East Road, Sungang street, Luohu District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen dragon totem technology achievement transformation Co.,Ltd.

Country or region after: China

Address before: 310018 no.928, No.2 Baiyang street, Hangzhou Economic Development Zone, Zhejiang Province

Patentee before: ZHEJIANG SCI-TECH University

Country or region before: China

TR01 Transfer of patent right