CN110390049A - 一种面向软件开发问题的答案自动生成方法 - Google Patents
一种面向软件开发问题的答案自动生成方法 Download PDFInfo
- Publication number
- CN110390049A CN110390049A CN201910620492.7A CN201910620492A CN110390049A CN 110390049 A CN110390049 A CN 110390049A CN 201910620492 A CN201910620492 A CN 201910620492A CN 110390049 A CN110390049 A CN 110390049A
- Authority
- CN
- China
- Prior art keywords
- answer
- word
- input
- context
- text
- 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.)
- Granted
Links
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/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- 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/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种面向软件开发问题的答案自动生成方法,包括以下步骤:步骤1,对于一个开发者的问题,使用已有的Web搜索工具,从多个软件开发问答论坛网站搜索相关问答帖子;步骤2,对搜索到的帖子采用三种算法对不重要句子进行过滤,形成了输入问题的上下文,所述上下文指与提问问题相关的包含解决该问题相关知识的多条帖子在经过句子过滤后构成的文本集合;步骤3,将所述问题和所述上下文送入基于深度机器阅读理解的答案生成网络AnswerNet,所述答案生成网络理解所述上下文和所述问题的语义信息,并且从上下文里选择对回答问题最有用的文本块进行组合,最终生成该问题的答案。
Description
技术领域
本发明涉及一种自动生成方法,尤其涉及一种面向软件开发问题的答案自动生成方法。
背景技术
在软件开发的过程中,开发人员通常会遇到Bug调试、如何调用API等各类软件开发问题。为了解决这些问题,人们在互联网上已经建立了博客、在线问答论坛等软件开发社区。例如:Stack Overflow,CSDN等等。在这些社区平台上,任何一个开发者可以进行提问,其他能够回答这些问题的开发者都可以为该问题提供自己的答案,而提问者会标记能够解决问题的答案为被接受答案。
尽管这些社区为开发者提供了一种可以在线讨论问题和分享(获得)答案的平台,但是并无法保证问题可以及时得到回复。由于大量用户的参与和分享,这些开发社区蕴含着大量解决开发者问题的知识,但是这些知识碎片化严重,社区平台也缺乏对知识间的关联性的分析。因此,用户不得不阅读大量相关的帖子来获取所需要的知识,虽然目前有一些方法可以帮助用户获取所需问答信息,但是直接生成可用答案的方法尚不成熟。
为了帮助开发者高效地利用这些现存的知识,现有技术分为以下三类:
1)软件开发领域相关的信息检索优化技术。这类方法一般涉及到对程序API信息、软件开发相关问题和开发文档等的检索。在检索过程中,会对诸如API的文档等待检索对象进行分析,抽取相应的专业名词,API功能描述,API用法描述等等一系列的特征,然后对相应的检索问题,进行特征匹配,按照匹配度进行排序返回结果。
2)关键信息摘要抽取技术。这类方法一般采取诸如MMR等重要语句抽取技术,对检索结果,抽取每个段落的首句子等信息,对检索内容进行总结,旨在帮助开发者了解检索内容的主题和概要信息[4]。
3)基于语义分析的检索重排技术。这类方法一般采用语义分析方法,对检索内容进行语义分析,并对各条内容之间的关系进行建模,进而用以优化检索结果。在进行语义分析时,现阶段的方法主要采用深度学习相关技术对文本信息进行编码和特征抽取,然后采用编码结果和抽取到的特征对检索结果进行重排和过滤。
虽然现有技术可以在一定程度上帮助软件开发者更好地获取所需的知识,但是存在着一些较为显著地问题:
1)基于检索的方式无法考虑语义信息,缺乏对文本内容的深度理解。仅仅依据关键字/短语的匹配,只能找到浅层表达比较相似的文本信息,但是对开发者而言,“有用信息”不等于“相似信息”,因此存在着检索匹配结果与真实所需结果不一致的问题。
2)目前软件开发问答领域基于摘要抽取的技术同样也匮乏对语义的深度理解,而且“重要的信息”也不能等同于“有用信息”,存在着抽取的摘要与需求结果不一致的问题。
3)基于语义分析的技术,现阶段采用的语言模型过于陈旧,而且多是基于深度语义相似性进行检索优化,获取较为相似的文本信息。
总之,对于给定的问题,现有技术尚无直接生成有用答案的方法,现存技术大多都是围绕着信息的查找而设计,缺乏对已有信息进行理解整理并生成有用答案的方法。
发明内容
本发明提出的一种面向软件开发问题的答案自动生成方法,
附图说明
图1为本发明的整体流程图;
图2为基于深度机器阅读理解的答案生成网络。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提出的一种面向软件开发问题的答案自动生成方法,主要包括以下步骤,
步骤1,给定一个开发者的问题,首先使用已有的Web搜索工具(例如:GoogleCustom Search),从多个软件开发问答论坛网站搜索相关问答帖子。
步骤2,对搜索到的帖子进行过滤,采用Lexrank(一种基于page rank算法计算句子重要性得分的算法),KL greedy(一种基于信息熵度量句子重要度并贪心地加入相对信息熵最大句子的算法),以及LSA(一种基于隐含语义分析,将包含最重要主题的句子抽取出来的算法)三种算法对不重要句子进行过滤。这三种算法考虑句子重要度的三个方面,可以将很多对包含噪声的句子滤掉。经过句子过滤的帖子最终形成了输入问题的上下文,用于后续处理。上下文指与提问问题相关的包含解决该问题相关知识的多条帖子,在经过句子过滤后,构成的文本集合。针对对文本集合里的文本,将其中数学表达式替换为[NUM],将其中的代码替换为[CODE],从而实现对数学表达式和代码语义的模糊表示,在目前业界研究尚缺乏数学理解和代码理解能力的前提下最大可能的保留文本信息。
步骤3,将问题和上下文送入一个基于深度机器阅读理解的答案生成网络AnswerNet。该网络可以理解上下文和问题的语义信息,并且从上下文里选择对回答问题最有用的文本块进行组合,最终生成该问题的答案。
如图2所示为基于深度机器阅读理解的答案生成网络AnswerNet,是进行语义深度理解和答案生成的核心部分,包含4个主要部分:输入表示,BERT编码器,transformer解码器,以及CopyNet。所述BERT编码器也可使用GPT-2,XLNet等替代。
输入表示分别对输入文本从单词位置、单词内容和文本类型三个方面进行编码表示,每个单词的输入被描述为一个向量,送入BERT编码器。BERT编码器是对输入文本的语义进行深度解析,最终每个单词被编码为一个融合了整段文本上下文信息的向量并且被送入transformer解码器。Transformer解码器计算编码器和解码器的注意力,本方法中解码器输入包含了已经生成的答案的前t-1个单词和BERT编码器的输出。因为此方法旨在抽取相关帖子里的有用信息来生成答案,所以为了能够直接从输入中复制有用文本块,基于之前的研究设计了CopyNet,CopyNet使用解码器的注意力向量作为输入,经过全连接层提取特征后采用softmax进行答案中第t个单词的概率分布预测,从输入的文本进行单词复制,所述t为正整数。
输入表示中的Position Embedding可以将一个单词的位置索引映射为表示位置的向量。Token Embedding将一个单词映射为表示其单词浅层语义的向量。SegmentEmbedding将文本的类型(本模型中问题为类型0,上下文为类型1)映射到表示类型信息的向量。最终对每个单词的三种表示结果向量进行加和,作为此部分的输出。
BERT编码器在海量文本上进行无监督学习训练所得的权重,进行文本语义描述,每个输入的向量通过BERT编码器的自注意力机制可以捕获到该输入上下文的信息,最终每个输入的单词都可以用来描述该单词在该段文本里的语境语义。本方法使用BERT编码器将问题和上下文的语境语义编码为对应的向量(图2中黄色对应问题,浅绿色对应上下文)。
Transformer解码器的输入为之前的t-1个已生成的单词。Transformer解码器除了具有BERT编码器的基本功能外,还具有计算Transformer解码器和BERT编码器语义向量注意力的功能。因此Transformer解码器可以将已生成的答案中的t-1个单词进行语义深度编码,然后采用Transformer解码器注意力机制计算当前已经生成的包含t-1个单词的答案语境信息与输入BERT解码器的上下文语境信息之间的注意力向量,从而使用此注意力向量表示输入上下文里每个单词可以作为下一个(第t个)需要生成的答案单词的注意力特征。
CopyNet对注意力向量使用全连接网络进行特征抽取,并使用softmax层来计算下一个答案单词(At)在输入上下文的分布概率(或者输出结束标志),选择分布概率最大的单词作为第t个答案单词。CopyNet通过这种方法进行答案逐步复制生成答案中的单词,在t到达最大答案长度或者softmax层输出为结束标志即可停止预测,输出最终答案。
为了训练AnswerNet,我们使用具有答案的问答帖子构造训练数据:该帖子的问题作为输入问题,该帖子的被接受答案作为标准答案,同时用Web搜索工具(例如:GoogleCustom Search)检索到的相关帖子(建议3个)做句子过滤预处理后的文本作为上下文。使用这种“问题-上下文-答案”作为模型的输入,采用强化学习进行模型训练,并采用Adam优化器来更新模型参数。
为了训练AnswerNet,本发明使用具有答案的问答帖子构造训练数据:该帖子的问题作为输入问题,该帖子的被接受答案作为标准答案,同时用Web搜索工具(例如:GoogleCustom Search)检索到的相关帖子(建议3个)做句子过滤预处理后的文本作为上下文。使用这种“问题-上下文-答案”作为模型的输入,采用强化学习进行模型训练,并采用Adam优化器来更新模型参数。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种面向软件开发问题的答案自动生成方法,其特征在于,包括以下步骤,步骤1,对于一个开发者的问题,使用已有的Web搜索工具,从多个软件开发问答论坛网站搜索相关问答帖子;
步骤2,对搜索到的帖子采用三种算法对不重要句子进行过滤,形成了输入问题的上下文,所述上下文指与提问问题相关的包含解决该问题相关知识的多条帖子在经过句子过滤后构成的文本集合;
步骤3,将所述问题和所述上下文送入基于深度机器阅读理解的答案生成网络AnswerNet,所述答案生成网络理解所述上下文和所述问题的语义信息,并且从上下文里选择对回答问题最有用的文本块进行组合,最终生成该问题的答案。
2.如权利要求1所述的方法,其特征在于,所述基于深度机器阅读理解的答案生成网络包括4个主要部分:输入表示,BERT编码器,transformer解码器,CopyNet。
3.如权利要求2所述的方法,其特征在于,所述输入表示对输入文本从单词位置、单词内容和文本类型三个方面进行编码表示,每个单词的输入被描述为一个向量,送入BERT编码器;所述BERT编码器对输入文本的语义进行深度编码,每个单词被编码为一个融合了整段文本上下文信息的向量后送入transformer解码器;所述Transformer解码器计算BERT编码器和所述Transformer解码器之间的注意力,所述Transformer解码器的输入包含了已经生成的答案的前t-1个单词和BERT编码器的输出;所述CopyNet使用解码器的注意力向量作为输入,经过全连接层提取特征后采用softmax进行答案中第t个单词的概率分布预测,从输入的文本进行单词复制;所述基于深度机器阅读理解的答案生成网络中,在生成第一个单词时,所述Transformer解码器的输入为一个特殊的标记符号,表示开始进行答案生成,然后逐个生成答案中的下一个单词。
4.如权利要求3所述的方法,其特征在于,所述输入表示包括三个部分PositionEmbedding,Token Embedding,Segment Embedding,其中Position Embedding可以将一个单词的位置索引映射为表示位置的向量,Token Embedding将一个单词映射为表示其单词浅层语义的向量,Segment Embedding将文本的类型映射到表示类型信息的向量,所述三种表示结果向量进行加和,作为所述输入表示的输出。
5.如权利要求4所述的方法,其特征在于,在生成答案中的第t个单词时,Transformer解码器的输入为之前的t-1个已生成的单词,Transformer解码器将已生成的答案中的t-1个单词进行语义深度编码,然后计算当前已经生成的包含t-1个单词的答案语境信息与输入BERT解码器的上下文语境信息之间的注意力向量,从而使用此注意力向量表示输入上下文里每个单词可以作为下一个需要生成的答案单词的注意力特征。
6.如权利要求5所述的方法,其特征在于,所述CopyNet使用softmax层来计算下一个答案单词在输入上下文的分布概率或者输出结束标志,选择分布概率最大的单词作为答案单词并计数,当答案单词的个数到达最大答案长度或者softmax层输出为结束标志即可停止预测,输出最终答案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910620492.7A CN110390049B (zh) | 2019-07-10 | 2019-07-10 | 一种面向软件开发问题的答案自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910620492.7A CN110390049B (zh) | 2019-07-10 | 2019-07-10 | 一种面向软件开发问题的答案自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110390049A true CN110390049A (zh) | 2019-10-29 |
CN110390049B CN110390049B (zh) | 2022-01-28 |
Family
ID=68286444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910620492.7A Active CN110390049B (zh) | 2019-07-10 | 2019-07-10 | 一种面向软件开发问题的答案自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110390049B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955768A (zh) * | 2019-12-06 | 2020-04-03 | 上海交通大学 | 一种基于句法分析的问答系统答案生成方法 |
CN111274776A (zh) * | 2020-01-21 | 2020-06-12 | 中国搜索信息科技股份有限公司 | 一种基于关键词的文章生成方法 |
CN111312356A (zh) * | 2020-01-17 | 2020-06-19 | 四川大学 | 一种基于bert和融入功效信息的中药处方生成方法 |
CN113076127A (zh) * | 2021-04-25 | 2021-07-06 | 南京大学 | 编程环境下问答内容的提取方法、系统、电子设备及介质 |
CN113988012A (zh) * | 2021-10-25 | 2022-01-28 | 天津大学 | 融合社交上下文与多粒度关系的无监督社交媒体摘要方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1628298A (zh) * | 2002-05-28 | 2005-06-15 | 弗拉迪米尔·叶夫根尼耶维奇·涅博利辛 | 综合从搜索系统中使用的文档中抽取知识的自学习系统的方法 |
CN105068661A (zh) * | 2015-09-07 | 2015-11-18 | 百度在线网络技术(北京)有限公司 | 基于人工智能的人机交互方法和系统 |
US9235627B1 (en) * | 2006-11-02 | 2016-01-12 | Google Inc. | Modifying search result ranking based on implicit user feedback |
CN108345640A (zh) * | 2018-01-12 | 2018-07-31 | 上海大学 | 一种基于神经网络语义分析的问答语料库构建方法 |
CN109241258A (zh) * | 2018-08-23 | 2019-01-18 | 江苏索迩软件技术有限公司 | 一种应用税务领域的深度学习智能问答系统 |
US20190138660A1 (en) * | 2017-11-03 | 2019-05-09 | Salesforce.Com, Inc. | Omni-platform question answering system |
CN109948143A (zh) * | 2019-01-25 | 2019-06-28 | 网经科技(苏州)有限公司 | 社区问答系统的答案抽取方法 |
-
2019
- 2019-07-10 CN CN201910620492.7A patent/CN110390049B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1628298A (zh) * | 2002-05-28 | 2005-06-15 | 弗拉迪米尔·叶夫根尼耶维奇·涅博利辛 | 综合从搜索系统中使用的文档中抽取知识的自学习系统的方法 |
US9235627B1 (en) * | 2006-11-02 | 2016-01-12 | Google Inc. | Modifying search result ranking based on implicit user feedback |
CN105068661A (zh) * | 2015-09-07 | 2015-11-18 | 百度在线网络技术(北京)有限公司 | 基于人工智能的人机交互方法和系统 |
US20190138660A1 (en) * | 2017-11-03 | 2019-05-09 | Salesforce.Com, Inc. | Omni-platform question answering system |
CN108345640A (zh) * | 2018-01-12 | 2018-07-31 | 上海大学 | 一种基于神经网络语义分析的问答语料库构建方法 |
CN109241258A (zh) * | 2018-08-23 | 2019-01-18 | 江苏索迩软件技术有限公司 | 一种应用税务领域的深度学习智能问答系统 |
CN109948143A (zh) * | 2019-01-25 | 2019-06-28 | 网经科技(苏州)有限公司 | 社区问答系统的答案抽取方法 |
Non-Patent Citations (4)
Title |
---|
GUOKAI YAN ET AL.: "Mobile medical question and answer system with auto domain lexicon extraction and question auto annotation", 《2018 33RD YOUTH ACADEMIC ANNUAL CONFERENCE OF CHINESE ASSOCIATION OF AUTOMATION (YAC)》 * |
XIANGRU TANG ET AL.: "Knowledge-based Questions Generation with Seq2Seq Learning", 《2018 IEEE INTERNATIONAL CONFERENCE ON PROGRESS IN INFORMATICS AND COMPUTING (PIC)》 * |
安炜杰: "融合知识表示的自动问答系统关键技术研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
王一蕾等: "基于深度神经网络的图像碎片化信息问答算法", 《计算机研究与发展》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955768A (zh) * | 2019-12-06 | 2020-04-03 | 上海交通大学 | 一种基于句法分析的问答系统答案生成方法 |
CN110955768B (zh) * | 2019-12-06 | 2024-03-15 | 上海交通大学 | 一种基于句法分析的问答系统答案生成方法 |
CN111312356A (zh) * | 2020-01-17 | 2020-06-19 | 四川大学 | 一种基于bert和融入功效信息的中药处方生成方法 |
CN111312356B (zh) * | 2020-01-17 | 2022-07-01 | 四川大学 | 一种基于bert和融入功效信息的中药处方生成方法 |
CN111274776A (zh) * | 2020-01-21 | 2020-06-12 | 中国搜索信息科技股份有限公司 | 一种基于关键词的文章生成方法 |
CN111274776B (zh) * | 2020-01-21 | 2020-12-15 | 中国搜索信息科技股份有限公司 | 一种基于关键词的文章生成方法 |
CN113076127A (zh) * | 2021-04-25 | 2021-07-06 | 南京大学 | 编程环境下问答内容的提取方法、系统、电子设备及介质 |
CN113076127B (zh) * | 2021-04-25 | 2023-08-29 | 南京大学 | 编程环境下问答内容的提取方法、系统、电子设备及介质 |
CN113988012A (zh) * | 2021-10-25 | 2022-01-28 | 天津大学 | 融合社交上下文与多粒度关系的无监督社交媒体摘要方法 |
CN113988012B (zh) * | 2021-10-25 | 2024-05-21 | 天津大学 | 融合社交上下文与多粒度关系的无监督社交媒体摘要方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110390049B (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110390049A (zh) | 一种面向软件开发问题的答案自动生成方法 | |
CN108073677A (zh) | 一种基于人工智能的多级文本多标签分类方法及系统 | |
CN109493166A (zh) | 一种针对电子商务导购场景任务型对话系统的构建方法 | |
CN110162749A (zh) | 信息提取方法、装置、计算机设备及计算机可读存储介质 | |
CN111858932A (zh) | 基于Transformer的多重特征中英文情感分类方法及系统 | |
CN110097085A (zh) | 歌词文本生成方法、训练方法、装置、服务器及存储介质 | |
CN110032635A (zh) | 一种基于深度特征融合神经网络的问题对匹配方法和装置 | |
CN111709244B (zh) | 一种用于矛盾纠纷事件因果关系识别的深度学习方法 | |
CN101751385B (zh) | 一种采用层次管道过滤器体系结构的多语言信息抽取方法 | |
CN111831802A (zh) | 一种基于lda主题模型的城市领域知识检测系统及方法 | |
CN112000771B (zh) | 一种面向司法公开服务的句子对智能语义匹配方法和装置 | |
CN112199606B (zh) | 一种基于层次用户表示的面向社交媒体的谣言检测系统 | |
CN115858758A (zh) | 一种多非结构化数据识别的智慧客服知识图谱系统 | |
CN112905738B (zh) | 一种基于时态知识图谱推理的社交关系演变预测方法 | |
CN113127624A (zh) | 问答模型的训练方法及装置 | |
CN116796045B (zh) | 一种多维度图书分级方法、系统及可读介质 | |
CN116719520B (zh) | 代码生成方法及装置 | |
CN107679225A (zh) | 一种基于关键词的回复生成方法 | |
CN108763211A (zh) | 融合蕴含知识的自动文摘方法及系统 | |
CN113254652A (zh) | 一种基于超图注意力网络的社交媒体贴文真实性检测方法 | |
CN114742071A (zh) | 基于图神经网络的汉越跨语言观点对象识别分析方法 | |
CN113486174B (zh) | 模型训练、阅读理解方法、装置、电子设备及存储介质 | |
CN113705242B (zh) | 面向教育咨询服务的智能语义匹配方法和装置 | |
CN110175332A (zh) | 一种基于人工神经网络的智能出题方法及系统 | |
CN113821587A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |