田迎,單婭輝,王時繪
(1. 湖北大學計算機與信息工程學院, 湖北 武漢 430062;2.湖北省教育信息化工程技術研究中心, 湖北 武漢 430062; 3.績效評價信息管理研究中心(湖北大學), 湖北 武漢 430062)
抑郁癥(depression),也稱抑郁障礙(depressive disorder),是指由各種原因引起,同時以顯著且持久的心境低落為主要特征的一類心境障礙,持續(xù)時間一般超過兩周,對患者的社會功能有著顯著的影響,是嚴重危害人類精神和身體健康的重大疾病.據2017年世界衛(wèi)生組織調查顯示,我國的抑郁癥患者高達4.2%.對于抑郁癥患者來說,對抑郁癥知識的認知非常重要.盡早的診斷和治療可以降低病死率和復發(fā)率,亦能減輕患者自身的認知損害.
目前,臨床上對抑郁癥的識別診斷主要基于 ICD-10 或 DSM-V 中抑郁癥診斷標準,同時結合醫(yī)生對患者的訪談情況、量表情況和醫(yī)生的個人經驗進行[1].顯然,這種方式適用于醫(yī)生和患者一對一的檢測,而且需要花費醫(yī)生大量的時間.同時,這種方法也會受到一些主觀因素的影響,比如患者的配合程度、醫(yī)生的專業(yè)程度和患者對醫(yī)生的信任程度等,這些因素都有可能導致診斷不準確.而且,很多患者缺乏對自身的疾病認知和就醫(yī)意識,容易耽誤病情,導致在就診時患者很可能就已經達到了重度抑郁.所以在早期發(fā)現抑郁傾向和輕度抑郁癥有助于及時進行干預,可避免抑郁癥進一步加重.近年來,因為醫(yī)療資源的緊張和分布不均衡,很多在線求醫(yī)問藥的系統(tǒng)被開發(fā)出來,用戶可以在線上選擇自己想要咨詢的醫(yī)生,獲取疾病的診療信息也變得方便起來.但是這種方式需要大量醫(yī)生入駐線上平臺并上線才能解答問題.針對上述問題,本研究構建基于抑郁癥知識圖譜的中文自動問答系統(tǒng),該系統(tǒng)可以回答關于抑郁癥的藥物等信息,為病患提供抑郁癥疾病自助查詢.該系統(tǒng)增強了問答的時效性,不用等醫(yī)生上線就能實時解答患者的問題,可以加強患者對自身病情的了解,同時可在一定程度上緩解醫(yī)療機構的壓力.
1.1 基本定義知識圖譜的概念是由Google于2012年5月提出,其初衷是為了提高搜索引擎的搜索能力和結果,并且改善用戶的搜索體驗. 知識圖譜的結構跟圖是一樣的,都是由節(jié)點和邊組成的,圖中的節(jié)點對應知識圖譜中的實體,邊表示實體與實體之間的關系.知識圖譜具有強大的描述能力,主要用來描述客觀世界存在的各種實體、概念以及實體概念之間的關系[2].與傳統(tǒng)的Web頁面網絡的區(qū)別在于,知識圖譜中的節(jié)點由不同類型的實體代替了原來的網頁形式,而圖中的邊也由實體間豐富的語義關系代替了原來的連接網頁的超鏈接.
1.2 研究現狀知識圖譜分為通用知識圖譜和領域知識圖譜,近幾年,專家們在兩種知識圖譜上都有很多的研究.已經存在的大規(guī)模通用知識圖譜有Google Knowledge Graph和YAGO等. 通用域知識圖譜領覆蓋面全而廣,因此更多強調的是實體,很難統(tǒng)一管理完整的全局本體層[3],使用者一般是普通用戶.領域知識圖譜是面向特定的行業(yè)和領域的,數據更多的是半結構化和非結構化的,常見的領域知識圖譜有Open PHACTS、MusicBrainz、豆瓣等.現如今,也有越來越多的研究者開始構建中文知識圖譜,且內容越來越豐富,如OpenKG.CN平臺上有很多優(yōu)秀的開放知識圖譜.由于和人的健康息息相關,醫(yī)學領域的知識圖譜也被更多地開發(fā)出來.
1.3 醫(yī)學知識圖譜應用知識圖譜的應用非常廣泛,也發(fā)揮著越來越重要的作用.醫(yī)療信息系統(tǒng)有大量的、結構不一和動態(tài)的數據,知識圖譜是一種組織和管理這些數據的高效方式.知識圖譜使得醫(yī)療信息系統(tǒng)更加接近于人的思維和認知模式[4]. 目前知識圖譜在醫(yī)學上主要用于臨床治療決策支持、醫(yī)療智能語義搜索和醫(yī)療問答系統(tǒng)[5]等. 臨床治療決策支持是根據患者的個人情況,結合醫(yī)療領域的大數據分析,自動生成針對每個患者的治療方案,提供給醫(yī)生進行參考;醫(yī)療智能語義搜索是從醫(yī)學知識圖譜中聯(lián)合相關的實體、關系和屬性等信息來查詢,從而優(yōu)化醫(yī)療信息的搜索結果;醫(yī)療問答是醫(yī)療信息檢索的另外一種形式,它的返回答案是自然語言形式的,專業(yè)性更強.本研究主要實現基于抑郁癥知識圖譜的問答系統(tǒng).
2.1 文獻摘要數據獲取中國知網作為學術資源整合型、具有國際領先水平的資源檢索數據庫,包含的抑郁癥學術論文和資源豐富.通過關鍵字“抑郁癥”在知網進行搜索,可以獲得大量文獻信息,本研究需要捕獲的是抑郁癥相關的摘要信息.使用Web 爬蟲和WebKit瀏覽器引擎PhantomJS,可以獲取知網上大量抑郁癥相關的論文文章標題以及摘要數據[6].本研究一共爬取了1 898篇抑郁癥相關的摘要信息,將所有摘要數據放置在一個文件中,方便后續(xù)的操作.
2.2 抑郁癥知識抽取知識抽取,即從不同來源、不同結構的數據中進行知識提取,分為命名實體識別和關系抽取.實體抽取是從文本數據中識別和提取出命名實體,如藥物名稱和癥狀.關系抽取是提取出命名實體之間的關系.從文本中抽取三元組一般有兩種方法:一種是先進行命名實體識別再進行關系抽??;另一種是同時進行實體和關系的抽取.因為本研究數據中的摘要主要是圍繞一個疾病實體展開的,所以只需要抽取出另外一個實體以及兩個實體之間的關系R.
本研究將實體一共分為7大類,分別為疾病、藥物治療、癥狀、診斷、非藥物治療、流行病學和其他.實體之間的關系包括疾病-診斷、疾病-藥物治療、疾病-癥狀、疾病-非藥物治療、疾病-流行病學、疾病-其他共6個關系類型.具體關系類型如表1所示.
表1 實體間常見關系類型
本研究中的三元組是通過人工標注和自動提取相結合的方式來提取的. 標注方式使用的是“關系名+BIOES”,其中“R-B”標記該實體的開始字符,“R-I”標記該實體的中間字符,“R-O”標記無關字符,“R-E”標記該實體的結尾字符,“R-S”標記單個字符.如圖1所示,在訓練數據時,首先是人工按照“關系名+BIOES”的標注方法將訓練集中的數據進行標注,然后將其送入模型進行學習.測試數據時,首先用BiLSTM+softmax模型來預測出每個字的標簽,然后對標簽進行匹配,最后形成一個(實體,關系,實體)的三元組.本研究使用這種方法從論文摘要中獲得了386個實體和472條關系.
圖1 抑郁癥知識圖譜構建過程
2.3 知識表示知識圖譜中用三元組來描述事實,表示為(e1,r,e2),其中e1表示實體1,e2表示實體2,r表示實體1和實體2之間的關系.對于每一個實體,選擇以該實體為主語的三元組進行顯示. 知識圖譜是由多個實體以及實體之間的關系組成的,每個實體都有一個ID來標識,這個ID是全局唯一且確定的,每個關系則連接兩個實體.
2.4 知識存儲在知識圖譜中,通常有兩種存儲方式,分別為資源描述框架(resource description framework,RDF) 數據庫和圖數據庫 (graph database).
圖數據庫是根據“圖”這種結構來存儲和查詢數據.它的數據模型主要體現在實體(節(jié)點)和關系(邊)上,同時,對于鍵值對,也是可以處理的,因此這樣的存儲方式有利于處理復雜的關系問題.本研究使用開源圖數據庫Neo4j來進行抑郁癥知識圖譜的存儲,因為其具有強大的圖形搜索能力和一定的橫向擴展能力. Cypher是Neo4j提供的聲明式查詢語言,用它可以完成任意圖譜里面的查詢過濾,是相對簡單的查詢語法,而且功能強大.與此同時,對于規(guī)模較大的數據,Neo4j里的neo4j-import工具[7],可以處理千萬以上nodes的數據,而且處理速度非???本研究將關于抑郁癥摘要中抽取的抑郁癥相關的三元組通過Cypher語句和neo4j-import工具導入到neo4j數據庫中.圖2展示了抑郁癥知識圖譜的部分關系三元組.
3.1 問答系統(tǒng)概念問答系統(tǒng)是知識圖譜應用的一個重要組成部分. 問答系統(tǒng)是指用戶以自然語言的形式向系統(tǒng)輸入問題,系統(tǒng)通過分析和理解這些問題之后,從知識圖譜中找到相對應的結果,最后形成答案,以自然語言的形式返回給用戶.問答系統(tǒng)相比于傳統(tǒng)的搜索引擎,針對性更強、準確率更高,用戶也更容易接受. 近年來,國內在醫(yī)療問答系統(tǒng)上有不少的研究,如顏昕[8]構建的社區(qū)健康問答系統(tǒng)使用的是自然語言處理技術和機器學習算法相結合,姚智[9]開發(fā)的醫(yī)療問答系統(tǒng)使用的是深度學習技術,并且該系統(tǒng)已經上線使用,得到了較好的用戶評價.
在醫(yī)療問答系統(tǒng)中,使用知識圖譜的優(yōu)勢在于:1)語義理解智能化程度高:在知識圖譜中,所有實體都用具有語義信息的邊相關聯(lián),在匹配問題和知識圖譜中知識點的過程中,這些關聯(lián)信息有助于語義理解智能化;2)回答問題的準確率高:知識圖譜中的知識是經過人工標注或者格式化抓取的,數據的準確性有一定保證;3)檢索效率高:知識圖譜的結構化組織形式,為計算機的快速知識檢索提供了格式支持,計算機可以利用結構化語言(如 SQL、SPARQL 等)進行精確知識定位.本研究設計并實現了基于抑郁癥知識圖譜的中文問答系統(tǒng),用戶可以通過該系統(tǒng)實現實時的線上求醫(yī)問診,更加方便快捷地獲取想要的信息.
3.2 問答系統(tǒng)實現問答系統(tǒng)主要包括以下幾個模塊:輸入問題的預處理、醫(yī)學實體識別、問題模板匹配、基于Neo4j數據庫的查詢和生成答案.系統(tǒng)整體設計思路如圖3所示.
圖2 抑郁癥知識圖譜中的部分關系三元組
圖3 問答系統(tǒng)整體設計思路
3.2.1 輸入問題 用戶自己輸入關于抑郁癥癥狀和藥物等想要查詢的問題,如“哪個藥物可以治療抑郁癥?”“抑郁癥的主要癥狀有哪些?”等等.
3.2.2 輸入問題的預處理 輸入問題的預處理即需要將中文進行分詞,中文分詞是將一句話分解成一個個有意義且符合原句邏輯和意思的詞語[10].英文語句之所以不需要分詞是因為英文中的每個詞與下一個詞都有空格,而空格是單詞之間的一個明顯標記.中文句子的詞與詞之間是沒有空格等標記的,又因為機器不能像人一樣通過自己的理解來分辨句子中的字詞以及一些常見說法,所以需要將句子進行分詞處理.
3.2.3 醫(yī)學實體識別 醫(yī)學實體識別非結構化文本中抽取醫(yī)藥和疾病等實體,并對實體出現的位置和類別進行標記.醫(yī)療領域的實體通常構詞復雜、書寫形式多樣,并且常有多種指稱,識別難度相對較大,有可能出現識別出的實體與真實實體不一樣的情況.為解決這些問題,本研究使用BiLSTM+ CRF[11]模型,該模型可以識別復雜的藥物名稱,并且在各個醫(yī)藥數據集上均取得了不錯的識別效果.
3.2.4 問題模板匹配 用戶輸入的問題需要讓計算機分解成各實體之間的關系,如疾病和藥物之間的關系,這一模塊就是實現問題理解的功能.對于問題理解,本研究使用的技術是基于模板匹配[12]的方法,即根據常見的問題人工設計問題模板,當接收到用戶輸入的問題后,將問題和模板用相似度匹配算法進行計算,相似度最大的就是對應該問題的模板.這種方法適用于領域內的問答系統(tǒng),不需要用大量數據來學習和訓練,易于實現,且后期可擴展性大.不同實體的問題模板如表2所示.
3.2.5 基于圖形化數據庫的查詢 圖形數據庫中查詢使用的是Cypher語言.結合前面識別出的醫(yī)學實體名稱和模板匹配得到的關系名稱,根據規(guī)則生成對應的Cypher語句.已知一個實體名e和關系名稱r,查詢跟e有r關系的實體的Cypher語句模板如下:Match(a)-[:關系名]-(b)where b.name=“實體名”return a.name.其中,關系名和實體名用之前得到的實體和關系名替換.例如,對于問題“哪些藥物可以治療抑郁癥?”,系統(tǒng)識別出的實體是抑郁癥和藥物,再根據問題模板匹配,得出兩個實體的關系是藥物治療.然后根據識別出來的實體名稱和關系名稱,生成對應的Cypher語句:Match(a)-[:藥物治療]-(b)where b.name=“抑郁癥”return a.name.根據Cypher語句查詢到的結果,系統(tǒng)生成一段自然語言形式的回答返回給用戶,如“可以治療抑郁癥的藥物有舍曲林、米氮平等.”
表2 不同實體的問題模板
3.2.6 生成答案 根據系統(tǒng)返回的結果,執(zhí)行一定的語法和語義規(guī)則,形成符合自然語言邏輯且語句通順的答案發(fā)送給用戶.
3.3 系統(tǒng)性能分析
3.3.1 數據準備 為了驗證本文中基于抑郁癥知識圖譜的問答系統(tǒng)性能,本研究分別從準確率P,召回率R和F值等3個指標來進行分析,具體計算方法如式(1)所示.其中Pnum是表示問答系統(tǒng)給出的回答中正確的個數,Rnum表示本研究問答系統(tǒng)總共給出的回答個數,Anum是實際問題的正確答案個數.其中正確回答是指用戶輸入的問題實體和語義被正確識別,且返回的回答符合自然語言形式.本研究人工設計了100個跟抑郁癥相關的問題作為問答系統(tǒng)的測試數據,依次將這些問題輸入到問答系統(tǒng)中,統(tǒng)計Pnum和Rnum的值.
(1)
3.3.2 實驗分析 從表3的實驗結果可以看出,系統(tǒng)回答的準確率和召回率都較高,證明本研究構建的基于抑郁癥知識圖譜的問答系統(tǒng)可以有效地為用戶提供抑郁癥知識問答服務.對于正確回答的問題進行分析發(fā)現,有些是跟問題模板表達方式相同的句子,而有些是跟問題模板有相同實體和語義但表示方法不同的句子,這說明基于知識圖譜的問答系統(tǒng)具有較高的語義理解程度.對于系統(tǒng)沒有正確回答的問題,分析得知:1)對于這些問題中的實體,系統(tǒng)可以識別,但是語義信息沒有出現在模板中則不能識別,如“抑郁癥的一般發(fā)病年齡是多少?”及“抑郁癥是否遺傳?”等等;2)還有一些問題是因為一些屬性信息不全導致的,如藥物的副作用和使用方法應該是保存在屬性信息里面的.
表3 實驗結果
基于系統(tǒng)存在的不足,本研究下一步的改進方向是:1)盡可能全面地補充抑郁癥知識圖譜中實體的屬性信息,這樣就能回答更多的關于屬性的問題;2)擴充抑郁癥知識圖譜中的疾病覆蓋率,結合更多疾病進行診斷和給出治療意見;3) 增加更多的關系類型和關系子類型,回答更多種語義的問題;4)使用深度學習中更多算法對問題理解這個模塊進行研究.
本研究從抑郁癥文獻中抽取出抑郁癥相關的實體以及實體之間的關系,將實體和實體之間的關系形成知識三元組,從而構建抑郁癥的知識圖譜.知識圖譜有很多應用,本研究選取其中的問答系統(tǒng)這一應用,實現基于抑郁癥知識圖譜的問答系統(tǒng).該問答系統(tǒng)可以回答藥物-疾病、藥物-癥狀等語義信息的問題.實驗結果表明,問答系統(tǒng)有0.79的準確率和0.73的召回率,且F值為0.76,證明該系統(tǒng)的實用性.目前,基于抑郁癥知識圖譜的問答系統(tǒng)回答的準確率還有待進一步提升,未來將繼續(xù)使用更多的算法,研究如何提高回答的準確率,并且將屬性信息更加充分地補充到抑郁癥知識圖譜中.