崔 浩 劉豐源
(上海計算機(jī)軟件技術(shù)開發(fā)中心 上海 201112)
隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展和大數(shù)據(jù)時代的到來,電子醫(yī)療信息劇增,然而在醫(yī)療導(dǎo)診的工作中對電子醫(yī)療信息的利用率始終較低,傳統(tǒng)的人工醫(yī)療導(dǎo)診繁雜低效依然是大多數(shù)醫(yī)院的痛點(diǎn)。僅僅依靠醫(yī)護(hù)人員的導(dǎo)診輔助缺乏一定的高效性,導(dǎo)致病人滿意度下降。與此同時,近年來人們對健康關(guān)注度顯著提高,醫(yī)院人流高峰出現(xiàn)頻次越來越高,醫(yī)療導(dǎo)診人力資源明顯不足,利用機(jī)器人智能醫(yī)療導(dǎo)診能有效地對醫(yī)院患者進(jìn)行合理分流,同時能讓患者享受到智慧醫(yī)療的全新體驗(yàn)。
隨著醫(yī)療信息化的發(fā)展,導(dǎo)診工具也逐漸進(jìn)步[1],機(jī)器人已經(jīng)漸漸走進(jìn)人們的視野,然而目前還沒有醫(yī)療行業(yè)大規(guī)模實(shí)際應(yīng)用機(jī)器人智能導(dǎo)診方案,究其原因主要有以下幾點(diǎn):
1) 傳統(tǒng)醫(yī)院導(dǎo)診工具操作繁瑣,可視化圖形界面理解較為麻煩,不夠友好。
2) 傳統(tǒng)醫(yī)院導(dǎo)診工具功能單一,僅僅集成了簡單的查詢功能,不能有效地提供患者所需信息。
3) 導(dǎo)診知識庫信息數(shù)據(jù)少,缺少人機(jī)交互的過程。
智能導(dǎo)診服務(wù)機(jī)器人是依據(jù)醫(yī)院導(dǎo)診服務(wù)要求而設(shè)計開發(fā)的專業(yè)領(lǐng)域服務(wù)應(yīng)用機(jī)器人[2]。它由感知、分析、診斷和優(yōu)化四部分組成,可通過與患者實(shí)時語交互,依據(jù)多維度疾病模型,引導(dǎo)患者了解病情,給出合理的導(dǎo)診建議。該機(jī)器人基本實(shí)現(xiàn)自助分診,提升醫(yī)院服務(wù)質(zhì)量,大大減輕醫(yī)務(wù)員負(fù)擔(dān)。
基于醫(yī)療知識庫的系統(tǒng)架構(gòu)設(shè)計如圖1所示。

