?

《駱越演義》知識關系可視化系統設計與實現*

2022-05-09 09:24黃容鑫黃偉剛孫競丹
關鍵詞:駱越演義三元組

李 航,黃容鑫,黃偉剛,孫競丹,覃 曉

(南寧師范大學 計算機與信息工程學院;八桂學者創新團隊實驗室,廣西 南寧 530100 )

0 引言

《駱越演義》[1]是一部以世界文化遺產——左江花山巖畫為背景創作,描寫嶺南上古時期王朝興廢、朝代更替,揭開珠江文明和千古花山之謎的大型長篇歷史小說。該書以回合制撰寫,共一百二十五回,整書對上古時期駱越先民的生存狀態和百越文明的歷史淵源進行了生動描述,展現了上古時期嶺南的政治、軍事、經濟、文化的發展史,以小說的形式全景式呈現上古珠江流域文明變蠻夷為金戈鐵馬般的燦爛史詩。

知識圖譜[2]是以圖的形式表現客觀世界中的實體(概念)及其之間關系的知識庫。知識是認知,圖譜是載體,數據庫是實現,知識圖譜就是在數據庫系統上利用圖譜這種抽象載體表示知識這種認識內容。具體地說,知識圖譜以結構化三元組的形式存儲現實世界中的實體以及實體之間的關系,與通過關鍵字搜索的方法[3]相比基于知識圖譜的方法能夠更快速的匹配準確答案。陳蕾等[4]提出的《紅樓夢》中社會權勢關系的提取及網絡構建中利用最小樹形圖算法生成了涵蓋192個《紅樓夢》主要人物的單向聯通的樹狀社會關系圖,通過這種方法生成的社會關系圖能有效反映人際交往親密度與社會影響力。這種關系圖與知識圖譜極為相似,說明了用知識圖譜來表示人物關系能直觀地展現人與人之間的聯系。

《駱越演義》是以數個主要人物為中心,輻射大量的戰爭故事串聯而成的小說,其內容人物關系和戰爭事件關系錯綜復雜,用知識圖譜將這些復雜的關系處理成能夠結構化表示的知識,再通過可視化圖形展現出來,這樣既能高效地查詢人物關系,又能宏觀地發現事件之間的關聯性,更好的幫助理解小說內容。

本研究在自然語言處理的基礎上,對小說中人物關系和事件關系進行定義[5],構建三元組,并將這些知識關系可視化[6-9],最后成功搭建一個《駱越演義》知識關系可視化系統,通過可視化的方法對文學作品提出了新的表現形式,使讀者可以高效精確地學習和理解小說內容,了解駱越文化,同時促進了我國的優秀民族文化發展。

1 系統的總體設計

基于B/S架構,采用Python語言處理數據和程序的編寫,前端由Django應用框架+ECharts[10]圖表工具組合,后端使用圖形數據庫Neo4j,系統的總體架構如圖1、圖2所示。

圖1 知識可視化系統架構圖

圖2 知識可視化系統各模塊結構

主要分為數據層、分析層和應用層共3層。數據層負責知識圖譜構建和導入數據庫,將自然語言文本處理為知識圖譜構建所需要的三元組,主要包括2個模塊:數據處理模塊和數據導入模塊;分析層用于對用戶的問句進行語義解析,了解用戶真實意圖并提取答案,主要包括兩個功能模塊:語義解析模塊和查詢結果生成模塊;應用層包含用戶交互界面和可視化界面,用戶交互界面實現對人物關系進行查詢,并返回查詢結果的知識關系圖和人物屬性,可視化界面展示知識關系全貌圖和查詢結果。

2 系統詳細設計和關鍵技術

2.1 數據層

2.1.1 數據處理模塊

構建知識圖譜,本質上是要定義各種實體和實體關系,并建立各個實體關系的聯系。對自然語言的文本而言,尋找實體關系,需要分析文檔內容,抽取文字或標題的核心概念、關鍵內容,找到兩個實體間可能存在的關系。

本系統主要處理對象是《駱越演義》電子文檔。文檔是非結構化數據,難以讓計算機直接處理。因此在系統數據的預處理階段,要對非結構化的數據進行結構化轉化,即要確定電子文檔中的實體和實體關系。

書中大部分章節描寫的是戰爭場景,其中涉及大量的戰爭場地、戰爭場景、戰爭人物、戰爭爆發的原因、過程和結局等描寫。通過仔細研究小說中的戰爭內容,本研究將關于戰爭的描寫定義為“戰爭事件”,在戰爭事件中先定義人物、地點、原因、結果等實體概念,再定義“人物關系”“地點關系”“戰爭因果關系(簡稱因果關系)”等關系概念?!恶樤窖萘x》小說知識概念性定義描述(表1)。

