常兵兵 羅才喜 張喆



摘 要:為構(gòu)建一個(gè)面向幕墻企業(yè)和用戶的產(chǎn)品營(yíng)銷和運(yùn)維服務(wù)平臺(tái),本文設(shè)計(jì)并實(shí)現(xiàn)了面向幕墻的知識(shí)問(wèn)答功能模塊,此模塊的主要內(nèi)容包括基于爬蟲的數(shù)據(jù)收集模塊、用于知識(shí)庫(kù)的構(gòu)建與維護(hù)、敏感詞過(guò)濾和基于Jieba分詞等自然語(yǔ)言處理技術(shù)實(shí)現(xiàn)的數(shù)據(jù)預(yù)處理模塊、基于Doc2Bow構(gòu)建稀疏向量、文本相似度計(jì)算模塊、知識(shí)問(wèn)答功能實(shí)現(xiàn)模塊。從而可以給用戶提供問(wèn)題的答案,比較迅速的滿足用戶的查詢需求,節(jié)省用戶在網(wǎng)頁(yè)中尋找準(zhǔn)確答案的時(shí)間,提高尋求答案的效率。
關(guān)鍵詞:運(yùn)維服務(wù);知識(shí)問(wèn)答;稀疏向量;文本相似度
中圖分類號(hào):TP182 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.3969/j.issn.1003-6970.2021.02.019
本文著錄格式:常兵兵,羅才喜,張喆.基于知識(shí)庫(kù)的幕墻智能問(wèn)答設(shè)計(jì)與實(shí)現(xiàn)[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引言
幕墻行業(yè)是一個(gè)復(fù)雜的工程,在幕墻工程建設(shè)中會(huì)涉及到許多的專業(yè)知識(shí)。而用戶在幕墻的生產(chǎn)、安裝、維護(hù)過(guò)程中會(huì)產(chǎn)生較多的問(wèn)題。用戶以往在尋求問(wèn)題的解答時(shí)往往會(huì)依賴百度、谷歌等搜索引擎。但是這種方式存在一定的弊端:搜索引擎會(huì)反饋給用戶大量的網(wǎng)頁(yè),用戶需要自己在大量的信息中選取答案。但是這種方式存在回答信息重復(fù)、反饋的答案不精確的現(xiàn)象。或者用戶通過(guò)幕墻領(lǐng)域的傳統(tǒng)客服方式來(lái)尋求解答,這種方式存在人力成本較高、回答不及時(shí)等問(wèn)題,因此用戶需要有一個(gè)專門的平臺(tái)對(duì)用戶的問(wèn)題進(jìn)行解答。
本文提出一種基于知識(shí)庫(kù)的智能問(wèn)答平臺(tái)設(shè)計(jì)方案,即用戶在服務(wù)平臺(tái)提出問(wèn)題后,平臺(tái)對(duì)用戶輸入的問(wèn)題文本進(jìn)行處理[1],然后構(gòu)建稀疏向量;后臺(tái)根據(jù)知識(shí)庫(kù)中的問(wèn)題文本進(jìn)行語(yǔ)料庫(kù)的創(chuàng)建;最后進(jìn)行利用TF-IDF算法進(jìn)行文本相似度計(jì)算,匹配出語(yǔ)料庫(kù)中相似度最高的問(wèn)題,最后根據(jù)匹配出的問(wèn)題給出對(duì)應(yīng)的答案反饋。
1基于爬蟲的幕墻領(lǐng)域知識(shí)庫(kù)的構(gòu)建
知識(shí)庫(kù)是智能問(wèn)答功能的一個(gè)十分重要的組成部分,主要是存儲(chǔ)幕墻領(lǐng)域相關(guān)專家對(duì)幕墻相關(guān)問(wèn)題解答的知識(shí),十分具有參考性。其中包含了幕墻的故障排除、施工安裝、五金配件、玻璃、型材等專業(yè)知識(shí)。用戶對(duì)此類問(wèn)題的咨詢就是依靠知識(shí)庫(kù)進(jìn)行的,最后將用戶提出的問(wèn)題給出最終的答案反饋[2]。
本文提出的知識(shí)問(wèn)答平臺(tái)主要依賴于數(shù)據(jù),數(shù)據(jù)的來(lái)源通過(guò)選擇多個(gè)幕墻行業(yè)的網(wǎng)站進(jìn)行數(shù)據(jù)爬取,選取的數(shù)據(jù)都是基于幕墻行業(yè)認(rèn)證的專家給出的解答,案凝聚了幕墻行業(yè)內(nèi)專家的知識(shí)、智慧和經(jīng)驗(yàn),因此問(wèn)答數(shù)據(jù)可信賴性較高。本文選取的是中國(guó)幕墻網(wǎng)以及門窗幕墻網(wǎng)的問(wèn)答語(yǔ)料,這兩個(gè)網(wǎng)站具有門窗幕墻、型材、五金配件等知識(shí)并且網(wǎng)頁(yè)組成結(jié)構(gòu)簡(jiǎn)單,不存在反爬蟲機(jī)制,比較容易爬取,爬蟲部分主要選取requests+xpath技術(shù)對(duì)網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行爬取,通過(guò)爬蟲共爬取到3267條問(wèn)題-答案對(duì)數(shù)據(jù),爬取到的問(wèn)題-答案集數(shù)據(jù)如圖1所示。
2語(yǔ)料預(yù)處理模塊
語(yǔ)料預(yù)處理是將已經(jīng)采集到的數(shù)據(jù)進(jìn)行統(tǒng)一處理,包括:中文分詞、去停用詞及敏感詞過(guò)濾等。這些數(shù)據(jù)經(jīng)過(guò)處理后會(huì)大大提高數(shù)據(jù)質(zhì)量,提高機(jī)器的可讀性,有利于進(jìn)行統(tǒng)一的分析與計(jì)算。文本預(yù)處理完成后,將生成各種數(shù)據(jù)類別進(jìn)行集中存儲(chǔ)和訪問(wèn),如圖1所示。
2.1中文分詞
中文句子是由一個(gè)個(gè)字符連接起來(lái)。字與字之間聯(lián)系在一起可以組成詞,詞與詞組成句子。再對(duì)中文語(yǔ)句處理時(shí),需要對(duì)中文語(yǔ)句進(jìn)行分詞操作。中文分詞的難度相對(duì)較大,因?yàn)橛⑽姆衷~往往可以按照空格來(lái)對(duì)語(yǔ)句進(jìn)行劃分,但是中文分詞則相對(duì)較為復(fù)雜,原因在于中文有比較多的歧義詞,組合詞和新生詞[3]。因此中文分詞需要檢查篩選這些詞,這樣獲取到的結(jié)果才會(huì)比較準(zhǔn)確。
本節(jié)針對(duì)上節(jié)設(shè)計(jì)的爬蟲程序獲取到的問(wèn)答數(shù)據(jù),對(duì)獲取到的問(wèn)題數(shù)據(jù)進(jìn)行中文分詞。本文中采用基于詞表的分詞方式使用jieba分詞。jieba分詞支持三種分詞模式:精確模式、全模式和搜索引擎模式,本文采用默認(rèn)的精確模式。
2.2去停用詞
停用詞是在信息檢索的時(shí)候?yàn)榱颂嵘龣z索的效率,在處理檢索的信息數(shù)據(jù)的時(shí)候會(huì)去掉一些字或詞,這些字或詞就是停用詞[4]。本文主要借助于哈工大停用詞表來(lái)進(jìn)行去停用詞處理。比如用戶輸入問(wèn)句“門窗選擇有南北差別這種說(shuō)法嗎?”
2.3敏感詞過(guò)濾
本平臺(tái)在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),設(shè)計(jì)了敏感詞庫(kù),用于存儲(chǔ)敏感詞。敏感詞檢測(cè)主要過(guò)程為:用戶在平臺(tái)上輸入問(wèn)句,本文參考敏感詞庫(kù)中存儲(chǔ)的敏感詞并使用DFA敏感詞過(guò)濾算法[5]進(jìn)行敏感詞過(guò)濾。進(jìn)行敏感詞檢測(cè)在問(wèn)答模塊中具有相對(duì)較高的優(yōu)先級(jí),如果用戶輸入的問(wèn)句檢測(cè)出存在敏感詞,將會(huì)提示用戶進(jìn)行正確提問(wèn)。
3文本相似度計(jì)算
敏感詞檢測(cè)通過(guò)后,將用戶輸入的語(yǔ)句進(jìn)行下一步處理[6]。本小節(jié)利用gensim庫(kù)、TF-ID算法[7]以及余弦相似度算法來(lái)進(jìn)行文本相似度計(jì)算,從而給出用戶最佳的答案反饋[8]。主要工作內(nèi)容是:
(1)借助gensim中的corpora自然語(yǔ)言處理文本庫(kù)來(lái)處理中文字符。
(2)導(dǎo)入文本庫(kù)的語(yǔ)料。將事先爬蟲獲取到的語(yǔ)料加載到一個(gè)列表中。
(3)計(jì)算語(yǔ)料中詞語(yǔ)的頻率frequency,以便下一步建立詞典。
(4)根據(jù)上一步得到的詞頻對(duì)頻率較低的詞語(yǔ)進(jìn)行過(guò)濾。
(5)利用corpora.Dictionary(texts)通過(guò)語(yǔ)料庫(kù)將文檔中的詞語(yǔ)建立詞典并保存。
(6)利用jieba.lcut()函數(shù)將用戶問(wèn)題文本進(jìn)行中文分詞。
(7)將用戶前臺(tái)頁(yè)面輸入的問(wèn)題語(yǔ)句內(nèi)容content通過(guò)Ajax傳回后臺(tái),并經(jīng)過(guò)分詞處理后通過(guò)dictionary.doc2bow(target_data1.split())轉(zhuǎn)換為稀疏向量的形式new_xs。
(8)創(chuàng)建語(yǔ)料庫(kù)。利用corpus=[dictionary.doc2 dow(text)for text in texts]語(yǔ)句將原語(yǔ)料庫(kù)以(索引,次數(shù))元組的形式轉(zhuǎn)換為稀疏向量集并通過(guò)token2id得到特征數(shù)以便于下文建立tf-idf模型。
(9)創(chuàng)建TF-IDF模型,將創(chuàng)建好的語(yǔ)料庫(kù)導(dǎo)入模型進(jìn)行處理,得到tf-idf值。由于在向量空間模型中每個(gè)特征詞的文本分類能力、重要程度有所不同,所以引用用于評(píng)估詞在文中重要程度的方法,主要是利用詞頻和逆文檔頻率對(duì)字詞的重要程度進(jìn)行評(píng)估[9]。
(10)根據(jù)稀疏矩陣相似度建立索引。并且結(jié)果以(索引,相似度)元組的形式返回。然后用sim=index [tfidf[new_xs]]獲取最終相似結(jié)果。然后選取相似度最大的返回。
4平臺(tái)使用流程
本文采用服務(wù)與頁(yè)面結(jié)合的方式進(jìn)行設(shè)計(jì),后臺(tái)服務(wù)由python程序設(shè)計(jì)實(shí)現(xiàn),程序運(yùn)行后會(huì)啟動(dòng)相應(yīng)的后臺(tái)服務(wù),如圖2所示。
用戶通過(guò)幕墻的互聯(lián)網(wǎng)平臺(tái),通過(guò)智能診斷菜單進(jìn)入故障智能診斷界面,如圖3所示。
用戶在平臺(tái)上輸入問(wèn)題語(yǔ)句后,如:“結(jié)構(gòu)面不平整”,并提交信息。問(wèn)題文本傳入智能診斷服務(wù)后臺(tái)進(jìn)行處理。根據(jù)文本庫(kù)創(chuàng)建稀疏向量矩陣并轉(zhuǎn)化為tf-idf表示方法,然后根據(jù)獲取到的語(yǔ)句創(chuàng)建稀疏向量并轉(zhuǎn)化為tf-idf表示形式,最后計(jì)算相似度并找出相似度最大的問(wèn)題。答案反饋后的頁(yè)面如圖4所示。
5總結(jié)與展望
本文在基于實(shí)際需求的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了面向幕墻安裝維護(hù)的知識(shí)問(wèn)答功能。本文首先利用爬蟲技術(shù)獲取問(wèn)答社區(qū)內(nèi)的知識(shí)語(yǔ)料并存儲(chǔ)、創(chuàng)建知識(shí)庫(kù)、然后設(shè)置了敏感詞過(guò)濾算法,用以過(guò)濾輸入的問(wèn)句中的敏感詞匯;然后闡述了本文對(duì)語(yǔ)料進(jìn)行的中文分詞和去停用詞工作;最后對(duì)語(yǔ)料和用戶輸入的語(yǔ)料利用TF-IDF算法進(jìn)行了文本相似度計(jì)算用以匹配相似度最高的問(wèn)題然后給出對(duì)應(yīng)的答案反饋。
本文在完成上述工作內(nèi)容的同時(shí),仍然存在一些需要改進(jìn)的工作內(nèi)容需要進(jìn)一步的研究與處理,如本文的知識(shí)庫(kù)內(nèi)容不夠豐富,下一步可以加入更多關(guān)于幕墻行業(yè)的知識(shí)信息;知識(shí)問(wèn)答模塊對(duì)于答案的篩選與推送模塊還不夠完善等。在未來(lái)工作中可以對(duì)語(yǔ)料進(jìn)行處理,設(shè)計(jì)更加完善的算法來(lái)提高答案反饋的精準(zhǔn)度。
參考文獻(xiàn)
[1] 李俊.限定領(lǐng)域自動(dòng)問(wèn)答技術(shù)研究[D].北京:北方工業(yè)大學(xué),2010.
[2] 郭慶.公共就業(yè)服務(wù)知識(shí)庫(kù)系統(tǒng)構(gòu)建探析[J].科技管理研究,2019,39(24):162-169.
[3] 齊翌辰,王森淼,趙亞慧.基于倒排索引的問(wèn)答系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].教育教學(xué)論壇,2018(35):68-69.
[4] 逄揚(yáng).超高層單元式玻璃幕墻工業(yè)化建構(gòu)方法研究[D].大連:大連理工大學(xué),2013.
[5] 鄧一貴,伍玉英.基于文本內(nèi)容的敏感詞決策樹信息過(guò)濾算法[J].計(jì)算機(jī)工程,2014, 40(9):300-304.
[6] 馬偉娜.學(xué)術(shù)資源中英文分詞和分布式存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2016.
[7] 路永和,李焰鋒.改進(jìn)TF-IDF算法的文本特征項(xiàng)權(quán)值計(jì)算方法[J].圖書情報(bào)工作,2013(3):90-95.
[8] 王飛鴻.基于自動(dòng)生成知識(shí)庫(kù)的智能問(wèn)答系統(tǒng)設(shè)計(jì)[J].中國(guó)科技信息,2018(12):50-52.
[9] 湯銘.基于領(lǐng)域知識(shí)庫(kù)的校園智能問(wèn)答系統(tǒng)關(guān)鍵技術(shù)研究[D].南京:東南大學(xué),2018.