APP下载

基于知识库的幕墙智能问答设计与实现

2021-08-19常兵兵罗才喜张喆

软件 2021年2期

常兵兵 罗才喜 张喆

摘 要:为构建一个面向幕墙企业和用户的产品营销和运维服务平台,本文设计并实现了面向幕墙的知识问答功能模块,此模块的主要内容包括基于爬虫的数据收集模块、用于知识库的构建与维护、敏感词过滤和基于Jieba分词等自然语言处理技术实现的数据预处理模块、基于Doc2Bow构建稀疏向量、文本相似度计算模块、知识问答功能实现模块。从而可以给用户提供问题的答案,比较迅速的满足用户的查询需求,节省用户在网页中寻找准确答案的时间,提高寻求答案的效率。

关键词:运维服务;知识问答;稀疏向量;文本相似度

中图分类号:TP182 文献标识码:A DOI:10.3969/j.issn.1003-6970.2021.02.019

本文著录格式:常兵兵,罗才喜,张喆.基于知识库的幕墙智能问答设计与实现[J].软件,2021,42(02):064-066

Design and Realization of the IQAS Based on Knowledge Base of Curtain Wall

CHANG Bingbing1, LUO Caixi2, ZHNAG Zhe2

(1.Tianjin Feiyu Curtain Wall Decoration Engineering Co., Ltd., Tianjin  300300; 2.Binhai College, Nankai University, Tianjin  300270)

【Abstract】:In this article an IQAS (intelligent question answering system) module oriented to curtain wall is designed and realized for the purpose of building a platform for marketing, operating and maintaining which is helpful for curtain wall enterprises and their users. This module is made up of 4 sections, which are data collection based on crawler, data pre-processing, sparse vector based on Doc2Bow, calculation of text similarity and function realization of IQAS. It can provide the answers with the users and quickly meet their query requirements. It helps to save their time to search for the correct answers online and improve efficiency.

【Key words】:operation and maintenance;IQAS;sparse vector;text similarity

0引言

幕墙行业是一个复杂的工程,在幕墙工程建设中会涉及到许多的专业知识。而用户在幕墙的生产、安装、维护过程中会产生较多的问題。用户以往在寻求问题的解答时往往会依赖百度、谷歌等搜索引擎。但是这种方式存在一定的弊端:搜索引擎会反馈给用户大量的网页,用户需要自己在大量的信息中选取答案。但是这种方式存在回答信息重复、反馈的答案不精确的现象。或者用户通过幕墙领域的传统客服方式来寻求解答,这种方式存在人力成本较高、回答不及时等问题,因此用户需要有一个专门的平台对用户的问题进行解答。

本文提出一种基于知识库的智能问答平台设计方案,即用户在服务平台提出问题后,平台对用户输入的问题文本进行处理[1],然后构建稀疏向量;后台根据知识库中的问题文本进行语料库的创建;最后进行利用TF-IDF算法进行文本相似度计算,匹配出语料库中相似度最高的问题,最后根据匹配出的问题给出对应的答案反馈。

1基于爬虫的幕墙领域知识库的构建

知识库是智能问答功能的一个十分重要的组成部分,主要是存储幕墙领域相关专家对幕墙相关问题解答的知识,十分具有参考性。其中包含了幕墙的故障排除、施工安装、五金配件、玻璃、型材等专业知识。用户对此类问题的咨询就是依靠知识库进行的,最后将用户提出的问题给出最终的答案反馈[2]。

本文提出的知识问答平台主要依赖于数据,数据的来源通过选择多个幕墙行业的网站进行数据爬取,选取的数据都是基于幕墙行业认证的专家给出的解答,案凝聚了幕墙行业内专家的知识、智慧和经验,因此问答数据可信赖性较高。本文选取的是中国幕墙网以及门窗幕墙网的问答语料,这两个网站具有门窗幕墙、型材、五金配件等知识并且网页组成结构简单,不存在反爬虫机制,比较容易爬取,爬虫部分主要选取requests+xpath技术对网页数据进行爬取,通过爬虫共爬取到3267条问题-答案对数据,爬取到的问题-答案集数据如图1所示。

2语料预处理模块

语料预处理是将已经采集到的数据进行统一处理,包括:中文分词、去停用词及敏感词过滤等。这些数据经过处理后会大大提高数据质量,提高机器的可读性,有利于进行统一的分析与计算。文本预处理完成后,将生成各种数据类别进行集中存储和访问,如图1所示。

2.1中文分词

中文句子是由一个个字符连接起来。字与字之间联系在一起可以组成词,词与词组成句子。再对中文语句处理时,需要对中文语句进行分词操作。中文分词的难度相对较大,因为英文分词往往可以按照空格来对语句进行划分,但是中文分词则相对较为复杂,原因在于中文有比较多的歧义词,组合词和新生词[3]。因此中文分词需要检查筛选这些词,这样获取到的结果才会比较准确。

本节针对上节设计的爬虫程序获取到的问答数据,对获取到的问题数据进行中文分词。本文中采用基于词表的分词方式使用jieba分词。jieba分词支持三种分词模式:精确模式、全模式和搜索引擎模式,本文采用默认的精确模式。

