首页 / 专利库 / 人工智能 / 查询似然模型 / 一种针对程序设计类课程的自动化答疑方法

一种针对程序设计类课程的自动化答疑方法

阅读:971发布:2020-05-15

专利汇可以提供一种针对程序设计类课程的自动化答疑方法专利检索,专利查询,专利分析的服务。并且本 发明 提出了一种针对程序设计类课程的自动化答疑方法,包括以下步骤:对若干用户提出的问题语句集和用户对所提问题的相应回答语句集行存储;将所述存储的问答数据语料的问题语句经训练转化为词向量,再将词向量进行组合得到词向量矩阵;前端获取用户提出的新问题;根据词向量矩阵构建新问题的问句向量;计算新问题语句与所存储问题语句集中每个问题语句的向量相似度,可得问句向量相似度集合;根据问句向量相似度集合构建答案,选出新问题语句与所存储的问题语句集中相似度最高的问句的答案进行回复,实现自动回答。本发明可以记录用户的问答内容并生成问答对,用以自动回复其他用户提出的重复问题,大大减轻了教师在答疑缓解中付出的重复劳动。,下面是一种针对程序设计类课程的自动化答疑方法专利的具体信息内容。

1.一种针对程序设计类课程的自动化答疑方法,其特征在于,包括以下步骤:
S1、对若干用户提出的问题语句集 和用户对所提问题的相
应回答语句集 进行存储,其中, 表示问题语句集中第个问题
语句, 表示问题语句 的回答语句,表示问题语句在问题语句集中的id或回答语句在回答语句集中的id,n表示问题语句集中问题语句的个数或回答语句集中回答语句的个数;转至步骤S2;
S2、将所述存储的问答数据语料的问题语句 经训练转化为词向量
,其中, 表示第 个问题语句 的第 个词语的词向量,再
将各问题语句 的词向量 进行组合得到词向量矩阵
;转至步骤S3;
S3、前端获取用户提出的新问题 ;转至步骤S4;
S4、根据步骤S2所得词向量矩阵 构建所述新问题 的问句向量 ;转
至步骤S5;
S5、根据余弦相似度公式  计算所述新问题语句 与所
存储问题语句集 中每个问题语句 的向量相似度 ,其中 、 分别表示待比较问句相似度的两个问句 、 所对应的问句向量,由此可得所述新问题语句 与所存储问题语句集 中每个问题语句 的向量相似度集合  ;转至
步骤S6;
S6、根据所述问句向量相似度集合  构建答案,选出所述新
问题语句 与所存储的问题语句集 中相似度最高的问句 的答案 进行回复,实现自动回答。
2.根据权利要求1 所述一种针对程序设计类课程的自动化答疑方法,其特征在于,步骤S2的具体方法如下:
S201、获取所述已存储的问答对语料库中的问题语句集 和
回答语句集 ;转至步骤S201;
S202、利用结巴分词和停用词表对问题语句集 进行批量分词处理和去停用词处理,获取每个问题语句 的一系列词语 ,
其中, 表示问题语句 经分词和去停用词处理后得到的第 个词语;转至步骤S203;
S203、设置最小词频、训练词向量维数、中心词上下文窗口大小、上下文处理模型;转至步骤S204;
S204、生成问题语句 一系列词语 的词向量 ,将
问题语句 生成的 组合,从而生成问题语句词向量矩阵

3.根据权利要求2 所述一种针对程序设计类课程的自动化答疑方法,其特征在于,在步骤S202中,对问题语句集 进行批量分词处理和去停用词处理的过程中,包括对问题语句 中自然语言的处理,也包括对问题语句 中程序代码部分的处理。
4.根据权利要求2所述一种针对程序设计类课程的自动化答疑方法,其特征在于,在步骤S203中,所设置的最小词频在实施过程中具体表现为,若所要训练的词语的词频低于该频数,即不算入训练词语。
5.根据权利要求1所述一种针对程序设计类课程的自动化答疑方法,其特征在于,步骤S4的具体方法如下:
S401、对所述新问题语句进行分词处理和去停用词处理,获得如下问句词集合其中, 为新问题语句 经分词和去停用词处理后得到得第个词语;转
至步骤S402;
S402、查询步骤S2训练所得的问题语句的词向量矩阵 ,获取问句词集合中 对应的词向量 ;转至步骤S403;
S403、将所述新问题 的词集合 中每个词 的词向量
的累加均值作为所述新问题 的句向量 ,即

