黃夢(mèng)禧 張青川 陳龍 王世錦
摘 要:隨著醫(yī)療大數(shù)據(jù)時(shí)代的到來(lái),自然語(yǔ)言處理技術(shù)在醫(yī)學(xué)領(lǐng)域發(fā)展迅速,而問(wèn)答系統(tǒng)能夠準(zhǔn)確、簡(jiǎn)潔地用自然語(yǔ)言回答用戶提出的問(wèn)題,因此其在醫(yī)學(xué)領(lǐng)域的應(yīng)用具有重要研究?jī)r(jià)值?;谧匀徽Z(yǔ)言處理技術(shù)、樸素貝葉斯分類算法、詞向量、模糊匹配技術(shù)等,設(shè)計(jì)并實(shí)現(xiàn)了一款實(shí)用的面向醫(yī)學(xué)領(lǐng)域的智能問(wèn)答APP。通過(guò)對(duì)問(wèn)題的檢索,針對(duì)問(wèn)題類型制定分類規(guī)則,并向用戶返回檢索結(jié)果;基于Bigram、詞頻、對(duì)齊文本的評(píng)估模型,可大大增加候選答案的正確率與簡(jiǎn)潔度;基于證據(jù)與候選答案的評(píng)分機(jī)制,可減少誤報(bào)以及對(duì)結(jié)果的重復(fù)檢索。
關(guān)鍵詞:人工智能;自然語(yǔ)言處理;問(wèn)答APP;模式匹配;貝葉斯分類
DOI:10. 11907/rjdk. 182109
中圖分類號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2019)003-0094-06
0 引言
隨著計(jì)算機(jī)的普及,尤其是互聯(lián)網(wǎng)的興起,如今已進(jìn)入信息化時(shí)代,因此對(duì)信息的有效處理成為人們迫切需求。面對(duì)大量用戶群、幾何式增長(zhǎng)的網(wǎng)絡(luò)數(shù)據(jù)及高質(zhì)量的檢索需求,性能良好的搜索引擎層出不窮,在一定程度上為用戶在海量數(shù)據(jù)中的搜索提供了便利。然而,目前搜索引擎尚存在大量不足之處。首先,引擎返回的相關(guān)網(wǎng)頁(yè)文檔太多,且內(nèi)容全而不精,用戶需要花費(fèi)大量時(shí)間瀏覽文檔,因而不能快速發(fā)現(xiàn)有用信息[1];其次,用戶需要以關(guān)鍵字或關(guān)鍵字組合的方式輸入檢索內(nèi)容,搜索引擎僅停留在語(yǔ)言表層,并未深入語(yǔ)義,因此不能很好地改善搜索結(jié)果。
為了彌補(bǔ)傳統(tǒng)搜索引擎的缺陷,智能問(wèn)答系統(tǒng)應(yīng)運(yùn)而生。阿蘭·麥熙生·圖靈設(shè)計(jì)的圖靈測(cè)試系統(tǒng)為最早的問(wèn)答系統(tǒng)。傳統(tǒng)問(wèn)答系統(tǒng)研究領(lǐng)域較為局限,其依賴于人工智能技術(shù),主要由兩部分組成:人工編制的知識(shí)庫(kù)與語(yǔ)言接口[2]。由于詞匯量有限,且問(wèn)題是一個(gè)封閉集合,基本不存在語(yǔ)言與語(yǔ)義歧義問(wèn)題,相應(yīng)合成的答案有規(guī)律可循。因此,早期的人工智能探索僅局限于實(shí)驗(yàn)室應(yīng)用,而無(wú)法大量投入工業(yè)生產(chǎn),也不具備實(shí)用價(jià)值。20世紀(jì)90年代,開(kāi)放的基于文本的問(wèn)答系統(tǒng)開(kāi)始出現(xiàn)在人們視野中,以大規(guī)模真實(shí)語(yǔ)料庫(kù)為基礎(chǔ)的機(jī)器學(xué)習(xí)與統(tǒng)計(jì)研究開(kāi)始取代傳統(tǒng)搜索引擎。問(wèn)答系統(tǒng)也成為學(xué)術(shù)界近年來(lái)的研究熱點(diǎn),并被列為自然語(yǔ)言研究的重要分支之一。
問(wèn)答系統(tǒng)是一種能用簡(jiǎn)潔而準(zhǔn)確的自然語(yǔ)言快速回答用戶提問(wèn)的智能化系統(tǒng)[3]。當(dāng)用戶需要檢索信息時(shí),只需用自然語(yǔ)言描述問(wèn)題,輸入問(wèn)答系統(tǒng)中,系統(tǒng)經(jīng)過(guò)問(wèn)題分析、模式匹配與語(yǔ)義抽取等步驟,最終生成準(zhǔn)確、簡(jiǎn)潔的答案。一個(gè)智能問(wèn)答APP具有較強(qiáng)的問(wèn)題分析能力是十分重要的,但現(xiàn)有問(wèn)答APP尚不能完全實(shí)現(xiàn)人的智能。一方面,傳統(tǒng)問(wèn)答APP都是返回大段文本,而不能直接輸出答案,或者只能采用簡(jiǎn)單的模式匹配技術(shù)生成答案;另一方面,目前證據(jù)評(píng)分算法以及候選答案估值技術(shù)已應(yīng)用于智能問(wèn)答APP中,但在答案準(zhǔn)確性、適用性與及時(shí)性等方面仍不夠完善。
面向醫(yī)學(xué)領(lǐng)域的智能問(wèn)答APP包括淺層語(yǔ)義分析、信息檢索、候選答案提取與估值功能。其中,淺層語(yǔ)義分析使用分詞+詞性標(biāo)注技術(shù)及依存句法分析技術(shù)[4],可提高分析準(zhǔn)確性,解決問(wèn)題語(yǔ)義歧義并對(duì)問(wèn)題進(jìn)行分類;信息檢索采用信息預(yù)處理與信息索引技術(shù),以從海量信息中篩選有用信息,降低信息噪音并且減少信息搜索時(shí)間,整理為最終的正確答案,同時(shí)可提高在本地知識(shí)庫(kù)及網(wǎng)絡(luò)中的檢索速度與搜索精確度[5];候選答案提取與估值使用基于詞距、詞頻與文本對(duì)齊的評(píng)價(jià)模型,整理搜索結(jié)果生成答案候選集,并評(píng)估候選答案質(zhì)量,生成最佳答案返回給用戶。
本文對(duì)面向醫(yī)學(xué)領(lǐng)域的智能問(wèn)答APP進(jìn)行研究,基于醫(yī)療網(wǎng)站實(shí)際QA問(wèn)答記錄,面向廣大用戶群體推出一款實(shí)用的智能醫(yī)療問(wèn)答軟件。該系統(tǒng)能夠準(zhǔn)確理解自然語(yǔ)言提出的問(wèn)題,并為用戶返回準(zhǔn)確、簡(jiǎn)潔的答案。
1 軟件設(shè)計(jì)方案
本文設(shè)計(jì)一個(gè)面向醫(yī)學(xué)領(lǐng)域的智能問(wèn)答APP,根據(jù)APP的設(shè)計(jì)需求與設(shè)計(jì)目標(biāo),本文重點(diǎn)研究了問(wèn)題分類、信息檢索、候選答案提取3個(gè)模塊的功能,以期提高問(wèn)答APP的檢索效率與效果。
1.1 軟件需求與設(shè)計(jì)目標(biāo)
該智能問(wèn)答APP的處理速度應(yīng)能適應(yīng)手機(jī)硬件速度,響應(yīng)時(shí)間一般不超過(guò)5s,并且嚴(yán)格區(qū)分?jǐn)?shù)據(jù)處理權(quán)限,禁止越權(quán)處理數(shù)據(jù)。APP處理用戶輸入的問(wèn)題,并將檢索結(jié)果返回客戶端。問(wèn)答APP需求如圖1所示。
用戶需求如下:①根據(jù)APP端提供的問(wèn)題示例,提出符合規(guī)則的問(wèn)題;②用戶可以查詢歷史紀(jì)錄,亦可直接從搜索記錄中找尋答案;③用戶可以獲取與答案有關(guān)的詳細(xì)證據(jù),追根究底,全面剖析問(wèn)題。
APP功能如下:①獲取用戶數(shù)據(jù)并進(jìn)行分析與管理,將其存入數(shù)據(jù)庫(kù),不定期地進(jìn)行訓(xùn)練學(xué)習(xí),返回用戶關(guān)心的信息,不斷提高APP的查全率與查準(zhǔn)率;②處理用戶請(qǐng)求,根據(jù)用戶輸入及時(shí)響應(yīng)。響應(yīng)速度是衡量APP的重要指標(biāo)之一,考慮多種可用于優(yōu)化性能的指標(biāo),及時(shí)觸發(fā)對(duì)應(yīng)事件;③定義APP可以處理的問(wèn)題模式,并對(duì)APP進(jìn)行訓(xùn)練,提高解答正確率,并豐富問(wèn)題模式,完善APP功能,讓用戶與APP交流更加自然流暢;④在界面上為用戶提供友好的交互手段。
設(shè)計(jì)目標(biāo)為:①具有較強(qiáng)的實(shí)時(shí)性,能夠及時(shí)將收集的信息與提取的候選答案返回用戶;②能夠篩除大量無(wú)用信息,提高APP搜索效率,節(jié)省存儲(chǔ)空間;③在搜索更新及時(shí)且保證準(zhǔn)確性的情況下占用較低的網(wǎng)絡(luò)開(kāi)銷,大幅減少冗余數(shù)據(jù);④APP資源占用率較小,尤其是將CPU占用率控制在1%以下。
1.2 重點(diǎn)問(wèn)題與技術(shù)難點(diǎn)
1.2.1 重點(diǎn)問(wèn)題
問(wèn)答APP主要由3部分組成:語(yǔ)義理解、信息檢索、答案生成[6]。3個(gè)主要模塊功能的實(shí)現(xiàn)涉及兩種核心技術(shù):自然語(yǔ)言處理技術(shù)與信息檢索技術(shù)。自然語(yǔ)言處理即解決用戶用自然語(yǔ)言提出的問(wèn)題。首先APP對(duì)用戶進(jìn)行淺層語(yǔ)義分析,利用分詞技術(shù)識(shí)別其中關(guān)鍵詞;然后通過(guò)詞語(yǔ)相似度算法研究技術(shù),將相似詞提交給檢索系統(tǒng);APP提取關(guān)鍵詞進(jìn)行本地知識(shí)庫(kù)與網(wǎng)絡(luò)檢索,生成答案候選集;最后通過(guò)語(yǔ)義結(jié)構(gòu)比較與句子相似度算法研究,在相似度最大的框架抽取答案[7]。
1.2.2 技術(shù)難點(diǎn)
智能問(wèn)答APP核心問(wèn)題是其能否準(zhǔn)確、快速地回答用戶提出的問(wèn)題,即APP能否正確理解用戶提問(wèn),以及能否理解用戶的錯(cuò)誤輸入,返回正確結(jié)果[8]。這涉及到知識(shí)庫(kù)梳理、問(wèn)題理解、問(wèn)題檢索3方面內(nèi)容,并且考慮到漢字的復(fù)雜性及中文的獨(dú)特性,需要攻克更多技術(shù)難題。英語(yǔ)直接采用空格分隔,疑問(wèn)句和陳述句可以通過(guò)特殊與一般疑問(wèn)詞進(jìn)行區(qū)分,但中文是用標(biāo)點(diǎn)符號(hào)分隔,且詞與詞之間無(wú)空格,所以需要采用分詞技術(shù)[9]進(jìn)行中文語(yǔ)言處理。另外,由于缺乏公用語(yǔ)料庫(kù),問(wèn)答APP僅局限于有限域。
2 智能問(wèn)答APP設(shè)計(jì)
2.1 APP業(yè)務(wù)邏輯流程
智能問(wèn)答APP主要由4部分組成:?jiǎn)栴}分類、證據(jù)獲取、證據(jù)評(píng)分與候選答案評(píng)分[10]。APP業(yè)務(wù)邏輯流程如圖2所示。
用戶輸入問(wèn)題,APP獲取問(wèn)題后進(jìn)行語(yǔ)言處理,包括分詞和詞性標(biāo)注,以及判斷詞語(yǔ)間的依存語(yǔ)法關(guān)系。同時(shí)數(shù)據(jù)庫(kù)檢索本地緩存,查看是否存在相同問(wèn)題,如果有,則返回問(wèn)題證據(jù)及答案[11];若沒(méi)有,則從互聯(lián)網(wǎng)檢索問(wèn)題證據(jù),并存入數(shù)據(jù)庫(kù)。此時(shí),APP已完成問(wèn)題類型的確定,結(jié)合對(duì)證據(jù)的評(píng)分,提取候選答案。最后,候選答案模塊對(duì)所有候選項(xiàng)進(jìn)行評(píng)分,返回Top3內(nèi)的答案及其置信度。
2.2 問(wèn)題分類模塊設(shè)計(jì)
問(wèn)題分類模塊利用預(yù)處理技術(shù)標(biāo)記分詞,再采用規(guī)定的3種分類模式,通過(guò)綜合評(píng)價(jià)得出問(wèn)題所屬分類,并存儲(chǔ)到MySQL數(shù)據(jù)庫(kù)中。問(wèn)題分類模塊部署在阿里云服務(wù)器(Ubuntu)上,是APP的3個(gè)核心模塊之一。問(wèn)題分類模塊需要考慮的問(wèn)題包括:文本信息的全面性、準(zhǔn)確性,以及盡量占用較少的APP資源與網(wǎng)絡(luò)資源[12]。
該模塊使用樸素貝葉斯分類器,層次分類思想主要選擇詞匯、詞性、相關(guān)詞、命名實(shí)體、中心語(yǔ)塊等作為特征,將問(wèn)題分成7大類:人物、病狀、疾病名、藥品、實(shí)體、定義、未知[13]。智能問(wèn)答APP的問(wèn)題分類采用模式匹配方法,具體分為3種:直接匹配模式(C1)、基于問(wèn)題分詞的詞與詞性匹配模式(C2)、基于問(wèn)題主謂賓的詞與詞性匹配模式(C3)[14]。將所有問(wèn)題與3類模式進(jìn)行匹配并綜合打分,選出分值最高的問(wèn)題類型。
若用戶輸入問(wèn)題不符合規(guī)定類型,則向APP返回匹配失敗指令,再進(jìn)行類型強(qiáng)制轉(zhuǎn)換,再次對(duì)轉(zhuǎn)換后的問(wèn)題進(jìn)行模式匹配。該模塊功能設(shè)計(jì)如圖3所示。
語(yǔ)言預(yù)處理質(zhì)量將影響問(wèn)題分類結(jié)果。中文語(yǔ)言處理程序復(fù)雜,且問(wèn)題分類不夠細(xì)致,僅定義了7個(gè)大類,對(duì)于不符合中文規(guī)范或超出APP定義的問(wèn)題類型,則無(wú)法得到理想結(jié)果。目前APP處理效果較好的問(wèn)題類型包括人物、病癥、疾病名、藥品4大類[15]。
2.3 證據(jù)收集模塊
傳統(tǒng)問(wèn)答APP僅使用本地?cái)?shù)據(jù)庫(kù)緩存的內(nèi)容向用戶提供證據(jù)文本,該模式存在很多問(wèn)題:一方面本地緩存數(shù)量有限,無(wú)法滿足用戶多方面需求;另一方面,由于大多數(shù)候選答案使用模式匹配算法,有限的語(yǔ)料庫(kù)導(dǎo)致候選答案有跡可循,或產(chǎn)生一些讓用戶啼笑皆非的無(wú)意義答案。因此,本APP使用數(shù)據(jù)庫(kù)與搜索引擎相結(jié)合的證據(jù)收集方式,不僅提高了檢索效率,豐富了本地語(yǔ)料庫(kù),而且抽取了更多證據(jù)文本,豐富了候選答案層次。綜上所述,該模塊設(shè)計(jì)能夠滿足APP對(duì)效率、精確度、時(shí)效性3方面要求。
證據(jù)收集模塊主要功能為:證據(jù)檢索與證據(jù)評(píng)分。當(dāng)用戶提出一個(gè)問(wèn)題,首先檢索本地?cái)?shù)據(jù)庫(kù)是否存在相同問(wèn)題,有則返回?cái)?shù)據(jù)庫(kù)里存儲(chǔ)的問(wèn)題答案與證據(jù);否則,根據(jù)分詞模塊處理得出的關(guān)鍵字組合,利用網(wǎng)絡(luò)檢索相關(guān)文本信息。APP通過(guò)證據(jù)評(píng)分模型評(píng)判證據(jù)對(duì)問(wèn)題的支持度,然后按照分?jǐn)?shù)從高到低的順序傳遞給候選答案提取模塊。
2.4 候選答案提取模塊
答案提取模塊主要評(píng)價(jià)候選答案可信度,通過(guò)抽取函數(shù)提取證據(jù)中的有效關(guān)鍵詞,再利用候選答案評(píng)分模型計(jì)算每個(gè)候選答案分值,只留下排名前三的候選答案,最后傳遞給用戶展示界面。
提取函數(shù)提取的關(guān)鍵字即為可能的答案,表1給出一些提取函數(shù)尋找的目標(biāo)樣例(p是文本,ψ是中心詞,f是提取函數(shù))。
提取多個(gè)候選答案后,由于中文語(yǔ)言處理技術(shù)不夠完善,關(guān)鍵詞里夾雜著無(wú)關(guān)文本,致使候選答案質(zhì)量參差不齊,因此需要對(duì)所有候選答案進(jìn)行評(píng)分。本APP共使用7種候選答案評(píng)分模型,然后根據(jù)問(wèn)題分類及證據(jù)分詞結(jié)果選擇一種評(píng)分模型,并隨機(jī)為其賦予一個(gè)值(一般為1),或者使用綜合評(píng)分模型執(zhí)行簡(jiǎn)單的線性加權(quán)得出最終得分,最后按從高到低的順序得出其置信度。
2.5 用戶界面設(shè)計(jì)
用戶界面部署在用戶接口層,即客戶端。該智能問(wèn)答APP有兩個(gè)主界面:APP首頁(yè)與人機(jī)問(wèn)答界面。該APP遵循用戶界面設(shè)計(jì)的3大原則:①置界面于用戶控制之下;②減少用戶記憶負(fù)擔(dān);③保持界面一致性。此外,為了讓頁(yè)面更加美觀,功能更豐富,摒棄了傳統(tǒng)頁(yè)面編寫方法,而使用MUI框架,使用戶體驗(yàn)更好,且人機(jī)交互性良好。
3 智能問(wèn)答APP實(shí)現(xiàn)
3.1 程序開(kāi)發(fā)
開(kāi)發(fā)語(yǔ)言為:Java、JS、JavaScript。
開(kāi)發(fā)環(huán)境為:Hbuilder、Myeclipse、MySQL、Maven 3.3.3,JDK1.8,Tomcat8.0。
程序結(jié)構(gòu)如圖5所示。
3.1.1 問(wèn)題分類模塊
問(wèn)題分類模塊定義了問(wèn)題結(jié)構(gòu)、類型與枚舉方式。APP對(duì)問(wèn)題進(jìn)行分詞與詞性標(biāo)注后[16],共定義了4種問(wèn)題類型:人物、病癥、疾病名、藥品。在問(wèn)題類型枚舉程序中增加了新的問(wèn)題類型,并在詞性與問(wèn)題類型之間作映射。然后在資源目錄中增加新的模式匹配規(guī)則,以支持對(duì)新問(wèn)題類型的判定。APP定義 3 個(gè)文件代表不同抽象層級(jí)的模式,只需在其中一個(gè)文件中增加新模式即可。在問(wèn)題類型轉(zhuǎn)換類中將模式匹配規(guī)則映射為枚舉類,系統(tǒng)從控制臺(tái)獲取問(wèn)題,進(jìn)行語(yǔ)料處理后(分詞與詞性標(biāo)記)開(kāi)始對(duì)問(wèn)題進(jìn)行分類。問(wèn)題分類代碼結(jié)構(gòu)如表2所示。
本問(wèn)答APP使用樸素貝葉斯分類器進(jìn)行問(wèn)題分類,使用一個(gè)簡(jiǎn)單的流程圖介紹該算法(x是待分類項(xiàng),y是類別,i是類別序列),如圖6所示。
對(duì)于給定的待分類項(xiàng),求解在此項(xiàng)條件下各類別發(fā)生的概率,以及此待分類項(xiàng)屬于最大概率值所對(duì)應(yīng)的類別。確定最佳問(wèn)題分類后,依據(jù)關(guān)鍵詞進(jìn)行證據(jù)檢索。
3.1.2 證據(jù)收集模塊
證據(jù)收集模塊首先定義證據(jù)結(jié)構(gòu)title和snippst,再對(duì)收集到的證據(jù)文本進(jìn)行分詞,最后對(duì)同一問(wèn)題,不同證據(jù)的重要性不同,所以證據(jù)有不同分值,且有多個(gè)候選答案。
根據(jù)該模塊設(shè)計(jì)理念,APP設(shè)置文件與百度搜索引擎兩種方式檢索證據(jù)。APP首先從本地?cái)?shù)據(jù)庫(kù)查詢已有問(wèn)題及答案,然后利用百度搜索引擎從網(wǎng)上獲取問(wèn)題證據(jù),收集大量文本證據(jù)后,對(duì)其進(jìn)行評(píng)分,最后根據(jù)分詞結(jié)果,選擇最適合的證據(jù)評(píng)分模型,得出證據(jù)最終得分。
本APP共使用4種評(píng)分模型,考慮到檢索效率,不是將4種模型評(píng)分后選擇評(píng)價(jià)度最高的模型,而是根據(jù)問(wèn)題結(jié)構(gòu)選擇一種模型進(jìn)行評(píng)分,再隨機(jī)賦予該模型權(quán)重。APP將證據(jù)評(píng)分乘以其指定模型權(quán)重,即為證據(jù)最終得分。APP過(guò)濾得分較低的證據(jù),只留下分值較高的證據(jù)文本。
3.1.3 候選答案提取模塊
首先從證據(jù)文本中提取候選答案,再通過(guò)候選答案過(guò)濾組件,過(guò)濾候選答案出現(xiàn)在問(wèn)題中的文本,然后選擇候選答案評(píng)估模型與權(quán)重,最后得出候選答案最終分值[17]。綜合考慮算法實(shí)現(xiàn)難易程度以及對(duì)準(zhǔn)確率的要求,本APP使用模式匹配算法抽取候選答案[18]。采用一個(gè)簡(jiǎn)單的流程圖介紹該算法,如圖7所示。
每一份證據(jù)文本都可提取一個(gè)候選答案,但不是所有答案都符合條件。因此,使用7種評(píng)分模型,根據(jù)候選答案結(jié)構(gòu)選出最適合的評(píng)分模型,并隨機(jī)賦予權(quán)重。將候選答案分值乘以對(duì)應(yīng)模型權(quán)重即為候選答案最終得分[19],APP只留下分值排名靠前的答案并輸出。
3.2 問(wèn)答APP功能展示
3.2.1 展示內(nèi)容
展示指標(biāo)一:提供Web控制端的客戶端管理方式,整個(gè)Web端對(duì)APP資源占用率較低。不斷更新數(shù)據(jù)庫(kù),對(duì)APP進(jìn)行問(wèn)答訓(xùn)練,針對(duì)APP指定的問(wèn)題模式,提高問(wèn)題回答的準(zhǔn)確率與時(shí)效性。需要提供以下完整功能:①對(duì)用戶觸發(fā)規(guī)則的行為給予文字反饋;②用戶輸入問(wèn)題;③用戶獲取答案。
展示指標(biāo)二:應(yīng)用本文的數(shù)據(jù)過(guò)濾算法后,能夠在保證數(shù)據(jù)準(zhǔn)確性的前提下減少對(duì)多余數(shù)據(jù)的采集,從而避免產(chǎn)生過(guò)多冗余數(shù)據(jù),減少網(wǎng)絡(luò)開(kāi)銷。
展示指標(biāo)三:采用本文的信息過(guò)濾機(jī)制后,可適應(yīng)用戶需求,大幅減少重復(fù)答案的產(chǎn)生,從而提高APP適用性。
3.2.2 功能展示
問(wèn)答APP支持文本和語(yǔ)音輸入。文本輸入和語(yǔ)音輸入方式分別如圖8、圖9所示。
問(wèn)答APP對(duì)用戶輸入進(jìn)行識(shí)別處理,并快速應(yīng)答。應(yīng)答界面如圖10所示。
APP通過(guò)配置文件與映射文件將JAVA對(duì)象或持久化對(duì)象(Persistent Object,PO)映射到數(shù)據(jù)庫(kù)中,然后通過(guò)對(duì)持久化對(duì)象的操作實(shí)現(xiàn)對(duì)數(shù)據(jù)的增加、查詢等操作[20]。若用戶輸入本地緩存中的問(wèn)題,則APP查詢數(shù)據(jù)庫(kù),直接找尋答案和證據(jù);若用戶隨機(jī)輸入問(wèn)題,則APP會(huì)同時(shí)使用數(shù)據(jù)庫(kù)與網(wǎng)絡(luò)搜索引擎進(jìn)行查詢,并返回結(jié)果,之后再將該問(wèn)題存入數(shù)據(jù)庫(kù),更新question與evidence表格中的內(nèi)容。
3.3 問(wèn)答APP測(cè)試
測(cè)試本APP時(shí),使用postman作為測(cè)試工具,發(fā)出GET類型請(qǐng)求命令,導(dǎo)入存儲(chǔ)了100個(gè)參數(shù)值的測(cè)試文件,對(duì)APP的開(kāi)放接口進(jìn)行并發(fā)批量測(cè)試,設(shè)置迭代次數(shù)為100次,以測(cè)試問(wèn)答APP的應(yīng)答性能。
3.3.1 性能測(cè)試
具體測(cè)試命令為:{{baseURL}}/Alice2/QA?q={{q}},其中{{baseURL}}全局變量表示發(fā)送HTTP請(qǐng)求的URL,{{q}}表示請(qǐng)求參數(shù)。測(cè)試結(jié)果如表3所示。
以上測(cè)試結(jié)果顯示,在設(shè)置時(shí)延為10ms的情況下,平均事務(wù)響應(yīng)時(shí)間為2.73s,可滿足APP的性能要求。
3.3.2 準(zhǔn)確率測(cè)試
本軟件的訓(xùn)練數(shù)據(jù)集是醫(yī)療問(wèn)答網(wǎng)站上用戶與醫(yī)生的真實(shí)對(duì)話。測(cè)試的數(shù)據(jù)輸入是用戶用自然語(yǔ)言表達(dá)的問(wèn)題,輸出數(shù)據(jù)為軟件的回答。測(cè)試了100條問(wèn)答數(shù)據(jù),由專業(yè)醫(yī)生對(duì)輸出結(jié)果進(jìn)行評(píng)估[21],評(píng)估標(biāo)準(zhǔn)為:A:準(zhǔn)確;B:基本準(zhǔn)確,但有不合理的地方;C:不準(zhǔn)確,根據(jù)實(shí)際情況選擇對(duì)應(yīng)字母。最終評(píng)估結(jié)果統(tǒng)計(jì)如圖11所示。
測(cè)試及評(píng)估結(jié)果顯示,問(wèn)答APP的準(zhǔn)確率可達(dá)到61%,表明問(wèn)答APP對(duì)癥狀具有較好的推斷能力,能夠根據(jù)問(wèn)診查詢輸出較為準(zhǔn)確的應(yīng)答,具有較強(qiáng)的實(shí)用性。另外,在測(cè)試中發(fā)現(xiàn),在醫(yī)療網(wǎng)站中問(wèn)答次數(shù)較少的,例如一些疑難雜癥,問(wèn)答APP對(duì)其認(rèn)識(shí)則不夠充分,但該問(wèn)題在數(shù)據(jù)量增大之后會(huì)得到一定程度改善。因此,有必要收集更多數(shù)據(jù)作進(jìn)一步訓(xùn)練。
4 結(jié)語(yǔ)
隨著人工智能的迅速發(fā)展,對(duì)智能問(wèn)答APP的要求也越來(lái)越高。本文在總結(jié)當(dāng)前人工智能與自然語(yǔ)言處理發(fā)展現(xiàn)狀的基礎(chǔ)上,對(duì)智能問(wèn)答APP進(jìn)行了深入研究,以提高其準(zhǔn)確性、及時(shí)性與適用性。
本文主要研究工作和結(jié)論有以下幾個(gè)方面:
(1)本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)面向醫(yī)學(xué)領(lǐng)域的智能問(wèn)答APP,該APP分為后臺(tái)與客戶端兩部分,后臺(tái)為業(yè)務(wù)邏輯層與數(shù)據(jù)訪問(wèn)層,客戶端為用戶接口層與展示層。通過(guò)后臺(tái)對(duì)數(shù)據(jù)進(jìn)行處理,在客戶端輸出數(shù)據(jù),并支持用戶自定義回答模式,適應(yīng)性強(qiáng)。智能問(wèn)答APP還可以更改閾值,定制輸出信息的長(zhǎng)度與深度,其簡(jiǎn)單易實(shí)現(xiàn),能減少重復(fù)答案的產(chǎn)生,且準(zhǔn)確率高。
(2)本文采用Get/Post相結(jié)合的數(shù)據(jù)傳輸方式將采集到的數(shù)據(jù)從后臺(tái)傳輸?shù)杰浖耍摂?shù)據(jù)傳輸方式有較強(qiáng)的及時(shí)性,可大大縮短數(shù)據(jù)傳輸時(shí)間。
(3)本文設(shè)計(jì)的APP基于模式匹配算法輸出答案,在不遺漏數(shù)據(jù)且不降低準(zhǔn)確性的前提下過(guò)濾長(zhǎng)度不合適的答案,從而降低了網(wǎng)絡(luò)開(kāi)銷,減少冗余數(shù)據(jù)產(chǎn)生。
目前APP還存在以下待改進(jìn)之處:①本文設(shè)計(jì)的APP采用分詞與詞性標(biāo)注技術(shù)對(duì)問(wèn)題進(jìn)行預(yù)處理,語(yǔ)義處理能力較差,因此未來(lái)APP可以對(duì)問(wèn)題增加淺層語(yǔ)義分析,以提高APP對(duì)問(wèn)題的理解能力,能夠識(shí)別同一語(yǔ)義的不同提問(wèn)模式;②該APP基于模式匹配算法提取答案,雖提高了答案匹配速度,但在答案準(zhǔn)確性和層次復(fù)雜度等方面略有欠缺,可使用卷積神經(jīng)網(wǎng)絡(luò)算法、遺傳退火算法等提高候選答案模塊提取的效率與精度,豐富答案類型與層次。
參考文獻(xiàn):
[1] 毛先領(lǐng),李曉明. 問(wèn)答系統(tǒng)研究綜述[J]. 計(jì)算機(jī)科學(xué)與探索,2012,6(3):193-207.
[2] 王樹西. 問(wèn)答系統(tǒng):核心技術(shù)、發(fā)展趨勢(shì)[J]. 計(jì)算機(jī)工程與應(yīng)用,2005(18):1-3.
[3] 劉芳,于斐. 面向醫(yī)療行業(yè)的智能問(wèn)答系統(tǒng)研究與實(shí)現(xiàn)[J]. 微電子學(xué)與計(jì)算機(jī),2012,29(11):95-98.
[4] 汪紅林. 基于依存分析的語(yǔ)義角色標(biāo)注研究[D]. 蘇州:蘇州大學(xué),2009.
[5] 劉毅. 人工智能的歷史與未來(lái)[J]. 科技管理研究,2004(6):121-124.
[6] 劉件,魏程. 中文分詞算法研究[J]. 微計(jì)算機(jī)應(yīng)用,2008(8):11-16.
[7] 黃妮. 網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)中的分詞與句子相似度算法研究[D]. 西安:陜西師范大學(xué), 2012.
[8] 邢超. 智能問(wèn)答系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京交通大學(xué),2015.
[9] 趙凡博. 淺析中文分詞技術(shù)及其方法[J]. 世界家苑,2011(12):228.
[10] 徐燦,王東輝. 非結(jié)構(gòu)化文檔的開(kāi)放域自動(dòng)問(wèn)答系統(tǒng)技術(shù)研究[D]. 杭州:浙江大學(xué),2017.
[11] 莫洪武. 分布式多級(jí)緩存技術(shù)在選課系統(tǒng)中的應(yīng)用[J]. 廣西教育,2014(7):183-185.
[12] 劉勇. 體育市場(chǎng)調(diào)查與分析[M]. 北京:高等教育出版社,2004.
[13] 段利國(guó). 開(kāi)放域中文問(wèn)答系統(tǒng)關(guān)鍵技術(shù)研究[D]. 太原:太原理工大學(xué), 2011.
[14] BARSKAR R, AHMED G F, BARSKAR N. An approach for extracting exact answers to question answering (QA) system for English sentences[J]. Procedia Engineering, 2012, 30:1187-1194.
[15] LAPSHIN V A. Question-answering systems: development and prospects[J].Automatic Documentation & Mathematical Linguistics, 2012,46(3):138-145.
[16] 羅熹. 基于評(píng)論信息的內(nèi)容感知方法研究[D]. 成都:電子科技大學(xué),2015.
[17] 李桂蘭,余正濤,毛存禮,等. 旅游領(lǐng)域?qū)嶓w答案的抽取[J]. 廣西師范大學(xué)學(xué)報(bào):自然科學(xué)版, 2009, 27(1):181-184.
[18] 蔡恒,張帥. 基于BF算法改進(jìn)的字符串模式匹配算法[J]. 電腦編程技巧與維護(hù),2014(22):14-15,33.
[19] 常毅. 開(kāi)放領(lǐng)域的問(wèn)答系統(tǒng)研究[D]. 北京:中國(guó)科學(xué)院研究生院(計(jì)算技術(shù)研究所),2004.
[20] 肖輝輝,段艷明,蘭小機(jī). 基于Hibernate的XML數(shù)據(jù)存儲(chǔ)方法[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2009,18(10):189-192,163.
[21] 李超. 智能疾病導(dǎo)診及醫(yī)療問(wèn)答方法研究與應(yīng)用[D]. 大連:大連理工大學(xué),2016.
(責(zé)任編輯:黃 健)