2.2去停用词

停用词是在信息检索的时候为了提升检索的效率,在处理检索的信息数据的时候会去掉一些字或词,这些字或词就是停用词[4]。本文主要借助于哈工大停用词表来进行去停用词处理。比如用户输入问句“门窗选择有南北差别这种说法吗?”

2.3敏感词过滤

本平台在进行数据库设计时,设计了敏感词库,用于存储敏感词。敏感词检测主要过程为:用户在平台上输入问句,本文参考敏感词库中存储的敏感词并使用DFA敏感词过滤算法[5]进行敏感词过滤。进行敏感词检测在问答模块中具有相对较高的优先级,如果用户输入的问句检测出存在敏感词,将会提示用户进行正确提问。

3文本相似度计算

敏感词检测通过后,将用户输入的语句进行下一步处理[6]。本小节利用gensim库、TF-ID算法[7]以及余弦相似度算法来进行文本相似度计算,从而给出用户最佳的答案反馈[8]。主要工作内容是:

(1)借助gensim中的corpora自然语言处理文本库来处理中文字符。

(2)导入文本库的语料。将事先爬虫获取到的语料加载到一个列表中。

(3)计算语料中词语的频率frequency,以便下一步建立词典。

(4)根据上一步得到的词频对频率较低的词语进行过滤。

(5)利用corpora.Dictionary(texts)通过语料库将文档中的词语建立词典并保存。

(6)利用jieba.lcut()函数将用户问题文本进行中文分词。

(7)将用户前台页面输入的问题语句内容content通过Ajax传回后台,并经过分词处理后通过dictionary.doc2bow(target_data1.split())转换为稀疏向量的形式new_xs。

(8)创建语料库。利用corpus=[dictionary.doc2 dow(text)for text in texts]语句将原语料库以(索引,次数)元组的形式转换为稀疏向量集并通过token2id得到特征数以便于下文建立tf-idf模型。

(9)创建TF-IDF模型,将创建好的语料库导入模型进行处理,得到tf-idf值。由于在向量空间模型中每个特征词的文本分类能力、重要程度有所不同,所以引用用于评估词在文中重要程度的方法,主要是利用词频和逆文档频率对字词的重要程度进行评估[9]。

(10)根据稀疏矩阵相似度建立索引。并且结果以(索引,相似度)元组的形式返回。然后用sim=index [tfidf[new_xs]]获取最终相似结果。然后选取相似度最大的返回。

4平台使用流程

本文采用服务与页面结合的方式进行设计,后台服务由python程序设计实现,程序运行后会启动相应的后台服务,如图2所示。

用户通过幕墙的互联网平台,通过智能诊断菜单进入故障智能诊断界面,如图3所示。

用户在平台上输入问题语句后,如:“结构面不平整”,并提交信息。问题文本传入智能诊断服务后台进行处理。根据文本库创建稀疏向量矩阵并转化为tf-idf表示方法,然后根据获取到的语句创建稀疏向量并转化为tf-idf表示形式,最后计算相似度并找出相似度最大的问题。答案反馈后的页面如图4所示。

5总结与展望

本文在基于实际需求的基础上,设计并实现了面向幕墙安装维护的知识问答功能。本文首先利用爬虫技术获取问答社区内的知识语料并存储、创建知识库、然后设置了敏感词过滤算法,用以过滤输入的问句中的敏感词汇;然后阐述了本文对语料进行的中文分词和去停用词工作;最后对语料和用户输入的语料利用TF-IDF算法进行了文本相似度计算用以匹配相似度最高的问题然后给出对应的答案反馈。

本文在完成上述工作内容的同时,仍然存在一些需要改进的工作内容需要进一步的研究与处理,如本文的知识库内容不够丰富,下一步可以加入更多关于幕墙行业的知识信息;知识问答模块对于答案的筛选与推送模块还不够完善等。在未来工作中可以对语料进行处理,设计更加完善的算法来提高答案反馈的精准度。

参考文献

[1] 李俊.限定领域自动问答技术研究[D].北京:北方工业大学,2010.

[2] 郭庆.公共就业服务知识库系统构建探析[J].科技管理研究,2019,39(24):162-169.

[3] 齐翌辰,王森淼,赵亚慧.基于倒排索引的问答系统的设计与实现[J].教育教学论坛,2018(35):68-69.

[4] 逄扬.超高层单元式玻璃幕墙工业化建构方法研究[D].大连:大连理工大学,2013.

[5] 邓一贵,伍玉英.基于文本内容的敏感词决策树信息过滤算法[J].计算机工程,2014, 40(9):300-304.

[6] 马伟娜.学术资源中英文分词和分布式存储系统的设计与实现[D].北京:北京邮电大学,2016.

[7] 路永和,李焰锋.改进TF-IDF算法的文本特征項权值计算方法[J].图书情报工作,2013(3):90-95.

[8] 王飞鸿.基于自动生成知识库的智能问答系统设计[J].中国科技信息,2018(12):50-52.

[9] 汤铭.基于领域知识库的校园智能问答系统关键技术研究[D].南京:东南大学,2018.