圖1 導(dǎo)診機(jī)器人系統(tǒng)架構(gòu)
導(dǎo)診機(jī)器人架構(gòu)總體包含輔助預(yù)診、科室導(dǎo)航、疾病癥狀自查、就診流程導(dǎo)診、娛樂休閑、智能迎賓、專家推薦查詢和數(shù)據(jù)測量等主要模塊,其功能分別如下:
1) 輔助預(yù)診:實(shí)現(xiàn)機(jī)器人與患者的診前輔助,由機(jī)器人代替醫(yī)生進(jìn)行患者診前基本信息的確認(rèn),后續(xù)轉(zhuǎn)接給醫(yī)生確診。
2) 科室導(dǎo)航:通過醫(yī)護(hù)人員對機(jī)器人進(jìn)行路徑規(guī)劃錄入,機(jī)器人保存相關(guān)科室路徑,后續(xù)患者問詢,機(jī)器人可實(shí)現(xiàn)科室?guī)分敢δ堋?/p>
3) 疾病癥狀檢索:系統(tǒng)擁有豐富的醫(yī)療知識數(shù)據(jù)庫,包含疾病、癥狀、藥品、檢查項(xiàng)目等多種百科知識,從多維度對患者所詢問題進(jìn)行解答和圖形化展示。
4) 就診流程導(dǎo)診:機(jī)器人系統(tǒng)整合了醫(yī)院的預(yù)約、掛號及醫(yī)療卡使用等功能,可實(shí)現(xiàn)在機(jī)器人端進(jìn)行掛號、預(yù)約等功能。
5) 娛樂休閑:機(jī)器人整合了多個第三方聊天接口,能在各個方面滿足患者的問詢,包含天氣、交通等通用功能模塊。
6) 智能迎賓:機(jī)器人基于人臉信息數(shù)據(jù)庫來識別范圍內(nèi)捕捉到的人臉進(jìn)行比較識別并自定義迎賓操作。
7) 專家推薦查詢:根據(jù)患者的問詢進(jìn)行信息收集,結(jié)合患者的情況進(jìn)行就診專家推薦以及專家信息查詢。
8) 醫(yī)院常規(guī)數(shù)據(jù)測量:通過機(jī)器人連接外部電子測量儀器,進(jìn)行智能化測試體溫、心率等常規(guī)操作。
系統(tǒng)通過三種路徑進(jìn)行數(shù)據(jù)的獲取,分別為語音識別、人臉識別以及傳感器感知,獲取的信息進(jìn)入系統(tǒng)對話管理模塊,通過系統(tǒng)內(nèi)部的多模匹配算法以及相關(guān)自然語言處理技術(shù)結(jié)合已有的醫(yī)療知識庫,識別患者意圖或者給出咨詢結(jié)果。系統(tǒng)依據(jù)醫(yī)療知識庫中的癥狀數(shù)據(jù)和病例掛號數(shù)據(jù),構(gòu)建癥狀倒序索引表和科室推薦表[3],患者與系統(tǒng)交互進(jìn)行語音問診后,采集語音輸入信號進(jìn)行語音識別,轉(zhuǎn)換成為文本并提取癥狀信息,依據(jù)癥狀信息與癥狀索引表比對,按照相關(guān)度對可能的疾病進(jìn)行排序并得出診斷結(jié)果。允許用戶對診斷結(jié)果打分和反饋意見錄入,系統(tǒng)將反饋結(jié)果作為優(yōu)化診斷結(jié)果的依據(jù)。結(jié)合疾病診斷結(jié)果和科室推薦表為患者推薦掛號科室,同時可以查看疾病更多相關(guān)信息。
系統(tǒng)構(gòu)建了以特征詞庫、對話知識庫、特征向量庫為基礎(chǔ)的醫(yī)療知識庫,結(jié)合專家矯正后的語料學(xué)習(xí),能智能化地解決患者問詢。系統(tǒng)訪問流程如圖2所示。

