文章編號(hào): 2095-2163(2018)03-0102-06中圖分類號(hào): 文獻(xiàn)標(biāo)志碼: A
摘要: [HT6SS〗隨著人們生活水平的提高,甲狀腺結(jié)節(jié)類疾病日漸成為當(dāng)代人的一種常見(jiàn)疾病,而中國(guó)國(guó)內(nèi)醫(yī)療資源分布不均,造成了大醫(yī)院人滿為患,醫(yī)生名下病人多,病人看病時(shí)間長(zhǎng)等問(wèn)題,許多病人想要看病在花費(fèi)大量金錢的同時(shí)還要耗費(fèi)大量時(shí)間。隨著互聯(lián)網(wǎng)技術(shù)以及計(jì)算機(jī)技術(shù)的發(fā)展,越來(lái)越多的病人為了節(jié)省時(shí)間,在趕往醫(yī)院前,往往會(huì)在網(wǎng)絡(luò)上對(duì)自己的病癥進(jìn)行相關(guān)查詢,所以市面上出現(xiàn)了醫(yī)生網(wǎng)上答診和病人在線問(wèn)診的醫(yī)療咨詢系統(tǒng),一對(duì)一為病人回答問(wèn)題。此舉將醫(yī)生提供給不能定時(shí)提問(wèn)的網(wǎng)上咨詢的患者的同時(shí)、會(huì)造成醫(yī)院內(nèi)醫(yī)生資源更加緊缺的狀況,且網(wǎng)上在線系統(tǒng)大多僅包括導(dǎo)診流程,即幫助病人在前往醫(yī)院確診前對(duì)自己的病癥有初步了解,并未涉及到病種診斷治療,無(wú)法達(dá)到節(jié)約病人的時(shí)間的目的。 因此,針對(duì)上述狀況,本文選取甲狀腺結(jié)節(jié)類病種數(shù)據(jù)為研究對(duì)象,對(duì)甲狀腺真實(shí)數(shù)據(jù)進(jìn)行重點(diǎn)的分析,創(chuàng)建甲狀腺知識(shí)圖譜,基于該知識(shí)圖譜,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)面向甲狀腺診療的自動(dòng)問(wèn)答系統(tǒng),本系統(tǒng)可以有效地回答病人在甲狀腺類疾病方面的用藥以及檢查等方面的問(wèn)題,節(jié)約病人問(wèn)診時(shí)間的同時(shí),醫(yī)生可以使用該系統(tǒng)對(duì)患者以及處方等信息進(jìn)行相關(guān)查詢,更加快速便捷,節(jié)約了醫(yī)生的時(shí)間。
關(guān)鍵詞: automatic question answering system based on thyroid knowledge map
(School of Computer Science and Technology, Donghua University, Shanghai 201620, China)
Abstract: With the improvement of people's living standards, thyroid nodule disease has become a common disease of the contemporary people. While China's domestic medical resources are unevenly distributed, the top-three hospitals are mainly concentrated in Beijing、 Shanghai and Guangzhou, resulting in overcrowding in large hospitals. It is required that many patients spend long time and a lot of money for seeing a doctor. With the development of Internet technology and computer technology, more and more patients often search for their own conditions on the Internet before going to the hospital to save time. So there is a medical consultation system on the market where doctors give online consultations and patients online consultations. One-on-one answers questions for the patient, which provides doctors with patients who do not regularly ask online consultation. At the same time, the situation of doctors in hospitals will become more scarce, and most of the online online systems only include the consultation process, which means that they can help patients to get a preliminary understanding of their own conditions before going to the hospital for diagnosis. The diagnosis and treatment of the diseases could not be involved and the purpose of saving the patient's time could not be achieved. Therefore, in view of the above situation, this study selects thyroid nodule disease data as the research object, analyzes the characteristics of the thyroid true data, creates a thyroid knowledge map, further designs and implements an automated question and answer system for thyroid diagnosis and treatment based on this knowledge map. The system can effectively answer questions about the patient's thyroid diseases such as medications and examinations, save doctors' time, and doctors can use this system to make relevant queries on patients and prescriptions, which is more rapid and convenient.
Key words:
作者簡(jiǎn)介:
收稿日期: 引言
為了解決病人掛號(hào)難,看病難的問(wèn)題,各家醫(yī)院均紛紛出臺(tái)利民舉措。專門地,針對(duì)甲狀腺結(jié)節(jié)類疾病,許多醫(yī)院及網(wǎng)站就推行了該類疾病的病情問(wèn)答版塊,如:好大夫在線網(wǎng)[1]、尋醫(yī)問(wèn)藥網(wǎng)。病人可以通過(guò)互聯(lián)網(wǎng)與醫(yī)生開(kāi)展在線的語(yǔ)音或文字的交流,但此舉卻將消耗大量人力物力,更多的醫(yī)生在線診療就意味著更少的醫(yī)生會(huì)在一線的醫(yī)院對(duì)病人施以治療,由于病人在線問(wèn)診時(shí)間的不確定,醫(yī)生的在線等待就避免不了時(shí)間的浪費(fèi)。為了緩解醫(yī)療壓力,提高醫(yī)療資源的利用率,降低醫(yī)療支出,本文研究建立有關(guān)甲狀腺類疾病信息的知識(shí)圖譜,并基于該知識(shí)圖譜設(shè)計(jì)實(shí)現(xiàn)自動(dòng)問(wèn)答系統(tǒng),患者、醫(yī)生、醫(yī)院通過(guò)使用系統(tǒng)可以迅速獲取自己需要了解的信息,從而達(dá)到高效化、自動(dòng)化、信息化服務(wù)于社會(huì)的目的。
英國(guó)數(shù)學(xué)家圖靈[2]在1950年首次提出了 “機(jī)器智能”和“圖靈測(cè)試”[3],這可視作為自動(dòng)問(wèn)答系統(tǒng)的前身。圖靈測(cè)試是使測(cè)試者—輸入問(wèn)題的用戶,對(duì)計(jì)算機(jī)進(jìn)行自然語(yǔ)言問(wèn)題的輸入,通過(guò)輸出結(jié)果判斷計(jì)算機(jī)是否具備人的智能。如果有超過(guò)30%的測(cè)試者不能確定出被測(cè)試者是人還是機(jī)器,那么這臺(tái)機(jī)器就通過(guò)了測(cè)試,可以用作問(wèn)答系統(tǒng)。
國(guó)內(nèi)外在自動(dòng)問(wèn)答系統(tǒng)方面的研究已歷經(jīng)了較長(zhǎng)的發(fā)展時(shí)期。上世紀(jì)60到70年代的問(wèn)答系統(tǒng)主要依賴搜索技術(shù),對(duì)查詢相關(guān)的文檔進(jìn)行檢索,例如Yahoo早期的answer and quora。上世紀(jì)70年代開(kāi)始,自動(dòng)問(wèn)答系統(tǒng)大多以結(jié)構(gòu)化知識(shí)庫(kù)為基礎(chǔ),將用戶輸入的自然語(yǔ)言轉(zhuǎn)換為機(jī)器可識(shí)別的結(jié)構(gòu)化查詢語(yǔ)言,通過(guò)搜索知識(shí)庫(kù)最終得到結(jié)果。該階段的研究實(shí)例主要包括SQL[4]、SPARQL[5]等。80年代以來(lái),人工智能即進(jìn)入了蓬勃發(fā)展期,而且其研究成果層出不窮,在很多項(xiàng)目均有重大斬獲。而如今,基于知識(shí)圖譜的自動(dòng)問(wèn)答系統(tǒng)已經(jīng)成為問(wèn)答系統(tǒng)的主流,眾所周知的SIRI就是以知識(shí)圖譜為基礎(chǔ)設(shè)計(jì)并研發(fā)成型的,IBM的Watson系統(tǒng)[6]也是國(guó)外認(rèn)知計(jì)算[7]系統(tǒng)的成功范本,基于知識(shí)圖譜的問(wèn)答系統(tǒng)包含信息分析、自然語(yǔ)言處理和機(jī)器學(xué)習(xí)領(lǐng)域的大量技術(shù)創(chuàng)新,能夠幫助使用者從大量非結(jié)構(gòu)化數(shù)據(jù)中得到所需的具體信息。
目前,隨著人們生活水平的提高,人們對(duì)于醫(yī)療健康的需求也逐年增長(zhǎng)。但患者基數(shù)大,健康資源供給遠(yuǎn)遠(yuǎn)滯后于需求的增長(zhǎng),并呈現(xiàn)分布不均衡的狀態(tài)[8]。全國(guó)三甲醫(yī)院主要集中分布在中、東部地區(qū),西部地區(qū)健康資源稀缺。龐大的健康需求將推動(dòng)尋找研發(fā)更加有效的方式為人們提供健康服務(wù)。近幾年,國(guó)內(nèi)居民醫(yī)療支出呈現(xiàn)遞增態(tài)勢(shì),也給在線醫(yī)療產(chǎn)業(yè)帶來(lái)了發(fā)展契機(jī),同時(shí)這也給自動(dòng)問(wèn)答系統(tǒng)的技術(shù)研究創(chuàng)造了實(shí)踐機(jī)遇與應(yīng)用空間。目前國(guó)內(nèi)并沒(méi)有甲狀腺結(jié)節(jié)類疾病專用的自動(dòng)問(wèn)答系統(tǒng),本文研究的即是甲狀腺類疾病領(lǐng)域的自動(dòng)問(wèn)答系統(tǒng),在將大量有關(guān)甲狀腺類疾病信息做出有效匯總整合后,創(chuàng)建生成了甲狀腺知識(shí)圖譜,基于該知識(shí)圖譜設(shè)計(jì)給出了有關(guān)甲狀腺類疾病的自動(dòng)問(wèn)答系統(tǒng)。用戶輸入問(wèn)題,在系統(tǒng)中對(duì)輸入的自然語(yǔ)言進(jìn)行命名實(shí)體識(shí)別、依存句法分析等處理,轉(zhuǎn)換為Sparql查詢語(yǔ)言,通過(guò)識(shí)別語(yǔ)義,匹配不同語(yǔ)義的不同模板在知識(shí)圖譜內(nèi)進(jìn)行查詢,由此獲取到答案。最后,在Java平臺(tái)上實(shí)現(xiàn)了基于甲狀腺知識(shí)圖譜的自動(dòng)問(wèn)答系統(tǒng),通過(guò)多次實(shí)驗(yàn)初步證明了系統(tǒng)的可用性。
1系統(tǒng)架構(gòu)
系統(tǒng)以用戶在醫(yī)院的問(wèn)診流程為基礎(chǔ),根據(jù)用戶關(guān)心問(wèn)題構(gòu)建知識(shí)圖譜,并遵循自動(dòng)問(wèn)答系統(tǒng)的問(wèn)答流程,本系統(tǒng)設(shè)計(jì)有良好的人機(jī)交互界面,用戶通過(guò)輸入有關(guān)甲狀腺相關(guān)的自然語(yǔ)言問(wèn)題,經(jīng)過(guò)系統(tǒng)處理后得到簡(jiǎn)單準(zhǔn)確的自然語(yǔ)言答案。
整個(gè)系統(tǒng)分為3部分,可對(duì)其闡釋如下:
(1)是用戶在瀏覽器所看到的人機(jī)交互界面,用戶在系統(tǒng)外部界面輸入自然語(yǔ)言問(wèn)題。
(2)是存儲(chǔ)甲狀腺類疾病相關(guān)信息的知識(shí)圖譜,根據(jù)存儲(chǔ)甲狀腺相關(guān)信息Sql Server數(shù)據(jù)庫(kù)設(shè)計(jì)知識(shí)圖譜。
(3)系統(tǒng)內(nèi)部的功能處理模塊,以(2)中涉及的知識(shí)圖譜為基礎(chǔ),系統(tǒng)內(nèi)部接受(1)中用戶輸入的問(wèn)題后,將該問(wèn)題進(jìn)行命名實(shí)體識(shí)別與詞性標(biāo)注,根據(jù)識(shí)別后的實(shí)體,將用戶輸入的自然語(yǔ)言問(wèn)題劃定分類,再根據(jù)不同類別,匹配不同的查詢模板,使用模板研發(fā)得到用戶求索問(wèn)題的最終答案。研究可得,系統(tǒng)設(shè)計(jì)架構(gòu)如圖1所示。
2相關(guān)技術(shù)
2.1甲狀腺知識(shí)圖譜的構(gòu)建
本系統(tǒng)甲狀腺知識(shí)圖譜根據(jù)Sql Server數(shù)據(jù)庫(kù)[9]中存儲(chǔ)的三甲醫(yī)院甲狀腺類疾病信息構(gòu)建,包括患者信息實(shí)體、藥品使用信息實(shí)體,診斷數(shù)據(jù)實(shí)體等、實(shí)體之間存在很多聯(lián)系,由于數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)整齊,可以規(guī)范解析實(shí)體和實(shí)體之間的關(guān)系來(lái)形成整個(gè)知識(shí)圖譜,利用形成的知識(shí)圖譜提供具體且豐富的語(yǔ)義關(guān)系,用戶可以更為直接地觀察到實(shí)體數(shù)據(jù)以及實(shí)體的聯(lián)系。
2.1.1構(gòu)建流程
本次設(shè)計(jì)的總體流程為:首先,根據(jù)數(shù)據(jù)庫(kù)中不同表的不同數(shù)據(jù),結(jié)合初始甲狀腺結(jié)節(jié)就診記錄,提煉出甲狀腺知識(shí)圖譜的概念層,構(gòu)建概念分類樹(shù)并抽取數(shù)據(jù)之間的關(guān)系。而后,將表中數(shù)據(jù)、即實(shí)體填充進(jìn)概念層中,以三元組、即<實(shí)體,關(guān)系,實(shí)體>的形式,得到完整的甲狀腺知識(shí)圖譜。
2.1.2概念層設(shè)計(jì)
對(duì)甲狀腺數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行分類,研究得到如下醫(yī)學(xué)實(shí)體定義。
定義1甲狀腺醫(yī)學(xué)實(shí)體包括甲狀腺患者實(shí)體、基本信息實(shí)體、甲狀腺診斷結(jié)果實(shí)體、甲狀腺用藥實(shí)體等。
在定義了甲狀腺醫(yī)學(xué)實(shí)體之后,可以構(gòu)建甲狀腺知識(shí)圖譜的概念分類樹(shù)如圖2所示。
定義2甲狀腺事實(shí)關(guān)系實(shí)體甲狀腺事實(shí)關(guān)系表示不同甲狀腺醫(yī)學(xué)實(shí)體間產(chǎn)生的聯(lián)系,如<病人,入院診斷,甲狀腺腫>。其中,病人、甲狀腺腫均為甲狀腺醫(yī)學(xué)實(shí)體,而入院診斷為甲狀腺事實(shí)關(guān)系實(shí)體,甲狀腺事實(shí)關(guān)系類型主要包括內(nèi)容可見(jiàn)如下:
(1)X has Y關(guān)系:表示實(shí)體Y隸屬于實(shí)體X的關(guān)系。
(2)X attribute_of Y 關(guān)系:表示實(shí)體Y擁有一個(gè)屬性實(shí)體X。
(3)X use drug Y 關(guān)系:表示病癥實(shí)體X使用藥品實(shí)體Y。
(4)X diagnosis Y 關(guān)系:表示檢驗(yàn)報(bào)告實(shí)體Y的診斷結(jié)果為實(shí)體X,實(shí)體間為診斷關(guān)系。
在給出了甲狀腺醫(yī)學(xué)實(shí)體和甲狀腺事實(shí)關(guān)系實(shí)體定義后,甲狀腺知識(shí)圖譜的概念層的定制設(shè)計(jì)可如圖2所示。
2.1.3實(shí)體填充設(shè)計(jì)
在探討了概念層設(shè)計(jì)后,可以實(shí)體填充方式創(chuàng)建本體,通過(guò)實(shí)體映射的方法,將概念層中的概念與數(shù)據(jù)庫(kù)中實(shí)體一一對(duì)應(yīng),本文采用的是BFS廣度優(yōu)先算法,對(duì)創(chuàng)建的概念樹(shù)進(jìn)行填充,得到知識(shí)圖譜。輸入已得到實(shí)現(xiàn)的概念分類樹(shù)T、概念層中的概念集合C以及定義后的實(shí)體集合E,輸出研發(fā)運(yùn)行后的甲狀腺知識(shí)圖譜G,保證輸出后的知識(shí)圖譜是以三元組的形式構(gòu)建的。算法偽代碼如下:
map = CreateMap(C,E)BFS(T,map) Enqueue(root); While(!queue) Node=dequeue(); For v in ChildrenNodes(node):if v is leaf node T.add(map.get(v.c)); Enqueue(v);CreateSequentialTuples(T)[JP3]E+Relation+Time=ExtractFromTree(T);[JP] For head in E For tail in E For relation in RelationsortedTuples = SortByTime(head,relation,tail,Time)k = FindKthRel(sortedTuples);Tuples.add(head,rel|k,tail)return Tuples至此,研究得到實(shí)體填充的運(yùn)行流程可表述為:首先,創(chuàng)建映射表。根據(jù)實(shí)體屬于概念樹(shù)中某一概念的原則,構(gòu)造得出概念到實(shí)體間的映射表如圖3所示。[PS馬晨浩3.EPS;S*2;X*2,BP#][HT6H][ST6HZ][WT6HZ][JZ]圖3映射表[JZ]Fig. 3Mapping table[HT5SS][ST5BZ][WT5BZ]其次,根據(jù)一一對(duì)應(yīng)的映射表,進(jìn)行實(shí)體填充。通過(guò)BFS廣度優(yōu)先遍歷將映射表中的實(shí)例實(shí)體存放在對(duì)應(yīng)的子節(jié)點(diǎn)中,使每個(gè)實(shí)體都有自己的屬性以及屬性值,如患者A屬于患者實(shí)體類,則將“患者A”實(shí)例化為患者實(shí)體的姓名屬性值。[JP3]最后,抽取實(shí)體和關(guān)系,綜合確定三元組,形成最終的甲狀腺知識(shí)圖譜,以rdf文件的形式送入存儲(chǔ)。[JP][BT5]2.2用戶自然語(yǔ)言問(wèn)題處理[JP2]在預(yù)期構(gòu)建了甲狀腺知識(shí)圖譜后,系統(tǒng)首先對(duì)知識(shí)圖譜的各實(shí)體進(jìn)行存儲(chǔ),將所有實(shí)體存入表中,方便日后查詢。此后將立足于研究用戶提問(wèn)的部分,即需要對(duì)用戶輸入的自然語(yǔ)言問(wèn)題進(jìn)行處理,得到計(jì)算機(jī)查詢語(yǔ)句后才能在知識(shí)圖譜中進(jìn)一步展開(kāi)查詢。[JP]對(duì)于用戶提出的自然語(yǔ)言問(wèn)題,系統(tǒng)內(nèi)部對(duì)其實(shí)現(xiàn)了一定的預(yù)處理。首先進(jìn)行中文分詞、命名實(shí)體識(shí)別,在得到各實(shí)體后,就是辨識(shí)用戶問(wèn)題的類別。不同類別的問(wèn)題,將調(diào)取系統(tǒng)中不同的模板,并將提取出的關(guān)鍵詞輔以依存句法分析,得到關(guān)鍵詞的語(yǔ)法關(guān)系,再與存有知識(shí)圖譜實(shí)體的表經(jīng)過(guò)測(cè)試比對(duì)后,將比對(duì)成功的關(guān)鍵詞,根據(jù)分析后的語(yǔ)法關(guān)系,傳入模板,執(zhí)行查詢。2.2.1最大匹配算法設(shè)計(jì)綜述目前,中文分詞大多采用最大匹配算法進(jìn)行操作。最大匹配是指以詞典為基礎(chǔ),擷取詞典中最長(zhǎng)單詞作為首個(gè)選取字?jǐn)?shù)量的掃描串,在詞典中依序搜索掃描(為提升掃描效率,還可以依據(jù)字?jǐn)?shù)不同設(shè)計(jì)多份字典,而后則根據(jù)字?jǐn)?shù)從不同字典中分別來(lái)提速掃描)。而最大匹配算法,則可分為最大正向匹配算法和最大逆向匹配分詞算法。這2個(gè)算法都將定義一個(gè)最大詞長(zhǎng)m。其中,最大正向匹配算法在收到自然語(yǔ)言字符串后,從左向右取待切分漢語(yǔ)句的m個(gè)字符作為匹配字段,切分出詞長(zhǎng)不大于最大詞長(zhǎng)的候選字符串,將候選字符串在已建立好的詞庫(kù)中進(jìn)行查詢,若匹配成功,則將這個(gè)匹配字段作為一個(gè)詞切分出來(lái)。 若匹配不成功,則將這個(gè)匹配字段的最后一個(gè)字去掉,剩下的字符串作為新的匹配字段,進(jìn)行再次匹配,重復(fù)以上過(guò)程,直到切分出所有詞為止。與最大正向匹配算法不同,最大逆向匹配算法由右至左對(duì)字符串進(jìn)行切分,若匹配不成功,則將匹配字段的最前一個(gè)字去掉。一般來(lái)說(shuō),逆向匹配的切分精度略高于正向匹配。統(tǒng)計(jì)結(jié)果表明[10],單純使用最大正向匹配錯(cuò)誤率為1/169,單純使用逆向最大匹配錯(cuò)誤率則為1/245。為了滿足系統(tǒng)內(nèi)部需要,本文結(jié)合正向匹配和逆向匹配算法的優(yōu)點(diǎn),采用雙向最大匹配算法。雙向最大匹配法是將正向最大匹配法得到的分詞結(jié)果和逆向最大匹配法得到的結(jié)果加以衡量比較,從而決定正確的分詞方法。根據(jù)Sun等人的研究[11],中文方面大約90.0%左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正確;只有大約9.0%的句子對(duì)于這2種切分方法得到的結(jié)果不一樣,但其中必有一個(gè)是正確的;而僅有少于1.0%的句子,或者正向最大匹配法和逆向最大匹配法的切分雖重合卻是錯(cuò)的,或者正向最大匹配法和逆向最大匹配法切分不同但2個(gè)都不對(duì)。因此可知,雙向最大匹配法能得到更高的準(zhǔn)確率,這一點(diǎn)將是毋庸置疑的。算法的偽代碼設(shè)計(jì)內(nèi)容如下:Vector