CN117407511B - 一种基于Bert模型的电力安全规程智能问答方法及系统 - Google Patents
一种基于Bert模型的电力安全规程智能问答方法及系统 Download PDFInfo
- Publication number
- CN117407511B CN117407511B CN202311467507.3A CN202311467507A CN117407511B CN 117407511 B CN117407511 B CN 117407511B CN 202311467507 A CN202311467507 A CN 202311467507A CN 117407511 B CN117407511 B CN 117407511B
- Authority
- CN
- China
- Prior art keywords
- answer
- questions
- question
- bert model
- power safety
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012549 training Methods 0.000 claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims abstract description 14
- 230000011218 segmentation Effects 0.000 claims abstract description 7
- 238000001914 filtration Methods 0.000 claims description 15
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 7
- 230000001105 regulatory effect Effects 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 description 11
- 238000003058 natural language processing Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000000605 extraction Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002427 diffuse reflectance circular dichroism spectroscopy Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
-
- 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/3332—Query translation
- G06F16/3334—Selection or weighting of terms from queries, including natural language queries
-
- 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/3346—Query execution using probabilistic model
-
- 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/338—Presentation of query results
-
- 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/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/08—Learning methods
- G06N3/0985—Hyperparameter optimisation; Meta-learning; Learning-to-learn
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Human Computer Interaction (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明公开了一种基于Bert模型的电力安全规程智能问答方法及系统,方法包括:配置FAQ模块的问答对,针对用户输入的问题,匹配用户输入的问题与预设的问答对中的问题,若匹配,则返回匹配到的问题对应的答案,若不匹配,则进行下一步;对电力安全规程文档进行文本分段,并加入中文维基百科的文本数据,生成索引文件;采用Anserini模块基于输出的索引文件建立索引,并进行段落抽取,生成段落评分;采用预训练的Bert模型,并使用专业数据集进行训练;本发明旨在提供一种基于Bert模型的电力安全规程智能问答方法及系统,有效地改进了计算时间过长的问题,减少计算负担,保证计算精度基本不变,具有显著工程实用价值和广泛应用前景。
Description
技术领域
本发明涉及自然语言处理技术领域,尤其涉及一种基于Bert模型的电力安全规程智能问答方法及系统。
背景技术
智能问答系统是综合运用了自然语言处理、信息检索、语义分析和人工智能等技术的一种新型的信息服务系统。目前,电力行业正在试图将自然语言处理技术运用到电网相关的服务工作当中,通过技术的力量,加速电力行业电网的智能化发展。目前,在市场里能够提供较为全面的智能电网解决方案的供应商还十分有限,但是大多数企业都已经开始在某个或多个细分领域逐步展开智能化的战略部署。
目前电力行业还没有基于自然语言处理技术的智能对话关键技术的相关研究,在将机器学习和机器阅读理解等智能对话技术用在电力安全规程知识的机器学习、解读、问答,暂时没有相关案例和典型企业案例。
自然语言处理技术在电网领域当中的应用依然是一个正在探索和尝试的课题。真正在实际场景中落地的项目非常有限,相关进展主要来着科研高校以及科技公司的科研探索项目当中。项目当中的数据多为实验数据,缺乏一定的客观性和真实性。从目前的发展现状来看,电网行业中数据的获取和整理将会是一个较大的挑战。
目前市面上还没有一个很好的针对电网领域的自然语言处理技术模型。电网领域的内容具有一定的专业性,且需要进行大量有效的人工标注才能训练出一个有效的模型。另外,电网公司是比较传统的能源类企业,其工作方式以及工作系统已经形成体系,相对于其他行业来说,电网业务智能化的替换成本更大,且门槛更高。短期之内,自然语言处理技术在电网行业中的应用多数还是以协助人类工作为目的,这就需要工作人员接受并掌握新的工作形式和模式。
在面向电力专业领域构建智能问答时,面临着精准匹配率低、回答质量差以及难以进行工程化应用等问题。这些问题的出现主要源于以下几个方面:
(1)文档格式差异:电力专业领域的知识体系和术语使用与公共数据集存在显著差异。这些领域通常采用行业技术规范、管理规程和制度等特定格式的文档进行描述,这需要智能问答系统具有更高的阅读理解和理解能力。然而,这些文档往往具有特殊的行文格式,例如大量的分级标题。容易将标题作为正文内容输出为问题的答案,从而造成答案不准确。
(2)模型专业知识不足:Bert或GPT等语言模型通常是从互联网上收集的大量通用语料进行预训练的。然而,电力等行业的专业文档在互联网上的数据量相对较少,这就导致了模型在处理这类问题时的知识储备不足,从而影响了答案的质量。
(3)场景需求不同:传统智能问答系统无需关注答案在原始文档的出处,而专业领域的问答系统则需要提供答案的具体出处信息。在电力等专业领域,提问者除了会关注答案,也会要求知道答案出自哪个具体文档的哪个具体章节信息。如果无法提供这样的信息,他们可能会对答案的正确性产生质疑。因此,专业领域的问答系统需要同时解决答案生成和答案出处检索两个问题,而传统的问答系统只能解决前者,这进一步降低了其在特定领域应用的实用性。
发明内容
本发明的目的在于提出一种基于Bert模型的电力安全规程智能问答方法及系统,有效地改进了计算时间过长的问题,不须获取复杂系统高阶动态的全局数据,可根据需求提取少量模态数据做相关分析,减少计算负担,同时保证计算精度基本不变,尤其适用于含多时间尺度高阶动态复杂综合能源系统的动态分析,具有显著工程实用价值和广泛应用前景。
为达此目的,本发明采用以下技术方案:一种基于Bert模型的电力安全规程智能问答方法,包括以下步骤:
步骤S1:配置FAQ模块的问答对,问答对用于过滤高频问题,针对用户输入的问题,使用FAQ模块匹配用户输入的问题与预设的问答对中的问题,若匹配,则返回匹配到的问题对应的答案,若无返回结果或匹配分值低于阈值,则进行步骤S2;
步骤S2:使用预处理方式对电力安全规程文档进行文本分段,并加入中文维基百科的文本数据,生成索引文件;
步骤S3:采用Anserini模块基于输出的索引文件建立索引,并进行段落抽取,生成段落评分;
步骤S4:采用预训练的Bert模型,并使用CMRC2018数据以及电力安全规程考试题目作为专业数据集进行训练;
步骤S5:根据规章类文档的结构和特性,对训练的Bert模型的算法中的参数进行调优;
步骤S6:使用Bert模型在Anserini模块中抽取候选答案并给出阅读理解评分,候选答案为抽取的N个段落中抽取问题的准确答案;
步骤S7:对候选答案进行综合加权评分并进行得分排序,最后输出得分最高的答案,并给出答案出处的原始文档名称及具体章节信息。
优选的,所述步骤S1包括以下子步骤:
子步骤S11:建立预设问题库:预设问题库包含多个问题以及回答对;
子步骤S12:FAQ模块使用开源的分布式搜索和分析引擎,对用户输入的问题和预设问题库中的问题进行匹配,并采用BM25文本相似度算法计算两者的相似度,具体公式如下:
其中:D表示一个文档;Q表示查询语句;qi表示词项;f(qi,D)为qi在D中的出现频率;|D|为文档D的长度;avgdl为所有文档的平均长度;k1、b为调节因子;IDF(qi)为qi在全部预设问题中的逆向文本频率指数;N为索引中的文档总数,n(qi)为包含qi的数量;
子步骤S13:在使用时,当分析引擎返回的BM25算法的分数高于预设的阈值时,则直接返回匹配到的问题的预设答案;当返回分数低于阈值时,则不返回答案,进行步骤S2。
优选的,所述步骤S2包括以下子步骤:
子步骤S21:将电力安全规程文档转换为txt格式的纯文本;
子步骤S22:去除与内容无关的信息;
子步骤S23:使用正则表达式,将文本中的标题编号提取出来,将标题编号与文本相互对应;
子步骤S24:过滤掉不适用于机器阅读理解的段落;
子步骤S25:采用Anserini模块,将文本标题编号与其对应的正文进行分词,并建立索引。
优选的,所述步骤S3包括以下子步骤:
子步骤S31:根据用户输入的问题,Anserini模块首先对预处理后的文档进行段落抽取,再过滤掉和用户问题无关的段落,并返回最有可能包含答案的段落;
子步骤S32:通过对用户输入的问题和索引中的段落进行匹配,Anserini模块抽取出和问题相关度最高的N个段落,并根据BM25计算结果对最有可能包含答案的段落进行评分并记录。
优选的,Bert模型采用哈工大讯飞联合实验室发布的中文预训练模型,使用CMRC2018对模型进行第一次训练,再使用待处理的电力安全规程考试题目作为专业数据集对模型进行第二次训练。
优选的,参数包括:
段落阈值:paragraph_threshold,用于过滤评分低的段落;
答案阈值:phrase_threshold,用于过滤评分低的答案;
移除段落标题:remove_title,结果为y或n,y表示结果为True,n表示结果为False,用于过滤段落标题;
最大回答长度:max_answer_length,用于确定允许抽取答案的最大长度;
评分权重:μ,用于计算对应的答案的最终分值。
优选的,使用Bert模型预测的每个答案的起始位置与结束位置的加和,作为Bert模型的阅读理解模块生成的答案的分数,公式表示为:
Sbert=max(start logit)+max(end logit);
其中,max(start logit)为答案起始位置的概率分数最高值;max(end logit)为答案结束位置的概率分数最高值。
优选的,对候选答案进行综合加权评分并进行得分排序,最后输出得分最高的答案,并根据索引文件,给出答案出处原始文档名称及具体章节信息,计算答案的综合加权分数公式为:
S=(1-μ)·Sanserini+μ·Sbert;
其中,Sanserini表示Anserini模块抽取器返回的BM25分数,Sbert表示Bert模型返回的答案分数,μ表示用于定义Sanserini和Sbert之间权重的超参数。
一种基于Bert模型的电力安全规程智能问答系统,采用上述的基于Bert模型的电力安全规程智能问答方法。
本发明的一个技术方案的有益效果:将规章制度类长文档按章节分段,并保留每一段落的原始文档名称和其章节编号信息。在建立索引文件时,还加入了中文维基百科的文本数据,解决了某些词语在规章制度类出现频率过高导致Anserini对段落进行检索计算不准确的问题;能够精确地将文本按照其本身的行文结构分为不同的段落,提升后续阅读理解模块的计算效果,并依此技术实现对阅读器返回的答案在原文中的精准原始文档名称及章节定位。
本发明方法实现对电力专业领域知识更广泛和更准确的理解和抽取,提升了提高问答系统的准确性和效率,本发明的方法已设计并实现了问答系统工程化应用,实现了较高的问题精确匹配率,提高了问答响应速度;具有适用性强,可适用于各种电力安全规程的智能问答系统,具有显著工程实用价值和广泛应用前景。
本发明方法能够精确的将规章制度类文本按其本身的行文结构分为不同的段落,支持输出答案在规章制度文档的章节和位置出处,在对例如电力专业领域的规章制度进行理解和问答时,可以有效的避免将标题输出为答案,能够准确给出答案的原始文档索引信息,从而显著提高了问答系统的回答质量。
(1)通过适合规章制度问答场景的数据集进行训练,并进行算法参数调优,使得智能对话系统具备了对专业领域问题进行精准答案生成的能力,无需人工整理问答对、无需开展知识库工程和建立人工模板,大量减少了人工成本。
(2)通过支持规章制度类文本的多文本长文档预处理方法,能够实现对于30+个规章制度文档、30M+字节长度的文档内容的智能问答,并可以返回答案所在的文档名称及章节页码信息,平均问题回答响应时间在400ms以内,完全满足工程化应用需要。
(3)显著提高了对专业领域规章制度文档内容进行智能问答的精准匹配率,实验数据表明,相比现有Bertserini算法,问答精准匹配率提升了69.5%。
本发明可广泛应用在多领域的规章制度文档的智能问答系统的研究及构建中,真正让智能问答系统走向专业领域的应用,为其他领域的智能问答系统的构建提供了有益的参考和借鉴价值,并可进一步结合大语言模型的算法迭代及技术进步,持续优化提升问答效果。
附图说明
图1是本发明一个实施例智能问答方法的流程示意图;
图2是本发明一个实施例预训练模型在阅读理解任务上的训练流程示意图;
图3是本发明一个实施例实际系统操作流程示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
下面详细描述本发明的实施例。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
参阅图1至图3所示,一种基于Bert模型的电力安全规程智能问答方法,包括以下步骤:
步骤S1:配置FAQ模块的问答对,问答对用于过滤高频问题,针对用户输入的问题,使用FAQ模块匹配用户输入的问题与预设的问答对中的问题,若匹配,则返回匹配到的问题对应的答案,若无返回结果或匹配分值低于阈值,则进行步骤S2;
FAQ(Frequently Asked Questions)是一个常见问题和对应答案的集合,旨在帮助用户快速找到问题的解答。其关键在于构建一个丰富且准确的预设问题库,该问题库由问题和对应的答案组成,全部由人工对目标文档进行整理而来。FAQ系统能够根据用户提出的问题,匹配出与用户问题最相似的问题,并依据该问题对应的答案回答用户的问题。本文使用了已有的规章制度培训考试题目,构成了前置FAQ模块所需的问答对,来拦截部分高频问题。通过这种方式,构建了低成本的FAQ模块,提升了高频问题的回答效率,也同时提高了智能问答系统的问答精准匹配率。
步骤S2:使用预处理方式对电力安全规程文档进行文本分段,并加入中文维基百科的文本数据,生成索引文件;
步骤S3:采用Anserini模块基于输出的索引文件建立索引,并进行段落抽取,生成段落评分;
Anserini模块是一个开源的信息检索工具包,支持各种基于文本的信息检索研究和应用。它的目标是提供一个易于使用的高性能的工具,支持在大规模文本数据集上进行全文搜索、近似搜索、排序和评估等任务,可以将文本数据集,如网页、新闻文章、论文等,转换为可搜索的索引文件,以便快速检索和查询。Anserini内置了多种常用的文本检索算法,包括BM25算法。通过Anserini,可以轻松地构建基于BM25的文本检索系统,并对大规模的文本集合进行高效的搜索和排序。
步骤S4:采用预训练的Bert模型,并使用CMRC2018数据以及电力安全规程考试题目作为专业数据集进行训练;
Bert模型是Google在2018年提出的一种预训练语言模型,是近年NLP领域具有突破性及代表性的技术之一。
CMRC2018为Chinese Machine Reading Comprehension 2018,中文开放领域问答数据集。
步骤S5:根据规章类文档的结构和特性,对训练的Bert模型的算法中的重要的参数进行调优,重要的参数包括段落阈值、答案阈值、移除段落标题、最大回答长度以及评分权重;算法在Bert阅读理解模块执行阅读理解任务时,能够确定生成候选答案的合理阈值、答案生成不考虑段落标题以及最优的综合评分权重等构成高质量问答的具体细节。
步骤S6:使用Bert模型在Anserini模块中抽取候选答案并给出阅读理解评分,候选答案为抽取的N个段落中抽取问题的准确答案;
步骤S7:对候选答案进行综合加权评分并进行得分排序,最后输出得分最高的答案,并给出答案出处的原始文档名称及具体章节信息。
在本发明的基于Bert模型的电力安全规程智能问答方法中,主要包括:问题预处理:使用FAQ模块前置拦截高频问题,实现对问题的预处理。段落抽取则使用Anserini模块快速从多文档长文本中抽取和用户问题高相关性的段落;文档预处理:由于电力规章制度文档具有关键词重合度高的特点,本文提出了一种支持规章制度类文本的多文本长文档预处理方法,能够准确将规章制度文本分段,并支持对答案章节出处的检索及回溯。通过改进索引文件生成方法,实现精确地对规章制度文本进行分段,并支持给出答案在原始文档中的具体章节信息的检索和回溯;最后使用Anserini模块从多文档长文本中抽取和用户问题存在高相关性的若干段落。
答案生成出处检索,对Bert模型进行训练,并进行关键参数调优;再根据所输入的问题,从Anserini模块抽取出的和问题相似度最高的N个段落中,由Bert模型抽取出若干个对问题的候选答案;最后对候选答案进行加权评分,输出评分最高的答案,并同时给出答案在原始文档中的章节和页码信息。
本发明提出的Bertserini算法,算法主要由Anserini模块和Bert阅读器两个模块组成,其中Anserini模块负责选择包含答案的文本段落,然后将其传递给Bert阅读器以确定答案范围。Bertserini架构采用Anserini信息抽取算法,同时使用了Bert预训练模型,结合了传统算法运行速度快和端对端算法匹配结果精准的特点,实现了Anserini模块和Bert阅读器对于答案的统一计算,可以支持在多个文档中抽取某个问题的答案。
本发明提出的Bertserini算法优势主要有3点:
(1)通过电力专业领域语料的优化训练及大语言模型参数调优,使得Bert阅读器在无需人工整理专业问答对、无需开展知识库工程和建立人工模板的前提下,实现对电力专业领域文档所包含知识和信息的更全面和更准确的阅读理解和答案抽取生成,这一改进显著提升了问答方法的准确性和效率。
(2)采用了支持规章制度类文本的多文本长文档预处理技术,该方法能够精确地将规章制度类文本按其本身的行文结构分为不同的段落,并支持输出答案在规章制度文档的章节和位置出处。这一预处理技术的成效体现在以下三个方面:首先,精确分段让可能包括问题的段落被更加准确地抽取,从而提高了答案生成的准确性;其次,解决了现有的Bert模型会将规章制度文档标题输出为答案的问题;最后,能够准确给出答案的原始文档出处索引信息;显著提高了问答系统的回答质量和用户体验。
(3)已经构建了问答系统工程化应用,实现了较高的问题精确匹配率和较高的问答响应速度。
优选的,所述步骤S1包括以下子步骤:
子步骤S11:建立预设问题库:预设问题库包含多个问题以及回答对,多个问题以及回答对通过人工对目标文档进行整理获得,FAQ模块可以根据用户问题匹配出问题库中和用户问题最相似的问题,并依据该问题对应的答案回答用户问题;
子步骤S12:FAQ模块使用开源的分布式搜索和分析引擎ElasticSearch,对用户输入的问题和预设问题库中的问题进行匹配,并采用BM25文本相似度算法(Best Match 25)计算两者的相似度,算法通过计算用户问题和预设问题库中文本的词语的重合关系计算相似度,具体公式如下:
其中:D表示一个文档;Q表示查询语句;qi表示词项;f(qi,D)为qi在D中的出现频率;|D|为文档D的长度;avgdl为所有文档的平均长度,当文档越长时,包含qi的机会越大,因此,同等f(qi,D)的情况下,长文档与qi的相关性比短文档与qi的相关性弱;k1、b为调节因子,通常根据经验设置,Anserini模块中BM25算法中使用的参数k1取值范围为0-3,b取值范围为0-1,具体取值为在各自的取值范围中,从0.1开始,以0.05为步长,逐个尝试在取值范围内的所有的可能的k1、b的组合,并且根据Bert阅读理解模块的精确度挑选出最佳的k1,b的取值;IDF(qi)为qi在全部预设问题中的逆向文本频率指数;N为索引中的文档总数,n(qi)为包含qi的数量;
BM25(Best Match 25)算法最初由Stephen RoBertson等人于1994年提出并应用到信息检索领域,用来计算文档与查询之间相关性评分。主要逻辑是:首先对查询语句进行分词处理以生成词项;接着,针对每个搜索结果,计算每个语素与搜索结果的相关性得分;最后,通过对词项与搜索结果的相关性得分进行加权求和,得出检索语句与搜索结果文档之间的相关性得分。
子步骤S13:在使用时,当分析引擎ElasticSearch返回的BM25算法的分数高于预设的阈值(0.99)时,则直接返回匹配到的问题的预设答案;当返回分数低于阈值时,则不返回答案,进行步骤S2。
具体地,所述步骤S2包括以下子步骤:
子步骤S21:将pdf或docx格式的电力安全规程文档转换为txt格式的纯文本;
子步骤S22:去除与内容无关的信息,例如:页眉页脚、页码等;
子步骤S23:使用正则表达式,将文本中的标题编号提取出来,将标题编号与文本相互对应;
子步骤S24:使用规则过滤掉文本中的表格、图片等不适用于机器阅读理解的段落;
子步骤S25:采用Anserini模块,将文本标题编号与其对应的正文进行分词,并建立索引。
通过子步骤S21至子步骤S25的操作,通过预处理技术将pdf格式的长文档按章节分段,并且保留每一个章节的位置。Anserini模块使用了BM25算法,负责对文档中的段落进行抽取,同时,提供了python语言的接口Pyserini,方便与预训练模型的对接。在建立索引时,除了电力规章制度文档外,还加入了中文维基百科的文本数据,用于平衡电力规章制度文档对某些词语的频率的影响。由于同类的规章制度文档具有关键词重合度高的特点,如果直接使用Anserini对文档中的段落进行检索计算时,会容易导致某些出现频率过高的词语计算权重值过高的问题。因此,在建立索引文件时,除了规章制度之外,还加入了中文维基百科的文本数据,以平衡某些词语出现频率过高的影响。同时提出支持规章制度类文本的多文本长文档预处理算法,能够精确地将规章制度文本分段,并保留段落所属章节位置信息,并生成索引文件。
具体地,所述步骤S3包括以下子步骤:
子步骤S31:根据用户输入的问题,Anserini模块首先对预处理后的文档进行段落抽取,再过滤掉和用户问题无关的段落,并返回最有可能包含答案的段落;
子步骤S32:通过对用户输入的问题和索引中的段落进行匹配,Anserini模块抽取出和问题相关度最高的N个段落,并根据BM25计算结果对最有可能包含答案的段落进行评分并记录为Sanserini。
优选的,Bert模型采用哈工大讯飞联合实验室发布的中文预训练模型,使用CMRC2018对模型进行第一次训练,再使用待处理的电力安全规程考试题目作为专业数据集对模型进行第二次训练。
本发明使用中文Bert base预训练模型,具体预训练模型为chinese-Bert-wwm-ext base,是哈工大讯飞联合实验室发布的使用中文预料训练的Bert模型。其中,预训练语料为EXT数据,包含了中文百科、新闻、问答等数据,总词量达到54亿。通过充分利用不同领域的数据集,提高了模型的准确性和泛化能力,并在问答系统中实现了更好的效果。同时,这种方法也减少了传统模型训练中人工编辑问答对所需的时间和人力成本,并且显著提升了Bert对规章制度的阅读理解能力。
为了使预训练模型拥有阅读理解的能力,在中文阅读理解数据集上对预训练模型进行了进一步的调优训练。使用的数据集为CMRC2018、DRCD、根据南网文档和示例数据使用数据增强生成的数据,其中CMRC2018、DRCD为开源数据。调优训练方式遵从对Bert模型类模型训练阅读理解任务的标准流程。以一条训练数据d=(q,p,start,end)为例,其中q代表问题,p代表文本,start/end分别代表答案在文本中的起始位置、结束位置。
在Bert模型的最后输出层之上,连接一个全连接网络层,s维度为(768,2)。运算时,将文本所对应的所有输出层的token输入此神经网络,用于计算每一个token是答案的起始位置、结束位置的概率;然后,将q,p共同作为Bert模型的输入,并用[sep]token进行分割;再使用归一化指数函数(softmax),计算出每一个token是答案的起始位置、结束位置的概率;根据训练数据中的start/end,使用后向传播优化Bert模型和s,采用Adam优化器,最大化正确的起始位置和结束位置上的token被判断为起始位置或结束位置的概率;最后,对所有数据进行训练,通过效果和GPU显存大小选择合适的batch,并根据验证集效果进行early stopping,并保存在验证集上效果最好的模型。
由于Bert模型只支持长度最高为512个字符的单一文本的答案抽取任务,为了能够支持长文本和多文档,本发明使用了Bertserini算法。Bertserini是基于Bert模型的开源的多文档阅读理解模型,结合了Anserini模块,因此可以支持在多个文档中抽取某个问题的答案。
在对Bert模型再进行两个步骤的Fine-tuning后,进行重要的参数调优后,根据给定的问题,由模型从Anserini抽取出的N个段落中完成精准答案的抽取,并根据索引文件,输出答案在原始文档中的章节信息。
优选的,重要的参数包括:
段落阈值:paragraph_threshold,用于过滤评分低的段落,本实施例中取值为10,过滤掉Anserini模块评分低于此阈值的段落,节约计算资源;
答案阈值:phrase_threshold,用于过滤评分低的答案,本实施例中取值为0,过滤掉Bert阅读器评分低于此阈值的答案;
移除段落标题:remove_title,结果为y或n,y表示结果为True,n表示结果为False,用于过滤段落标题;如果此项为y(y=True,n=False),则在Bert阅读器执行阅读理解时,不考虑段落标题;
最大回答长度:max_answer_length,用于确定允许抽取答案的最大长度;本实施例中取值为50,在Bert阅读器执行阅读理解任务时,允许抽取答案的最大长度;
评分权重:μ,用于计算对应的答案的最终分值,本实施例中取值为0.6,根据评分权重和Bert阅读器和Anserini模块抽取器分别对答案和段落的评分,计算该答案的最终分值。
具体地,使用Anserini模块抽取出和问题BM25相似度最高的N个段落;再使用Bert模型分别在以上的N个段落中抽取问题的答案;使用Bert模型预测的每个答案的起始位置与结束位置的加和,作为Bert模型的阅读理解模块生成的答案的分数,公式表示为:
Sbert=max(start logit)+max(end logit);
其中,max(start logit)为答案起始位置的概率分数最高值;max(end logit)为答案结束位置的概率分数最高值。
优选的,对候选答案进行综合加权评分并进行得分排序,最后输出得分最高的答案,并根据索引文件,给出答案出处原始文档名称及具体章节信息,计算答案的综合加权分数公式为:
S=(1-μ)·Sanserini+μ·Sbert;
其中,Sanserini表示Anserini模块抽取器返回的BM25分数,Sbert表示Bert模型返回的答案分数,μ表示用于定义Sanserini和Sbert之间权重的超参数。
通过计算后的答案分数将答案进行排序,并按需返回分数最高的1个或者k个答案。最终输出的分数最高的答案,并根据索引文件,共同输出原始文档名称及章节信息。
一种基于Bert模型的电力安全规程智能问答系统,采用上述的基于Bert模型的电力安全规程智能问答方法。
一种基于Bert模型的电力安全规程智能问答系统,为用户提供电力安全主题的多轮互动式问答。用户进入多轮互动式问答后,在系统操作界面通过语音或者手动输入问题来提问,在问题发送后400ms内即可收到系统的给出的回答。点击系统操作界面的答案下方的“查看详情”链接,系统会弹出窗口显示该答案的出处,包括答案的原始文档名称和章节编号;点击系统操作界面“全文”链接可以查看答案所在的原始文档内容。
本研究中算法1中使用现有Bertserini算法;算法2在算法1的基础上,增加了规章制度文档预处理算法,并使用CMRC2018数据集进行Fine-turning以及完成Bertserini算法参数调优;算法3是在算法2的基础上增加SPTI数据集进行Fine-turning,SPTI(Safetyprocedure test item data set)数据集,该数据集由1020道电力安全规程培训及考试题构成;算法4即本申请采用的Bertserini算法,在算法3的基础上再前置基于短文本相似度计算的FAQ模块,拦截部分高频问题,实现对问题的预处理。
由实验的数据表明:算法1的EM指标仅0.261,表现不佳;采用算法2,在采用算法三后,EM指标为0.702,能够提升62.8%,最后采用本文提出的算法四后,EM指标为0.856,表现最优,对比算法1初始Bertserini算法提升了69.5%,R值提升了53.6%,F1值提升了63.7%,可以达到工程实用化水平。“percentage of improvement”指的是算法2、算法3和算法4相对于算法1在评估指标EM、R和F1上的提升百分比,这个百分比是以算法1的值为基准进行计算的。
/>
表1优化前后回答准确率对比
在本说明书的描述中,参考术语“实施例”、“示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
Claims (7)
1.一种基于Bert模型的电力安全规程智能问答方法,其特征在于,包括以下步骤:
步骤S1:配置FAQ模块的问答对,问答对用于过滤高频问题,针对用户输入的问题,使用FAQ模块匹配用户输入的问题与预设的问答对中的问题,若匹配,则返回匹配到的问题对应的答案,若无返回结果或匹配分值低于阈值,则进行步骤S2;
步骤S2:使用预处理方式对电力安全规程文档进行文本分段,并加入中文维基百科的文本数据,生成索引文件;
步骤S3:采用Anserini模块基于输出的索引文件建立索引,并进行段落抽取,生成段落评分;
步骤S4:采用预训练的Bert模型,并使用CMRC2018数据以及电力安全规程考试题目作为专业数据集进行训练;
步骤S5:根据规章类文档的结构和特性,对训练的Bert模型的算法中的参数进行调优;
步骤S6:使用Bert模型在Anserini模块中抽取候选答案并给出阅读理解评分,候选答案为抽取的N个段落中抽取问题的准确答案;
步骤S7:对候选答案进行综合加权评分并进行得分排序,最后输出得分最高的答案,并给出答案出处的原始文档名称及具体章节信息;
所述步骤S1包括以下子步骤:
子步骤S11:建立预设问题库:预设问题库包含多个问题以及回答对;
子步骤S12:FAQ模块使用开源的分布式搜索和分析引擎,对用户输入的问题和预设问题库中的问题进行匹配,并采用BM25文本相似度算法计算两者的相似度,具体公式如下:
其中:D表示一个文档;Q表示查询语句;qi表示词项;f(qi,D)为qi在D中的出现频率;|D|为文档D的长度;avgdl为所有文档的平均长度;k1、b为调节因子;IDF(qi)为qi在全部预设问题中的逆向文本频率指数;N为索引中的文档总数,n(qi)为包含qi的数量;
子步骤S13:在使用时,当分析引擎返回的BM25算法的分数高于预设的阈值时,则直接返回匹配到的问题的预设答案;当返回分数低于阈值时,则不返回答案,进行步骤S2;
所述步骤S2包括以下子步骤:
子步骤S21:将电力安全规程文档转换为txt格式的纯文本;
子步骤S22:去除与内容无关的信息;
子步骤S23:使用正则表达式,将文本中的标题编号提取出来,将标题编号与文本相互对应;
子步骤S24:过滤掉不适用于机器阅读理解的段落;
子步骤S25:采用Anserini模块,将文本标题编号与其对应的正文进行分词,并建立索引。
2.根据权利要求1所述的一种基于Bert模型的电力安全规程智能问答方法,其特征在于,所述步骤S3包括以下子步骤:
子步骤S31:根据用户输入的问题,Anserini模块首先对预处理后的文档进行段落抽取,再过滤掉和用户问题无关的段落,并返回最有可能包含答案的段落;
子步骤S32:通过对用户输入的问题和索引中的段落进行匹配,Anserini模块抽取出和问题相关度最高的N个段落,并根据BM25计算结果对最有可能包含答案的段落进行评分并记录。
3.根据权利要求1所述的一种基于Bert模型的电力安全规程智能问答方法,其特征在于,Bert模型采用哈工大讯飞联合实验室发布的中文预训练模型,使用CMRC2018对模型进行第一次训练,再使用待处理的电力安全规程考试题目作为专业数据集对模型进行第二次训练。
4.根据权利要求1所述的一种基于Bert模型的电力安全规程智能问答方法,其特征在于,参数包括:
段落阈值:paragraph_threshold,用于过滤评分低的段落;
答案阈值:phrase_threshold,用于过滤评分低的答案;
移除段落标题:remove_title,结果为y或n,y表示结果为True,n表示结果为False,用于过滤段落标题;
最大回答长度:max_answer_length,用于确定允许抽取答案的最大长度;
评分权重:μ,用于计算对应的答案的最终分值。
5.根据权利要求1所述的一种基于Bert模型的电力安全规程智能问答方法,其特征在于,使用Bert模型预测的每个答案的起始位置与结束位置的加和,作为Bert模型的阅读理解模块生成的答案的分数,公式表示为:
Sbert=max(start logit)+max(end logit);
其中,max(start logit)为答案起始位置的概率分数最高值;max(end logit)为答案结束位置的概率分数最高值。
6.根据权利要求5所述的一种基于Bert模型的电力安全规程智能问答方法,其特征在于,对候选答案进行综合加权评分并进行得分排序,最后输出得分最高的答案,并根据索引文件,给出答案出处原始文档名称及具体章节信息,计算答案的综合加权分数公式为:
S=(1-μ)·Sanserini+μ·Sbert;
其中,Sanserini表示Anserini模块抽取器返回的BM25分数,Sbert表示Bert模型返回的答案分数,μ表示用于定义Sanserini和Sbert之间权重的超参数。
7.一种基于Bert模型的电力安全规程智能问答系统,其特征在于,采用上述权利要求1至6任意一项的基于Bert模型的电力安全规程智能问答方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311467507.3A CN117407511B (zh) | 2023-11-06 | 2023-11-06 | 一种基于Bert模型的电力安全规程智能问答方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311467507.3A CN117407511B (zh) | 2023-11-06 | 2023-11-06 | 一种基于Bert模型的电力安全规程智能问答方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117407511A CN117407511A (zh) | 2024-01-16 |
CN117407511B true CN117407511B (zh) | 2024-04-02 |
Family
ID=89492363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311467507.3A Active CN117407511B (zh) | 2023-11-06 | 2023-11-06 | 一种基于Bert模型的电力安全规程智能问答方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117407511B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163079A (zh) * | 2020-09-30 | 2021-01-01 | 民生科技有限责任公司 | 一种基于阅读理解模型的智能对话方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220044134A1 (en) * | 2020-08-10 | 2022-02-10 | Accenture Global Solutions Limited | Intelligent question answering on tabular content |
-
2023
- 2023-11-06 CN CN202311467507.3A patent/CN117407511B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163079A (zh) * | 2020-09-30 | 2021-01-01 | 民生科技有限责任公司 | 一种基于阅读理解模型的智能对话方法及系统 |
Non-Patent Citations (1)
Title |
---|
End-to-End Open-Domain Question Answering with BERTserini;Wei Yang等;Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics;20190918;1-6 * |
Also Published As
Publication number | Publication date |
---|---|
CN117407511A (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442760B (zh) | 一种问答检索系统的同义词挖掘方法及装置 | |
CN109684448B (zh) | 一种智能问答方法 | |
CN100595763C (zh) | 基于自然语言的全文检索系统 | |
US8676815B2 (en) | Suffix tree similarity measure for document clustering | |
US20230136368A1 (en) | Text keyword extraction method, electronic device, and computer readable storage medium | |
CN112131872A (zh) | 一种文献作者重名消歧方法和构建系统 | |
WO2015043075A1 (zh) | 面向微博的情感实体搜索系统 | |
CN108920599B (zh) | 一种基于知识本体库的问答系统答案精准定位和抽取方法 | |
Wang et al. | Neural related work summarization with a joint context-driven attention mechanism | |
CN111061828B (zh) | 一种数字图书馆知识检索方法及装置 | |
AU2014285073A1 (en) | Method and system for simplifying implicit rhetorical relation prediction in large scale annotated corpus | |
Jayaram et al. | A review: Information extraction techniques from research papers | |
CN112307171A (zh) | 一种基于电力知识库的制度标准检索方法及系统和可读存储介质 | |
CN111694927A (zh) | 一种基于改进词移距离算法的文档自动评阅方法 | |
Alhamzeh et al. | Distilbert-based argumentation retrieval for answering comparative questions | |
Hassani et al. | LVTIA: A new method for keyphrase extraction from scientific video lectures | |
Yusuf et al. | Query expansion method for quran search using semantic search and lucene ranking | |
Kessler et al. | Extraction of terminology in the field of construction | |
Juan | An effective similarity measurement for FAQ question answering system | |
Wang et al. | CMU Multiple-choice Question Answering System at NTCIR-11 QA-Lab. | |
Liu et al. | Domain ontology concept extraction method based on text | |
CN111737413A (zh) | 基于概念网语义的反馈模型信息检索方法、系统及介质 | |
CN117407511B (zh) | 一种基于Bert模型的电力安全规程智能问答方法及系统 | |
CN107818078B (zh) | 汉语自然语言对话的语义关联与匹配方法 | |
Chandu et al. | Extractive Approach For Query Based Text Summarization |
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 |