圖2 系統(tǒng)訪問流程
系統(tǒng)數(shù)據(jù)源通過語音識別、人臉識別以及傳感器感知獲取,轉(zhuǎn)換成文本數(shù)據(jù),通過自然語言處理技術(shù)處理后與醫(yī)療知識信息進(jìn)行多模式匹配[4],得出最優(yōu)答案,優(yōu)化后反饋給患者用戶。
句法分析的傳統(tǒng)方法是通過添加分析規(guī)則來實(shí)現(xiàn)的。基于規(guī)則的分析方法在大數(shù)據(jù)量的句法分析過程中存在弊端[5],因此本系統(tǒng)采用基于語料庫的句法分析方法來改良。首先基于系統(tǒng)試運(yùn)行階段的初期語音采集信息作為基本語料庫,其次依靠人工實(shí)現(xiàn)基于依存句法的基本語料庫的詞性標(biāo)注工作,然后將已經(jīng)標(biāo)注好的依存關(guān)系構(gòu)建句法樹矩陣,并依據(jù)矩陣抽取每個詞匯的語法結(jié)構(gòu)信息和搭配信息構(gòu)建成為開放可拓展的知識庫。
在已有知識庫的情況下對句法進(jìn)一步分析。首先對于采集的句子中的每個詞匯進(jìn)行分詞,依照知識庫中每個詞所對應(yīng)的依存關(guān)系,構(gòu)建所有可能的句法樹,形成特殊矩陣。其次根據(jù)知識庫和句法公理,篩選合適的中心詞并剔除不合理的依存關(guān)系。然后依據(jù)句法公理,對剩余的句法樹進(jìn)行剪枝操作,經(jīng)過剪枝的句法樹會殘缺,在最后搜索環(huán)節(jié)中就可以去除所有殘缺的句法樹,大大提高檢索的效率。最后需要對句法分析的效果進(jìn)行評價和優(yōu)化,通過結(jié)構(gòu)合理加權(quán)系數(shù)、詞間適應(yīng)性系數(shù)、比鄰度系數(shù)和整體評價四個評價維度進(jìn)行最終的評價[6]。
用戶在進(jìn)行信息檢索時的需求已經(jīng)不僅僅局限在基于關(guān)鍵詞模糊查詢的傳統(tǒng)搜索方法中,還需要系統(tǒng)能對用戶的意圖進(jìn)行識別。意圖識別首先需要確定意圖分類及其特征詞,其大致可以區(qū)分為信息檢索型、事務(wù)型和導(dǎo)航型三大類,其中信息檢索型意圖又可以細(xì)分為其特征詞采用分類算法進(jìn)行學(xué)習(xí)歸類[7],最終獲得意圖分類及特征詞劃分表如表1所示。

