尼瑪頓珠,洛桑嘎登★,景麗莎
(1.西藏大學信息科學技術學院,西藏 拉薩 850000;2.貴州省電子證書有限公司,貴州 貴陽 550081)
藏醫藥起源于西藏,有著悠久的發展歷史、鮮明的民族特色、獨特的診療方法、系統的理論體系和浩瀚的文獻典籍,是祖國醫藥學寶庫和中華民族文化的重要組成部分,是我國最為完整、最具影響的民族醫藥學之一[1]。繼承和發展藏醫藥事業對弘揚優秀傳統文化,豐富和發展祖國醫藥學體系,造福各族群眾具有十分重要的意義[2]。“改革開放以來,青海和西藏藏醫藥事業快速發展,為解決慢性病、高原病等發揮了重要作用。但是隨著醫藥衛生事業的快速發展和人民群眾對醫療高科技化、高安全性的需求不斷增長,藏醫藥事業發展面臨許多嚴峻的問題,藏醫藥珍貴文化遺產損毀遺失現象嚴重,古籍文獻損毀和傳統診療技術失傳現象十分突出”[3]。所以,通過信息化手段建立系統的藏藥知識庫迫在眉睫。目前知識圖譜的構建方式主要有“自頂向下”和“自底向上”兩種構建方式[4],最常用的則是“自底向上”這種構建方式,從下往上層層遞進。經查閱相關資料,已有學者研究基于漢語文文本的西藏旅游的知識圖譜,但是基于藏文文本的知識圖譜研究和有關藏藥知識圖譜的研究寥寥無幾。
經調研查閱相關資料,目前我國藏醫藥行業專門的門戶網站是中國藏醫藏藥網,雖然這并不是唯一的藏藥網,但相較于其它藏醫藥網,其中對于藏醫藏藥的相關信息記載較為準確與全面,所以本文的數據來源主要依靠的是中國藏醫藏藥網。不僅如此還加入當今網絡爬蟲技術。:
本文通過采用不同的數據檢測、審查、處理、校驗等方法,實現藏藥網全站式爬取數據。網上爬取的原始數據包含很多種數據,比如圖片數據、視頻數據,還有部分的亂碼數據,針對項目需要,對數據進行了清洗,過濾掉無效的信息,刪除重復信息,并將這類數據結構化,存入MySQL數據庫中,方便后續分析使用。
“命名實體識別(Named Entity Recognition,簡稱NER),是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等”[5]。“通常包括兩部分:(1)實體邊界識別;(2)確定實體類別(人名、地名、機構名或其他)[6]”。實體識別則是一種信息提取技術,指的是在給定的數據里,將自己所需的實體類型選出來的一個過程。“而關系抽取主要任務是從文本中識別出的實體中抽取實體間的語義關系”[7],指的是不同實體之間的相互聯系,因為實體之間并不是相互獨立的,往往存在某種聯系[8]。比如爬取這種一個句子? ?????? ???? ???? ???? ??? ?????? ??? ???? ???????? ????? ??????? ??? ???? ????? ????? ????? ??? ???然后我們通過分詞,然后我們從具有規律的藏醫藥實體的詞庫中的實體對比,并句子中提取出藏醫藥實體,如???????????????藏藥實體。
藏藥實體識別和實體關系抽取是構建藏藥知識圖譜的前期任務。藏藥實體識別的過程主要通過規則匹配識別的方法。具體步驟為,分析大量的實體在文本中的出現規律,比如分析上下文信息。發現很多藏藥實體前后都會很規律的出現幾個詞匯,比如“xxx???”、“? xxx”,另外組成藏藥實體的名稱用詞也有很多規律,比如很多藏藥的名稱中包含數詞,如“? ???? ???? ???? ?”、“? ??? ????? ????? ?”等,歸納了十幾個這樣的規則,并且按照這些規則建立一個詞庫,然后通過規則匹配在爬取的藏文文本中去自動提取藏藥實體,之后在提取結果上進行一次人工校對,最終確定為藏藥實體名稱。分詞和提取關鍵詞的過程如下:
用戶輸入:? ??? ????? ????? ?????? ???? ???? ???? ?? ???? ??????
首先設字典中最長的單詞(max_Len),然后在字符串中取一個跟最大長度一樣的子串,如:取子串“? ??? ????? ??????????”,然后在進行匹配,如果匹配失敗,每次去掉匹配字段的最后面的一個字。直到子串跟詞庫中的某個元素完全匹配為止。最后匹配成功的子串如“? ??? ????? ????? ??”,反復對用戶輸入的字符串進行正向最大匹配算法,然后加到相應的列表或字典中為下一步進行圖譜構建做準備。程序實現藏文分詞和提取關鍵詞實現代碼如圖1所示:

