《基于知識圖譜的醫(yī)療問答系統(tǒng)設(shè)計與實現(xiàn)》12000字_第1頁
《基于知識圖譜的醫(yī)療問答系統(tǒng)設(shè)計與實現(xiàn)》12000字_第2頁
《基于知識圖譜的醫(yī)療問答系統(tǒng)設(shè)計與實現(xiàn)》12000字_第3頁
《基于知識圖譜的醫(yī)療問答系統(tǒng)設(shè)計與實現(xiàn)》12000字_第4頁
《基于知識圖譜的醫(yī)療問答系統(tǒng)設(shè)計與實現(xiàn)》12000字_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PAGEI基于知識圖譜的醫(yī)療問答系統(tǒng)設(shè)計與實現(xiàn)目錄TOC\h\z\t"中文摘要,1,英文摘要,1,aaa,1,bbb,2,ccc,3,xxx,1"基于知識圖譜的醫(yī)療問答系統(tǒng)設(shè)計與實現(xiàn) I第一章緒論 11.1研究背景及意義 11.2國內(nèi)外研究現(xiàn)狀 21.2.1知識圖譜 21.2.2問答系統(tǒng) 21.3研究內(nèi)容 21.4論文框架 3第二章基礎(chǔ)理論介紹 32.1知識圖譜構(gòu)建理論 32.1.1概述 32.1.2知識存儲 52.2問答系統(tǒng)技術(shù) 62.2.1基于知識圖譜的問答 62.2.2基于語義解析的問答 7第三章知識圖譜構(gòu)建 73.1知識圖譜構(gòu)建框架 73.2知識圖譜規(guī)模 83.2.1知識圖譜實體類型 83.2.2知識圖譜實體關(guān)系類型 83.2.3知識圖譜屬性類型 93.3數(shù)據(jù)獲取 93.3.1數(shù)據(jù)來源 103.3.2數(shù)據(jù)采集 113.4知識提取 123.4.1實體提取 123.4.2關(guān)系提取 143.5基于Neo4j的知識存儲 15第四章基于醫(yī)療知識圖譜實現(xiàn)自動問答 164.1技術(shù)框架 164.2支持問答類型 174.3智能問答 174.3.1問句分析 174.3.2問答搜索 174.4基于知識圖譜的醫(yī)療問答系統(tǒng)前端界面設(shè)計與實現(xiàn) 19第五章總結(jié)與期望 205.1總結(jié) 205.2未來工作與期望 20參考文獻 22第1頁共32頁第7頁共24頁摘要:互聯(lián)網(wǎng)已成為人們搜索獲取健康與醫(yī)療知識重要的途徑。一般情況下,用戶在查詢與醫(yī)療健康相關(guān)的內(nèi)容時,搜索引擎僅僅提供與關(guān)鍵詞近似的網(wǎng)頁,且返回結(jié)果繁多,而專業(yè)醫(yī)療類網(wǎng)站相關(guān)信息,往往過于專業(yè)繁雜,無醫(yī)療知識基礎(chǔ)的用戶無法快速準確的得到真正關(guān)心的信息。對于海量數(shù)據(jù)問題,知識圖譜能夠結(jié)構(gòu)化知識。因此可以將互聯(lián)網(wǎng)上的醫(yī)療健康知識通過知識圖譜技術(shù)有效的結(jié)合,基于Neo4j圖數(shù)據(jù)庫,構(gòu)建更加準確豐富的醫(yī)療領(lǐng)域知識圖譜,進而構(gòu)建醫(yī)療智能問答等應(yīng)用。其次,為了更好地理解用戶的意圖、更針對地對用戶提供更精確的醫(yī)療疾病健康知識,智能問答系統(tǒng)能夠提高用戶獲取所需信息的便捷性,因此可以利用醫(yī)療知識圖譜作為知識庫來搭建醫(yī)療問答系統(tǒng)。目前,面向大眾的即時醫(yī)療問答系統(tǒng)較為少見,因此本文所構(gòu)建的系統(tǒng)能夠為大眾提供便捷的醫(yī)療問答服務(wù),從而緩解上述困境,具有重要應(yīng)用價值。其次,在中文領(lǐng)域的醫(yī)療健康類知識圖譜同樣較少,因此本文所構(gòu)建的醫(yī)療知識圖譜,可以作為智能問答或者信息搜索等應(yīng)用的知識基礎(chǔ),且方便擴展和遷移,具有廣泛的應(yīng)用前景。關(guān)鍵詞:醫(yī)療領(lǐng)域知識圖譜,Neo4j圖數(shù)據(jù)庫,醫(yī)療問答系統(tǒng)

