摘 要:作為一種結(jié)構(gòu)化的語(yǔ)義知識(shí)庫(kù),知識(shí)圖譜近年來(lái)被多個(gè)領(lǐng)域所應(yīng)用,然而在機(jī)器學(xué)習(xí)這一專有領(lǐng)域仍存在空缺。文章描述了如何構(gòu)建一個(gè)面向機(jī)器學(xué)習(xí)領(lǐng)域的知識(shí)圖譜,并基于該圖譜設(shè)計(jì)了一個(gè)問答系統(tǒng)。在圖譜的構(gòu)建過程中,主要使用了爬蟲技術(shù)以及部分 NL.P 方法對(duì)數(shù)據(jù)進(jìn)行采集和處理,最終得到1個(gè)包含2442 個(gè)實(shí)體的知識(shí)圖譜,并將其存儲(chǔ)在 Neo4i 圖數(shù)據(jù)庫(kù)中。針對(duì)間答系統(tǒng)設(shè)計(jì)部分結(jié)合基于規(guī)則正則匹配以及基于詞向量相似度匹配的方法,構(gòu)建了問答模塊。該領(lǐng)域圖譜的構(gòu)建和問答系統(tǒng)的設(shè)計(jì),將使研究人員和愛好者更輕松地獲取高質(zhì)量的機(jī)器學(xué)習(xí)領(lǐng)域的知識(shí)。
關(guān)鍵詞:知識(shí)圖譜:?jiǎn)柎鹣到y(tǒng);機(jī)器學(xué)習(xí)
中圖法分類號(hào):TP18文獻(xiàn)標(biāo)識(shí)碼:A
1 引言
知識(shí)圖譜的起源可追溯到20 世紀(jì)30 年代,但其正式概念是由Google 于2012 年提出的。它被描述為一個(gè)提供智能搜索服務(wù)的大型知識(shí)庫(kù),可以將獨(dú)立的知識(shí)以三元組的形式形成語(yǔ)義知識(shí)的一種形式化描述框架,形式化地描述真實(shí)世界中各類事物及其關(guān)聯(lián)關(guān)系[1] 。領(lǐng)域知識(shí)圖譜是特定領(lǐng)域應(yīng)用的知識(shí)圖譜,在金融、軍事、醫(yī)療等多個(gè)領(lǐng)域都得到了應(yīng)用,如IBMWatson Health 醫(yī)療知識(shí)圖譜[2] 。由于知識(shí)圖譜的結(jié)構(gòu)化程度高且知識(shí)質(zhì)量高,基于知識(shí)圖譜的問答系統(tǒng)越來(lái)越受到人們的青睞,它彌補(bǔ)了傳統(tǒng)問答系統(tǒng)檢索效率低和檢索知識(shí)質(zhì)量不高的缺點(diǎn)。
如今,機(jī)器學(xué)習(xí)的熱度不斷上升,然而當(dāng)前機(jī)器學(xué)習(xí)領(lǐng)域圖譜的開發(fā)仍處于空白階段。為了使機(jī)器學(xué)習(xí)專有領(lǐng)域的知識(shí)能夠形成一個(gè)結(jié)構(gòu)化的語(yǔ)義網(wǎng)絡(luò),以及為機(jī)器學(xué)習(xí)領(lǐng)域的相關(guān)研究提供便利,本文將介紹機(jī)器學(xué)習(xí)領(lǐng)域圖譜的構(gòu)建過程,并基于圖譜設(shè)計(jì)一個(gè)問答系統(tǒng)。
2 基本技術(shù)概述
2.1 知識(shí)圖譜構(gòu)建理論
知識(shí)圖譜的構(gòu)建通常包含知識(shí)抽取、知識(shí)融合、知識(shí)加工和知識(shí)更新等步驟[3] 。獲取相關(guān)語(yǔ)料后,需要對(duì)語(yǔ)料進(jìn)行預(yù)處理,然后進(jìn)入知識(shí)抽取環(huán)節(jié)。知識(shí)抽取主要包括實(shí)體識(shí)別、關(guān)系抽取以及屬性抽?。?類任務(wù)。實(shí)體識(shí)別用于識(shí)別文本中的特殊實(shí)體,關(guān)系抽取用于從文本中識(shí)別實(shí)體之間的關(guān)系,屬性抽取用于從文本中提取實(shí)體的屬性。
這些任務(wù)的完成早期依賴于專家手工定義規(guī)則,而基于機(jī)器學(xué)習(xí)方法的技術(shù)現(xiàn)在更為實(shí)用。本文主要使用基于機(jī)器學(xué)習(xí)的方法進(jìn)行知識(shí)抽取,同時(shí)使用了OCR 技術(shù)以及爬蟲技術(shù)。在知識(shí)融合階段,主要工作有實(shí)體對(duì)齊、實(shí)體消歧,本文通過基于機(jī)器學(xué)習(xí)的方法來(lái)完成這些任務(wù)。完成上述工作后,需要將知識(shí)圖譜數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。根據(jù)存儲(chǔ)方式的不同,知識(shí)圖譜通常可以存儲(chǔ)在RDF 數(shù)據(jù)庫(kù)、關(guān)系型數(shù)據(jù)庫(kù)或者圖數(shù)據(jù)庫(kù)中。本文使用Neo4j 圖數(shù)據(jù)庫(kù)對(duì)知識(shí)圖譜進(jìn)行存儲(chǔ)[4] 。
2.2 基于知識(shí)圖譜的問答系統(tǒng)設(shè)計(jì)理論
構(gòu)建基于知識(shí)圖譜的問答系統(tǒng)通常有3 種方法:基于模板匹配;基于語(yǔ)義解析;基于向量建模[5] 。本文將結(jié)合基于規(guī)則正則匹配的方法和基于Word2Vec向量建模的方法,提升智能問答的應(yīng)答率、準(zhǔn)確率。
3 機(jī)器學(xué)習(xí)領(lǐng)域圖譜構(gòu)建
本文采用自底向上的框架構(gòu)建機(jī)器學(xué)習(xí)領(lǐng)域的知識(shí)圖譜,基本流程如圖1 所示。
3.1 數(shù)據(jù)采集
構(gòu)建知識(shí)圖譜首先需要收集相關(guān)語(yǔ)料。為了保證實(shí)體詞的專業(yè)性,本文參考了機(jī)器之心團(tuán)隊(duì)編寫的專有術(shù)語(yǔ)庫(kù),其中收納了2 442 個(gè)機(jī)器學(xué)習(xí)專有領(lǐng)域的術(shù)語(yǔ),這些術(shù)語(yǔ)來(lái)源于領(lǐng)域?qū)<乙约皺?quán)威教科書等,并經(jīng)過了校對(duì)等工作,具有較強(qiáng)的專業(yè)性與公信力。本文以這些術(shù)語(yǔ)為基礎(chǔ),建立關(guān)鍵詞表,并將其作為圖譜的實(shí)體詞庫(kù)。
以實(shí)體詞庫(kù)中的專業(yè)詞匯為關(guān)鍵詞,利用網(wǎng)絡(luò)爬蟲技術(shù)從萬(wàn)方、維普數(shù)據(jù)庫(kù)中獲取了23 579 篇包含這些關(guān)鍵詞的期刊文獻(xiàn),并使用request 庫(kù)、BS4 庫(kù)等工具對(duì)每個(gè)實(shí)體詞的百度百科詞條以及維基百科詞條進(jìn)行爬取,在后續(xù)知識(shí)抽取的步驟中會(huì)對(duì)這些數(shù)據(jù)進(jìn)行進(jìn)一步處理。
3.2 知識(shí)抽取
知識(shí)抽取工作共分為3 個(gè)部分:實(shí)體識(shí)別、關(guān)系抽取和屬性抽取。實(shí)體識(shí)別部分首先采用OCR 技術(shù),對(duì)采集的23 579 篇領(lǐng)域期刊文獻(xiàn)進(jìn)行文本的提取,文本使用Stanford CoreNLP[6] 進(jìn)行實(shí)體識(shí)別,借助構(gòu)建好的實(shí)體詞庫(kù)進(jìn)行篩選,并進(jìn)行數(shù)據(jù)清洗、語(yǔ)句分詞、去停用詞等工作,過濾出與實(shí)體詞相關(guān)的語(yǔ)料。針對(duì)關(guān)系抽取部分,本文采用上下位關(guān)系來(lái)表示實(shí)體之間的關(guān)系。上下位關(guān)系即包含與被包含的層級(jí)關(guān)系,即一個(gè)概念或?qū)嶓w(上位詞或父類)包含另一個(gè)概念或?qū)嶓w(下位詞或子類)的關(guān)系。例如,“機(jī)器學(xué)習(xí)”為一級(jí)實(shí)體節(jié)點(diǎn),“神經(jīng)網(wǎng)絡(luò)”作為二級(jí)實(shí)體節(jié)點(diǎn)是“機(jī)器學(xué)習(xí)”這一實(shí)體的分支,可以作為其下位詞。本文使用Stanford CoreNLP 對(duì)實(shí)體識(shí)別中過濾好的語(yǔ)料進(jìn)行依存句法分析,提取出實(shí)體詞之間的上下位關(guān)系。
針對(duì)屬性抽取部分,首先抽取所有實(shí)體詞的基礎(chǔ)屬性?;A(chǔ)屬性從先前爬取的百度百科即維基百科語(yǔ)料中進(jìn)行抽取, 其主要包含名稱( name)、定義(definition)、應(yīng)用(application)。對(duì)于實(shí)體詞中的具體算法或算法分支,它們通常為4 級(jí)節(jié)點(diǎn)或更低層級(jí)的節(jié)點(diǎn),除基礎(chǔ)屬性外還添加了“期刊屬性”,將以該節(jié)點(diǎn)為關(guān)鍵詞的專業(yè)期刊數(shù)據(jù)收錄到屬性中,其主要包含標(biāo)題(title)、發(fā)表時(shí)間(date)、作者(author)、摘要(abstract)。
3.3 知識(shí)融合
在知識(shí)融合階段,實(shí)體消歧任務(wù)是本文的主要工作。知識(shí)圖譜中,實(shí)體詞有可能出現(xiàn)實(shí)體二義性,即一個(gè)實(shí)體可能在不同語(yǔ)境下代表的意思不同。例如,bias(偏差)在統(tǒng)計(jì)學(xué)和機(jī)器學(xué)習(xí)中通常指預(yù)測(cè)值與實(shí)際值之間的差距,但在其他上下文中也可能指偏見或傾向。
為解決歧義問題,本文采用基于知識(shí)庫(kù)鏈接的實(shí)體消歧方法,這種方法通過將自然語(yǔ)言文本中的實(shí)體鏈接到實(shí)體詞庫(kù)中對(duì)應(yīng)的實(shí)體來(lái)消除歧義。CN?DBpeida 提供了Mention2Entity 數(shù)據(jù)集,其含有大量歧義詞的字典,可以用來(lái)解決歧義問題[7] 。
3.4 圖譜入庫(kù)
對(duì)于知識(shí)圖譜的存儲(chǔ),本文使用圖數(shù)據(jù)庫(kù)Neo4j進(jìn)行存儲(chǔ)入庫(kù)。Neo4j 將圖作為數(shù)據(jù)結(jié)構(gòu),充分利用了圖數(shù)據(jù)結(jié)構(gòu)的特性,使用圖節(jié)點(diǎn)、邊、節(jié)點(diǎn)屬性與邊屬性來(lái)表示數(shù)據(jù),并將Cypher 作為數(shù)據(jù)庫(kù)查詢語(yǔ)言。經(jīng)過3.1~3.3 節(jié)的處理后,可以得到關(guān)于實(shí)體詞庫(kù)中2 442 個(gè)節(jié)點(diǎn)“實(shí)體?邊?實(shí)體”的三元組數(shù)據(jù),其已經(jīng)儲(chǔ)存了節(jié)點(diǎn)屬性的數(shù)據(jù)文件,通過py2neo 庫(kù)將這些數(shù)據(jù)批量導(dǎo)入Neo4j 數(shù)據(jù)庫(kù),即完成了知識(shí)圖譜的存儲(chǔ)。存儲(chǔ)完畢后,隨機(jī)抽?。玻埃?組實(shí)體關(guān)鍵詞并對(duì)其進(jìn)行查詢,均成功返回結(jié)果,平均返回時(shí)長(zhǎng)為269 毫秒,響應(yīng)速度快。部分知識(shí)圖譜示例如圖2 所示。
4 問答系統(tǒng)設(shè)計(jì)
基于構(gòu)建好的機(jī)器學(xué)習(xí)領(lǐng)域圖譜,設(shè)計(jì)一個(gè)問答系統(tǒng),旨在幫助研究人員和機(jī)器學(xué)習(xí)愛好者更輕松地獲取高質(zhì)量的機(jī)器學(xué)習(xí)領(lǐng)域知識(shí)。問答系統(tǒng)設(shè)計(jì)邏輯如圖3 所示。
4.1 問句預(yù)處理
用戶輸入自然語(yǔ)言問句后,需要提取問句的語(yǔ)義信息,以及進(jìn)行命名實(shí)體識(shí)別工作。在本問答系統(tǒng)中,將jieba 庫(kù)作為解決方案。jieba 庫(kù)是一個(gè)中文分詞工具庫(kù),使用Python 實(shí)現(xiàn),支持自定義詞典,可以根據(jù)實(shí)際需求添加或刪除一些自定義詞匯,以便更好地滿足特定領(lǐng)域的分詞需求。通過jieba 庫(kù)對(duì)用戶輸入的自然語(yǔ)言問句進(jìn)行分詞,并提取其中的命名實(shí)體,可以獲取更準(zhǔn)確的語(yǔ)義信息。
4.2 意圖識(shí)別與答案推理
對(duì)于問句的意圖識(shí)別,本系統(tǒng)結(jié)合了基于規(guī)則集的方法以及向量相似度匹配。問句預(yù)處理得到分詞與詞性標(biāo)注結(jié)果后,進(jìn)行實(shí)體的關(guān)鍵詞抽取,首先采用基于規(guī)則集的方法,對(duì)問句進(jìn)行正則匹配,若成功匹配,則說明問句在預(yù)設(shè)規(guī)則庫(kù)中,可以直接根據(jù)規(guī)則模板將原本的自然語(yǔ)言問句轉(zhuǎn)換為Cypher 查詢語(yǔ)句,進(jìn)而鏈接到Neo4j 數(shù)據(jù)庫(kù)中并推理得到問題答案。部分規(guī)則集示例如表1 所列。
然而,僅使用規(guī)則模板庫(kù)來(lái)理解用戶輸入問句的成功率非常低。如果未匹配到規(guī)則集,系統(tǒng)將采用向量相似度匹配。本系統(tǒng)使用Word2Vec 模塊來(lái)實(shí)現(xiàn)這一點(diǎn)。Word2Vec 是一種雙層神經(jīng)網(wǎng)絡(luò)詞向量模型,可以將詞映射為一個(gè)向量來(lái)表示詞間聯(lián)系,映射的向量為神經(jīng)網(wǎng)絡(luò)中的隱藏層[8] 。若輸入問句不能匹配規(guī)則集,則使用預(yù)訓(xùn)練的詞向量模型計(jì)算問句與知識(shí)庫(kù)中問題的相似度,本文調(diào)試時(shí)使用余弦相似度計(jì)算,匹配得到與問句最相似的問題,并鏈接Neo4j 數(shù)據(jù)庫(kù),最終得到答案。
4.3 結(jié)果分析
對(duì)每類問題,設(shè)置了100 道測(cè)試問句,對(duì)問答系統(tǒng)進(jìn)行測(cè)試,測(cè)試結(jié)果如表2 所列。
對(duì)于實(shí)體信息類、屬性信息類以及應(yīng)用信息類問題,可以發(fā)現(xiàn)應(yīng)答率和準(zhǔn)確率較高;而對(duì)于比較信息類問題,應(yīng)答率和準(zhǔn)確率顯著下降。
5 結(jié)束語(yǔ)
本文通過網(wǎng)絡(luò)爬蟲、NLP 等技術(shù)構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)專有領(lǐng)域的知識(shí)圖譜,并基于該圖譜設(shè)計(jì)了一個(gè)問答系統(tǒng),為機(jī)器學(xué)習(xí)的研究者和愛好者提供了一個(gè)快速、準(zhǔn)確查詢領(lǐng)域知識(shí)的平臺(tái)。然而構(gòu)建的圖譜在時(shí)效上具有局限性,由于缺乏知識(shí)更新的手段,無(wú)法獲取最新的專業(yè)術(shù)語(yǔ)以及期刊信息,需要每隔一段時(shí)間進(jìn)行人工更新工作。另外,設(shè)計(jì)的問答系統(tǒng)對(duì)于處理邏輯較強(qiáng)的問題效果欠佳,可以考慮引入更強(qiáng)大的語(yǔ)義理解模型,以提高系統(tǒng)的應(yīng)答率與準(zhǔn)確率。
參考文獻(xiàn):
[1] 田玲,張謹(jǐn)川,張晉豪,等.知識(shí)圖譜綜述———表示、構(gòu)建、推理與知識(shí)超圖理論[J].計(jì)算機(jī)應(yīng)用,2021,41(8):2161?2186.
[2] IBM. Watson Health 醫(yī)療保健數(shù)據(jù)分析的重要性[EB/OL]. https: ∥ www. ibm. com/ cn?zh/ watson?health/ learn/healthcare?data?analytics.
[3] SINGHAL A. Introducing the knowledge graph: things, notstrings [EB/ OL].https:∥www.blog.google/ products/ search/introducing?knowledge?graph?things?not/ .
[4] Neo4j.Neo4j[DB/ OL].https:∥neo4j.com/ .
[5] 袁博,施運(yùn)梅,張樂.基于知識(shí)圖譜的問答系統(tǒng)研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2021,31(10):134?140.
[6] MANNING C D,SURDEANU M,BAUER J,et al.The StanfordCoreNLP natural language processing toolkit [ C ] ∥Proceedings of 52nd annual meeting of the association forcomputational linguistics:system demonstrations.2014:55?60.
[7] XU B,XU Y,LIANG J,et al.CN?DBpedia:A never?endingChinese knowledge extraction system [ C] ∥ Advances inArtificial Intelligence: From Theory to Practice: 30thInternational Conference on Industrial Engineering and OtherApplications of Applied Intelligent Systems,IEA/ AIE 2017,Arras,France,June 27?30,2017,Proceedings,Part II.Cham:Springer International Publishing,2017:428?438.
[ 8 ] RONG X. WORD2VEC PARAMETER LEARNINGEXPLAINED [ EB/ OL]. HTTPS: ∥ ZHUANLAN. ZHIHU.COM/ P/183161311.
作者簡(jiǎn)介:
黃宇皓(2001—),本科,研究方向:大數(shù)據(jù)分析。