表1 知識實體及實體關系定義表

完成知識實體及實體關系定義表的建立,下一步基于依存句法分析模型[12.13]對實體和實體關系進行定義。為方便說明構建方法,先對相關概念進行定義和描述。

設小說文本的詞匯實體集Entity為E={E1,E2,…,Ek},根據給定的語法體系,確定句子中詞匯之間的依存關系,依存關系的集合表示為ERT,定義如下:

定義1句法依存關系對偶表,表示兩個實體間的依存關系,記為ERT。

ERT={(Ei,Ej)|i,j=1,2,…,n,Ei,Ej∈E}

基于依存句法分析的小說文本實體關系抽取并構建成知識圖譜(Entity relation extraction based on dependency parsing,ER_dp)的方法流程(算法1)。

算法1:ER_dp

輸入:小說文本數據Text_data,實體關系定義表R

輸出:小說實體關系集S

Step1: 對Text_data進行分詞處理得到詞匯實體集E;

Step2: 對E進行詞性標注;

Step3: 依據詞性特征,對Text_data進行依存句法分析,并依據句法依存關系得到句法依存關系對偶表ERT;

Step4: 根據實體關系定義表中的關系ri∈R,在ERT中找到實體的關系鏈,并合并為三元組;

Step5:S←(Ei,ri,Ej) //關系ri的三元組存放于實體關系集S中;

Step6: 重復step4、step5,直到實體關系定義表中的關系全部處理完;

step7: 返回小說實體關系集S。

對語句“金的長子燮邕跟隨獞部落南下逃亡”的依存結構表示,如圖3表示。通過依存句法分析得到依存關系ATT(金,長子);DBL(金,的);ATT(長子,燮邕);SBV(燮邕,跟隨);VOB(跟隨,獞部落);DBL(南下,獞部落);ATT(南下,逃亡)等,其中ATT(金,長子)和ATT(長子,燮邕)存在人物關系“長子”,合并關系鏈得到一個三元組(金;長子;燮邕)。以三元組的形式可以更好地存儲小說中的實體關系。

圖3 依存樹

2.1.2 數據導入模塊

本模塊完成對系統數據庫的設計,主要采用neo4j存儲所構建的《駱越演義》知識圖譜。neo4j是以圖形結構的形式存儲數據的數據庫,它采用node和relation來存儲實體和關系。文中的節點(node)指的是諸如人物、地點、原因或結果等實體,關系(relation)指的是諸如“人物關系”、“戰爭關系”等。節點(node)和關系(relation)中包含屬性(properties),如“燮邕”是一個實體,它具有名字(燮邕),性別(男),職位(護衛隊隊長)等屬性。圖3展示了本研究的數據存儲模型,其中節點(node)和節點的屬性(properties)存儲于一個鏈表中,而節點和關系(relation)則使用一個雙向鏈表來存放。從圖4中可以看出,通過關系可以方便的查看跟這個關系關聯的兩個實體(node1和node2),并且從一個節點node1開始,可以直接遍歷以該節點為起點的圖。圖5展示了在neo4j中存儲的部分節點(node)和關系(relation)的鏈表表示。

圖4 neo4j的數據存儲模型 圖5 部分人物關系鏈

本研究的neo4j存儲數據的方法(算法2)。

算法2:DataToNeo4j

input df_data //df_data 是存儲三元組的數組

output node and symbolic link relationship

Step1: create_node(e1,e2) //創建節點node

Step2: for name ine1,e2

Step3: create_relation(df_data) //創建邊/關系

Step4: for m in range(0,len(df_data)) //遍歷數組

Step6: match a,b where a=e1and b=e2//匹配關系的兩節點

Step7: create a → b

Step8: end for

Step9: end for.