表1 意圖分類及特征詞劃分表
用戶輸入咨詢內(nèi)容后,系統(tǒng)基于采集到的信息,分詞得到一系列的意圖特征詞,并根據(jù)意圖特征詞的分類嘗試明確用戶搜索意圖。若用戶給出的關(guān)鍵詞不在已有的意圖特征詞列表中,則系統(tǒng)會根據(jù)已有特征詞的同義詞表進(jìn)行動態(tài)匹配,并提供用戶相應(yīng)詞語替換建議,輔助用戶進(jìn)行點(diǎn)選操作,實(shí)現(xiàn)有效問題的構(gòu)建。若在同義詞庫中也無法匹配到對應(yīng)的關(guān)鍵詞,則將該關(guān)鍵詞作為新的意圖特征詞插入意圖特征詞庫,并基于特征詞分類算法實(shí)現(xiàn)新的特征詞的類別劃分。
系統(tǒng)可以設(shè)置多種針對患者的多輪問答場景由機(jī)器人主動進(jìn)行智能問詢及推薦,更加智能化地獲取收集患者的就診信息,為患者提供較好的就診體驗(yàn)。
Aho-Corasick算法是多模式匹配算法中的經(jīng)典算法,目前在實(shí)際應(yīng)用中較多,該算法對應(yīng)的數(shù)據(jù)機(jī)構(gòu)是Aho-Corasick自動機(jī),簡稱AC自動機(jī)[8]。
為了實(shí)現(xiàn)與已有醫(yī)療知識庫的數(shù)據(jù)匹配,系統(tǒng)實(shí)現(xiàn)了一套以Aho-Corasick為基礎(chǔ)的文本匹配算法。
根據(jù)獲取的患者的問詢信息,首先需要進(jìn)行分詞處理,提取出來的癥狀信息需要被結(jié)構(gòu)化存儲為索引表,基于索引可以大大加速癥狀檢索,提高系統(tǒng)的可用性。癥狀索引表需要至少包含三個屬性,分別是癥狀詞典編碼、國際疾病分類編碼和對應(yīng)疾病類型數(shù)。后兩個屬性在進(jìn)行診斷時使用。
其次通過多模式匹配獲取到對應(yīng)的特征向量,基于索引表檢索其是否存在于已有的關(guān)鍵詞庫,若存在,則將得到的所有與癥狀相關(guān)的疾病都取出,存入到可能結(jié)果集合中,作為初始結(jié)果集。
然后進(jìn)行文本相似度的匹配,通過設(shè)定閾值驗(yàn)證,匹配出知識庫中最相近的問答[9]。相關(guān)度函數(shù)為:
(1)
式中:S為癥狀與疾病的相關(guān)度;t為癥狀類型數(shù)量,由于不同疾病的描述癥狀數(shù)量有所不同,描述癥狀較多的疾病被檢索的概率會高于描述癥狀少的疾病,因此為了消除此類差異,需要采用癥狀數(shù)量的平均數(shù)來平衡疾病被檢索概率差異問題;q為每個癥狀的特有權(quán)重,權(quán)重的確定以該癥狀被檢索頻率為依據(jù),高頻癥狀被賦予較高的權(quán)重,稀有癥狀被賦予較低權(quán)重,并以此權(quán)重判定疾病診斷的主要癥狀和次要癥狀;d為每個癥狀在每種疾病的癥狀描述中出現(xiàn)頻率,用于表征某癥狀相對于某疾病的重要程度。對相關(guān)度S進(jìn)行最大-最小值歸一化處理,并將相對相關(guān)度作為最終判斷依據(jù)按由大到小進(jìn)行正向排序。
若沒有匹配成功,則對問題使用TF-IDF算法進(jìn)行重新提取特征關(guān)鍵字[10],再次進(jìn)行AC多模式匹配,若知識庫中沒有結(jié)果,則存儲收集到的新的特征值,后續(xù)補(bǔ)充特征值對應(yīng)的答案。
系統(tǒng)給出初步診斷結(jié)果以后,用戶可根據(jù)自己的實(shí)際情況選擇結(jié)果列表里最符合病情的幾種疾病,系統(tǒng)需要回傳用戶的反饋給疾病自查系統(tǒng),重新進(jìn)行排序展示。
為實(shí)現(xiàn)診斷結(jié)果的優(yōu)化,系統(tǒng)會按照如下兩個維度進(jìn)行自我調(diào)整。首先將預(yù)診結(jié)果疾病癥狀與當(dāng)前輸入癥狀進(jìn)行比對,如果該疾病存在主流癥狀但并沒有被用戶作為癥狀輸入,則將該遺漏癥狀加入查詢項(xiàng)。其次結(jié)合反饋的疾病列表,對當(dāng)前輸入的癥狀權(quán)重進(jìn)行調(diào)整,次數(shù)多的癥狀相應(yīng)提升權(quán)重[11]。
反饋的信息與原來的癥狀信息權(quán)重比為α:
α=0.5×((x/max)+1)
(2)
式中:x為某種疾病在反饋疾病列表里的位置,max為該疾病在診斷結(jié)果集合中的位置。當(dāng)二者比值越接近1(即α越接近1)時,說明原診斷結(jié)果正確性越高,反之則說明用戶選擇了預(yù)診結(jié)果集中靠后的疾病,即原預(yù)診結(jié)果癥狀信息權(quán)重不夠合理,理應(yīng)把用戶選擇的疾病的權(quán)重加大,以加強(qiáng)反饋的優(yōu)化效果。
智能導(dǎo)診服務(wù)機(jī)器人系統(tǒng)主頁面如圖3所示。

圖3 智能導(dǎo)診服務(wù)機(jī)器人系統(tǒng)主頁面
這一模塊主要實(shí)現(xiàn)系統(tǒng)與用戶的互動,系統(tǒng)內(nèi)置主動問答流程,可針對“有什么癥狀”、“癥狀持續(xù)時間”、“癥狀嚴(yán)重程度”等進(jìn)行提問,同時可以設(shè)置多輪對話場景,由機(jī)器人更加智能化地問詢來收集用戶的就診信息,將收集到的信息傳送到遠(yuǎn)程端統(tǒng)一處理,結(jié)合后天分析,及時有效地反饋給用戶準(zhǔn)確的答案或者推薦。語音采集頁面如圖4所示。