6.根据权利要求5所述一种针对程序设计类课程的自动化答疑方法,其特征在于,在步骤S401中,对新问题语句 进行分词处理和去停用词处理的过程中,包括对新问题语句 中自然语言的处理,也包括对新问题语句 中程序代码部分的处理。
7.根据权利要求5所述一种针对程序设计类课程的自动化答疑方法,其特征在于,在步骤402中,对于词向量矩阵 中未包含的词,置其为零向量。
8.根据权利要求1所述一种针对程序设计类课程的自动化答疑方法,其特征在于,在步骤S5中,通过公式 计算所述新问题语句 与问题语句集
中的每个问 句 的 向量相似度 ,即若 ,
,则



其中, 表示问句向量 和 的数量内积, 表示问句向量 的大小,
表示问句向量 的大小, 表示问句向量 的第i个词向量,表示问句向量 的第i个词向量,n表示问句向量 或 中对应的词向量的个数。

说明书全文

一种针对程序设计类课程的自动化答疑方法

技术领域

[0001] 本发明涉及一种针对程序设计类课程的自动化答疑方法,属于人机交互自动化问答技术领域。

背景技术

[0002] 随着计算机技术和互联网的不断发展,越来越多的领域实现了数字化管理,这不仅极大地提高了效率、节省了人工成本,还使得管理更加精细化、准确化。并且,由于现代各大高校纷纷开设计算机专业的课程,加上该类课程鼓励学生课后动手实践的特点,高校教学在管理过程中为顺应时代发展潮流,有效地提高教学效率,不断向网络化、信息化的方向发展,因此针对程序设计类课程的自动化答疑系统应运而生。自动化答疑系统是基于高速发展的互联网,通过问题分析和数据处理,对待解决的问题进行解答的智能系统。然而,目前尚未出现一种针对计算机专业相关课程的智能答疑系统。
[0003] 学生们在学习计算机专业相关课程的过程中,难免会遇到一些问题难以解决,由此学生们在学习过程中所需要的答疑就显得相当重要。而传统答疑又存在着如下弊端:1、师生需要事先协调时间和地点,存在着时空不便;2、老师重复答疑的工作量大,面对不同的学生时可能花费大量时间回答相同或者类似的问题。

发明内容