在算法2中,輸入是前一節生成的三元組數組{(ei,rt,ej|i,j=1,2,…,n;t=1,2,…,m;m

2.2 分析層

分析層的關鍵作用是將用戶輸入的自然語言準確分詞,這樣才能提高反饋答案的正確率。本研究的人物知識查詢的具體流程圖如圖6所示,當用戶輸入問句,經LTP分詞模型后查詢知識圖譜,若能夠匹配,則直接查詢數據庫,若不匹配則查詢相似詞典再重新經LTP分詞,將新的分詞結果映射到知識圖譜中,并從數據庫抽取答案。

圖6 知識查詢流程圖

2.2.1 語義解析模塊

本模塊是人物知識查詢的主要技術支撐,主要完成對用戶輸入的問句中單詞的詞性進行判斷,功能的實現是借助哈工大開源LTP分詞模型和本研究根據《駱越演義》構建的相似詞典共同完成。

由于LTP模型只能處理一些日常的詞語,而《駱越演義》是描述的是特定民族文化的語言文本,一些人名類的詞語不一定能準確分詞,而分詞不準確,那么詞性標注也會出錯,例如,人名“黎修”,如果把它拆分成“黎”和“修”就不能標注成一個人名了,這樣就必然會影響返回結果的正確率。所以,增加一個相似詞典,將《駱越演義》中涉及所有的人名、所屬部落都加入相似詞典里。首先構建了m個數組X={x1,x2,…,xn},m表示相似詞典中的實體數,n表示相似詞的個數;然后將數組X中的詞映射到同一個實體Z,得到集合S={Z1,Z2,…,Zm},S表示為相似詞典;將S加入LTP的分詞庫中再對問句進行分詞處理;就能增加分詞查詢的正確率了。

總之,學校的安全教育無小事,孩子們的安全更是牽動著千家萬戶。 因為學校不僅僅是學習知識的搖籃,更應該是學生健康平安成長的樂園。讓我們用心與情來共織一張安全教育之網,讓社會、學校和家長共建一道安全防護欄!讓嬌艷的生命之花越開越芳香燦爛!

2.2.2 查詢結果生成模塊

本模塊負責將語義解析模塊獲得的分詞結果映射到知識圖譜中查找對應實體,然后匹配數據庫生成答案并反饋到前端展示界面。

2.3 應用層

應用層向用戶提供交互式的知識查詢功能,允許用戶以問句的方式向系統進行條件查詢和知識瀏覽功能。

2.3.1 知識概覽查詢

知識概覽查詢是指向系統提出瀏覽知識圖譜的請求,系統將展示《駱越演義》小說內容的全部知識結構。實現方法是在《駱越演義》知識圖譜中,調用Cypher查詢語句‘MATCH (n) return (n)’,n表示知識圖譜中的實體,該語句可以返回所有數據,即《駱越演義》知識關系的全貌圖。如圖7展示了其中7個部落的知識關系全貌圖。

圖7 部分知識關系可視化全貌圖

2.3.2 條件查詢

條件查詢是指用戶在系統界面輸入查詢語句,系統調用分析層的語義解析模塊,理解查詢語句的語義,并從數據庫中查找與查詢語義匹配的知識結構,返回到系統前端ECharts可視化圖表工具中。實現方法是對用戶輸入問句進行LTP分詞并對結果調用語句: ′MATCH(n:el)-[re:r]->(s)returnn,re,r′,其中n表示問句的實體,el表示實體名稱,re是實體間的關系,關系名稱為r,通過查詢和實體el具有關系r的實體并返回結果。如圖8中展示了當用戶問“金的長子是誰?”,本系統通過匹配知識圖譜找到答案“燮邕”并展示“燮邕”的部落、性別、人物關系、職位和“燮邕”與“金”的人物關系圖。

3 結 語

知識圖譜是以圖的形式表現客觀世界中的實體(概念)及其之間關系的知識庫。利用知識圖譜來表示人物關系能直觀地展現人與人之間的聯系?!恶樤窖萘x》是一部人物關系和戰爭事件關系錯綜復雜的大型小說,為了更充分地展示小說中人物和事件關系,設計并實現了對《駱越演義》的知識關系可視化系統。本研究的工作包括:提出了一種基于依存句法分析的小說文本實體關系抽取并構建成知識圖譜的方法;對戰爭歷史類小說構建了一套實體關系定義表。在LTP中加入相似詞典提高分詞準確率;應用ECharts對人物和事件關系可視化。本研究不足之處在于構建的實體關系定義表方法效率比較低,如何提高方法效率,高效地抽取數據是下一步的研究方向。

猜你喜歡
駱越演義三元組
特征標三元組的本原誘導子
駱越?印象系列設計
關于余撓三元組的periodic-模
一個時態RDF存儲系統的設計與實現
三國演義
南寧市博物館館藏西周銅盤賞析
《三國志演義》的“知遇”之感
駱越花山巖畫的稻作文化解讀
西甌、駱越的出現、分布、存在時間及其它
逐鷹演義之戰三英
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合