第一章緒論1.1研究背景及意義隨著互聯(lián)網(wǎng)在日常生活中的普及,越來越多網(wǎng)民開始使用網(wǎng)絡(luò)例如百度、谷歌搜索引擎等查詢所需的知識信息。2018年“健康與醫(yī)療”搜索份額為61.24億,這個數(shù)字占“中國網(wǎng)民科普搜索指數(shù)”[1]比例高達66.83%,互聯(lián)網(wǎng)已成為人們搜索獲取健康與醫(yī)療知識重要的途徑。一般情況下,用戶在查詢與醫(yī)療健康相關(guān)的內(nèi)容時,搜索引擎僅僅提供與關(guān)鍵詞近似的網(wǎng)頁,且返回結(jié)果繁多,而專業(yè)醫(yī)療類網(wǎng)站相關(guān)信息,往往過于專業(yè)繁雜,無醫(yī)療知識基礎(chǔ)的用戶無法快速準確的得到真正關(guān)心的信息?,F(xiàn)存的基于互聯(lián)網(wǎng)提供在線醫(yī)療服務(wù)的產(chǎn)品,存在醫(yī)生咨詢服務(wù)等待周期不確定、效率相對低下的問題,比如飛華健康網(wǎng)等?;谝陨蠁栴},知識圖譜為有效的整合并利用互聯(lián)網(wǎng)上的醫(yī)療信息資源提供了一個新的方法和途徑。知識圖譜逐漸成為人工智能未來發(fā)展的關(guān)鍵,它不僅可以結(jié)構(gòu)化的描述現(xiàn)實世界中的各種事物、概念以及它們之間關(guān)系,同時知識圖譜能夠快捷處理大量數(shù)據(jù)問題。因此可以通過知識圖譜技術(shù)獎互聯(lián)網(wǎng)上的醫(yī)療健康知識整合起來,通過建立食物、癥狀、疾病、藥品等醫(yī)療健康知識之間的關(guān)系,搭建一個基于知識圖譜的醫(yī)療問答系統(tǒng)。此外,智能問答系統(tǒng)可以為用戶提供所需的更方便的信息。這種特點可以更有針對性地為用戶提供準確的醫(yī)學疾病和健康知識。所以醫(yī)學知識圖譜被用于建立知識庫的醫(yī)學問答系統(tǒng)。目前,市面上的即時醫(yī)療問答系統(tǒng)相對較少,因此本文構(gòu)建的系統(tǒng)可以為公眾提供便捷的醫(yī)療問答服務(wù),從而減輕上述難題,具有重要的實踐意義。其次,國內(nèi)醫(yī)學和健康知識地圖也較少。因此,本文構(gòu)建的醫(yī)學知識圖譜可作為智能問答或信息搜索等應(yīng)用的知識庫,方便擴展和遷移,具有廣闊的應(yīng)用前景。1.2國內(nèi)外研究現(xiàn)狀1.2.1知識圖譜知識圖譜[2](KnowledgeGraph)由Google公司發(fā)布。在國外,知識圖譜領(lǐng)域的研究已日漸成熟,已經(jīng)構(gòu)建了許多大規(guī)模的知識圖譜。UMLS(theUnifiedMedicalLanguageSystem)[5]、Drug-Bank[10]、DiseaseOntology等都是較為完善的醫(yī)療領(lǐng)域知識圖譜,它們?yōu)獒t(yī)療領(lǐng)域的信息化建設(shè)提供了許多便利。在國內(nèi),近年來醫(yī)療知識圖譜方面的相關(guān)研究包括解放軍醫(yī)學圖書館開發(fā)的醫(yī)學知識服務(wù)系統(tǒng),以及由上海曙光醫(yī)院研發(fā)的中醫(yī)藥類知識圖譜[4]等。但相較國外,國內(nèi)由于起步晚,醫(yī)療知識圖譜領(lǐng)域整體水平低于國外,總體來說,對于醫(yī)療領(lǐng)域的相關(guān)信息和研究相對較少。1.2.2問答系統(tǒng)國外對于問答系統(tǒng)的研究較早,1996年,第一個問答系統(tǒng)“Eliza”在美國誕生。IBM的WatsonHealth沃森機器人,它結(jié)合了知識圖譜和傳統(tǒng)的問答系統(tǒng),可用于問答應(yīng)用程序。Terol[6]等使用自然語言處理技術(shù)分析問題,形成邏輯表達形式,利用UMLS和WordNet在知識庫中搜索回答。在國內(nèi),王昊奮[4]等人構(gòu)建出了基于中醫(yī)的知識圖譜,并將其應(yīng)用到醫(yī)藥問答。近年來,丁香醫(yī)生等醫(yī)療領(lǐng)域相關(guān)網(wǎng)站出現(xiàn),會有線上醫(yī)生及用戶問答板塊,但是無法實時自動回答,并且無法使用醫(yī)療信息來形成知識圖譜。1.3研究內(nèi)容本文設(shè)計并實現(xiàn)了一個基于知識圖譜的醫(yī)學問答系統(tǒng),可以滿足用戶對醫(yī)學聯(lián)合會健康信息的需求,并實時回答用戶提出的問題。此外,還添加了可視化功能,以在充分利用知識圖形的同時增強用戶體驗。首先構(gòu)建醫(yī)療知識圖譜,使用網(wǎng)絡(luò)爬蟲技術(shù)通過需求分析和互聯(lián)網(wǎng)上的醫(yī)學信息從醫(yī)學專業(yè)網(wǎng)站獲取相關(guān)醫(yī)學知識數(shù)據(jù),然后通過圖譜構(gòu)建技術(shù)對知識進行組織和處理,最后使用規(guī)則和詞典對于每個實體與醫(yī)學實體的關(guān)系和Neo4j圖數(shù)據(jù)庫用于存儲和組織醫(yī)學知識圖。其次,對于醫(yī)學問答系統(tǒng)算法,針對語義分析問題可以轉(zhuǎn)化為分類問題,通過問題的類別查詢問題的答案。針對問題檢索模塊的處理,本文對每個類別的查詢建立了查詢模板,采用圖數(shù)據(jù)庫Neo4j自帶的Cypher查詢語言對各類別的關(guān)鍵字在知識圖譜上進行匹配查詢,找到問題對應(yīng)的答案。最后采用Streamlit的UI框架搭建前端界面,提供醫(yī)療知識可視化服務(wù)。1.4論文框架本文分為五個章節(jié),其具體的組織如下所述:第一章為緒論。在闡述研究背景和意義的同時,還介紹了知識圖譜和問答系統(tǒng)的研究現(xiàn)狀,然后闡述了本文的主要研究內(nèi)容和論文寫作框架。第二章為基礎(chǔ)理論介紹。本章詳細介紹了實現(xiàn)知識圖譜和問答系統(tǒng)的相關(guān)技術(shù)理論。第三章為知識圖譜構(gòu)建。從知識圖譜構(gòu)建的步驟出發(fā),首先是知識圖譜構(gòu)建的知識獲取,從數(shù)據(jù)的來源考慮,介紹了知識來源及獲取知識的相關(guān)步驟。其次介紹了知識圖譜構(gòu)造的知識提取部分。最后,介紹基于的知識存儲。第四章為基于醫(yī)療知識圖譜實現(xiàn)自動問答。介紹了問答的問句分析和問答搜索,最后介紹了采用Streamlit的框架搭建問答系統(tǒng)前端界面的方法。第五章為總結(jié)與期望。對本文研究成果進行總結(jié)和反思,并對今后工作進行梳理,針對不足之處提出了部分改進思路。第二章基礎(chǔ)理論介紹2.1知識圖譜構(gòu)建理論2.1.1概述知識圖譜[8]本質(zhì)來說,是由實體節(jié)點和表示實體間關(guān)系的邊為主體,組成的結(jié)構(gòu)化語義網(wǎng)絡(luò)。一般而言,數(shù)據(jù)層和模式層是知識圖譜的組成部分,因此構(gòu)造知識圖有兩種不同的方法:(1)自下而上的思路,它首先分析獲取的數(shù)據(jù),然后通過諸如實體識別和關(guān)系提取之類的技術(shù)獲得實體、屬性和關(guān)系,然后在此基礎(chǔ)上對它們進行分類和總結(jié)。在此過程中,上級可以逐漸抽象,在概念層次結(jié)構(gòu)的末尾,添加了一個集成的知識圖。(2)自上而下的思路,首先建立本體的概念層,即模型層,然后建立數(shù)據(jù)層,也就是根據(jù)模型層的結(jié)構(gòu)添加和更新實體關(guān)系。在實際構(gòu)建過程中,通常不單獨使用這些構(gòu)建方法中的一種,一般是結(jié)合這兩個領(lǐng)域的特征和各自領(lǐng)域的需求來考慮這兩個方法。圖2.1為知識圖譜通用構(gòu)建框架。圖2.1知識圖譜通用構(gòu)建框架組織知識圖譜的構(gòu)建,首先要依據(jù)數(shù)據(jù)來源的情況和特點,進行分析,然后在此基礎(chǔ)上利用不同的技術(shù)或者策略,得到這些數(shù)據(jù)中存在的實體和它們之間存在的關(guān)系,最后結(jié)合領(lǐng)域需求等因素,使用適宜的存儲方式存儲相應(yīng)知識。要構(gòu)建知識圖譜首先是使用實體、關(guān)系和屬性抽取等知識抽取技術(shù),獲得數(shù)據(jù)中包含的知識,因為數(shù)據(jù)包含不同的形式,例如結(jié)構(gòu)化數(shù)據(jù),半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。實體抽取即抽取出構(gòu)建知識圖譜所必要的實體名稱以及有意義的命名實體。實體抽取可以分為以下兩種方法:(1)基于統(tǒng)計模型的方法。首先,需要命名數(shù)據(jù)集,然后使用此結(jié)構(gòu)化數(shù)據(jù)來訓練和微調(diào)所生成的算法模型。近年來,隨著深度學習的發(fā)展和應(yīng)用,深度學習在實體識別領(lǐng)域也得到了廣泛的應(yīng)用。(2)基于規(guī)則詞典方法。首先,分析原始數(shù)據(jù)中存在的一般規(guī)則,然后根據(jù)分析結(jié)果制定相應(yīng)的規(guī)則,然后使用這些規(guī)則過濾數(shù)據(jù)中的實體;關(guān)系抽取一般需要事先定義實體與實體之間關(guān)系的抽象概念。其目的是,經(jīng)過實體抽取抽取出實體之間的關(guān)系,得到<實體,關(guān)系,實體>的三元組。關(guān)系抽取可以分為以下兩種方法:(1)基于特征的方法。為了根據(jù)段落的上下文提取有用的信息,以句法或語法為特征進行相應(yīng)的訓練;(2)基于規(guī)則的方法。通過分析文本的結(jié)構(gòu)和語言特征以及實體之間的關(guān)系,制作規(guī)則模板提取關(guān)系屬性提取的目的是為提取的實體添加屬性。屬性提取和關(guān)系提取本質(zhì)上是相互聯(lián)系的,因此可以采用相似的方法進行提取。由于從原始數(shù)據(jù)中提取的知識不一定形成標準的結(jié)構(gòu),不同的數(shù)據(jù)源往往存在冗余或沖突,因此有必要對提取的知識進行集成。實體對齊是指提取的實體結(jié)果與定義的本體概念相對影。然后對關(guān)系進行融合,檢查是否存在冗余和沖突,并根據(jù)規(guī)則或手工進行相應(yīng)的過濾和融合。知識抽取后,通過對已有圖譜的一系列推理,對原有知識地圖進行擴展,生成新的知識。通常,在知識映射過程中,所提取的知識或多或少會有偏差,因此需要一套質(zhì)量評價體系作為輔助。質(zhì)量評價主要通過人工手段進行控制,主要目的是提高現(xiàn)有知識圖譜的質(zhì)量和可靠性。2.1.2知識存儲知識圖譜中,圖中的節(jié)點和節(jié)點之間的邊分別代表實體和實體之間的關(guān)系。目前主要有RDF三元組和屬性圖兩種表示模型。1、RDF三元組模型資源描述框架[7](ResourceDescriptionFramework),也簡稱為RDF。RDF使用多個三元組表示模型,每一個三元組為<Subject,Predication,Object>SPO三元組,這種結(jié)構(gòu)類似于知識圖中實體節(jié)點和節(jié)點間邊的結(jié)構(gòu),因此知識圖譜中的每一個<entitynode,edge,entitynode>都可以用spo三元組來表示,進而用幾個spo三元組來表示知識圖譜。2、屬性圖模型屬性圖模型由節(jié)點對應(yīng)的實體和連接節(jié)點的邊對應(yīng)的實體組成,即用多個節(jié)點和邊來表示圖。在模型中,每個實體節(jié)點使用一個唯一的標識符來標記它所表示的實體。類似地,對于每條邊,它也有一個唯一的標識符來標記它所表示的關(guān)系。同時,每個邊可以用來連接頭節(jié)點實體和尾節(jié)點實體。圖2.2展示了一個簡單的屬性圖模型。圖2.2實體關(guān)系圖模型圖使用非結(jié)構(gòu)化方法將數(shù)據(jù)連接存儲在知識圖譜中。此數(shù)據(jù)結(jié)構(gòu)在關(guān)系查詢中可能更有效。對于上述兩個模型,對于RDF三元結(jié)構(gòu),通常使用Jena和Virtuoso這樣的數(shù)據(jù)庫,對于圖模型結(jié)構(gòu),有Neo4j[3]這樣的數(shù)據(jù)庫。2.2問答系統(tǒng)技術(shù)問答系統(tǒng)[9](QuestionAnsweringSystem,QA),可以使用自然語言與用戶進行交互,目的是回答用戶提出的問題并幫助他們獲得所需的知識數(shù)據(jù)。一般來說,我們的語言表達千差萬別,所以自然語言問句就會有多種形式,也會區(qū)別于知識庫中的知識形式<實體節(jié)點,邊,實體節(jié)點>。例如我們問:“二尖瓣狹窄的治療周期是多久?”,所以就要在知識庫中找到“二尖瓣狹窄”和“3個月”這兩個實體,以及尋找實體之間的關(guān)系“治療周期”。基于知識圖譜的問答和基于語義解析的問答會在本文中用到。2.2.1基于知識圖譜的問答基于知識圖譜的問答(KnowledgeBasedQA,KBQA),首先通過對用戶提出的問題進行實體鏈接抽取出問句中的實體,然后在此基礎(chǔ)上進行屬性理解,通過意圖識別找到在知識圖譜上對應(yīng)的屬性,最后使用結(jié)構(gòu)化的查詢方式在圖譜上找到答案。知識圖的問答基于知識庫作為結(jié)果的來源。它主要考慮如何將用戶的自然語言問題轉(zhuǎn)換為基于知識庫的結(jié)構(gòu)化搜索,比如,回答“口腔潰瘍應(yīng)該怎么治療?”對于這個問題,我們需要將其變換為sql查詢或其他結(jié)構(gòu)化查詢,關(guān)鍵的問題是屬性推斷。而對于屬性推理又需要解決問題表示和語義匹配問題。對于問題表示,任意一個問答系統(tǒng)都需要有一個具有代表性的問題表示,能夠幫助識別出擁有一樣語義的問題,又能夠區(qū)分出問題的不一樣的意圖。對于問句語義的匹配,又該如何把問句表示關(guān)聯(lián)到知識庫的結(jié)構(gòu)化查詢中呢?可以使用基于模板的方法,直接用所定義好的模板對句子進行表示。2.2.2基于語義解析的問答針對自然語言,首先進行語義解析,然后轉(zhuǎn)化為邏輯表達形式,從而讓知識庫理解該表達式,進一步可以把相應(yīng)的查找語句在知識庫中去查詢知識,最后可以得到所需的結(jié)果答案。語義解析的問答中有語義解析和查詢執(zhí)行兩個階段。其中,最重要的階段是語義解析階段,一般分為實體識別、詞匯映射和語義組合:(1)實體識別。抽取出問句中的實體、以及實體間的關(guān)系和屬性;(2)詞匯映射。把句子中的單詞投射到知識庫中對應(yīng)的有關(guān)聯(lián)性的實體元素的關(guān)系中去,一般能夠根據(jù)構(gòu)造出的詞匯表去實現(xiàn)投影,或者可以對預(yù)定義好的模板去關(guān)系匹配;(3)語義組合。將問句識別抽取出的實體與知識庫中的關(guān)系屬性對應(yīng)后,通過某種規(guī)則進行組合,形成對應(yīng)的結(jié)構(gòu)化的邏輯形式。語義解析后,采用其對應(yīng)的數(shù)據(jù)進行查詢執(zhí)行,這里需要一種邏輯語言來處理邏輯查詢,以達到對知識庫進行查詢的目的。最后,將邏輯形式轉(zhuǎn)換為相應(yīng)知識庫的搜索語言以進行查詢,例如RDF知識庫使用的SPARQL語言,Neo4j圖形數(shù)據(jù)庫使用的Cypher語言等,以獲得正確的結(jié)果信息。第三章知識圖譜構(gòu)建3.1知識圖譜構(gòu)建框架本文所設(shè)計的知識圖譜構(gòu)建[8]框架如圖3.1所示。圖3.1知識圖譜構(gòu)建框架3.2知識圖譜規(guī)模3.2.1知識圖譜實體類型本文知識圖譜所包含的實體類型如表3.1所示。表3.1知識圖譜實體類型實體類型中文含義舉例Check檢查項目遺傳篩查;尿液分析Department醫(yī)療科目小兒內(nèi)科;腫瘤內(nèi)科Disease疾病感冒;高血壓Drug藥品腦血康膠囊;羧甲司坦片F(xiàn)ood食物枸杞葉豬腰湯;芝麻茶Producer在售藥品華海藥業(yè)鬼臼毒素酊;江西藥都樟樹補中益氣片Symptom癥狀血壓偏低;假日心臟綜合征3.2.2知識圖譜實體關(guān)系類型本文知識圖譜所包含的實體關(guān)系類型如表3.2所示。表3.2知識圖譜實體關(guān)系類型實體關(guān)系類型中文含義舉例belongs_to屬于<心內(nèi)科,屬于,內(nèi)科>common_drug常用藥品<冠心病,常用,丹參片>do_eat宜吃食物<冠心病,宜吃,蓮子>no_eat忌吃食物<冠心病,忌吃,杏仁>drugs_of在售藥品<丹參片,在售,雷氏丹參片>need_check檢查項目<冠心病,所需檢查,心電圖>recommand_drug推薦藥品<冠心病,推薦用藥,丹參片>recommand_eat推薦食譜<冠心病,推薦食譜,綠豆粥>has_symptom癥狀<冠心病,疾病癥狀,不正常呼吸短促>acompany_with并發(fā)癥<冠心病,并發(fā)疾病,動脈栓塞>3.2.3知識圖譜屬性類型本文知識圖譜所包含的屬性類型如表3.3所示。表3.3知識圖譜屬性類型屬性類型中文含義舉例name名稱二尖瓣狹窄desc簡介二尖瓣狹窄是由于不同原因引起二尖瓣開放功能受限cause病因老年性二尖瓣環(huán)prevent預(yù)防措施防止風濕熱的初次發(fā)作cure_lasttime治療周期3個月cure_way治療方式“藥物治療”,“支持性治療”,“手術(shù)治療”cured_prob治愈率手術(shù)治愈率95%以上easy_get易感人群無特殊人群3.3數(shù)據(jù)獲取3.3.1數(shù)據(jù)來源想要構(gòu)建醫(yī)療類知識圖譜,我們首先要確定它的數(shù)據(jù)來源。醫(yī)療知識和身體健康緊密相連,所以它具有極強的專業(yè)性,我們可以選擇尋醫(yī)問藥網(wǎng)、春雨醫(yī)生、39健康網(wǎng)等與醫(yī)療疾病健康相關(guān)的專業(yè)網(wǎng)站,從中獲取醫(yī)療相關(guān)數(shù)據(jù)和知識信息。本文選擇從尋醫(yī)問藥網(wǎng)來獲取醫(yī)療相關(guān)數(shù)據(jù)和知識信息。圖3.2尋醫(yī)問藥網(wǎng)圖3.3尋醫(yī)問藥網(wǎng)詞條結(jié)構(gòu)示例圖從圖3.3尋醫(yī)問藥網(wǎng)詞條結(jié)構(gòu)示例圖可以看出,每個頁面都是圍繞一個實體進行介紹,很多的結(jié)構(gòu)化數(shù)據(jù)包括在每個實體中。想要獲取這些知識就需要查看網(wǎng)頁結(jié)構(gòu),圖3.4是尋醫(yī)問藥網(wǎng)站詞條對應(yīng)的網(wǎng)頁源代碼圖。圖3.4尋醫(yī)問藥詞條對應(yīng)的網(wǎng)頁源代碼3.3.2數(shù)據(jù)采集確定尋醫(yī)問藥網(wǎng)為本文數(shù)據(jù)來源后,需要將網(wǎng)站中的醫(yī)療知識數(shù)據(jù)采集到本地,這里就需要用到網(wǎng)絡(luò)爬蟲技術(shù)。通常情況下,網(wǎng)絡(luò)爬蟲技術(shù)共分為4步:(1)發(fā)送請求。發(fā)送http請求到目標地址后,等待目標服務(wù)器響應(yīng);(2)獲取內(nèi)容。等到目標服務(wù)器響應(yīng)后,得到相應(yīng)網(wǎng)頁頁面中的內(nèi)容;(3)解析網(wǎng)頁。得到相應(yīng)網(wǎng)頁頁面中的內(nèi)容后,對信息進行解析;(4)下載和保存內(nèi)容,最終存儲為我們所要的數(shù)據(jù)。圖3.5展示了網(wǎng)絡(luò)爬蟲的基本原理。圖3.5網(wǎng)絡(luò)爬蟲基本原理由于互聯(lián)網(wǎng)上醫(yī)療網(wǎng)站的開發(fā)技術(shù)不同,不同的網(wǎng)站頁面和數(shù)據(jù)傳輸方式也各不相同。1、針對靜態(tài)頁面,其所有的數(shù)據(jù)都保存在html中,只要找到對應(yīng)的URL,就能得到整個頁面的數(shù)據(jù)??梢允褂没谝?guī)則的方法直接通過URL下載整個HTML頁面,從而對頁面內(nèi)容進行分類,分析頁面的規(guī)則,然后用XPath對頁面進行規(guī)則解析,得到所需的醫(yī)療數(shù)據(jù)。2、針對動態(tài)頁面,不能通過獲取HTML頁面直接獲取頁面數(shù)據(jù),因為通過JavaScript發(fā)出動態(tài)請求,然后呈現(xiàn)頁面。我們可以使用基于Selenium的方法,通過事件函數(shù)觀察動態(tài)頁面的加載情況,進而得到所需的醫(yī)療數(shù)據(jù)。3、針對返回格式為json類型的URL??梢圆捎没趈son-url的方法,主要針對數(shù)據(jù)傳輸形式為JSON類型數(shù)據(jù)的前端和后端web頁面。通過分析頁面中數(shù)據(jù)的訪問路徑和對應(yīng)的URL,分析其參數(shù),并做相應(yīng)的修改,可以直接請求網(wǎng)站通過修改后的URL獲取JSON格式的數(shù)據(jù)。圖3.6爬蟲流程圖3.4知識提取3.4.1實體提取本文所使用的醫(yī)學知識數(shù)據(jù)來源于尋醫(yī)問藥網(wǎng),且大多具有特定的結(jié)構(gòu)化風格。因此,我們可以分析和發(fā)現(xiàn)數(shù)據(jù)中的共性,并制定相應(yīng)的實體識別規(guī)則,從而可以使用和制定適當?shù)囊?guī)則,同時集成詞典。經(jīng)過以上分析,本文將根據(jù)具體的數(shù)據(jù)信息情況制定不同的策略。一方面是發(fā)現(xiàn)和分析一些易于分類和整合的特征。在此基礎(chǔ)上,我們可以總結(jié)出與之相一致的共同規(guī)律,進而得到相應(yīng)的規(guī)則來表達和獲取所需的信息。另一方面,可以將上述方法結(jié)合起來,先用分詞工具對其進行處理,然后用規(guī)則對其進行處理,得到所需的信息。本章中醫(yī)療實體抽取的詳細策略如圖所示。圖3.7醫(yī)療實體抽取流程對于本文所涉及的領(lǐng)域,疾病等相關(guān)術(shù)語將更具特殊性,因此本文將在jieba分詞的基礎(chǔ)上進行補充,即利用醫(yī)學領(lǐng)域詞匯與之相結(jié)合。建立詞匯表的過程是添加更容易獲得的醫(yī)療實體。在此基礎(chǔ)上,可以輔助jieba分詞工具,有利于相關(guān)實體的識別和獲取。具體策略如下:1、根據(jù)數(shù)據(jù)制定規(guī)則在對醫(yī)學數(shù)據(jù)的分析中發(fā)現(xiàn),大多數(shù)醫(yī)學網(wǎng)站上的疾病標簽都是標準化、規(guī)范化的,便于篩選疾病實體和構(gòu)建詞典,便于后續(xù)知識抽取過程的使用。對于其他實體的提取,可以通過分析得到數(shù)據(jù)中大部分醫(yī)學知識文本的描述,更加規(guī)范化,因此可以通過制定規(guī)則來提取。我們可以從藥品說明書中看出哪些藥品可以用來治療哪些相關(guān)疾病和相應(yīng)的癥狀。同時,描述具有一定的風格結(jié)構(gòu),因此可以利用這一特征得到相應(yīng)的規(guī)則[8]。例如,在藥品說明書數(shù)據(jù)中,以藥品“感冒靈顆?!睘槔?,將這種感冒靈顆粒的功能描述為“適用于咽喉痛、鼻塞、頭痛、流涕、流感發(fā)熱……”,因此可以提取規(guī)則并添加到規(guī)則庫中,即,本品適用于由[疾病]引起的[癥狀],其中“999感冒靈顆?!薄ⅰ?99感冒靈顆?!笨商崛嶓w中的“頭痛”,實體中的“發(fā)熱”,實體中的“鼻塞”,實體中的“流涕”,實體中的“咽喉痛”[8]。因此基于上述的思路,可以采用的規(guī)則如下:(1)藥物描述文本中,根據(jù)藥品主治功能標簽,可根據(jù)藥品用于/XXX、藥品常用于治療/XXX、藥品可用于/XXX、藥品適用于/XXX、藥品常治療/XXX等類似的規(guī)律得到相關(guān)的癥狀以及疾病類型實體等。(2)在相關(guān)疾病飲食描述文本中,可以根據(jù)疾病宜吃/XXX、不宜吃/XXX,忌食/XXX,推薦食物為/XXX等規(guī)則獲取食物實體。(3)在檢查治療描述文本中,根據(jù)相關(guān)檢查為/XXX、主要檢查/XXX,常見檢查項目有/XXX。(4)藥物描述說明中,可以根據(jù)藥物名稱/XXX,本品名稱/XXX等規(guī)則得到藥物類實體[8]。2、根據(jù)詞語及相關(guān)詞性制定規(guī)則在基于詞和詞性規(guī)則制定的方法中,采用解jieba分詞對醫(yī)學描述文本進行切分。在處理的過程中,可能會出現(xiàn)多種名詞,這些名詞不一定是我們需要的數(shù)據(jù),因此需要借助相關(guān)的詞典信息進行輔助。同時,我們也需要在此基礎(chǔ)上總結(jié)制定相關(guān)的規(guī)則信息,并進行綜合處理。接下來舉個例子,“支氣管哮喘常伴有支氣管分泌物増加、咳嗽、喘息、肺過度充氣、哮鳴音、呼吸困難、咳嗽伴哮鳴音氣管阻塞、痰飲”,通過jieba分詞獲得詞語詞性結(jié)果為“支氣管哮喘/n常/d伴有/v咳嗽/v、/x喘息/v、/x肺/n過度/n充氣/n、/x哮鳴音/n、/x呼吸困難/l、/x咳嗽/v伴/v哮鳴音/n、/x氣管/n阻塞/v、/x痰飲/n”,從處理的過程中可以看出,首先可以得到支氣管哮喘的實體名詞,然后分析其后面每個詞的詞性和結(jié)構(gòu)。我們可以知道,許多連續(xù)出現(xiàn)的單詞都與癥狀等信息有關(guān)。然而,一些完整的癥狀描述在處理后的信息中會被加工成不同的詞,影響其完整性和準確性。因此,在這種情況下,當數(shù)據(jù)中存在各種連接詞時,需要將它們作為分割的基礎(chǔ),才能得到正確的結(jié)果[8]。由于第一種策略獲取的醫(yī)療實體數(shù)據(jù)較多,第二種策略可以充分利用現(xiàn)有的醫(yī)療實體詞典進行輔助處理。首先,我們可以找到現(xiàn)有相關(guān)實體的位置,然后利用這些信息和后續(xù)詞性信息對相應(yīng)的規(guī)則進行分析和總結(jié),得到不同的規(guī)則,并保留一些關(guān)系信息,也可以用于后續(xù)處理。因此,相關(guān)的規(guī)則有:[詞語wd]/謂詞詞項/癥狀實體的詞匯,則wd為藥物或疾病實體;詞典中疾病實體/謂詞詞項/[詞語wd],wd為癥狀或疾病相關(guān)實體;癥狀實體詞匯/謂詞詞項/[詞語wd],wd為疾病或者癥狀實體詞語;[詞語wd]/謂詞詞項/疾病實體,wd為癥狀藥物或疾病相關(guān)實體[8]。3.4.2關(guān)系提取提取對應(yīng)關(guān)系的主要目的是連接它們之間現(xiàn)有的語義。首先,我們需要分析從互聯(lián)網(wǎng)上獲取的數(shù)據(jù)信息中存在的關(guān)系規(guī)則。同時,在之前的醫(yī)學相關(guān)實體提取過程中,可以獲得實體相關(guān)關(guān)系的三重信息[8]。因此,我們可以充分利用這些數(shù)據(jù)來獲得對應(yīng)關(guān)系。在分析數(shù)據(jù)之后,我們可以使用上述關(guān)系三元組來獲得所需的關(guān)系類型。同時,我們還需要根據(jù)需求定義對關(guān)系進行分類和過濾,并指定相應(yīng)的處理規(guī)則[8]。因為在相關(guān)的敘事數(shù)據(jù)中有明顯的標記,我們可以利用這些標記信息來提示獲得關(guān)系。例如,如果在一些與疾病相關(guān)的描述性信息中有“并發(fā)癥”標簽,我們就可以判斷并發(fā)癥之間的關(guān)系[8]。例如,在疾病描述數(shù)據(jù)中,類似于癲癇疾病描述文本中的“常并發(fā)急性腎功能衰竭和急性白血病”。通過在規(guī)則庫中加入“常復(fù)雜”規(guī)則,我們可以得到癲癇與其他疾病并發(fā)癥之間的關(guān)系[8],癲癇,并發(fā)癥,急性腎功能衰竭以及癲癇,并發(fā)癥,急性白血病。對于屬性來說,可看成另一種關(guān)系,主要根據(jù)需求制定的定義,采用上述方法可獲取[8]。3.5基于Neo4j的知識存儲本文利用圖數(shù)據(jù)庫Neo4j對醫(yī)療知識圖譜數(shù)據(jù)進行存儲。Neo4j相較于其他圖數(shù)據(jù)庫而言,優(yōu)勢在于,不僅可以快速操作數(shù)據(jù)庫,還可以靈活進行調(diào)整擴展。所以,Neo4j是目前使用最廣泛的圖數(shù)據(jù)庫。同時為了方便將數(shù)據(jù)導(dǎo)入Neo4j,也為了更便于查詢圖形數(shù)據(jù),該圖數(shù)據(jù)庫提供Cypher語句。Cypher是一種聲明模式匹配的語言,便捷易于理解。Neo4j圖數(shù)據(jù)庫的數(shù)據(jù)存儲形式由節(jié)點代表知識圖譜中實體元素和邊代表實體相關(guān)聯(lián)的關(guān)系組成,每個節(jié)點上都可以有一個或多個標簽來表示實體的分類,以及鍵值對表示屬性的集合。Neo4j中的工具neo4j-import,就專門針對大規(guī)模數(shù)據(jù),將實體和實體之間的關(guān)系數(shù)據(jù)迅速地導(dǎo)入到圖數(shù)據(jù)庫之中,在數(shù)據(jù)導(dǎo)入以后,可以使用Cypher語言對知識圖譜進行可視化操作。本文采用的是json文件方式進行導(dǎo)入,也可以利用Cypher語句自己創(chuàng)建節(jié)點和邊。圖3.8展示了基于圖數(shù)據(jù)庫Neo4j所構(gòu)建的醫(yī)療知識圖譜,44112個實體、291164對實體關(guān)系包含在了該知識圖譜中。圖3.7醫(yī)療知識圖譜效果圖第四章基于醫(yī)療知識圖譜實現(xiàn)自動問答4.1技術(shù)框架圖4.1展示了此文所設(shè)想的醫(yī)療問答系統(tǒng)的流程框架。圖4.1基于知識圖譜的問答框架4.2支持問答類型表4.1展示了本文所設(shè)計的醫(yī)療問答系統(tǒng)[9]支持的問答類型。表3.2問答系統(tǒng)支持的問答類型問句類型中文含義問句舉例disease_desc疾病描述手足口病disease_cause病因手足口病的產(chǎn)生原因?disease_acompany并發(fā)癥手足口病有什么并發(fā)癥?disease_symptom癥狀手足口病的癥狀是什么?disease_prevent預(yù)防措施手足口病的預(yù)防措施有?disease_lasttime治療周期治療手足口病需要多久?disease_cureway治療方式如何治療手足口???disease_cureprob治愈率手足口病的治愈率是多少?disease_easyget易感人群哪些人容易得手足口?。縟isease_do_food宜食手足口病患者應(yīng)該吃什么?disease_not_food忌食手足口病患者不該吃什么?symptom_disease已知癥狀找疾病打噴嚏是得什么病了嗎?food_not_disease什么病不要吃**(食物)哪些患者不要吃蓮子?food_do_disease**(食物)對什么病有益杏仁對什么病有益?disease_drug**(疾?。┮允裁此幨肿憧诓』颊叱允裁此??drug_disease**(藥品)能治什么病益腎壯陽膏能治什么病?disease_check**(疾?。┬枳鍪裁礄z查手足口病需做什么檢查?check_disease**(檢查)能查什么疾病心電圖能查什么疾???4.3智能問答問答系統(tǒng)的實現(xiàn),目的就是可以回答用戶所提出的問題,要想實現(xiàn)智能問答系統(tǒng),問句分析和答案查詢是必不可少的。其中,問句分析是智能問答的基礎(chǔ),將系統(tǒng)用戶輸入的自然語言問句完成語義分析,以便進行答案查詢。而答案搜索是在語義分析完成后,基于本文構(gòu)建好的醫(yī)療類知識圖譜,在知識庫中進行問句查詢功能的完成,從而可以返回用戶想要知道的知識、數(shù)據(jù)結(jié)果。4.3.1問句分析問句分析是智能問答的重要組成部分,也是完成整個智能問答的基礎(chǔ)。問句分析的目的是通過對自然語言問句進行語義的分析和理解,使得用戶的口頭化表達可以轉(zhuǎn)變?yōu)檫壿嫳磉_式,方便知識庫理解。一般而言,問句分析包含分詞、命名實體識別以及語義分析等,而智能搜索的目的在于識別出實體以及識別出實體間的關(guān)系。智能搜索問句分析中比較重要的技術(shù)--句法分析,就包括了句法結(jié)構(gòu)分析和依存關(guān)系分析這兩個部分,依存關(guān)系分析的主要目的在于分析出問句中詞與詞之間的依存關(guān)系,即實體與實體間的依存關(guān)系。4.3.2問答搜索基于知識圖譜的問答(KBQA),是根據(jù)問句的語義理解和解析,然后在知識庫中檢索得到解答。一般問句的形式和種類多種多樣,有對比型、事實型、是非型、關(guān)系型以及因果型問題等,而不同類型的問題的查詢方式和湖大結(jié)果也不盡相同。通過對本文問句的分析,醫(yī)療健康問題領(lǐng)域本身就屬于比較封閉的場景,對領(lǐng)域問題可以進行窮舉分析,用戶所提出的問題的類型一般都屬于事實型問題,基于規(guī)則模板匹配的方法是解決上述問題最簡單明了的方式。基于知識圖譜的問答系統(tǒng)中,本文采用了知識圖譜的圖數(shù)據(jù)庫neo4j自帶的高級查詢語言Cypher來進行高級檢索,使用Cypher的match在neo4j圖數(shù)據(jù)庫進行匹配查找。這里的匹配是根據(jù)關(guān)鍵詞進行匹配的,關(guān)鍵詞是由我們手工定義窮舉出來的,比如以癥狀類別為例,用戶提出問題“中暑會出現(xiàn)哪些癥狀?”、“患了頸椎病有什么明顯的現(xiàn)象?”、“出現(xiàn)哪些狀況是感冒了?”等等,從大量用戶提出的問題中不難發(fā)現(xiàn),問題中一般會出現(xiàn)“癥狀”、“表現(xiàn)”、“現(xiàn)象”、“表征”、“狀態(tài)”、“癥候”、“狀況”等關(guān)鍵詞,因此,本文主要根據(jù)上述實體和問句的分類來進行匹配索引。圖是以Cypher查詢語言為例進行問句查詢的簡單流程。圖4.2問句查詢流程圖在上文問句查詢過程中,問句分析可以對問句執(zhí)行依存句法和命名實體分析,再根據(jù)識別到的關(guān)鍵詞實體以及問題的意圖類別確定候選的模板,模板的查詢結(jié)構(gòu)為:match(n)returnn,其中,本文根據(jù)問句的形式不同將模板定義了三種類型的候選模板,下面將簡單介紹這三種模板查詢的形式。第一種:“實體”型。例如“什么是感冒?”,問句中只出現(xiàn)實體,目的只是為了查詢實體的相關(guān)信息,不涉及其他部分。查詢的結(jié)構(gòu)為:“match(x:實體類型)returnx”。2、第二種:“實體+關(guān)系”型。例如“感冒應(yīng)該吃什么東西?”,查詢問句中實體-關(guān)系相關(guān)的實體或?qū)傩灾?,可以通過關(guān)系三元組,例句中的關(guān)系三元組為<疾病,推薦食譜,食譜>。查詢的結(jié)構(gòu)為:“match(x:實體類型{關(guān)系類型:實體值})returnx”。第三種:“實體+屬性”型。例如“感冒多久能治好?”,用于查詢問句中實體的相關(guān)屬性值。查詢的結(jié)構(gòu)為:“match(x:實體類型{屬性名:屬性值})returnx”。對用戶的問句進行查詢后得到的結(jié)果數(shù)據(jù),結(jié)合相應(yīng)的答案回復(fù)模板,再一次進行組裝合并,返回相對準確的答案給用戶。4.4基于知識圖譜的醫(yī)療問答系統(tǒng)前端界面設(shè)計與實現(xiàn)本文采用Streamlit的UI框架,搭建醫(yī)療問答系統(tǒng)前端界面。Streamlit是一種Web框架,它的優(yōu)勢在于不僅簡約,而且運行速度快。Streamlit的目的是使用Python更加輕松、更加便捷搭建模型和可視化。flask常被用來搭建網(wǎng)頁,但需要編寫較多的html文件,對js語言要求較高,操作復(fù)雜。Stremlit和flask對比來看,Stremlit框架小,適合搭建簡單的交互網(wǎng)頁flask更加適合搭建復(fù)雜網(wǎng)頁。圖4.3和圖4.4為采用的框架搭建的問答系統(tǒng)前端界面效果圖。圖4.3問答系統(tǒng)前端界面圖4.4問答系統(tǒng)前端界面第五章總結(jié)與期望5.1總結(jié)本文以尋醫(yī)問藥網(wǎng)作為數(shù)據(jù)來源,基于知識圖譜構(gòu)建理論和Neo4j圖數(shù)據(jù)庫,構(gòu)建了一個醫(yī)療知識圖譜,該圖譜包含了44112個實體,291164對實體關(guān)系。在構(gòu)建知識圖譜完成的基礎(chǔ)上,通過對用戶輸入的自然語言進行分析和搜索,完成醫(yī)療智能問答,問題種類共包含“疾病描述”、“病因”、“并發(fā)癥”等18類。5.2未來工作與期望本文實現(xiàn)的基于知識圖譜的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論