[0004] 本发明所要解决的技术问题是,克服现有技术的不足而提供一种针对程序设计类课程的自动化答疑方法,使得用户能够在线提问和回答,系统实现自动化答疑,从而增强教师与学生、学生与学生之间的互动,能够尽快解决学生的问题,减少教师的重复工作。
[0005] 本发明提供一种针对程序设计类课程的自动化答疑方法,包括以下步骤:
[0006] S1、对若干用户提出的问题语句集Ques=[q1,q2...qi...qn]和用户对所提问题的相应回答语句集Ans=[a1,a2...ai...an]进行存储,其中,qi表示问题语句集中第i个问题语句,ai表示问题语句qi的回答语句,i表示问题语句在问题语句集中的id或回答语句在回答语句集中的id,n表示问题语句集中问题语句的个数或回答语句集中回答语句的个数;转至步骤S2;
[0007] S2、将所述存储的问答数据语料的问题语句qi经训练转化为词向量Veci=[vi1,vi2...vij...vin],其中,vij表示第i个问题语句qi的第j个词语的词向量,再将各问题语句qi的词向量Veci进行组合得到词向量矩阵 转至步骤S3;
[0008] S3、前端获取用户提出的新问题Ques′;转至步骤S4;
[0009] S4、根据步骤S2所得词向量矩阵Vector构建所述新问题Ques′的问句向量Vques′;转至步骤S5;
[0010] S5、根据余弦相似度公式 计算所述新问题语句Ques′与所存储问题语句集Ques中每个问题语句qi的向量相似度si,其中vs1、vs2分别表示待比较问句相似度的两个问句s1、s2所对应的问句向量,由此可得所述新问题语句Ques′与所存储问题语句集Ques中每个问题语句qi的向量相似度集合Sim=[s1,s2...si...sn];转至步骤S6;
[0011] S6、根据所述问句向量相似度集合Sim=[s1,s2...si...sn]构建答案,选出所述新问题语句Ques′与所存储的问题语句集Ques中相似度最高的问句qi的答案ai进行回复,实现自动回答。
[0012] 本发明针对程序设计类课程的自动化答疑系统的诞生,使得广大学生在学习过程中能够在线提出问题、分享问题、讨论问题,最终以达到解决问题的目的。本发明,首先利用Web开发技术设计异步在线问答模,接着使用系统中已存在的历史答疑数据作为语料,利用结巴分词对问题语句进行分词,其中不仅包括对自然语言的分词处理,特别的,还包括对程序代码的处理;基于CNN、RNN等深度学习网络模型对word2vec模型进行训练得到词向量空间;最后基于训练所得的词向量空间构建问句向量,根据句子向量之间的相似度,利用相似问题的答案回复新问题,实现自动问答。总之,不同于以往已存在的自动化答疑方法的地方在于,本发明通过对程序设计类课程的问题语句和回答语句的特殊处理、构建词向量矩阵、神经网络训练、相似度比较等方法,为学习程序设计类课程的用户所提问问题提供一个系统中已存在的最佳答案,作为用户当前所提问问题的答案,使得自动化答疑的效果更佳,用户体验更加良好。
[0013] 作为本发明的进一步技术方案,步骤S2中,将所述存储的问答数据语料经训练转化为词向量Veci=[vi1,vi2…vij…vin],再进行组合得到词向量矩阵其具体方法如下:
[0014] S201、获取所述已存储的问答对语料库中的问题语句集Ques=[q1,q2...qi...qn]和回答语句集Ans=[a1,a2…ai…an];转至步骤S201;
[0015] S202、利用结巴分词和停用词表对问题语句集Ques进行批量分词处理和去停用词处理,获取每个问题语句qi的一系列词语Wordi=[sordi1,wordi2...wordij...wordin],其中,wordij表示问题语句qi经分词和去停用词处理后得到的第j个词语;转至步骤S203;
[0016] S203、设置最小词频(min_count)、训练词向量维数(size)、中心词上下文窗口大小(window)、上下文处理模型(skip-gram或者CBOW);转至步骤S204;
[0017] S204、生成问题语句qi一系列词语Wordi的词向量Veci=[vi1,vi2…vij…vin],将问题语句qi生成的Veci组合,从而生成问题语句词向量矩阵
[0018] 进一步的,在步骤S202中,对问题语句集Ques进行批量分词处理和去停用词处理的过程中,包括对问题语句qi中自然语言的处理,特别的也包括对问题语句qi中程序代码部分的处理。
[0019] 进一步的,在步骤S203中,所设置的最小词频min_count在实施过程中具体表现为,若所要训练的词语的词频低于该频数,即不算入训练词语。
[0020] 进一步的,步骤S4中,根据所得词向量空间Vector构建所述新问题Ques′的问句向量Vques′,其的具体方法如下:
[0021] S401、对所述新问题语句进行分词处理和去停用词处理,获得如下问句词集合[0022] Wordques′=[wordques1′,wordques2′...wordquesi′...wordquesn′]
[0023] 其中,wordquesi′为新问题语句Ques′经分词和去停用词处理后得到得第i个词语;转至步骤S402;
[0024] S402、查询步骤S2训练所得的问题语句的词向量矩阵Vector,获取问句词集合Wordques′中wordquesi′对应的词向量 转至步骤S403;
[0025] S403、将所述新问题Ques′的词集合Wordques′中每个词wordquesi′的词向量的 累 加均 值作 为所 述 新问 题Q ue s ′的 句向 量 Vq ue s ′,即
[0026] 进一步的,在步骤S401中,对新问题语句Ques′进行分词处理和去停用词处理的过程中,包括对新问题语句Ques′中自然语言的处理,特别的也包括对新问题语句Ques′中程序代码部分的处理。
[0027] 进一步的,在步骤402中,对于词向量矩阵Vector中未包含的词,置其为零向量。
[0028] 进一步的,在步骤S5中,通过公式 计算所述新问题语句Ques′与问题语句集Ques中的每个问句qi的向量相似度si,即若vs1=[a1,a2,...,ai,...,an],vs2=[b1,b2,...,bi,...,bn],则
[0029] vs1*vs2=a1*b1+a2*b2+…...+an*bn,
[0030]
[0031]
[0032] 其中,vs1*vs2表示问句向量vs1和vs2的数量内积,||vs1||表示问句向量vs1的大小,||vs2||表示问句向量vs2的大小,ai表示问句向量vs1的第i个词向量,bi表示问句向量vs2的第i个词向量,n表示问句向量vs1或vs2中对应的词向量的个数。
[0033] 本发明采用以上技术方案与现有技术相比,具有以下技术效果:本发明的自动化答疑方法,可以记录用户的问答内容,并生成问答对,用以自动回复其他用户提出的重复问题;通过训练已经存在的历史答疑数据构成词向量矩阵,特别地还包括对程序代码的处理,使之生成对应词向量矩阵;根据所构成的词向量矩阵,将新问题语句转化为问句向量;再通过与所存储的问句向量进行相似度比较,构建最佳答案返回给用户,实现自动化回答,大大减轻了教师在答疑缓解中付出的重复劳动。附图说明
[0034] 图1为本发明中采用针对程序设计类课程的自动化答疑方法的系统的框架图。
[0035] 图2为本发明中自动化答疑系统实现自动问答的原理图。
[0036] 图3为本发明中自动化答疑系统存储问题语句和回答语句的流程图
[0037] 图4为本发明中训练已存在的历史答疑数据形成词向量空间的流程示意图。
[0038] 图5为本发明中获取前端问句并转化为问句向量的流程图。
[0039] 图6为本发明中计算余弦相似度并筛选最佳答案的流程图。
[0040] 图7为本发明中上下文处理模型skip-gram的一个示例。
[0041] 图8为本发明中skip-gram模型的神经网络模型示意图。
[0042] 图9为本发明中上下文处理模型CBOW的一个示例。
[0043] 图10为本发明中CBOW模型的神经网络模型示意图。
[0044] 图11为本发明中word2vec模型的示意图。
[0045] 图12为本发明中word2vec模型的输出层的原理图。

