汪俊逸,史東輝,胡濤
(安徽建筑大學(xué)電子與信息工程學(xué)院,安徽合肥 230601)
歷史文化名鎮(zhèn)名村是我國(guó)文化傳承中不可或缺的一部分,它真實(shí)地記錄了傳統(tǒng)的建筑風(fēng)貌以及民俗民風(fēng),這些古村鎮(zhèn)承載了我國(guó)不同時(shí)期的文化與風(fēng)俗習(xí)慣。社會(huì)經(jīng)濟(jì)飛速發(fā)展帶來(lái)的城市化進(jìn)程,加速導(dǎo)致了我國(guó)古村落的數(shù)量銳減。
目前,國(guó)內(nèi)外對(duì)于古村落的研究多聚集在空間形態(tài)以及對(duì)地理學(xué)的研究。張泉,鄒成東[1]等人借助網(wǎng)格維數(shù)推算對(duì)我國(guó)名鎮(zhèn)名村的空間格局進(jìn)行了特征分析,并基于這些空間特征提出了優(yōu)化策略以助力名鎮(zhèn)名村的保護(hù)措施。高旭宏[2]以及Xie[3]等人通過(guò)GIS技術(shù)對(duì)歷史文化名鎮(zhèn)名村進(jìn)行空間特征分析,以此獲取地勢(shì)對(duì)村鎮(zhèn)的作用。陸林、葛敬炳[4]對(duì)徽州地區(qū)文化古城鎮(zhèn)的地理環(huán)境進(jìn)行分析最終得出地形的特征能夠有效延續(xù)古村落的文化傳承。Chen,Wei[5]采用景觀多功能研究方法對(duì)村莊改造相關(guān)因素進(jìn)行了探究,結(jié)果表明生態(tài)、生活之間存在長(zhǎng)期和同步相互作用。Gao,Wu[6]在研究傳統(tǒng)村落保護(hù)問(wèn)題中提到旅游業(yè)的發(fā)展是鄉(xiāng)村振興的關(guān)鍵點(diǎn),而旅游也可以極大地解決名鎮(zhèn)名村風(fēng)俗文化的傳承問(wèn)題。本文在結(jié)合前人對(duì)古村鎮(zhèn)研究的基礎(chǔ)上,考慮如何將數(shù)字化技術(shù)融入名鎮(zhèn)名村的保護(hù)工作,并將計(jì)算機(jī)技術(shù)與名鎮(zhèn)名村相結(jié)合,由此促進(jìn)文化名鎮(zhèn)名村的旅游業(yè)發(fā)展以助力歷史文化名鎮(zhèn)名村的文化傳承及保護(hù)事業(yè)。
近年來(lái),知識(shí)圖譜技術(shù)越來(lái)越頻繁地被應(yīng)用于各個(gè)領(lǐng)域,其中陳海玉[7]、劉爽[8]、Pandolfo[9]等人以及周亦[10]等人將知識(shí)圖譜應(yīng)用于歷史文獻(xiàn)領(lǐng)域。張?jiān)浦衃11]將知識(shí)圖譜技術(shù)應(yīng)用于歷史人物游學(xué)足跡上,由此實(shí)現(xiàn)游學(xué)足跡可視化。Zhou[12]等人將知識(shí)圖譜技術(shù)應(yīng)用于藥學(xué)領(lǐng)域,以助力藥物管理??紤]到名鎮(zhèn)名村相關(guān)資料的離散程度較高,且知識(shí)圖譜技術(shù)在名鎮(zhèn)名村領(lǐng)域的研究尚有欠缺。本文提出將知識(shí)圖譜應(yīng)用于名鎮(zhèn)名村領(lǐng)域,以此解決名鎮(zhèn)名村資料的關(guān)聯(lián)程度低以及查詢效率低等問(wèn)題。
歷史文化名鎮(zhèn)名村完整地反映著歷史時(shí)期傳統(tǒng)風(fēng)貌和地方民族特色。本文獲取的數(shù)據(jù)以中國(guó)傳統(tǒng)文化博物館、安徽省歷史文化名鎮(zhèn)名村百科對(duì)名鎮(zhèn)名村的介紹為主。經(jīng)過(guò)對(duì)近20年的中國(guó)歷史文化名鎮(zhèn)名村名單的篩選,最終確定安徽省存在歷史文化名鎮(zhèn)名村數(shù)量為35 個(gè)。其中共有歷史文化名鎮(zhèn)11 個(gè)、歷史文化名村24個(gè),如表1所示。
表1 安徽省歷史名鎮(zhèn)名村名稱(chēng)表
本文所使用的原始數(shù)據(jù)集是通過(guò)爬蟲(chóng)技術(shù),從百度百科及歷史文化館等名鎮(zhèn)名村科普網(wǎng)頁(yè)爬取的非結(jié)構(gòu)化文本。在數(shù)據(jù)采集的過(guò)程中,通過(guò)使用urllib包中的request 庫(kù)函數(shù)對(duì)網(wǎng)頁(yè)中HTML 格式的文本進(jìn)行爬??;爬取數(shù)據(jù)完成后,使用lxml 包中的etree.HTML對(duì)獲取的HTML數(shù)據(jù)進(jìn)行解析,并使用xpath函數(shù)通過(guò)標(biāo)簽id 屬性值匹配到原始數(shù)據(jù)集所需要的文本所在的標(biāo)簽,從而獲取本文數(shù)據(jù)集所需數(shù)據(jù)。
為貼合本研究構(gòu)建歷史名鎮(zhèn)名村的知識(shí)圖譜用于助力古村落數(shù)字化發(fā)展以及促進(jìn)其旅游業(yè)發(fā)展的初衷,本文構(gòu)建知識(shí)圖譜所使用的信息主要涉及歷史文化名鎮(zhèn)名村的地址、氣候、景點(diǎn)、古建筑、特色美食以及特色產(chǎn)品等方面。
本文標(biāo)注所使用的文本數(shù)據(jù)集是通過(guò)爬蟲(chóng)等技術(shù)自動(dòng)獲取,并經(jīng)過(guò)人工篩選得到的非結(jié)構(gòu)化文本。為了保證訓(xùn)練數(shù)據(jù)的標(biāo)簽與實(shí)體映射之間的準(zhǔn)確性,本文采用人工標(biāo)注和運(yùn)用jieba 庫(kù)的分詞技術(shù)對(duì)文本進(jìn)行分詞并結(jié)合詞典匹配的自動(dòng)化標(biāo)注技術(shù)對(duì)非結(jié)構(gòu)化文本數(shù)據(jù)集進(jìn)行高效率、高精度的命名實(shí)體BIO標(biāo)注工作,其中,實(shí)體的頭部標(biāo)注為B-XXX,實(shí)體剩余部分標(biāo)注為I-XXX,非實(shí)體部分標(biāo)注為O。
本文通過(guò)BIO標(biāo)注了41萬(wàn)文字的非結(jié)構(gòu)文本,其中存在實(shí)體類(lèi)型17 個(gè),關(guān)系類(lèi)型14 個(gè)。該數(shù)據(jù)集共包含6 620句非結(jié)構(gòu)化文本,17個(gè)類(lèi)別共計(jì)5 631個(gè)標(biāo)簽實(shí)體,由圖1中的標(biāo)簽統(tǒng)計(jì)分析得知,本文所使用的數(shù)據(jù)集標(biāo)簽分布較為均勻,不會(huì)由于某一樣本數(shù)量過(guò)小而導(dǎo)致該標(biāo)簽的分類(lèi)效果無(wú)法提升到最佳效果。其中訓(xùn)練集:驗(yàn)證集:測(cè)試集等于7:2:1。
本文基于Protégé 軟件構(gòu)建知識(shí)圖譜的概念層(Schema層),具體的概念層如圖2所示。Schema層的構(gòu)建大致可以劃分為以下4 個(gè)部分:1)類(lèi)別的定義。2)類(lèi)別的層次。3)對(duì)象屬性。4)關(guān)系屬性。
為了合理地構(gòu)建適用于旅游推薦及歷史文化傳承的歷史文化名鎮(zhèn)名村知識(shí)圖譜,基于安徽省歷史文化名鎮(zhèn)名村的相關(guān)知識(shí)進(jìn)行分析,以名鎮(zhèn)名村為核心實(shí)體,擴(kuò)充與名鎮(zhèn)名村的旅游業(yè)相關(guān)聯(lián)的實(shí)體。根據(jù)對(duì)安徽省文化博物館相關(guān)村鎮(zhèn)介紹的分析,本研究的知識(shí)圖譜定義了17個(gè)實(shí)體類(lèi),以及13個(gè)關(guān)系類(lèi)別,具體如圖3所示。
圖3 Schema層實(shí)體類(lèi)型和關(guān)系類(lèi)型圖
知識(shí)抽取技術(shù)可以應(yīng)用于多種數(shù)據(jù)源,如表格類(lèi)型的數(shù)據(jù)、純文本的數(shù)據(jù)以及數(shù)據(jù)庫(kù)中的數(shù)據(jù)都可作為知識(shí)抽取的源數(shù)據(jù)。本文中涉及的知識(shí)抽取技術(shù)在非結(jié)構(gòu)化文本的基礎(chǔ)上進(jìn)行,通過(guò)命名實(shí)體識(shí)別技術(shù)以及基于詞典匹配的關(guān)系抽取技術(shù)獲取構(gòu)建所需的節(jié)點(diǎn)、關(guān)系信息,具體內(nèi)容有:名鎮(zhèn)名村的地址、涉及的景點(diǎn)信息、相關(guān)人物以及相關(guān)事跡等。
為了從非結(jié)構(gòu)化文本中快速找到構(gòu)建安徽省歷史文化名鎮(zhèn)名村知識(shí)圖譜的實(shí)體數(shù)據(jù),本文將命名實(shí)體識(shí)別技術(shù)應(yīng)用于實(shí)體的抽取任務(wù)中。將BIO 標(biāo)注數(shù)據(jù)集輸入基于對(duì)抗訓(xùn)練的Bert-BiLSTM-CRF 模型中進(jìn)行訓(xùn)練,得到可以進(jìn)行實(shí)體識(shí)別的模型。
2.2.1 Bert-BiLSTM-CRF命名實(shí)體識(shí)別模型框架
本文所使用的基礎(chǔ)網(wǎng)絡(luò)模型架構(gòu)是基于BERT模型實(shí)現(xiàn)文本到詞向量的轉(zhuǎn)化,輸入下層的BiLSTM 模型進(jìn)行特征提取,并采用CRF模型作為序列標(biāo)簽的分類(lèi)層。通過(guò)在Bert編碼層加入對(duì)抗訓(xùn)練,向模型中輸入一定的噪聲樣本,在一定程度上提升了模型的魯棒性,其模型結(jié)構(gòu)見(jiàn)圖4。
圖4 BERT-BiLSTM-CRF+對(duì)抗訓(xùn)練的模型架構(gòu)
1) Bert-編碼層
Bert 模塊是基于Transformer 模型的編碼器部分進(jìn)行加工得到的[13-14]。Transformer 模型是基于自注意力機(jī)制結(jié)合殘差結(jié)構(gòu)的一種語(yǔ)義神經(jīng)網(wǎng)絡(luò)[14]。通過(guò)Bert 層的自注意力機(jī)制對(duì)詞向量的加權(quán)融合處理,使得原本的詞向量得到了更加豐富的上下文語(yǔ)義信息,在一定程度上提升了模型的識(shí)別效果。
2)BiLSTM-特征提取層
將通過(guò)Bert 層獲得的擁有豐富語(yǔ)義的詞向量輸入BiLSTM 層中進(jìn)行特征提取,對(duì)于不重要的語(yǔ)義特征進(jìn)行遺忘,對(duì)重要的信息進(jìn)行保留。前向的LSTM層不斷地提取擁有前文信息的語(yǔ)義特征,反向的LSTM 層從后往前提取后文的語(yǔ)義特征,將前文和后文的語(yǔ)義特征向量進(jìn)行拼接,得到擁有上下文語(yǔ)義的特征信息,并輸出每個(gè)字標(biāo)簽的得分值向量[15]。
3) CRF-分類(lèi)層
CRF 線性層會(huì)根據(jù)上層模型的輸出數(shù)據(jù)構(gòu)建一個(gè)狀態(tài)轉(zhuǎn)移矩陣M,矩陣中的元素Mi,j表示由詞性i到詞性j的得分,Pi,j表示在j標(biāo)簽下是單詞i的得分。對(duì)于句子s,標(biāo)簽序列為y=(y0,y1,...,yn),模型預(yù)測(cè)標(biāo)簽為y的得分可以通過(guò)公式(1)得到。
最終結(jié)果如公式(2)所示:
其中score()表示是正確的標(biāo)簽序列的分值,分母中的s 表示每種可能標(biāo)簽序列的分值。在CRF 中,當(dāng)前狀態(tài)不只與當(dāng)前局部狀態(tài)有關(guān),而是考慮到了整個(gè)序列的狀態(tài),故CRF能在命名實(shí)體識(shí)別任務(wù)中發(fā)揮高效的作用[16]。
在實(shí)體識(shí)別步驟中,需要從文本中識(shí)別出可能的實(shí)體位置,這一步可以用公式(3)表示:
其中,hi表示第i個(gè)位置的上下文向量,Wentity和bentity表示實(shí)體分類(lèi)器的參數(shù),Pentityi表示第i個(gè)位置的實(shí)體類(lèi)別概率分布。在實(shí)體分類(lèi)步驟中,需要對(duì)識(shí)別出的實(shí)體進(jìn)行分類(lèi),將其歸為不同的實(shí)體類(lèi)別,這一步可以用公式(4)表示:
其中,hentityi表示第i個(gè)位置的實(shí)體嵌入向量,Wclass和bclass表示實(shí)體分類(lèi)器的參數(shù),Pclassi表示第i個(gè)位置的實(shí)體類(lèi)別概率分布。
在實(shí)體分類(lèi)的過(guò)程中,通常會(huì)將不同的實(shí)體類(lèi)別表示為獨(dú)熱編碼,然后將實(shí)體嵌入向量與實(shí)體類(lèi)別矩陣相乘,得到實(shí)體分類(lèi)概率分布。
4)實(shí)驗(yàn)參數(shù)設(shè)置
本研究中所使用的具體的參數(shù)設(shè)置如表2所示。
表2 模型參數(shù)設(shè)置
2.2.2 實(shí)驗(yàn)結(jié)果與分析
本節(jié)將本文所使用的模型與近幾年的常用序列標(biāo)注模型進(jìn)行對(duì)比。在相同的實(shí)驗(yàn)條件下,將基于對(duì)抗訓(xùn)練的Bert-BiLSTM-CRF 與CRF 模型、LSTMCNNs-CRF 模型以及Bert-BiRNN-CRF 模型進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表3所示。
表3 不同模型的對(duì)比實(shí)驗(yàn)結(jié)果
本文模型相比于CRF、LSTM-CNNs-CRF、Bert-BiRNN-CRF 三個(gè)模型的F1 值分別提升了21.46%、19.29%以及7.1%。CRF 雖然具有一定的可解釋性和較好的泛化性能,但是其準(zhǔn)確率在序列標(biāo)注任務(wù)中可能會(huì)受到序列長(zhǎng)度的影響;LSTM-CNNs-CRF 模型將多種深度學(xué)習(xí)技術(shù)相結(jié)合,通過(guò)LSTM 來(lái)捕捉序列中的長(zhǎng)期依賴(lài)關(guān)系,通過(guò)使用CNN網(wǎng)絡(luò)來(lái)捕捉序列中的局部信息,最后使用CRF 層進(jìn)行標(biāo)簽預(yù)測(cè),性能上比CRF略好,但計(jì)算復(fù)雜度比較高;Bert-BiRNN-CRF模型相較于上述兩個(gè)模型具有較好的性能,通過(guò)Bert層對(duì)詞向量進(jìn)行轉(zhuǎn)化,并進(jìn)一步通過(guò)BiRNN提取上下文語(yǔ)義特征,最后通過(guò)CRF 層進(jìn)行序列的預(yù)測(cè),能夠很好地處理序列標(biāo)注任務(wù),但還未達(dá)到理想效果;與上述三個(gè)模型相比較,本研究通過(guò)使用BiLSTM 模型來(lái)替代BiRNN 模型,解決了BiRNN 在處理長(zhǎng)文本時(shí)的長(zhǎng)期遺忘造成的梯度消失的問(wèn)題。通過(guò)結(jié)合上下文語(yǔ)義的特征提取方式,有效地提升了標(biāo)簽的分類(lèi)能力。在訓(xùn)練過(guò)程中,通過(guò)加入對(duì)抗擾動(dòng)樣本,讓網(wǎng)絡(luò)在輸入的擾動(dòng)中學(xué)習(xí)到更為魯棒的特征表示,提升了模型的魯棒性和泛化能力。
通過(guò)上述實(shí)驗(yàn),將安徽省歷史文化名鎮(zhèn)名村的非結(jié)構(gòu)化文本輸入訓(xùn)練好的模型中進(jìn)行實(shí)體標(biāo)簽的識(shí)別。通過(guò)對(duì)實(shí)體識(shí)別的信息進(jìn)行提取,將實(shí)體與標(biāo)簽通過(guò)字典的形式進(jìn)行保存,如:{“岳西縣”:”county”,”響腸鎮(zhèn)”:”town”}的形式,以便于后續(xù)進(jìn)行知識(shí)圖譜的自動(dòng)化構(gòu)建過(guò)程。
上述實(shí)驗(yàn)的命名實(shí)體識(shí)別技術(shù)只能抽取出本文知識(shí)圖譜所需的實(shí)體數(shù)據(jù)集,建立完整的知識(shí)圖譜還需要考慮到不同實(shí)體間存在的語(yǔ)義關(guān)系,這是必不可少的。為實(shí)現(xiàn)關(guān)系抽取,本文采用預(yù)定義關(guān)系詞典與命名實(shí)體識(shí)別模型相結(jié)合的方法,具體流程見(jiàn)圖5。
圖5 關(guān)系抽取流程圖
在命名實(shí)體識(shí)別模型訓(xùn)練完成后,通過(guò)將非結(jié)構(gòu)化文本數(shù)據(jù)集處理成每句中至少包含兩個(gè)實(shí)體的數(shù)據(jù)集,并輸入命名實(shí)體識(shí)別模型中進(jìn)行實(shí)體的預(yù)測(cè),將預(yù)測(cè)的數(shù)據(jù)集與輸入的文本進(jìn)行匹配,得到構(gòu)建知識(shí)圖譜所需的實(shí)體列表。
結(jié)合關(guān)系詞典與實(shí)體數(shù)據(jù)集進(jìn)行實(shí)體之間的關(guān)系匹配,關(guān)系匹配詞典如表4所示。若句子中存在如表4中所示的實(shí)體對(duì),則將該實(shí)體對(duì)匹配到對(duì)應(yīng)的關(guān)系,并將獲取的關(guān)系與實(shí)體保存為三元組的形式,如{’三河古鎮(zhèn)’:’town’,’特色產(chǎn)品’:’relation’,’羽毛貢扇’:’specialty’}。通過(guò)Py2neo包來(lái)進(jìn)行安徽省歷史文化名鎮(zhèn)名村知識(shí)圖譜的自動(dòng)化構(gòu)建。
將上述實(shí)驗(yàn)所得到的實(shí)體以及關(guān)系通過(guò)字典的形式進(jìn)行存儲(chǔ),并將三元組數(shù)據(jù)集存放于.TXT 格式的文件中。通過(guò)File庫(kù)讀取.TXT文件中的數(shù)據(jù),并通過(guò)字典中的value值來(lái)區(qū)分所讀取的數(shù)據(jù)是實(shí)體還是關(guān)系,再根據(jù)類(lèi)別的不同,分別導(dǎo)入不同的構(gòu)建程序中。
在構(gòu)建關(guān)系的過(guò)程中,為避免同一個(gè)節(jié)點(diǎn)的重復(fù)構(gòu)建,使用merge 函數(shù)進(jìn)行節(jié)點(diǎn)的創(chuàng)建;在使用match函數(shù)時(shí),需要加上first 函數(shù)來(lái)解決上述重復(fù)構(gòu)建節(jié)點(diǎn)和關(guān)系的問(wèn)題。在構(gòu)建過(guò)程中,為降低代碼的復(fù)雜度,將三元組數(shù)據(jù)集中的節(jié)點(diǎn)標(biāo)簽、節(jié)點(diǎn)屬性通過(guò)參數(shù)變量的形式傳入到for 循環(huán)結(jié)構(gòu)中,通過(guò)復(fù)用代碼的形式降低程序的冗余程度。通過(guò)圖6所示的程序可以實(shí)現(xiàn)知識(shí)圖譜的自動(dòng)化構(gòu)建過(guò)程,最終得到604個(gè)實(shí)體以及634個(gè)關(guān)系,構(gòu)建好的知識(shí)圖譜如圖7所示。
圖6 自動(dòng)化構(gòu)建程序示例
圖7 安徽省歷史文化名鎮(zhèn)名村知識(shí)圖譜總覽
本研究通過(guò)深度學(xué)習(xí)訓(xùn)練了可以自動(dòng)抽取名鎮(zhèn)名村知識(shí)圖譜實(shí)體的命名實(shí)體識(shí)別模型,并且通過(guò)對(duì)抗訓(xùn)練提升了模型的魯棒性,進(jìn)一步提升了識(shí)別的精度。通過(guò)使用自動(dòng)化抽取以及自動(dòng)創(chuàng)建技術(shù),極大程度提升了構(gòu)建名鎮(zhèn)名村知識(shí)圖譜的效率;將知識(shí)圖譜與名鎮(zhèn)名村相結(jié)合,解決了非結(jié)構(gòu)化文本數(shù)據(jù)搜索效率低、關(guān)聯(lián)度低的問(wèn)題,為歷史文化名鎮(zhèn)名村的文化風(fēng)俗的傳承提供了一定的幫助。
未來(lái)知識(shí)圖譜的發(fā)展肯定不只限于靜態(tài)的模式。人類(lèi)的日常活動(dòng)以及與知識(shí)圖譜的交互活動(dòng),每時(shí)每刻都會(huì)產(chǎn)生新的數(shù)據(jù)以及大量的新事物,因此傳統(tǒng)的靜態(tài)知識(shí)圖譜推理技術(shù)需要考慮如何對(duì)時(shí)序信息進(jìn)行處理。在推理技術(shù)上逐步投入動(dòng)態(tài)知識(shí)推理方向上的研究。
隨著文本、視頻、語(yǔ)音信息的大量出現(xiàn),如何將多種模式的知識(shí)表示對(duì)齊,并構(gòu)建多模態(tài)知識(shí)圖譜,也將成為亟待解決的問(wèn)題,因此基于多模態(tài)技術(shù)的知識(shí)推理技術(shù)的發(fā)展也將成為未來(lái)的研究熱點(diǎn)。