周雪陽(yáng),廖詩(shī)雨,董澤華,程春雷,葉 青
(江西中醫(yī)藥大學(xué)計(jì)算機(jī)學(xué)院,江西南昌 330004)
中醫(yī)是中華民族優(yōu)秀文化的重要組成部分,現(xiàn)代中醫(yī)干預(yù)疾病的主要方式為中藥[1]。中藥在新冠肺炎的預(yù)防和治療中發(fā)揮了重要作用,疫情爆發(fā)期間湖北省的中藥救治參與率達(dá)91.05%,全國(guó)其他區(qū)域達(dá)96.37%[2]。
中成藥是中藥的重要流通形式。與中成藥相關(guān)的數(shù)據(jù)多為半結(jié)構(gòu)化或非結(jié)構(gòu)化,具有4V 特征[3]:數(shù)據(jù)容量大(Volume)、數(shù)據(jù)增速快(Velocity)、數(shù)據(jù)來(lái)源廣(Variety)、真實(shí)性不高(Veracity)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)關(guān)聯(lián)效率較低,且不易擴(kuò)展,已無(wú)法適應(yīng)關(guān)聯(lián)性高的中成藥數(shù)據(jù)。知識(shí)圖譜是大數(shù)據(jù)時(shí)代用于大規(guī)模知識(shí)管理和智能服務(wù)的新興技術(shù),其可以捕捉和呈現(xiàn)領(lǐng)域概念之間錯(cuò)綜復(fù)雜的關(guān)系,并將各種信息系統(tǒng)中分散的知識(shí)連接起來(lái)。知識(shí)圖譜技術(shù)能有效解決中醫(yī)藥領(lǐng)域的知識(shí)島問(wèn)題,有助于整合知識(shí)資源,提高知識(shí)服務(wù)能力?;诖?,本文構(gòu)建基于知識(shí)圖譜技術(shù)的中成藥可視化與知識(shí)問(wèn)答平臺(tái),以便更好地管理和存儲(chǔ)關(guān)系復(fù)雜、種類(lèi)繁多、結(jié)構(gòu)多變的中成藥數(shù)據(jù)。
目前已上市的中成藥有接近1 萬(wàn)種[4],相關(guān)大數(shù)據(jù)亟待開(kāi)發(fā)與利用,但存在以下困難:①中成藥數(shù)據(jù)來(lái)源廣泛,但卻沒(méi)有統(tǒng)一標(biāo)準(zhǔn),數(shù)據(jù)質(zhì)量不能保證;②中成藥數(shù)據(jù)共享不足,不能充分實(shí)現(xiàn)數(shù)據(jù)價(jià)值;③中成藥數(shù)據(jù)沒(méi)有統(tǒng)一管理規(guī)范,存在數(shù)據(jù)濫用現(xiàn)象[5]。
數(shù)據(jù)可視化是指將海量數(shù)據(jù)以圖像的形式表示,并利用數(shù)據(jù)分析和開(kāi)發(fā)工具發(fā)現(xiàn)其中未知信息的處理過(guò)程[6]。目前,數(shù)據(jù)可視化不再是簡(jiǎn)單地利用各種圖表對(duì)實(shí)體及其之間的關(guān)系進(jìn)行展示,通常需要從多維數(shù)據(jù)、層次關(guān)系、文本數(shù)據(jù)3 個(gè)方面進(jìn)行可視化研究[7]:①多維數(shù)據(jù):使用不同形式對(duì)數(shù)據(jù)進(jìn)行多維關(guān)系展示,使用戶(hù)能夠通過(guò)簡(jiǎn)單操作實(shí)現(xiàn)數(shù)據(jù)的觀察與分析,從而獲得所需信息;②層次關(guān)系:大數(shù)據(jù)關(guān)注的重點(diǎn)往往是不同實(shí)體之間的聯(lián)系,這就要求采用不同圖形,盡可能豐富地呈現(xiàn)數(shù)據(jù)的層次關(guān)系;③文本數(shù)據(jù):必須結(jié)合文本數(shù)據(jù)幫助用戶(hù)理解信息,因此應(yīng)注意文本信息的視覺(jué)效果,以便發(fā)揮知識(shí)問(wèn)答的作用。
目前,各大醫(yī)學(xué)數(shù)據(jù)可視化平臺(tái)多以傳統(tǒng)的表格、折線圖、直方圖等形式展示數(shù)量龐大的中成藥數(shù)據(jù)[8],具有簡(jiǎn)單直觀的特點(diǎn),但也存在許多問(wèn)題[9]:①展示視角不夠全面,無(wú)法綜合文獻(xiàn)、臨床、商業(yè)等多背景數(shù)據(jù);②圖形比例設(shè)置不當(dāng),導(dǎo)致用戶(hù)產(chǎn)生視覺(jué)誤差;③平臺(tái)過(guò)分追求界面簡(jiǎn)潔,文字說(shuō)明少,很多數(shù)據(jù)只通過(guò)簡(jiǎn)單的圖形進(jìn)行展示,導(dǎo)致用戶(hù)難以解讀內(nèi)容;③沒(méi)有中醫(yī)專(zhuān)業(yè)人士的參與,平臺(tái)只能展示提前設(shè)定的數(shù)據(jù),用戶(hù)難以找到所需信息。為此,許多學(xué)者嘗試應(yīng)用知識(shí)圖譜技術(shù)對(duì)中醫(yī)辨證、案例分析等進(jìn)行可視化展示,取得了一些研究成果。例如,王菁薇等[10]利用中醫(yī)經(jīng)典古籍《傷寒論》中的數(shù)據(jù)文本進(jìn)行中醫(yī)藥知識(shí)圖譜構(gòu)建;賈李蓉等[11]結(jié)合可視化技術(shù)研發(fā)出中醫(yī)藥知識(shí)圖譜可視化平臺(tái);秦錦玉等[12]基于可視化技術(shù)對(duì)中醫(yī)藥知識(shí)進(jìn)行整合與可視化展示,開(kāi)發(fā)出一個(gè)中醫(yī)藥知識(shí)圖譜可視化交互平臺(tái);陳姍姍等[13]利用知識(shí)可視化軟件梳理國(guó)內(nèi)有關(guān)中醫(yī)藥國(guó)際化發(fā)展的文獻(xiàn),呈現(xiàn)出該領(lǐng)域的知識(shí)圖譜;鄭懿鳴等[14]將知識(shí)圖譜與知識(shí)卡片相結(jié)合,開(kāi)發(fā)出中醫(yī)藥知識(shí)圖譜用藥推薦系統(tǒng);孫華君等[15]詳細(xì)分析了知識(shí)圖譜在中醫(yī)基礎(chǔ)、中醫(yī)臨床、中醫(yī)養(yǎng)生保健等領(lǐng)域中的應(yīng)用。在此基礎(chǔ)上,本文采用知識(shí)圖譜技術(shù)結(jié)合可視化技術(shù)對(duì)中成藥大數(shù)據(jù)進(jìn)行研究分析,以期解決中醫(yī)藥數(shù)據(jù)利用不足、管理不規(guī)范等問(wèn)題。
首先從中成藥數(shù)據(jù)的實(shí)際需求關(guān)系出發(fā),選取必要的實(shí)體、屬性等;然后使用爬蟲(chóng)技術(shù)從互聯(lián)網(wǎng)上獲取相關(guān)數(shù)據(jù),存入對(duì)象關(guān)系型數(shù)據(jù)庫(kù)Postgresql,通過(guò)對(duì)中成藥數(shù)據(jù)進(jìn)行實(shí)體識(shí)別、關(guān)系抽取、整理分析,構(gòu)建中成藥知識(shí)圖譜并存入圖形數(shù)據(jù)庫(kù)Neo4j 中;最后利用Python 中的Flask 框架搭建可視化平臺(tái),實(shí)現(xiàn)數(shù)據(jù)的多角度展示以及智能問(wèn)答。具體實(shí)現(xiàn)流程如圖1所示。
Fig.1 System implementation flow圖1 系統(tǒng)實(shí)現(xiàn)流程
根據(jù)實(shí)際調(diào)查,將中成藥的實(shí)體屬性分為基本屬性、安全性、經(jīng)濟(jì)性3大類(lèi),細(xì)分屬性如表1所示。
Table 1 Detailed properties of Chinese patent medicine表1 中成藥細(xì)分屬性
以中成藥名稱(chēng)為檢索關(guān)鍵詞,使用Python 爬蟲(chóng)技術(shù)從站內(nèi)眾多開(kāi)放網(wǎng)站中爬取相關(guān)網(wǎng)頁(yè)源碼[16],利用正則表達(dá)式技術(shù)提取所需數(shù)據(jù)并存入關(guān)系型數(shù)據(jù)庫(kù)Postgresql 中,以實(shí)現(xiàn)中成藥數(shù)據(jù)的動(dòng)態(tài)更新。以中成藥萊陽(yáng)梨止咳糖漿為例,其屬性如表2所示。
使用Python 中Web 開(kāi)發(fā)模塊的Flask 框架進(jìn)行中成藥知識(shí)圖譜可視化平臺(tái)開(kāi)發(fā)。Flask 框架是一個(gè)輕量級(jí)Web開(kāi)發(fā)框架,較其他同類(lèi)型框架更靈活、安全且容易上手,可開(kāi)發(fā)出功能強(qiáng)大的網(wǎng)站。同時(shí),使用Ajax 技術(shù)進(jìn)行網(wǎng)站交互設(shè)計(jì),Ajax 即Asynchronous JavaScript and XML(異步JavaScript 和XML),是一種創(chuàng)建交互式、快速動(dòng)態(tài)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù),無(wú)需重新加載整個(gè)網(wǎng)頁(yè)便能實(shí)現(xiàn)部分網(wǎng)頁(yè)的更新?;贏jax 技術(shù)的異步交互方法[17]可以實(shí)現(xiàn)前端頁(yè)面的無(wú)等待實(shí)時(shí)刷新,提高人機(jī)交互水平,提升用戶(hù)體驗(yàn)。
Table 2 Property examples of Laiyang pear cough syrup表2 萊陽(yáng)梨止咳糖漿屬性示例
中成藥可視化與知識(shí)問(wèn)答平臺(tái)主要分為8 個(gè)模塊,詳見(jiàn)圖2。用戶(hù)在搜索框中輸入中成藥名稱(chēng),點(diǎn)擊搜索后,平臺(tái)將自動(dòng)加載出相應(yīng)信息。
Fig.2 Design of visualization and knowledge Q&A platform of patent medicine圖2 中成藥可視化與知識(shí)問(wèn)答平臺(tái)設(shè)計(jì)
(1)用戶(hù)搜索框。用戶(hù)可在搜索框中輸入中成藥名稱(chēng),點(diǎn)擊搜索按鈕即可進(jìn)行該中成藥相關(guān)數(shù)據(jù)的查詢(xún)。
(2)知識(shí)圖譜模塊。網(wǎng)站以知識(shí)圖譜的形式將被搜索中成藥的相關(guān)數(shù)據(jù)展示出來(lái),用戶(hù)根據(jù)實(shí)際需求進(jìn)行選擇性節(jié)點(diǎn)展示、刷新知識(shí)圖譜以及保存下載相關(guān)圖片等操作。
(3)中成藥屬性表單模塊:網(wǎng)站以表格的形式呈現(xiàn)被搜索中成藥相關(guān)屬性數(shù)據(jù),方便用戶(hù)查看。
(4)藥品生產(chǎn)企業(yè)模塊:網(wǎng)站以詞云的形式呈現(xiàn)被搜索中成藥的生產(chǎn)廠家信息,用戶(hù)通過(guò)點(diǎn)擊某個(gè)生產(chǎn)廠家可以在藥品廣告流通信息模塊單獨(dú)查看該企業(yè)生產(chǎn)的藥品流通信息。
(5)藥品廣告流通信息模塊:該模塊以折線圖或柱狀圖的形式呈現(xiàn)被搜索中成藥所有廣告在不同年份的流通數(shù)量,用戶(hù)亦可以查看不同生產(chǎn)企業(yè)的廣告流通信息。
(6)藥品產(chǎn)地模塊:該模塊以餅狀圖的形式呈現(xiàn)被搜索中成藥的產(chǎn)地,用戶(hù)可查看不同省份生產(chǎn)該中成藥的比例。
(7)藥品經(jīng)濟(jì)模塊:該模塊以折線圖的形式展示被搜索中成藥的市場(chǎng)售價(jià)信息。
(8)知識(shí)問(wèn)答模塊:用戶(hù)可通過(guò)輸入中成藥名稱(chēng)、藥材、癥狀等關(guān)鍵詞檢索出相關(guān)信息。
基于知識(shí)圖譜對(duì)中成藥數(shù)據(jù)進(jìn)行存儲(chǔ)能有效避免傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的弊端,使非結(jié)構(gòu)化的中成藥數(shù)據(jù)具有更好的關(guān)聯(lián)性,為文本處理提供更為全面的語(yǔ)義特征[18]。
選取中成藥的商品名作為實(shí)體結(jié)點(diǎn),以基本屬性、經(jīng)濟(jì)性、安全性作為一級(jí)屬性結(jié)點(diǎn),其中主要規(guī)格、用途、用法用量、組成、產(chǎn)品分類(lèi)、廠家數(shù)量、性狀為從屬基本屬性的二級(jí)屬性結(jié)點(diǎn);文獻(xiàn)研究、藥品禁忌、不良反應(yīng)為從屬安全性的二級(jí)屬性結(jié)點(diǎn);基藥目錄、醫(yī)保目錄、標(biāo)準(zhǔn)來(lái)源為從屬經(jīng)濟(jì)性的二級(jí)屬性結(jié)點(diǎn);從數(shù)據(jù)庫(kù)中提取的中成藥相關(guān)數(shù)據(jù)作為對(duì)應(yīng)屬性下的三級(jí)實(shí)例結(jié)點(diǎn)?;谝陨闲畔⒔⒅谐伤幹R(shí)圖譜數(shù)據(jù)庫(kù),具體示例見(jiàn)圖3、圖4。
Fig.3 Example of knowledge map of"Juyuan Zhike Tablet"圖3 桔遠(yuǎn)止咳片知識(shí)圖譜示例
運(yùn)用Neo4j 數(shù)據(jù)庫(kù)存儲(chǔ)中成藥相關(guān)數(shù)據(jù),將單個(gè)中成藥的相關(guān)屬性分為基本屬性、安全性、經(jīng)濟(jì)性3 大類(lèi),分別以不同顏色展示,不同中成藥實(shí)體根據(jù)其相同屬性連接起來(lái),形成中成藥知識(shí)圖譜體系,運(yùn)用圖匹配技術(shù)實(shí)現(xiàn)基于知識(shí)圖譜技術(shù)的中成藥智能問(wèn)答研究。
Fig.4 Knowledge map example of relationship between different Chinese patent medicines圖4 不同中成藥之間關(guān)系的知識(shí)圖譜示例
采用Echarts 可視化技術(shù)融合大屏可視化背景元素完成中成藥知識(shí)圖譜可視化平臺(tái)的構(gòu)建,平臺(tái)以知識(shí)圖譜、表格、柱狀圖、折線圖、散點(diǎn)圖、詞云、餅狀圖等形式將中成藥相關(guān)數(shù)據(jù)呈現(xiàn)給用戶(hù),界面展示如圖5所示。
Fig.5 Visualization platform of Chinese patent medicine knowledge map圖5 中成藥知識(shí)圖譜可視化平臺(tái)界面展示
由圖5 可知,平臺(tái)以知識(shí)圖譜和表單的形式呈現(xiàn)被搜索中成藥的基本屬性、安全性、經(jīng)濟(jì)性3 大類(lèi)信息,以折線圖、柱狀圖的形式呈現(xiàn)流通信息(以廣告招標(biāo)數(shù)量表示),以散點(diǎn)圖的形式呈現(xiàn)其市場(chǎng)流通價(jià)格信息,以餅狀圖的形式呈現(xiàn)生產(chǎn)地區(qū)信息,以詞云的形式呈現(xiàn)生產(chǎn)企業(yè)信息。
同時(shí),平臺(tái)的交互功能可以幫助用戶(hù)更詳細(xì)地查看相關(guān)數(shù)據(jù),具體表現(xiàn)為:①用戶(hù)通過(guò)點(diǎn)擊知識(shí)圖譜模塊中的對(duì)象、對(duì)象屬性、關(guān)聯(lián)對(duì)象、所屬類(lèi)別圖標(biāo),可以選擇性隱藏部分結(jié)點(diǎn)信息;②用戶(hù)通過(guò)點(diǎn)擊某個(gè)生產(chǎn)企業(yè),可以在藥品廣告流通信息模塊中單獨(dú)查看該企業(yè)生產(chǎn)的藥品流通信息。
基于中成藥知識(shí)圖譜數(shù)據(jù)庫(kù)和中成藥知識(shí)圖譜可視化平臺(tái),可進(jìn)行中成藥知識(shí)問(wèn)答研究。通過(guò)融入自然語(yǔ)言處理技術(shù),抽取與表征中醫(yī)藥領(lǐng)域文本特征,采用基礎(chǔ)的模式匹配與Transformer 深度學(xué)習(xí)模型相結(jié)合的方式,實(shí)現(xiàn)平臺(tái)的中醫(yī)藥智能問(wèn)答功能。具體實(shí)施流程如圖6所示。
Fig.6 Implementation process of knowledge Q&A platform圖6 知識(shí)問(wèn)答平臺(tái)實(shí)施流程
采用Python 進(jìn)行自然語(yǔ)言處理,構(gòu)建中醫(yī)藥問(wèn)答詞典,增加分詞精確度,構(gòu)建相關(guān)問(wèn)題模板,提高問(wèn)答效率。通過(guò)分詞、實(shí)體識(shí)別、關(guān)鍵詞提取將用戶(hù)輸入的自然語(yǔ)言文本形成問(wèn)題列表,通過(guò)與已有問(wèn)答模板進(jìn)行關(guān)鍵詞匹配分析問(wèn)答類(lèi)型,再跳轉(zhuǎn)至相應(yīng)的數(shù)據(jù)查詢(xún)模塊進(jìn)行查詢(xún),并將所得數(shù)據(jù)整合成答案?jìng)鞯角岸恕?duì)于未匹配到的問(wèn)題文本,采用Transformer 深度學(xué)習(xí)模型對(duì)問(wèn)題進(jìn)行解析,通過(guò)自定義中醫(yī)藥知識(shí)問(wèn)答素材抽取問(wèn)題答案呈現(xiàn)給用戶(hù)。具體處理流程如圖7所示。
由圖7 可知,系統(tǒng)通過(guò)對(duì)輸入文本進(jìn)行自然語(yǔ)言分詞處理、文本特征分析、模式匹配等選擇合適的模板回答搜索問(wèn)題,針對(duì)未能匹配到的文本,使用Transformer 深度學(xué)習(xí)抽取式問(wèn)答生成答案及得分,分?jǐn)?shù)大于0.6 的回答視為正確答案輸出,反之則表示未能理解[19]。
Fig.7 Process of knowledge Q&A圖7 知識(shí)問(wèn)答處理流程
本文采用Python 爬蟲(chóng)技術(shù)采集中成藥開(kāi)源數(shù)據(jù),通過(guò)實(shí)體抽取、屬性抽取、知識(shí)融合等技術(shù)成功構(gòu)建了基于Neo4j 圖形數(shù)據(jù)庫(kù)的中醫(yī)藥知識(shí)圖譜體系,同時(shí)結(jié)合Flask框架與Echarts 可視化技術(shù)搭建了中成藥數(shù)據(jù)可視化平臺(tái)。目前,本文設(shè)計(jì)的智能問(wèn)答功能模塊尚且只注重模板匹配以及簡(jiǎn)單的素材文本抽取式問(wèn)答,難以達(dá)到醫(yī)藥類(lèi)問(wèn)答對(duì)于精確度的要求。在后續(xù)研究中將深入挖掘中醫(yī)藥古籍文獻(xiàn)數(shù)據(jù),解析中醫(yī)藥多維度數(shù)據(jù),并采用深度學(xué)習(xí)技術(shù)構(gòu)建可泛化計(jì)算的智能問(wèn)答模型[20],以更好地挖掘中成藥數(shù)據(jù)的應(yīng)用價(jià)值,為大眾提供中成藥大數(shù)據(jù)服務(wù)。