楊嘉炫 雒偉群 張兆基
西藏民族大學信息工程學院,陜西 咸陽 712082
唐蕃古道,這是一條唐代以來跨越陜西、甘肅、青海、四川和西藏五省的道路,被稱之為我國古代三大通道之一,吐蕃來唐使者已知的往來次數(shù)就多達19次,由此可見,唐蕃古道沿線典型文物知識圖譜可視化研究對挖掘研究唐朝與吐蕃王朝之間政治、經(jīng)濟、文化等各方面的關(guān)系都有深遠的意義。本文對唐蕃古道沿路典型文物的可視化研究,為之后的深入研究文物蘊含的歷史意義以及考古價值甚至推動社會長治久安都有著十分重要的意義。
知識圖譜[1]概念最早于2012 年由Google 公司提出,為了優(yōu)化其搜索引擎,之后被應用到多個不同的領(lǐng)域中,知識圖譜是一個語義網(wǎng)絡,包含很多語義信息,其基礎組成單元是三元組,即由“實體—關(guān)系—實體”以及實體與自身相關(guān)的屬性值對,由關(guān)系關(guān)聯(lián)不同的實體,構(gòu)成網(wǎng)狀的知識結(jié)構(gòu)[2],知識圖譜中的實體表示與圖中的節(jié)點類似,節(jié)點之間的關(guān)系用邊來表示[3],知識圖譜將知識的抽象化轉(zhuǎn)換為了圖形表示,這為我們提供了總結(jié)變化規(guī)律等的重要價值。知識圖譜的構(gòu)建是唐蕃古道文物知識庫發(fā)展建立的基礎,由于數(shù)據(jù)源和流程之間的差異,知識圖譜的構(gòu)建方法分為自頂向上和自頂向下[4],其中自頂向上的構(gòu)建方法是從開放鏈接的數(shù)據(jù)源中提取實體、屬性和關(guān)系,加入到知識圖譜的數(shù)據(jù)層,然后將這些知識要素進行歸納組織,逐步向上抽象為概念,最后形成模式層。而自頂向下構(gòu)建則是從模式層開始構(gòu)建,建立本體概念,再依據(jù)模式層進行數(shù)據(jù)層的實現(xiàn)。針對多方面的本文使用自頂向下的構(gòu)建方法,在百度百科數(shù)據(jù)鏈爬取和其他數(shù)據(jù)源提取非結(jié)構(gòu)化、半結(jié)構(gòu)化的唐蕃古道典型文物,以此為基礎抽取實體、屬性及關(guān)系信息,再將數(shù)據(jù)處理為三元組,存儲在唐蕃古道典型文物知識圖譜中,再利用Neo4j 進行可視化展示,完成唐蕃古道典型文物知識圖譜可視化研究。
唐蕃古道知識圖譜構(gòu)建過程主要分為兩大部分,一是典型文物的模式層構(gòu)建,由此可以構(gòu)建形成文物的實體和關(guān)系,二是典型文物的數(shù)據(jù)層構(gòu)建,依照模式層的實體和關(guān)系進行關(guān)鍵數(shù)據(jù)提取,最后形成知識圖譜三元組,為后面的可視化提供數(shù)據(jù)。
模式層(Schema)指知識圖譜的概念及概念之間的關(guān)系[5]。本體指采用形式化方式,描述某個領(lǐng)域內(nèi)的概念及其關(guān)系。本體的知識表示就是要把兩個概念實體之間的關(guān)聯(lián)找到,本文利用本體[6]的描述思想,構(gòu)建唐蕃古道典型文物知識圖譜的模式層,構(gòu)建內(nèi)容包括唐蕃古道相關(guān)的實體、實體屬性以及文物與屬性之間的關(guān)系,即(概念實體、關(guān)系、概念實體)三元組。
對于唐蕃古道中的典型文物定義不同的實體與關(guān)系,依據(jù)文物的信息定義了八個實體類和五個關(guān)系類,實體類分別是文物名稱、文物類別、文物材質(zhì)、文物朝代、文物尺寸、收藏位置、所屬路線段、文物價值。例如西藏段的文物名稱有:唐蕃會盟碑、銅鍍金聚蓮塔、八寶紋琺瑯凈水瓶、布畫祖孫三代法王像、合金寶生如來像、銀質(zhì)鏨八寶紋壇城;文物類別有唐卡、碑、杯、壇城、瓶、塔、錦、盤、壺等;文物材質(zhì)有石頭、合金、布、銀、銅、金、玻璃、絲綢等;文物朝代有明朝、唐代、清朝等;文物尺寸有長度、寬度、高度等;收藏位置有西藏博物館、海西州民族博物館、甘肅省博物館、青海省博物館、四川博物館等;所屬路段分別為陜西段、甘肅段、青海段、四川段和西藏段;五個路線段和大部分文物還有其文物價值的描述,比如唐蕃會盟碑,屬于唐蕃古道的終結(jié)路段西藏段的文物,它是漢藏兩大民族團結(jié)友好的歷史見證,具有重大的歷史意義。五個關(guān)系類分別是分類關(guān)系、屬性關(guān)系、時間關(guān)系、空間關(guān)系、關(guān)聯(lián)關(guān)系。例如分類關(guān)系表示文物所屬的類別;屬性關(guān)系表示文物的屬性,如文物的材質(zhì)和尺寸等;時間關(guān)系表示文物的產(chǎn)生時間,如唐代、明朝等;空間關(guān)系表示文物的空間特征,如文物的收藏位置;關(guān)聯(lián)關(guān)系表示文物關(guān)聯(lián)的路線段,即五大路線段。
唐蕃古道典型文物的數(shù)據(jù)層構(gòu)建屬于知識抽取部分,通過半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)抽取文物的相關(guān)信息,再將這些信息與模式層所構(gòu)造的概念與關(guān)系一一對應起來。
1.2.1 知識獲取。數(shù)據(jù)獲取常用的途徑有由知識工程師從專家獲取、由智能編輯程序從專家獲取、由歸納總結(jié)程序從大量數(shù)據(jù)中歸納出所需知識、由文本理解程序從教科書或科技資料中提取出所需知識。在數(shù)據(jù)源[7]方面,本文中用于構(gòu)建唐蕃古道典型文物的本體庫資料來源主要有:一是知網(wǎng)等資源型搜索引擎;二是百度百科等開放鏈接資料集;三是從事藏區(qū)文物科研的機構(gòu)等渠道;四是文物藏品展覽會信息。對于第二種來源,本研究采用python 爬蟲技術(shù),先用urllib模塊爬取百度百科相關(guān)文物的網(wǎng)頁源代碼,再利用正則表達式進行數(shù)據(jù)分析,保留所需要的文本內(nèi)容,形成唐蕃古道文物的數(shù)據(jù)集。
從獲取文物的百度百科詞條地址可以觀察出,只要在https:∕∕baike.baidu.com∕item∕后加上所需的實體名稱即可獲得其URL,對網(wǎng)站中的源碼,再進行篩選操作,以唐蕃會盟碑的數(shù)據(jù)提取為例,詞條如圖1 所示。
先獲取唐蕃會盟碑的url 鏈接“https:∕∕baike.baidu.com∕item∕+“唐蕃會盟碑””,在爬取過程中為避免被網(wǎng)站限制訪問,須在headers 中添加User-Agent,這是為了模擬現(xiàn)實用戶真實的訪問網(wǎng)站,將其設置為電腦瀏覽器的訪問,再利用urllib 模塊進行爬取,此時爬取的內(nèi)容是二進制形式,不能用于提取所需要的信息,所以需要用decode 函數(shù)進行解碼操作,即decode(“utf-8”),這一代碼可以將其類型轉(zhuǎn)化為字符型,完成后運行打印操作就可以看到二進制轉(zhuǎn)化為了可以利用的信息,再根據(jù)模式層中的概念實體,比如:文物材質(zhì)、文物類別等,所以我們需要在獲取的源碼中保留的部分是碑上內(nèi)容,以及包含其收藏位置的簡介第二段,因此最后進行正則表達式篩選,所寫的正則表達式為<div class="para" label-module="para">(?P<a>.*?)<.*?data-lemmaid="15719689">(?P<b>.*?)<∕a>(?P<c>.*?)<∕div>,提取結(jié)果如表1 所示。
以此類推,收集其他百度百科來源的文物數(shù)據(jù)。從以上四種方式獲取大致兩百條數(shù)據(jù),除去重復和非五省文物實際收集可用文物為92件,實體和關(guān)系達到496條,從唐蕃古道典型文物而言,數(shù)據(jù)量適中。
1.2.2 命名實體識別和關(guān)系抽取。命名實體識別又稱實體抽取,是指是指判斷出給定文本中具有特殊且固定含義的實體,主要內(nèi)容包括人名、地名、機構(gòu)名、專有名詞等[8],實體識別常用的方法有基于模版和規(guī)則、基于序列標注的機器學習方法、基于深度學習的方法、結(jié)合遷移學習、對抗學習等新方法,本文根據(jù)1.1 節(jié)中的模式層的實體屬性與關(guān)系,在1.2.1 節(jié)獲取的語料集中進行抽取操作,例如唐蕃會盟碑、鑲金獸首瑪瑙杯、三彩載貨臥駝俑等文物名稱。構(gòu)建唐蕃古道典型文物的數(shù)據(jù)層,抽取的文物朝代有魏晉十六國、唐代、清朝等,通過上述過程可以獲取在唐蕃古道中的典型文物的相關(guān)的實體。
所謂實體關(guān)系抽?。?]即從文本中抽取出兩個或多個實體之間的語義關(guān)系,是文本獲取知識圖譜三元組的主要技術(shù)手段,也為構(gòu)建可用并且質(zhì)量有保證的知識圖譜打下堅實的基礎,關(guān)系抽取大致有幾種常用的模型,一是基于規(guī)則匹配的方法,這是一種早期關(guān)系抽取最常用的方法,即由專業(yè)的熟悉知識的語言學者參與,當規(guī)則制定得很完善并且語料集受限制時性能較好,但是該方法通用性較低很難移植到其他不同的領(lǐng)域,并且人工的勞動量不小,代價比較昂貴。二是基于詞典或者知識庫的方法,可以根據(jù)詞典本身的關(guān)系來識別匹配,單詞方法受限與詞典的容量,并且對同義詞、反義詞之類的關(guān)系很難識別。
唐蕃古道典型文物的關(guān)系抽取則是根據(jù)1.1 節(jié)模式層的構(gòu)建來提取實體關(guān)系三元組,以唐蕃會盟碑的數(shù)據(jù)為例,對于“樹于”“保存位置”等詞,進行替換,替換為所定義的統(tǒng)一的實體關(guān)系,即“收藏位置”。
命名實體識別技術(shù)的實現(xiàn)是利用label-studio,這是一個開源的數(shù)據(jù)標注、注釋工具,功能十分強大,可以進行命名實體識別、文本分類、圖像分類等AI任務。label-studio 在虛擬環(huán)境運行比較穩(wěn)定,因此在conda中創(chuàng)建虛擬環(huán)境進行安裝。進入標注工具,標注的輸入語料集類型須為txt,并且以每一行的數(shù)據(jù)作為一個待抽取任務,因此數(shù)據(jù)源中各個文物的信息需按行添加至文本文檔。
添加至label-studio 中后數(shù)據(jù)集會按行自動轉(zhuǎn)換為同等數(shù)量的待標注集,在標注標簽中,按1.1中的實體屬性和關(guān)系進行自定義,可根據(jù)模式層所的關(guān)系進行設置,比如文物名稱、文物材質(zhì)、文物尺寸、文物朝代、文物類別、收藏位置等,以唐蕃會盟碑標注為例,標注結(jié)果如圖2所示。
圖2 標注結(jié)果
標注結(jié)果有多種存儲方式,本文為方便用excel打開并提取,選用csv文件格式轉(zhuǎn)出,如表2所示。
表2 標注導出結(jié)果
類似數(shù)據(jù)集進行同樣處理,除此之外其他大部分數(shù)據(jù)有較為明顯的實體信息,利用python 進行文字提取即可,處理之后得到(概念實體,關(guān)系,概念實體)的三元組,以唐蕃會盟碑為例,即(唐蕃會盟碑,屬性,石頭)......這些典型文物的形式全部轉(zhuǎn)化為三元組后就可以用于之后的可視化展示。
Neo4j 是一款開源的圖數(shù)據(jù)庫,它可以存儲節(jié)點、關(guān)系以及圖數(shù)據(jù),并提供了強大的查詢和分析功能。與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫不同,Neo4j 對于圖形數(shù)據(jù)的處理效率更高,可以更好地支持復雜的數(shù)據(jù)建模和查詢操作。在Neo4j 中,節(jié)點是數(shù)據(jù)庫中的基本單元,節(jié)點之間通過邊(也稱為關(guān)系)相連,從而構(gòu)成圖。每個節(jié)點和邊都可以包含屬性信息,這些屬性可以幫助更好地理解數(shù)據(jù)結(jié)構(gòu)。此外,Neo4j 還支持節(jié)點和邊的標簽,便于對不同類型的節(jié)點和邊進行分類和查詢。Neo4j 提供了Cypher 查詢語言用于查詢和操作圖數(shù)據(jù)。Cypher 具有簡潔的語法和易于理解的查詢方式,可以輕松地執(zhí)行復雜的查詢和數(shù)據(jù)修改操作。
故本文展示的知識圖譜的可視化就是通過Neo4j在JDK 17 版本的Java 虛擬機上進行可視化關(guān)系圖展示。
Neo4j 節(jié)點和關(guān)系有多種存儲方式,最常用的有主動創(chuàng)建以及利用csv 文件批量導入節(jié)點,由于手動添加工作量大,故本文采用文件導入的方式添加實體和關(guān)系?;谇懊娑x的模式層和數(shù)據(jù)層獲取的唐蕃古道典型文物數(shù)據(jù),并且由于實體和關(guān)系中包含中文,故將其利用記事本的方式轉(zhuǎn)換為以utf-8 編碼的csv 文件,部分實體數(shù)據(jù)如圖3、關(guān)系數(shù)據(jù)如圖4 所示,將實體和關(guān)系文件傳入Neo4j 下的import 文件夾,利用cypher 語句進行導入,以文物名稱實體類為例,其代碼如下:
圖3 部分實體數(shù)據(jù)圖
圖4 部分關(guān)系數(shù)據(jù)圖
load csv with headers from′file:∕∕antique.csv′as line
create(:文物名稱{name:line.name,id: line.id,des:line.des,picadd:line.picadd});
file 后面的則是實體所存儲的文件,文物名稱則是這些節(jié)點所屬的實體類,表格第一行是節(jié)點的屬性,包括文物價值、id 號以及圖片url。關(guān)系類代碼如下:
load csv with headers from′file:∕∕∕時間.csv′as line
match(from:`文物名稱`{id:line.from_id}),(to:`文物朝代`{id:line.to_id})
merge(from)-[:時間{property:line.property}]->(to)
與節(jié)點代碼相類似,只是最后進行了id 匹配,借助兩個實體類中的唯一標識id 來創(chuàng)建關(guān)系。后續(xù)如若有新的文物及關(guān)系需要添加或修改,可以直接加入表格,在導入代碼的march 中進行重復性篩選重新導入即可。
由于neo4j 的查詢檢索功能完善,也可以進行知識圖譜展開與收縮,知識圖譜可視化價值體現(xiàn)以三方面為例:局部文物可視化,唐代文物可視化和總體典型文物可視化。圖5 是生成的局部文物知識圖譜截圖,每一個圓形節(jié)點都是一個實體,右側(cè)有它的各種屬性,不同實體之間的連接線就是它們的關(guān)系,每個關(guān)系都有屬于它的起始節(jié)點、目標節(jié)點、標簽和方向,而方向則賦予了圖的語義化特征,其中我們還可以看到有關(guān)唐蕃會盟碑方面的概念,揭示了唐代發(fā)生的歷史事件和與各個概念節(jié)點的關(guān)系,通過這些概念可以復現(xiàn)文物故事,向我們展示了藏漢民族在文化、經(jīng)濟交流中情比金堅的友誼,對于沿線地區(qū)與祖國關(guān)系的挖掘具有深遠的現(xiàn)實意義。
圖5 文物局部特征可視化
根據(jù)唐蕃古道所涉及的五個省份,將文物劃分為五條路線,起始為唐蕃古道,目標節(jié)點為五省份,關(guān)系為路線,關(guān)聯(lián)路線的可視化在導覽和展覽優(yōu)化方面具有十分有意義的價值:通過圖譜中的所屬路線段關(guān)系,可以基于路線段的關(guān)系和文物的特征來優(yōu)化文物導覽和展覽的安排,設計更有邏輯和連貫性的展覽路線,提供更豐富和有意義的參觀體驗。
其次,通過將文物數(shù)據(jù)匯總再進行某一關(guān)系的展示可以得到學術(shù)研究、文物保護和旅游教育等方面的價值,以唐代文物為例,輸入命令match(n:`文物朝代`{name:′唐代′})return n可以得到對唐朝文物的匯總,以更好地理解唐代沿線地區(qū)的文化遺產(chǎn)和交流,如圖6所示。
圖6 唐代文物可視化
通過對匯總文物節(jié)點的分析,我們可以觀察到唐代文物在沿線地區(qū)的藝術(shù)風格和工藝技術(shù)的傳播和演變。例如,三彩絞胎騎馬狩獵俑和三彩載貨的臥駝俑展示了唐代三彩工藝在沿線地區(qū)的流行和發(fā)展。這些文物節(jié)點提供了唐代藝術(shù)和工藝技術(shù)在唐蕃古道沿線的影響和演進的見證。還有一些文物節(jié)點反映了唐代沿線地區(qū)與蕃部族群之間的文化交流。例如,彩繪胡人俑頭和彩繪騎馬帶帽女陶俑展示了當時與胡人文化和民族交流的痕跡。這些文物節(jié)點可以幫助我們了解唐代沿線地區(qū)的多元文化交匯和融合。
通過將這些唐代文物節(jié)點與唐蕃古道沿線的文化歷史相結(jié)合,我們可以理解這些文物的共同歷史背景和文化傳承,也能更全面地了解唐代在這一古道上的繁榮和交流,有助于我們更深入地探索和傳承唐代文化遺產(chǎn),以及彰顯唐蕃古道在歷史上的重要地位。
最后是唐蕃古道典型文物的全圖可視化,如圖7所示。
圖7 唐蕃古道典型文物知識圖譜可視化全圖
通過總圖我們不但能夠在圖譜中直觀地了解文物之間的聯(lián)系和共同特征以及它們在唐蕃古道沿線的地位和作用,也可以為文化遺產(chǎn)的保護和管理提供指導等。通過觀察圖中文物節(jié)點的收藏位置和所屬路線段,管理者可以更好地了解唐蕃古道沿線的文物分布情況,制定合理的保護策略。例如,鑲金獸首瑪瑙杯和鎏金仕女狩獵紋八瓣銀杯分別在不同的收藏位置,管理者可以根據(jù)圖譜中的信息,采取相應的措施,確保這些文物的安全和完整性。
不僅如此,就應用而言,可以將文物之間隱含的關(guān)系和知識挖掘出來呈現(xiàn)給用戶,再結(jié)合相應的技術(shù),為之后的唐蕃古道知識圖譜應用,比如自動問答(知識圖譜的問答功能會按照用戶提出的要求直接在知識圖譜中搜索、判斷推斷,把知識圖譜作為知識與問答結(jié)合起來,從而得到答案)、語義檢索(在用戶所輸入的詞語中提取關(guān)鍵字,再根據(jù)關(guān)鍵字匹配知識圖譜中的不同實體或關(guān)系,然后由知識圖譜的相關(guān)概念構(gòu)造來完成解析,最后把多個相關(guān)知識反饋給用戶。)、智能推薦(利用知識圖譜的圖結(jié)構(gòu),將智能推薦交互看作“實體-關(guān)系”路徑,從而基于路徑計算預測文本偏好。等功能提供數(shù)據(jù)源。
本文首先分析了研究唐蕃古道可視化的意義,解釋了知識圖譜的相關(guān)概念,通過定義的不同實體構(gòu)建了知識圖譜的模式層并以實例說明,再通過模式層中完成的概念構(gòu)造數(shù)據(jù)層。在獲取數(shù)據(jù)源時,采用的是python爬蟲技術(shù),利用urllib庫通過一系列代碼獲取所需的百度百科數(shù)據(jù),再基于label-studio 平臺進行命名實體識別以及關(guān)系抽取操作,將數(shù)據(jù)清洗為三元組形式,存儲到csv 文件中,最終利用Neo4j 技術(shù)可視化知識圖譜。唐蕃古道典型文物知識圖譜的構(gòu)建,不僅為可視化展示提供知識庫,還有多方面如自動問答、文物活化、文物闡釋等的拓展應用,對藏民族優(yōu)秀文化傳承有著積極的推動作用。