圖4 語音采集頁面
診斷結(jié)果展示頁面分兩部分,第一部分是上方的搜索框,該框可以接收患者輸入的疾病,點(diǎn)擊立即搜索后下面的數(shù)據(jù)隨即發(fā)生變化。在患者無輸入即默認(rèn)的情況下,該輸入框中提示:請輸入疾病關(guān)鍵字。當(dāng)有輸入后,該框中顯示的是患者所輸入的疾病名稱。疾病搜索頁面如圖5所示。

圖5 疾病搜索頁面
第二部分為下方的數(shù)據(jù)顯示區(qū)域,包括疾病名稱、疾病介紹、疾病對應(yīng)癥狀和四個鏈接,其中四個鏈接可以跳轉(zhuǎn)到疾病對應(yīng)的疾病簡介、典型癥狀、臨床檢查和治療方法的位置。在患者無輸入即默認(rèn)的情況下,疾病通過疾病表中的權(quán)重字段的內(nèi)容進(jìn)行排序,其中權(quán)重字段中的數(shù)據(jù)是疾病的熱度值。當(dāng)患者輸入疾病關(guān)鍵字后,下面列表的顯示是從相似度最高到最低來排列。
當(dāng)患者輸入疾病名稱時,按相似度顯示疾病的信息。從疾病表中獲取全部疾病的名稱,存到列表中,再從疾病別名表中獲取全部疾病的別名,存到列表中。再對列表進(jìn)行去重處理。接下來,將從前端獲取到的參數(shù)和列表中全部的疾病進(jìn)行相似度匹配,規(guī)定的界線為0.5,將所有滿足相似度大于0.5的疾病進(jìn)行從高到低的排序,再將所有的疾病名稱存入列表中返回給前端。
當(dāng)患者點(diǎn)擊搜索出來的疾病后,例如感冒,就會跳轉(zhuǎn)到疾病相關(guān)信息展示界面,包含疾病簡介、典型癥狀、發(fā)病原因、預(yù)防、臨床檢查、鑒別、治療方法、護(hù)理、飲食保健和并發(fā)癥等相關(guān)信息。疾病相關(guān)信息展示頁面如圖6所示。

圖6 疾病相關(guān)信息展示頁面
依據(jù)預(yù)診后給出的結(jié)果,與科室推薦表聯(lián)合查詢后給出推薦掛號就診的科室列表,系統(tǒng)依據(jù)科室列表中概率推薦最高的科室,高亮動態(tài)展示醫(yī)院地圖、患者所在位置、最佳通行途徑等導(dǎo)航信息。同時機(jī)器人可以根據(jù)已有規(guī)劃路徑進(jìn)行路徑指引,實(shí)現(xiàn)智能導(dǎo)診功能。機(jī)器人路徑規(guī)劃頁面和智能導(dǎo)診頁面分別如圖7和圖8所示。

圖7 機(jī)器人路徑規(guī)劃頁面

圖8 智能導(dǎo)診展示頁面
本文介紹了一款基于醫(yī)療知識庫的智能化導(dǎo)診機(jī)器人,并詳細(xì)介紹了其系統(tǒng)架構(gòu)、訪問流程、關(guān)鍵技術(shù)原理、數(shù)據(jù)庫設(shè)計,給出了關(guān)鍵功能的系統(tǒng)展示。智能機(jī)器人問診提升了傳統(tǒng)分診系統(tǒng)的交互性差的問題,可以有效解決醫(yī)院中人力成本浪費(fèi)、高峰時段人力資源不足、患者就診體驗(yàn)差等問題。
系統(tǒng)目前在患者咨詢問題收集訓(xùn)練數(shù)據(jù)量上還有所不足,同時醫(yī)療知識庫目前只對接了少量醫(yī)院的在線電子病歷數(shù)據(jù)和部分互聯(lián)網(wǎng)數(shù)據(jù)資源,數(shù)據(jù)量仍有提高空間,因此未來工作可以在基于大量數(shù)據(jù)的深度學(xué)習(xí)和知識庫數(shù)據(jù)量提升方面進(jìn)行改進(jìn)。