具体实施方式

[0046] 下面结合附图对本发明的技术方案做进一步的详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护权限不限于下述的实施例。
[0047] 如图1所示,采用本实施例所提供的针对程序设计类课程的自动化答疑方法的自动化答疑系统,包括问答首页、我要提问、我的收藏、我的提问、邀请我回答的问题、我要回答等六大模块。如图2所示,上述自动化答疑系统实现自动问答的原理为:用户提出问题,自动化答疑系统将新提出的问题储存为问答数据,再根据已训练好的词向量空间生成新问题语句的问句向量,并作相似度比较,将相似度最高的问题答案返回给用户,实现自动问答。
[0048] 如图3至图6所示,本实施例的针对程序设计类课程的自动化答疑方法,包括如下步骤:
[0049] S1、将若干用户提出的问题语句集Ques=[q1,q2...qi...qn]和用户对所提问题的相应回答语句集Ans=[a1,a2...ai...an]进行存储,其中,qi表示问题语句集中第i个问题语句,此处i表示该问题语句在问题语句集中的id,ai表示问题语句qi的回答语句,此处i表示回答语句在回答语句集中的id,n表示问题语句集中问题语句的个数或回答语句集中回答语句的个数;
[0050] S2、将所述存储的问答数据语料的问题语句qi经训练转化为词向量Veci=[vi1,vi2...vij...vin],其中,vij表示第i个问题语句qi的第j个词语的词向量,再将各问题语句qi的词向量Veci进行组合得到词向量矩阵
[0051] S3、前端获取用户提出的新问题Ques′;
[0052] S4、根据步骤S2所得词向量矩阵Vector构建所述新问题Ques′的问句向量Vques′;
[0053] S5、根据余弦相似度公式 计算所述新问题语句Ques′与所存储问题语句集Ques中每个问题语句qi的向量相似度si,其中vs1、vs2分别表示待比较问句相似度的两个问句s1、s2所对应的问句向量,由此可得所述新问题语句Ques′与所存储问题语句集Ques中每个问题语句qi的向量相似度集合Sim=[s1,s2...si...sn];
[0054] S6、根据所述问句向量相似度集合Sim=[s1,s2...si...sn]构建答案,选出所述新问题语句Ques′与所存储的问题语句集Ques中相似度最高的问句qi的答案ai进行回复,实现自动回答。
[0055] 如图3所示,步骤S1的具体操作如下:
[0056] 对每个用户提出的问题qi和其他用户对该问题qi的相应回答a进行存储。
[0057] 在自动化答疑系统中,用户提出问题qi后系统对该问题进行存储。接下来存储该问题qi的相应回答ai的情况具体分为以下两种。
[0058] 第一种情况为当前系统中已存在的历史答疑数据语料库中不存在与所提出的新问题ai相似的问题语句,当有其他用户对该问题qi进行回答并被提问用户认可后,系统再对应存储该问题qi的回答语句ai。若无用户回答,则等待回答。
[0059] 第二种情况为当前系统中已存在的历史答疑数据语料库中存在与所提出的新问题qi相似的问题语句,系统首先通过计算,将与新问题语句相似度最高的问题的回答语句ai返回给用户,若用户认可,则进行存储;若用户不认可,则等待其他用户回答,当其他用户的回答被认可后进行存储。
[0060] 上述步骤S1的执行过程是对答疑语料的积累,该步骤的目的在于逐渐形成可供训练使用的答疑数据语料库。
[0061] 如图4所示,步骤S2的具体方法如下:
[0062] S201、获取所述已存储的问答对语料库中的问题语句集Ques=[q1,q2…qi…qn]和回答语句集Ans=[a1,a2…ai…an]。
[0063] S202、利用结巴分词和停用词表对问题语句集Ques进行批量分词处理和去停用词处理,获取每个问题语句qi的一系列词语Wordi=[wordi1,wordi2...wordij...wordin],其中,wordij表示问题语句qi经分词和去停用词处理后得到的第j个词语。
[0064] 对问题语句集Ques进行批量分词处理和去停用词处理的过程中,包括对问题语句qi中自然语言的处理,特别的也包括对问题语句qi中程序代码部分的处理。
[0065] S203、设置最小词频(min_count)、训练词向量维数(size)、中心词上下文窗口大小(window)、上下文处理模型(skip-gram或者CBOW)。
[0066] 所设置的最小词频min_count在实施过程中具体表现为,若所要训练的词语的词频低于该频数,即不算入训练词语。
[0067] S204、生成问题语句qi一系列词语Wordi的词向量Veci=[vi1,vi2...vij...vin],将问题语句qi生成的Veci组合,从而生成问题语句词向量矩阵
[0068] 在对问题语句集Ques进行批量分词处理和去停用词处理的过程中,包括对问题语句qi中自然语言的处理,例如,通过对“老师,为啥最后一章的选择题答案会自己变呢”、“请问怎么实现冒泡排序”等句进行分词和去停用词处理得到一系列词语。“老师,为啥最后一章的选择题答案会自己变呢”经分词和去停用词处理后得到一系列词语:“老师”,“为啥”,“最后”,“一章”“,选择题”“, 答案”,“会”“,自己”“, 变”;“请问怎么实现冒泡排序”经分词和去停用词处理后得到一系列词语:“请问”,“怎么”,“实现”,“冒泡排序”。
[0069] 在对问题语句集Ques进行批量分词处理和去停用词处理的过程中,也包括对问题语句qi中程序代码部分的处理。对程序代码的处理,包括去除问题代码中的注释、头文件、空格或换行符等影响代码进行下一步切词的冗余信息,接着再对代码进行切词处理,得到代码部分的一系列词语。
[0070] 接下来进行一系列设置,具体包括设置最小词频min_count、向量维数size、中心词上下文窗口大小window、上下文处理模型skip-gram或者CBOW。
[0071] 其中,最小词频min_count具体表现为最小词频训练值。一般来说,min_count需要根据训练语料的大小设置,当且仅当问题语句经去停用词和切词处理后所得的一系列词语的词频超过min_count阀值的词语才能被训练;反之,若问题语句经去停用词和切词处理后所得的一系列词语中,含有词语词频小于所设置词频min_count的词语,则该词语不计入训练词语。
[0072] 向量维数size具体表现为待训练所得的词向量空间的维数。若将要训练的词量大,进一步地,训练得到的词向量要做语义层面的叠加,例如,句子的向量表示用词的向量叠加,为了增加区分度,语义空间应该要设置大一些,所以维度要偏大。一般情况下size设置为200。
[0073] 中心词上下文大小窗口window具体表现为影响词语和该词语本身的前后多少个词语之间的关系,和待训练语料中语句的长度有关。一般情况下,建议首先统计语料中句子长度的分布,再来设置window的大小。一般情况下window设置为8。
[0074] 上下文处理模型可以设置为skip-gram(跳词模型)或者CBOW(Continuous bag-of-words连续词袋模型)。其中,skip-gram的核心思想是根据中心词预测上下文,分别以句子中每个词为中心词,并以中心词为中心选取临近窗口(window size)中的词构成(中心词,窗口词)二元组,由此构造以中心词为输入特征值,窗口词为标记的训练样本集合。例如,对于句子,“the beautiful flower blooms in a fertile land”,选择窗口大小为2,那么对于词“the”就会产生[(the,beautiful),(the,flower)]两个训练样本,对于词“flower”则会产生[(flower,the),(flower,beautiful),(flower,blooms),(flower,in)]四个训练样本,如图7所示。由此发现由中心词预测上下文将产生大量的训练样本,在训练语料不是很多和词为生僻词出现次数较少的情况下,这些样本可以充分利用上下文信息不断调整中心词向量,使其相对变得更准确。skip-gram模型的神经网络模型如图8所示。
[0075] CBOW的核心思想与skip-gram相反,是利用窗口周围的词来预测中心词。与skip-gram不同的是,CBOW每次移动中心词只会产生一个训练样本:[窗口词,中心词]。仍以上述句子为例,选取窗口大小为2,对于词“the”产生的训练样本为[(beautiful,flower),the];对于词“flower”产生的训练样本为[(the,beautiful,blooms,in),flower],如图9所示。对于每一个样本,输入有四个而输出只有一个,因此在隐藏层向输出层映射时,需要将多个输入产生的隐藏层向量相加平均,完成与输出的统一。基于CBOW模型的神经网络模型如图10所示。
[0076] 由此对得到的这些词语进行转换得到该问题语句的词向量,再将所得词向量形成问题语句的词向量空间。本实施例中,问题语句的词向量空间为二维矩阵。
[0077] Word2vec的详细实现原理为:word2vec是包含CBOW和skip-gram两种不同的词语上文处理模型的神经网络语言模型,其本质是一个三层神经网络,如图11所示,该三层神经网络模型包括:
[0078] 输入层,输入特征是一个词的独热(one-hot)向量,设其维度为N,则输入可表示为VN×1;
[0079] 隐藏层,隐藏层的神经元数量就是分布式词向量的维度,设神经元数量为M,则输入层与隐藏层系数之间的参数矩阵为WN×M;事实上,该参数矩阵就是期望得到的词向量空间;这里的隐藏层神经元数量M通常远远小于N,由此N维的向量即可压缩至M维,公式如下所示:
[0080]
[0081] 输出层,输出层的神经元个数为N,则隐藏层与输出之间的参数矩阵为W′M×N,此时隐藏层的词向量与该矩阵相乘得到N维向量,再经过softmax归一化之后,输出向量的每一维度分量表示词库中的一个词与神经网络输入词的共同出现在上下文中的概率,如图12所示。
[0082] Word2vec模型的训练过程为:选取样本(x,y),其中x是词的one-hot向量,y则是x对应词的上下文的one-hot向量。该神经网络的损失函数与逻辑回归相似,即网络输出与y的交叉熵(Cross-entropy),公式如下所示:
[0083]
[0084] 最后使用随机梯度下降法训练网络参数。
[0085] 步骤S2的目的在于生成训练语料的词向量矩阵,即词向量空间,以便于接下来的步骤S4生成问句向量。
[0086] 如图5所示,步骤S4的具体方法如下:
[0087] S401、对所述新问题语句进行分词处理和去停用词处理,获得如下问句词集合[0088] Wordques′=[wordques1′,wordques2′...wordques i′...wordquesn′]
[0089] 其中,wordques i′为新问题语句Ques′经分词和去停用词处理后得到得第i个词语。
[0090] 对新问题语句Ques′进行分词处理和去停用词处理的过程中,包括对新问题语句Ques′中自然语言的处理,特别的也包括对新问题语句Ques′中程序代码部分的处理。
[0091] S402、查询步骤S2训练所得的问题语句的词向量矩阵Vector,获取问句词集合Wordques′中wordques i′对应的词向量
[0092] 对于词向量矩阵Vector中未包含的词,置其为零向量。
[0093] S403、将所述新问题Ques′的词集合Wordques′中每个词wordques i′的词向量的 累 加均 值 作为 所述 新问 题Q u es ′的 句向 量 Vq ue s ′,即
[0094] 例如,用户提出一个新问题“冒泡排序算法的实现原理是什么”经分词和去停用词处理后得到一系列词语:“冒泡排序”,“算法”,“实现”,“原理”。将处理后所得词语对应到步骤S2所生成的词向量矩阵Vector中,将词向量累加取平均即得到问句向量
[0095] 步骤S4的目的在于获取用户提出的新问题语句,并生成用于余弦相似度比较的问句向量。
[0096] 针对步骤S5、S6,具体为:根据余弦相似度公式 计算所述新问题语句Ques′与所存储问题语句集Ques中每个问题语句qi的向量相似度si,其中vs1、vs2分别表示待比较问句相似度的两个问句s1、s2所对应的问句向量,由此可得所述新问题语句Ques′与所存储问题语句集Ques中每个问题语句qi的向量相似度集合Sim=[s1,s2…si...sn];
[0097] 根据所述问句向量相似度集合Sim=[s1,s2...si...sn]构建答案,选出所述新问题语句Ques′与所存储的问题语句集Ques中相似度最高的问句qi的答案ai进行回复,实现自动回答。
[0098] 例如,当用户在问答首页提出“第3题选择题”这个问题时,该系统将与该问题余弦相似度最大的“请问第3题选择题的C选项为什么是错的呢”这一问题返回给前端用户。
[0099] 在步骤S5中,通过公式 计算所述新问题语句Ques′与问题语句集Ques中的每个问句qi的向量相似度si,即若vs1=[a1,a2,...,ai,…,an],vs2=[b1,b2,...,bi,...,bn],则
[0100] vs1*vs2=a1*b1+a2*b2+…...+an*bn,
[0101]
[0102]
[0103] 其中,vs1*vs2表示问句向量vs1和vs2的数量内积,||vs1||表示问句向量vs1的大小,||vs2||表示问句向量vs2的大小,ai表示问句向量vs1的第i个词向量,bi表示问句向量vs2的第i个词向量,n表示问句向量vs1或vs2中对应的词向量的个数。
[0104] 本发明的优点在于:
[0105] (1)实现的自动化答疑系统可以记录用户的问答内容,并生成问答对,用以自动回复其他用户提出的重复问题;
[0106] (2)通过训练系统中已存在的历史答疑数据构成词向量矩阵,特别的,还包括了对程序代码的处理,使之生成对应词向量矩阵;
[0107] (3)根据所构成的词向量矩阵,将新问题语句转化为问句向量;
[0108] (4)再通过与所存储的问句向量进行相似度比较,构建最佳答案返回给用户,实现自动回答
[0109] (5)大大减轻教师在答疑环节中付出的重复劳动。
[0110] 以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