圖1 分詞代碼
實體關系抽取是指從句子中抽取兩個實體之間的關系類別的任務[9]。作為自然語言處理的關鍵性技術,實體關系抽取在信息檢索、知識圖譜、自動問答系統等領域具有廣闊的應用前景。本文主要通過模式匹配的過程主要運用語言學和自然語言處理學的知識,在關系抽取任務之前,通過人工構造實體關系的特征關系詞或規則,并將它們存儲下來。在實體關系抽取任務中,將規則與預處理后的非結構文本相匹配,提取出了三元關系組。
藏藥實體關系抽取主要使用遠程監督方法。具體過程是,首先和實體識別過程類似,通過一系列規則抽取粗略的實體關系,如充分利用藏語中格助詞的規則,比如屬格、施格等,得到部分關系之后,把關系存入數據庫。其次,只要在數據庫中已經存在關系的兩個實體同時出現都認為是這類關系,實驗證明該方法在藏醫藥這類固定領域的文本上取得的效果很好。
通過上述數據獲取、數據清洗、知識抽取、知識存儲等工作基礎上,需對所提取的數據進行整合,整合后的結果用三元組<實體1,關系,實體2>來表示,然后將數據存儲在Neo4j圖形數據庫中。最終通過哈工大語言技術平臺(LTP)技術,對用戶在搜索框中輸入的問題進行分詞、提取關鍵詞,提取實體之間的關系,然后通過實體與實體之間的關系構建它們之間的圖譜關系,并且可視化的方式展示在前端。本文利用neo4j技術,實現了藏藥知識圖譜系統的實現。
本設計整體采用Flask框架完成前后端交互,功能可以分為:知識圖譜展示系統、分類可視化、關系展示功能、檢索功能和問答系統。如圖2所示:

圖2 設計總體架構
用戶根據自己的賬號登陸之后,第一個頁面看到是一個可視化頁面,那個主要功能是把各個藏藥的分類及所占的比例通過柱形圖、餅狀圖、等可視化的效果展示給用戶,進入系統之后的整體效果如圖3所示:

圖3 可視化界面
用戶可以通過自己在該頁面的搜索框中輸入的內容來查找自己所找藏藥屬于哪個藏藥分類的情況,并且通過圖譜的形式展示給用戶。
此頁面針對想要了解的藏醫藥和查詢藏藥,通過在搜索框中輸入藏醫藥有關的問題之后,可以將此藏藥的特點、藥效、物理性質、圖片等內容查詢出來以藏漢兩種語言的形式顯示在平臺上。并且可以對自己輸入的問題會做一個命名實體識別,并把問題當中的地名、機構名、藥名等提取出來并作數據庫中的查找出相應的藥物的信息及,它屬于的藏藥分類關系。
本文利用數據爬蟲技術獲取數據,經過數據清洗,知識抽取,知識存儲等過程構建了一定規模的藏藥知識庫,在采用結構化知識組織存儲的基礎上實現了知識圖譜展示系統。該系統包含藏藥知識分類功能、關系展示功能、知識檢索功能和藏藥知識問答等功能。雖然本項目實現了有關藏藥的知識圖譜展示系統,但是在數據量和數據范圍上僅限于常見的藏藥領域,下一步需要從藥物的構成成分、藥物的研制流程、藥物的發展脈絡等方面繼續收集數據,做一個數據更全,信息更豐富的圖譜展示平臺,并應用于藏醫知識教學和研究的實際應用中。