亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

智能育兒知識(shí)服務(wù)方法及系統(tǒng)與流程

文檔序號(hào):11654684閱讀:509來(lái)源:國(guó)知局
智能育兒知識(shí)服務(wù)方法及系統(tǒng)與流程
本發(fā)明屬于育兒保健
技術(shù)領(lǐng)域
,涉及一種智能育兒知識(shí)服務(wù)方法及系統(tǒng)。
背景技術(shù)
:隨著互聯(lián)網(wǎng)的快速發(fā)展,計(jì)算機(jī)技術(shù)已經(jīng)在各行各業(yè)方便著人們的生活。在醫(yī)療領(lǐng)域也不例外。在網(wǎng)絡(luò)上潛藏著大量的兒科疾病的專業(yè)數(shù)據(jù)和用戶的問(wèn)診記錄,這些信息對(duì)于兒科疾病問(wèn)題的解決,就像黃金一樣零零散散的隱沒(méi)在沙子里。雖然很有用,但是不夠系統(tǒng)、不夠完整,缺乏靈活智能的組織和人性化的展現(xiàn)方式,最終不能很好的發(fā)揮作用。如何開(kāi)發(fā)出一款育兒保健的機(jī)器人系統(tǒng),來(lái)搜集整理信息,為育兒父母服務(wù),刻不容緩。經(jīng)過(guò)調(diào)查,目前市場(chǎng)上存在著“尋醫(yī)問(wèn)藥網(wǎng)”,“中國(guó)健康網(wǎng)”等一系列醫(yī)療網(wǎng)站,還有各大醫(yī)院的門戶網(wǎng)站,他們大都提供兒童疾病查詢和在線醫(yī)生問(wèn)診的服務(wù)。但是經(jīng)過(guò)使用后發(fā)現(xiàn),他們的疾病查詢服務(wù)大都局限于疾病信息的檢索,并沒(méi)有對(duì)疾病信息進(jìn)行有效的構(gòu)建和整理,以形成知識(shí)庫(kù)從而為用戶更好地服務(wù)。另外他們對(duì)于信息的展示形式,大多過(guò)于單一,都只是文字的闡述和羅列。當(dāng)患兒的父母,心急如焚的查找有用信息時(shí),往往會(huì)被淹沒(méi)在浩如煙海的文字里,最終所獲甚少。這種忽略用戶心理的交互,并不能在關(guān)健時(shí)刻及時(shí)有效的給用戶提供服務(wù)。其次,他們大而全的疾病檢索,當(dāng)然能夠包涵兒科疾病,但是精力的分散注定了其不能專注于兒童疾病。另外,這些網(wǎng)站所提供的在線醫(yī)生問(wèn)診服務(wù),并不能做到真正的全天24小時(shí)在線,有些甚至得提前預(yù)約。可是患兒的發(fā)病時(shí)間是無(wú)規(guī)律可循的,當(dāng)夜半三更,孩子發(fā)病而醫(yī)生又恰巧不在時(shí),這些系統(tǒng)不但不能為用戶服務(wù),有甚者甚至延誤了患兒的治療時(shí)機(jī)。其次,這些網(wǎng)站的疾病信息來(lái)源于后臺(tái)專業(yè)人士的手動(dòng)錄入,往往有一定的滯后性。當(dāng)一種兒科流行病迅速爆發(fā)時(shí),信息錄入滯后的網(wǎng)站,往往并不能及時(shí)更新網(wǎng)站信息,這樣,用戶就不能及時(shí)知情,及時(shí)預(yù)防,防患于未然。市場(chǎng)上也存在著“育兒網(wǎng)”、“babytree”、“yy”網(wǎng)”等育兒平臺(tái),他們更加關(guān)注于兒童,因此對(duì)于育兒而言也更加專業(yè)。但是,他們只是關(guān)注于保健以及育兒知識(shí)的普及,對(duì)于孩子疾病的查詢和診治方面,并不能給出權(quán)威的服務(wù)。況且,他們所針對(duì)的兒童,是大多數(shù)兒童的普遍癥狀,但其實(shí)兒童的成長(zhǎng)過(guò)程是千差萬(wàn)別的,在育兒過(guò)程中的經(jīng)驗(yàn)也是各有千秋的。因此關(guān)注每一個(gè)孩子的成長(zhǎng),為每一個(gè)孩子量身打造一個(gè)屬于自己知識(shí)經(jīng)驗(yàn)庫(kù)是十分必要的。這個(gè)經(jīng)驗(yàn)庫(kù)可以用來(lái)分享,但是并不能完全復(fù)用。目前國(guó)內(nèi)外,針對(duì)成人疾病問(wèn)診及預(yù)防的應(yīng)用軟件數(shù)量繁多,并且大多數(shù)都收到顯著的歡迎和成效。但是這類軟件應(yīng)用當(dāng)中,成人健康咨詢綜合類居多,單科類疾病問(wèn)診領(lǐng)域顯著偏少,而趨向于兒科疾病的問(wèn)診和咨詢更是寥寥無(wú)幾。例如國(guó)內(nèi)的綜合類健康咨詢應(yīng)用軟件“春雨醫(yī)生”、“好大夫”、“青蘋果健康”、“掌上醫(yī)生”等等,雖廣受歡迎但卻是針對(duì)成人綜合疾病問(wèn)診的;而育兒類軟件如“育兒指南”、“育兒?jiǎn)柎稹?、“天天育兒”、“春雨育兒醫(yī)生”,盡管以問(wèn)答形式提供了許多育兒經(jīng)驗(yàn)及在線醫(yī)生問(wèn)診服務(wù),但仍存在以下不足:(1)上述系統(tǒng)疾病查詢服務(wù)大都局限于疾病信息的檢索,并沒(méi)有對(duì)疾病信息進(jìn)行有效的構(gòu)建和整理,以知識(shí)庫(kù)的形式呈現(xiàn)給用戶,以致于用戶還是要從繁雜的網(wǎng)絡(luò)數(shù)據(jù)中搜尋、判別有用的信息,無(wú)法精確的獲取自己想要的育兒知識(shí)。另外他們對(duì)于信息的展示形式,大多過(guò)于單一,都只是文字的闡述和羅列。當(dāng)患兒的父母,心急如焚的查找有用信息時(shí),往往會(huì)被淹沒(méi)在浩如煙海的文字里,最終所獲甚少。這種忽略用戶心理的交互,很難在關(guān)健時(shí)刻及時(shí)有效的給用戶提供服務(wù)。(2)上述系統(tǒng)大部分是基于論壇形式的問(wèn)答服務(wù),這種論壇形式的問(wèn)答服務(wù)提供的是一種零散式的知識(shí)服務(wù),并不能完整的展現(xiàn)一種兒科疾病從發(fā)病到治療,再到治愈的全過(guò)程。而且隨著孩子年齡的增長(zhǎng),育兒過(guò)程中會(huì)出現(xiàn)不同問(wèn)題,每位家長(zhǎng)都需要對(duì)比問(wèn)題所發(fā)生的前因后果,而不僅僅是通過(guò)當(dāng)前的表征狀態(tài)來(lái)獲取結(jié)論。不能為家長(zhǎng)們提供一種基于過(guò)程式的育兒知識(shí)服務(wù)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明所要解決的技術(shù)問(wèn)題,提供一種智能育兒知識(shí)服務(wù)方法,對(duì)疾病信息進(jìn)行有效的構(gòu)建和整理,以知識(shí)庫(kù)的形式呈現(xiàn)給用戶,解決了現(xiàn)有育兒知識(shí)服務(wù)方法不能完整的展現(xiàn)一種兒科疾病從發(fā)病到治療,再到治愈的全過(guò)程,缺乏人性化智能的展現(xiàn)方式,展現(xiàn)形式單一的問(wèn)題。本發(fā)明的另一目的是,提供一種智能育兒知識(shí)服務(wù)系統(tǒng),構(gòu)建了一個(gè)基于過(guò)程的兒科知識(shí)服務(wù)社交系統(tǒng)。本發(fā)明所采用的技術(shù)方案是,一種智能育兒知識(shí)服務(wù)方法,具體按照以下步驟進(jìn)行:步驟1,信息采集:利用爬蟲(chóng)程序定時(shí)下載、解析最新的兒童疾病數(shù)據(jù)信息,并儲(chǔ)存在mysql數(shù)據(jù)庫(kù)中;步驟2,專家機(jī)器人知識(shí)庫(kù)構(gòu)建:包括疾病咨詢、疾病預(yù)測(cè)、醫(yī)生推薦三個(gè)步驟;所述疾病咨詢:將用戶提供的疾病名稱直接傳遞至疾病預(yù)測(cè)模塊;或者通過(guò)與用戶不斷的交流獲取癥狀詞,采用分詞器切分用戶輸入的口語(yǔ)癥狀詞,利用mysql數(shù)據(jù)庫(kù)中的疾病癥狀詞表識(shí)別切分后的癥狀詞,獲得癥狀詞列表,并傳遞至疾病預(yù)測(cè)模塊;所述疾病預(yù)測(cè):包括疾病名稱預(yù)測(cè)和癥狀詞列表預(yù)測(cè);所述疾病名稱預(yù)測(cè)是根據(jù)疾病咨詢中獲得的疾病名稱在mysql數(shù)據(jù)庫(kù)中檢索,以知識(shí)圖譜的形式為用戶展示疾病預(yù)測(cè)結(jié)果;所述癥狀詞列表預(yù)測(cè)是將疾病咨詢中獲得的癥狀詞列表與mysql數(shù)據(jù)庫(kù)中每一種疾病的癥狀進(jìn)行匹配,根據(jù)匹配程度以知識(shí)圖譜的形式為用戶展示疾病預(yù)測(cè)結(jié)果;所述醫(yī)生推薦:基于用戶先前的疾病咨詢記錄和疾病預(yù)測(cè)結(jié)果的點(diǎn)擊記錄,為用戶推薦與用戶所患疾病相關(guān)的醫(yī)生信息;步驟3,個(gè)人機(jī)器人知識(shí)庫(kù)構(gòu)建:用戶不斷的向個(gè)人機(jī)器人輸入自己的知識(shí),個(gè)人機(jī)器人以一個(gè)問(wèn)題對(duì)應(yīng)一個(gè)答案的形式存儲(chǔ)在mysql數(shù)據(jù)庫(kù)中,并以知識(shí)社區(qū)的形式為不同用戶提供過(guò)程式的育兒知識(shí)服務(wù);步驟4,系統(tǒng)交互實(shí)現(xiàn):通過(guò)pc端和移動(dòng)端實(shí)現(xiàn)用戶交互。本發(fā)明的特征還在于,進(jìn)一步的,所述步驟2中根據(jù)疾病咨詢中獲得的疾病名稱為用戶進(jìn)行疾病預(yù)測(cè)的方法是:基于疾病名稱的檢索,采用開(kāi)源的全文搜索框架luence,分別對(duì)mysql數(shù)據(jù)庫(kù)中疾病數(shù)據(jù)的“名稱”、“概述”“詳細(xì)資料”字段提前建立索引,建立索引時(shí)賦予不同的權(quán)重,“名稱”的權(quán)重最大,根據(jù)用戶提供的疾病名稱與mysql數(shù)據(jù)庫(kù)中的疾病名稱的吻合程度,對(duì)每個(gè)檢索結(jié)果進(jìn)行打分,將得分高的疾病預(yù)測(cè)結(jié)果反饋給用戶。進(jìn)一步的,所述步驟2中將疾病咨詢中獲得的癥狀詞列表與mysql數(shù)據(jù)庫(kù)中每一種疾病的癥狀進(jìn)行匹配,根據(jù)匹配程度為用戶進(jìn)行疾病預(yù)測(cè)的方法是:采用tf-idf的余弦相似度匹配算法,具體按照以下步驟進(jìn)行:首先要對(duì)mysql數(shù)據(jù)庫(kù)中所有的疾病癥狀排序,而后根據(jù)疾病癥狀的序列,為mysql數(shù)據(jù)庫(kù)中每一種疾病構(gòu)建一條向量p,同時(shí)根據(jù)疾病咨詢中獲得的癥狀詞列表構(gòu)建一條假想疾病向量pˊ;兩條疾病向量構(gòu)建完成后,計(jì)算兩條疾病向量的余弦值,計(jì)算公式如下:當(dāng)每條疾病向量p與假想疾病向量pˊ的余弦值計(jì)算完成后,余弦值按照從大到小排序,選擇前十個(gè)余弦值對(duì)應(yīng)的疾病信息,將該疾病預(yù)測(cè)結(jié)果反饋給用戶。進(jìn)一步的,所述構(gòu)建疾病向量的方法:倘若某疾病相應(yīng)的位置確實(shí)出現(xiàn)某種癥狀,這個(gè)位置的向量因子就是此癥狀相對(duì)于此疾病的tf-idf值,倘若沒(méi)有出現(xiàn)某種癥狀,這個(gè)位置的向量因子取0值;tf-idf值的計(jì)算方式如下:tf-idf(wij)=tf(wij)×idf(wi)tf值,表示一個(gè)癥狀詞在當(dāng)前疾病數(shù)據(jù)中出現(xiàn)的頻率,其計(jì)算公式為:其中,n(wij)表示第i個(gè)癥狀詞在第j種疾病數(shù)據(jù)中出現(xiàn)的次數(shù),d(j)表示第j種疾病數(shù)據(jù)分詞后的總詞數(shù);idf值,表示一個(gè)癥狀的稀有程度,其計(jì)算公式為:其中,a表示當(dāng)前的疾病總數(shù),a(wi)表示出現(xiàn)第i個(gè)癥狀詞的疾病總數(shù)。進(jìn)一步的,所述步驟2還包括以下步驟:倘若用戶在疾病咨詢模塊給出的癥狀詞過(guò)少,不足以夠構(gòu)建假想疾病向量時(shí),疾病預(yù)測(cè)方法為:當(dāng)用戶給出一個(gè)癥狀詞時(shí),在mysql數(shù)據(jù)庫(kù)中查找,遍歷每一個(gè)疾病的癥狀列表,假如搜索到某一個(gè)疾病的癥狀列表中包含當(dāng)前癥狀詞,而當(dāng)前癥狀詞的tf-idf值與搜索到的疾病癥狀列表中所有癥狀詞的tf-idf總和結(jié)果比率接近于1,然后取出此疾病癥狀列表中第二大tf-idf值的癥狀詞去詢問(wèn)用戶是否滿足,倘若滿足,則繼續(xù)詢問(wèn)第三大tf-idf值的癥狀,依次類推,當(dāng)已經(jīng)確定的癥狀詞數(shù)與此疾病癥狀詞總數(shù)的比例達(dá)到65%時(shí),將該疾病預(yù)測(cè)結(jié)果反饋給用戶;如果已經(jīng)確定的癥狀詞數(shù)與此疾病癥狀詞總數(shù)的比例不足65%時(shí),再按照上述方法依次對(duì)其它包含當(dāng)前癥狀詞的疾病癥狀列表進(jìn)行預(yù)測(cè)。進(jìn)一步的,所述步驟2中醫(yī)生推薦的方法是:使用luence框架為醫(yī)生的信息建立索引,醫(yī)生的信息包括姓名、科室、所屬醫(yī)院、簡(jiǎn)介、主治、擅長(zhǎng)、聯(lián)系方式,不同的信息賦予不同的權(quán)重,主治和擅長(zhǎng)的權(quán)重均大于其他信息,簡(jiǎn)介的權(quán)重次之;選取排名前十的醫(yī)生推薦給用戶;在整個(gè)過(guò)程結(jié)束之后,系統(tǒng)還會(huì)訊問(wèn)用戶對(duì)于本次問(wèn)診是否滿意,將本次問(wèn)診的記錄添加到個(gè)人機(jī)器人模塊。進(jìn)一步的,所述步驟3中,對(duì)用戶提問(wèn)進(jìn)行答案檢索的方法:首先對(duì)存儲(chǔ)在mysql數(shù)據(jù)庫(kù)中的所有問(wèn)題和答案數(shù)據(jù)分域建立索引,當(dāng)用戶問(wèn)題提出時(shí),對(duì)用戶問(wèn)題進(jìn)行分詞處理,然后去掉停用詞和虛詞,以主要實(shí)詞和用戶名建立一個(gè)嵌套查詢?cè)谒饕胁檎?。本發(fā)明所采用的另一技術(shù)方案是,一種智能育兒知識(shí)服務(wù)系統(tǒng),包括信息采集模塊、專家機(jī)器人模塊、個(gè)人機(jī)器人模塊和系統(tǒng)交互模塊;所述信息采集模塊與mysql數(shù)據(jù)庫(kù)連接,用于通過(guò)爬蟲(chóng)程序定時(shí)獲取最新的兒童疾病數(shù)據(jù)信息;所述專家機(jī)器人模塊,用于以知識(shí)圖譜的形式直觀的為用戶提供兒科疾病相關(guān)的各類知識(shí)服務(wù);專家機(jī)器人模塊包括疾病咨詢模塊、疾病預(yù)測(cè)模塊、醫(yī)生推薦模塊;所述疾病咨詢模塊與疾病預(yù)測(cè)模塊連接,用于獲取用戶提供的疾病名稱或癥狀詞,并將疾病名稱、癥狀詞列表傳遞至疾病預(yù)測(cè)模塊;所述疾病預(yù)測(cè)模塊,用于將疾病名稱在mysql數(shù)據(jù)庫(kù)中檢索,以知識(shí)圖譜的形式為用戶展示疾病預(yù)測(cè)結(jié)果;以及將癥狀詞列表與mysql數(shù)據(jù)庫(kù)中每一種疾病的癥狀進(jìn)行匹配,根據(jù)匹配程度以知識(shí)圖譜的形式為用戶展示疾病預(yù)測(cè)結(jié)果;所述醫(yī)生推薦模塊分別與疾病咨詢模塊、疾病預(yù)測(cè)模塊連接,基于疾病咨詢模塊的咨詢記錄和疾病預(yù)測(cè)結(jié)果的點(diǎn)擊記錄,為用戶推薦與用戶所患疾病相關(guān)的醫(yī)生;所述個(gè)人機(jī)器人模塊,用于將用戶輸入的知識(shí)以一個(gè)問(wèn)題對(duì)應(yīng)一個(gè)答案的形式存儲(chǔ)在mysql數(shù)據(jù)庫(kù)中,并以知識(shí)社區(qū)的形式為不同用戶提供過(guò)程式的育兒知識(shí)服務(wù);所述系統(tǒng)交互模塊,包括pc端和移動(dòng)端。進(jìn)一步的,所述疾病咨詢模塊包括mmseg4j分詞器和疾病癥狀詞表,mmseg4j分詞器用于切分用戶輸入的口語(yǔ)癥狀詞;疾病癥狀詞表包括mysql數(shù)據(jù)庫(kù)中的疾病癥狀和臨床表現(xiàn)中的詞語(yǔ)、及其同義詞,疾病癥狀詞表用于識(shí)別經(jīng)過(guò)mmseg4j分詞器切分的癥狀詞。進(jìn)一步的,所述pc端和移動(dòng)端,采用語(yǔ)音技術(shù)讓系統(tǒng)具有人的聲音,采用數(shù)據(jù)可視化技術(shù)使得數(shù)據(jù)的展示更加形象生動(dòng),包括多種說(shuō)法的提示語(yǔ)。本發(fā)明的有益效果是:本發(fā)明構(gòu)建了一個(gè)基于過(guò)程的兒科知識(shí)服務(wù)社交系統(tǒng),能夠?yàn)橛脩籼峁└嘤齼哼^(guò)程中的完整記錄,幫助用戶更全面的分析已有的育兒知識(shí);充分利用自然語(yǔ)言處理和數(shù)據(jù)相關(guān)算法,對(duì)獲取的最新兒科醫(yī)療數(shù)據(jù)進(jìn)行分析和建模,分別構(gòu)建專家機(jī)器人模塊和個(gè)人機(jī)器人模塊,專家機(jī)器人模塊以知識(shí)圖譜的形式更直觀的為用戶提供兒科疾病相關(guān)的各類知識(shí)服務(wù);個(gè)人機(jī)器人模塊以知識(shí)社區(qū)的形式為不同用戶提供過(guò)程式的育兒知識(shí)服務(wù)。本發(fā)明還具有以下優(yōu)點(diǎn):(1)本發(fā)明建立了專門針對(duì)兒科疾病相關(guān)數(shù)據(jù)的知識(shí)庫(kù),以知識(shí)圖譜的方式展示了疾病名稱、疾病癥狀、治療方法、兒科醫(yī)生、就診途徑等信息,以及各信息之間的關(guān)聯(lián)關(guān)系。疾病預(yù)測(cè)模塊能夠根據(jù)用戶提供的癥狀名詞,智能分析用戶患兒可能屬于的疾病類型,并提供相應(yīng)的護(hù)理知識(shí)服務(wù),同時(shí)提供相應(yīng)專家及就診信息。盡管目前有一些類似的育兒論壇和網(wǎng)站,但是并沒(méi)有對(duì)這些論壇和網(wǎng)站的信息進(jìn)行知識(shí)分析,無(wú)法為用戶提供完整的育兒知識(shí)圖譜。本發(fā)明的智能育兒知識(shí)服務(wù)系統(tǒng)能夠提供給用戶一個(gè)完整的兒科疾病知識(shí)圖譜,在一張圖譜中就能為用戶展示所查詢癥狀的所有關(guān)聯(lián)數(shù)據(jù)。無(wú)論是查詢效果還是用戶體驗(yàn)均優(yōu)于傳統(tǒng)的論壇和網(wǎng)站中的關(guān)鍵字查詢。(2)本發(fā)明中個(gè)人機(jī)器人服務(wù)是本系統(tǒng)的獨(dú)創(chuàng)功能,在育兒過(guò)程中,每位父母都有自己的經(jīng)驗(yàn)及體會(huì),這些已有經(jīng)驗(yàn)將會(huì)為以后本人育兒和他人育兒過(guò)程中碰到的問(wèn)題提供知識(shí)服務(wù);通過(guò)從小培養(yǎng)一個(gè)屬于自己的育兒機(jī)器人,記錄自己在育兒過(guò)程中的點(diǎn)滴經(jīng)驗(yàn),在以后的育兒過(guò)程中,可隨時(shí)翻查已有的育兒知識(shí),包括癥狀、治療方法、用藥等各種信息,實(shí)現(xiàn)了知識(shí)的重復(fù)利用。同時(shí)個(gè)人機(jī)器人的知識(shí)可以通過(guò)育兒社區(qū)向其他用戶開(kāi)放,其他用戶可以完整的獲取每個(gè)個(gè)人機(jī)器人共享的育兒知識(shí),能夠幫助用戶全面了解育兒過(guò)程中碰到的疾病診療問(wèn)題,比傳統(tǒng)論壇式的問(wèn)答服務(wù)提供的零散化育兒知識(shí)更全面,更具參考價(jià)值。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明專家機(jī)器人服務(wù)流程圖。圖2是本發(fā)明個(gè)人機(jī)器人服務(wù)流程圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。一種智能育兒知識(shí)服務(wù)方法,具體按照以下步驟進(jìn)行:步驟1,信息采集:利用爬蟲(chóng)程序定時(shí)下載、解析最新的兒童疾病數(shù)據(jù)信息,并儲(chǔ)存在mysql數(shù)據(jù)庫(kù)中;信息采集是系統(tǒng)在后臺(tái)默默運(yùn)行的第一道程序,雖然用戶無(wú)法直接看到,但是其為知識(shí)構(gòu)建模塊提供素材。因此,作為整個(gè)系統(tǒng)的基礎(chǔ),其重要性不言而喻。信息采集的流程是:首先選擇幾個(gè)比較權(quán)威的網(wǎng)站,然后定時(shí)的爬取其數(shù)據(jù),然后解析,去除無(wú)用標(biāo)簽、廣告,最后持久化到本地mysql數(shù)據(jù)庫(kù)中。定時(shí)爬?。簽楸WC系統(tǒng)的數(shù)據(jù)能夠在一定時(shí)間段內(nèi)更新,從而獲得當(dāng)前新發(fā)的一些流行性疾病信息,必須讓系統(tǒng)定時(shí)的采集數(shù)據(jù)。而采集的頻率又不能太高,因?yàn)椴杉俣冗^(guò)快,會(huì)造成服務(wù)器負(fù)載過(guò)大,影響其他功能的流暢性。這里我們實(shí)現(xiàn)tomcat服務(wù)器的上下文監(jiān)聽(tīng)器類來(lái)作為守護(hù)進(jìn)程,并在其中調(diào)用java6.0以后新添加的concurrent包所提供的定時(shí)器,然后在定時(shí)器中調(diào)用自己寫好的定制化爬蟲(chóng)程序。最終,只需要在web.xml文件中配置好監(jiān)聽(tīng)器,就能夠在啟動(dòng)服務(wù)器后,一邊處理前端來(lái)的業(yè)務(wù)邏輯請(qǐng)求,一邊定時(shí)的爬取我們所指定網(wǎng)站的數(shù)據(jù),并做相應(yīng)的解析工作??梢栽O(shè)置爬取時(shí)間在每天晚上的24點(diǎn)到3點(diǎn),此時(shí)一般訪問(wèn)服務(wù)器的人比較少,不會(huì)給服務(wù)器造成很大的壓力,有利于系統(tǒng)的平穩(wěn)運(yùn)行。定制化爬蟲(chóng):為了滿足自身的需要,我們自己設(shè)計(jì)爬蟲(chóng)程序。要做定制化爬蟲(chóng),爬取特定網(wǎng)站的特定數(shù)據(jù),我們必須對(duì)這些網(wǎng)站的結(jié)構(gòu)進(jìn)行研究,然后總結(jié)一套通用的方案。要寫一個(gè)定制化爬蟲(chóng)程序,獲取特定內(nèi)容,我們先模擬人在瀏覽此網(wǎng)站時(shí)所執(zhí)行的操作。例如打開(kāi)某一個(gè)醫(yī)療信息網(wǎng)站后,因?yàn)槲覀冏龅氖顷P(guān)于兒童的系統(tǒng),所以先點(diǎn)擊“兒科”,然后點(diǎn)擊“兒科”下的一個(gè)科室“小兒感染科”,右側(cè)會(huì)列出所有“小兒疾病科”的所有疾病。最后要做的就是,點(diǎn)擊“疾病詳細(xì)資料”,瀏覽疾病詳情。分析整個(gè)訪問(wèn)過(guò)程,我們的爬蟲(chóng)程序大致可以分為兩個(gè)步驟。第一步采集疾病詳情頁(yè)面的url,放入“疾病詳情url隊(duì)列”;第二步多線程遍歷“疾病詳情url隊(duì)列”采集疾病詳情數(shù)據(jù)。要拿到疾病詳情的url,我們必須遍歷“兒科”下的所有小科室,然后獲得每一個(gè)小科室下疾病的總數(shù)量,根據(jù)總數(shù)量算出當(dāng)前小科室下的疾病分為幾頁(yè),由頁(yè)碼構(gòu)建出疾病列表頁(yè)的url,并放入“疾病列表url列表”中。最終所有科室下每一頁(yè)的內(nèi)容結(jié)構(gòu)都是一樣的,只需遍歷“疾病列表url列表”,一個(gè)個(gè)解析,獲得疾病詳情url,并放入“疾病詳情url隊(duì)列”中。采用多線程去“疾病詳情url隊(duì)列”中取出url,下載,并解析即可。應(yīng)該注意的是,這里的url可能很多,必須進(jìn)行標(biāo)注,哪些爬取成功,哪些尚未爬取,哪些爬取失敗。對(duì)于爬取失敗的,可能是網(wǎng)絡(luò)原因,需要進(jìn)行再次爬取。對(duì)于新添加url,還應(yīng)進(jìn)行判斷,此url是否已經(jīng)在隊(duì)列中。當(dāng)隊(duì)列里url足夠多時(shí),這個(gè)判斷可能會(huì)很耗時(shí),優(yōu)化方法是:計(jì)算url的md5值,然后放于一個(gè)hash表中,每次用這個(gè)hash表進(jìn)行判斷,將會(huì)省時(shí)許多。整個(gè)爬取過(guò)程中,包括兩個(gè)操作:下載,解析。下載html文本我們會(huì)用到apache的開(kāi)源項(xiàng)目httpclient包發(fā)送請(qǐng)求;而解析文本,則會(huì)用到正則表達(dá)式和jsoup。jsoup用來(lái)獲取html節(jié)點(diǎn)中需要的內(nèi)容,正則表達(dá)式用來(lái)匹配那些沒(méi)有節(jié)點(diǎn)限制的內(nèi)容,例如匹配疾病總數(shù)等。當(dāng)數(shù)據(jù)采集下來(lái)以后,就要持久化到本地?cái)?shù)據(jù)庫(kù),以供知識(shí)構(gòu)建模塊使用。本系統(tǒng)采用mysql關(guān)系型數(shù)據(jù)庫(kù),持久化過(guò)程使用javaee標(biāo)準(zhǔn)的jpa框架,這樣可以免去直接操作sql語(yǔ)句的繁瑣,從而以面向?qū)ο蟮姆绞皆L問(wèn)數(shù)據(jù),有利于系統(tǒng)的擴(kuò)展和維護(hù)。步驟2,專家機(jī)器人知識(shí)庫(kù)構(gòu)建:以知識(shí)圖譜的形式直觀的為用戶提供兒科疾病相關(guān)的各類知識(shí)服務(wù);專家機(jī)器人模塊主要是模擬病人看病的過(guò)程,通過(guò)不斷與用戶進(jìn)行交流,逐漸衍生出了疾病咨詢、疾病預(yù)測(cè)、醫(yī)生推薦這三個(gè)子模塊。這三個(gè)子模塊圍繞著現(xiàn)實(shí)生活中問(wèn)診的流程展開(kāi),因此也會(huì)有一定的次序。而其知識(shí)庫(kù)的構(gòu)建,也將因?yàn)楦髯跃唧w情況的不同,而有所不同。(1)疾病咨詢:疾病咨詢主要是盡量模擬醫(yī)生的口吻與病人進(jìn)行有效的交流。交流的目的是獲取疾病癥狀詞,從而為疾病預(yù)測(cè)模塊提供原料。而咨詢的方式,又會(huì)因?yàn)橛脩羟闆r的不同而分為兩種:其一是用戶知道疾病名稱,這樣直接將疾病名稱輸出到疫病預(yù)測(cè)模塊即可;第二種是用戶不知道疾病名稱,那么只能通過(guò)與用戶不斷的交流,來(lái)獲取癥狀詞,將癥狀詞列表傳遞給疾病預(yù)測(cè)模塊。因?yàn)榈谝环N情況很簡(jiǎn)單,根據(jù)疾病咨詢中獲得的疾病名稱在mysql數(shù)據(jù)庫(kù)中檢索,以知識(shí)圖譜的形式為用戶展示疾病預(yù)測(cè)結(jié)果;下面詳細(xì)闡述第二種情況。首先應(yīng)該明確,與用戶交流的目的是獲取癥狀詞。而用戶輸出的是自然語(yǔ)言,如何從用戶輸入的口語(yǔ)中獲取到比較專業(yè)的癥狀詞:我們首先構(gòu)建了一張疾病癥狀詞表。癥狀詞表來(lái)源于數(shù)據(jù)采集模塊爬取到的疾病數(shù)據(jù)。其疾病數(shù)據(jù)中的疾病癥狀和臨床表現(xiàn)中的詞語(yǔ),可以作為癥狀詞,因此對(duì)這些詞語(yǔ)進(jìn)行了進(jìn)一步處理,并放入了癥狀詞表中。另外由于用戶輸入的口語(yǔ)癥狀詞可能不在疾病癥狀詞表中,也或許有些癥狀詞有多種說(shuō)法,但是他們都表示同一個(gè)意思。例如:“發(fā)燒”的口語(yǔ)表示為“發(fā)燙”,其他說(shuō)法甚至還有“發(fā)熱”等。當(dāng)用戶輸入其中一種時(shí),即表示用戶有此種癥狀。因此,還需要為癥狀詞表補(bǔ)充同義詞。為了數(shù)據(jù)的準(zhǔn)確性,我們寫自動(dòng)化程序,首先將同義詞表中的同義詞自動(dòng)添加到各個(gè)癥狀詞后面。自動(dòng)化程序的思路是,模擬人查同義詞表的過(guò)程,以每一個(gè)癥狀詞為原本詞去查同義詞表,查到同義詞即補(bǔ)充到癥狀詞表后面??紤]到同義詞可能不夠齊全和一些口語(yǔ)癥狀詞可能不在其列,我們需要人為的為這些癥狀詞補(bǔ)充了同義詞。最終經(jīng)過(guò)程序和人的雙重補(bǔ)充,達(dá)到的癥狀詞有2455條,其中每個(gè)癥狀詞后面的同義詞可能有4到5個(gè),當(dāng)然不排除有的癥狀詞沒(méi)有同義詞的可能。最后要對(duì)用戶輸入的自然語(yǔ)句進(jìn)行切分,需要一個(gè)全而新的詞庫(kù)。這里我們采用mmseg4j分詞器,采用搜狗輸入法提供的最新詞典,在加入我們自己構(gòu)建的一些口語(yǔ)癥狀描述詞作為分詞的大詞典。這樣,只要用戶的輸入語(yǔ)句中包含我們構(gòu)建好的癥狀詞或者癥狀詞的同義詞,甚至是口語(yǔ)描述,我們都能夠識(shí)別出來(lái)。例如,當(dāng)用戶輸入:“我的孩子最近老流清鼻,有時(shí)候頭還發(fā)燙,該怎么辦呢?”,我們的分詞結(jié)果是:“我的|孩子|最近|老|流清鼻|,|有時(shí)候|頭|還|發(fā)燙|,|該|怎么辦|呢|?|”。然后將分出的詞與癥狀詞表匹配,首先與癥狀詞表的主詞匹配,倘若不匹配,則再次與癥狀詞的同義詞匹配,如果匹配則表明:用戶的本次描述捕獲到了癥狀詞。例如此次用戶的輸入,我們一一將分詞結(jié)果去匹配,最后發(fā)現(xiàn),“流清鼻”雖然與癥狀詞表的主詞“流鼻涕”不相匹配,但是與我們手動(dòng)添加的通俗說(shuō)法“流清鼻”匹配;而“發(fā)燙”也與主詞“發(fā)燒”不相匹配,但是卻匹配于程序構(gòu)建的源于同義詞表的詞語(yǔ)“發(fā)燙”。為了疾病預(yù)測(cè)的準(zhǔn)確性,我們盡量匹配足夠多的癥狀,才去結(jié)束疾病咨詢的過(guò)程??墒怯行┘膊“Y狀確實(shí)不夠多,讓用戶一味的輸出非典型癥狀,有時(shí)候反而不利于疾病的預(yù)測(cè)。因此我們疾病咨詢遵循的機(jī)制是:“盡量但不勉強(qiáng)”。當(dāng)咨詢后用戶輸入的速度減慢,或者不再輸入新癥狀時(shí),表明用戶癥狀的描述完全,則結(jié)束本次問(wèn)詢。(2)疾病預(yù)測(cè):包括疾病名稱預(yù)測(cè)和癥狀詞列表預(yù)測(cè);疾病名稱預(yù)測(cè)是根據(jù)疾病咨詢中獲得的疾病名稱在mysql數(shù)據(jù)庫(kù)中檢索,以知識(shí)圖譜的形式為用戶展示疾病預(yù)測(cè)結(jié)果;癥狀詞列表預(yù)測(cè)是將疾病咨詢中獲得的癥狀詞列表與mysql數(shù)據(jù)庫(kù)中每一種疾病的癥狀進(jìn)行匹配,根據(jù)匹配程度以知識(shí)圖譜的形式為用戶展示疾病預(yù)測(cè)結(jié)果;當(dāng)用戶知道疾病名稱時(shí),疾病的預(yù)測(cè)也就是基于疾病名的一個(gè)檢索;我們采用開(kāi)源的全文搜索框架luence,分別對(duì)mysql數(shù)據(jù)庫(kù)中準(zhǔn)備好的疾病數(shù)據(jù)的“名稱”、“概述”、“詳細(xì)資料”等字段提前建立好索引;建立索引時(shí)賦予不同的權(quán)重,“名稱”的權(quán)重最大,根據(jù)用戶提供的疾病名稱與mysql數(shù)據(jù)庫(kù)中的疾病名稱的吻合程度,對(duì)每個(gè)檢索結(jié)果進(jìn)行打分,這樣當(dāng)用戶提供的疾病名稱與疾病庫(kù)中的疾病名稱吻合時(shí),檢索后輸出的分值就大,將得分高的疾病預(yù)測(cè)結(jié)果反饋給用戶。每個(gè)檢索結(jié)果都帶有一個(gè)分值,系統(tǒng)并不能保證用戶輸入的疾病名稱完全準(zhǔn)確,這樣基于一個(gè)分值的輸出就更加具有客觀性。當(dāng)用戶輸入的疾病名稱不在我們系統(tǒng)時(shí),計(jì)算結(jié)果的分值會(huì)小的接近于0,用戶就可以不必以系統(tǒng)的預(yù)測(cè)為參考,也不會(huì)延誤用戶尋找其他途徑的咨詢方式。癥狀詞列表預(yù)測(cè)的主要方法是,將“疾病咨詢”模塊獲得的癥狀詞列表與mysql數(shù)據(jù)庫(kù)中每一種疾病的癥狀進(jìn)行匹配,倘若匹配度高,則將其對(duì)應(yīng)的疾病預(yù)測(cè)給用戶。當(dāng)然,這里的匹配不能簡(jiǎn)單的用有和無(wú)的匹配方式進(jìn)行。因?yàn)?,有的疾病癥狀多,有的疾病癥狀少,有的疾病癥狀突出,往往一種癥狀就能左右這種疾病。而流行感冒這種疾病,則癥狀相對(duì)而言就比較多了。所以我們應(yīng)該采取一種算法,可以綜合考慮以上綜合因素。我們采取綜合了tf-idf的余弦相似度匹配算法,來(lái)進(jìn)行疾病與癥狀的匹配。首先要對(duì)mysql數(shù)據(jù)庫(kù)中所有的疾病癥狀排序,而后根據(jù)疾病癥狀的序列,為mysql數(shù)據(jù)庫(kù)中每一種疾病構(gòu)建一條向量p,同時(shí)根據(jù)疾病咨詢中獲得的癥狀詞列表構(gòu)建一條假想的疾病向量pˊ。構(gòu)建疾病向量的方法:倘若某疾病相應(yīng)的位置確實(shí)出現(xiàn)某種癥狀,這個(gè)位置的向量因子就是此癥狀相對(duì)于此疾病的tf-idf值,倘若沒(méi)有出現(xiàn)某種癥狀,這個(gè)位置的向量因子取0值;tf-idf值的計(jì)算方式如下:tf-idf(wij)=tf(wij)×idf(wi)tf(termfrequency)值,表示一個(gè)癥狀詞在當(dāng)前疾病數(shù)據(jù)中出現(xiàn)的頻率,頻率越大表明此癥狀與此疾病越相關(guān)。疾病數(shù)據(jù)包括疾病描述、臨床表現(xiàn)、癥狀等我們所采集到的數(shù)據(jù);其計(jì)算公式為:其中,n(wij)表示第i個(gè)癥狀詞在第j種疾病數(shù)據(jù)中出現(xiàn)的次數(shù),d(j)表示第j種疾病數(shù)據(jù)分詞后的總詞數(shù);例如,“打噴嚏”在“流行性感冒”的數(shù)據(jù)中出現(xiàn)了4次,而“流行性感冒”的數(shù)據(jù)總詞數(shù)有500個(gè),那么其tf(wij)值便為0.008。idf(inversedocumentfrequency)值,表示一個(gè)癥狀的稀有程度,越稀有的癥狀預(yù)測(cè)一種疾病的能力往往越強(qiáng)。其計(jì)算公式為:其中,a表示當(dāng)前的疾病總數(shù),a(wi)表示出現(xiàn)第i個(gè)癥狀詞的疾病總數(shù);例如“流鼻涕”出現(xiàn)在了35種疾病中,而我們的疾病總數(shù)有7000個(gè),那么其idf值便為:log(7000/35)≈2.30。由上可知,一個(gè)癥狀對(duì)一種疾病的預(yù)測(cè)性取決于兩個(gè)因素:tf值,即當(dāng)前癥狀在此疾病中出現(xiàn)的頻率,多則強(qiáng);idf值,即此癥狀的稀有程度,越稀有的癥狀出現(xiàn)在一種疾病中時(shí),越能夠預(yù)測(cè)此疾病。按照上述方法,兩條疾病向量構(gòu)建完成后,計(jì)算兩條疾病向量的余弦值,計(jì)算公式如下:構(gòu)建疾病向量的具體操作方法:首先將所有的疾病癥狀排好序。假設(shè)當(dāng)前疾病庫(kù)中的疾病癥狀有10個(gè):表1癥狀詞向量序列12345678910發(fā)燒黃疸潰瘍流鼻涕嘔吐鼻出血水腫血尿打噴嚏貧血假設(shè)流行感冒的疾病癥狀有“發(fā)燒”、“流鼻涕”、“嘔吐”、“打噴嚏”,而這些癥狀相對(duì)于此疾病的tf-idf值分別為:0.0022,0.0184,0.0053,0.0242;那么最終構(gòu)建的流行性感冒的向量為:p(0.0022,0,0,0.0184,0.0053,0,0,0,0.0242,0)。構(gòu)建好每一種疾病的向量后,就可以進(jìn)行疾病預(yù)測(cè)了。當(dāng)疾病咨詢模塊傳來(lái)癥狀列表以后,我們會(huì)為當(dāng)前用戶構(gòu)建一條假想疾病的向量。構(gòu)建方法與疾病向量的方法相同。假設(shè)在疾病咨詢模塊所捕獲到的用戶癥狀為:“發(fā)燒”、“流鼻涕”、“打噴嚏”,那么為預(yù)期疾病構(gòu)建的向量為:pˊ(0.0022,0,0,0.0184,0,0,0,0,0.0242,0)。等到兩條向量就緒,就可以進(jìn)行計(jì)算兩條向量之間的余弦值了。計(jì)算公式如下:其中分子為兩條向量的內(nèi)積,分母為兩條向量模的乘積;我們還以上面的例子進(jìn)行計(jì)算,則計(jì)算結(jié)果為cos(ppˊ)≈0.9852,可以看到余弦值接近于1,說(shuō)明兩條向量非常相似,由此證明用戶患有流行感冒的概率是比較大的,我們可以將此疾病信息預(yù)測(cè)給用戶。采取tf-idf值可以保證某種疾病的關(guān)鍵癥狀能夠獲得比較大的權(quán)重,從而在進(jìn)行余弦相似度計(jì)算時(shí),可以算出比較大的結(jié)果。這樣當(dāng)用戶出現(xiàn)這些關(guān)鍵癥狀時(shí),我們系統(tǒng)的預(yù)測(cè)就能夠盡可能的靠攏那些擁有關(guān)鍵癥狀詞的疾病。當(dāng)每條疾病向量p與假想疾病向量pˊ的余弦值計(jì)算完成后,余弦值按照從大到小排序,選擇前十個(gè)余弦值對(duì)應(yīng)的疾病信息,返還給前端做可視化展示,將該疾病預(yù)測(cè)結(jié)果反饋給用戶。余弦值越大越接近于1,就說(shuō)明這個(gè)假想向量與相應(yīng)疾病向量越相似,用戶的患兒就越有可能患有此種疾病。當(dāng)然,之所以不將余弦值最大的一個(gè)結(jié)果返回給用戶,是因?yàn)榇讼到y(tǒng)畢竟不是真人醫(yī)生,并不能確診,因此返回前十個(gè)供用戶參考。不過(guò)這也印證了此模塊的名字“疾病預(yù)測(cè)”,預(yù)測(cè)的結(jié)果當(dāng)然不只一個(gè)了。倘若用戶在疾病咨詢模塊給出的癥狀詞過(guò)少,在疾病預(yù)測(cè)模塊不足以夠構(gòu)建向量時(shí),系統(tǒng)提供另一種預(yù)測(cè)疾病方法。當(dāng)用戶給出一個(gè)癥狀詞時(shí),在mysql數(shù)據(jù)庫(kù)中查找,遍歷每一個(gè)疾病的癥狀列表,假如搜索到某一個(gè)疾病的癥狀列表中包含當(dāng)前癥狀詞,而當(dāng)前癥狀詞的tf-idf值與搜索到的疾病癥狀列表中所有癥狀詞的tf-idf總和結(jié)果比率接近于1,說(shuō)明用戶患有此種疾病的可能性越大;然后取出此疾病癥狀列表中第二大tf-idf值的癥狀詞去詢問(wèn)用戶是否滿足,倘若滿足,則繼續(xù)詢問(wèn)第三大tf-idf值的癥狀,依次類推,當(dāng)已經(jīng)確定的癥狀詞數(shù)與此疾病癥狀詞總數(shù)的比例達(dá)到65%時(shí),將該疾病預(yù)測(cè)結(jié)果反饋給用戶;如果已經(jīng)確定的癥狀詞數(shù)與此疾病癥狀詞總數(shù)的比例不足65%時(shí),再按照上述方法依次對(duì)其它包含當(dāng)前癥狀詞的疾病癥狀列表進(jìn)行預(yù)測(cè)。(3)醫(yī)生推薦:醫(yī)生推薦模塊主要功能是基于用戶先前的疾病咨詢記錄和疾病預(yù)測(cè)結(jié)果的點(diǎn)擊記錄,為用戶推薦與用戶所患疾病相關(guān)的醫(yī)生信息;醫(yī)生信息包括醫(yī)生的姓名、科室、所屬醫(yī)院、簡(jiǎn)介、主治、擅長(zhǎng)、聯(lián)系方式等。為了能夠高速有效的給用戶推薦到合適的醫(yī)生,系統(tǒng)依然使用luence框架為醫(yī)生的信息建立索引。且不同的信息賦予不同的權(quán)重,主治和擅長(zhǎng)的權(quán)重均大于其他信息,簡(jiǎn)介的權(quán)重次之;如主治和擅長(zhǎng)的權(quán)重都為3,簡(jiǎn)介的權(quán)重為1。這樣當(dāng)用戶的檢索信息中包含的某種疾病癥狀或者疾病名稱在醫(yī)生的主治和擅長(zhǎng)中出現(xiàn)時(shí),當(dāng)前醫(yī)生所獲得的檢索排名分?jǐn)?shù)就高,說(shuō)明此醫(yī)生越是擅長(zhǎng)此種疾病,同時(shí)此醫(yī)生被推薦的可能性就越大。選取排名前十的醫(yī)生推薦給用戶。讓用戶自己去選擇點(diǎn)擊查看醫(yī)生的詳細(xì)信息,并確定是否選擇此醫(yī)生去實(shí)地就醫(yī)。在整個(gè)過(guò)程結(jié)束之后,系統(tǒng)還會(huì)訊問(wèn)用戶對(duì)于本次問(wèn)診是否滿意,這將作為系統(tǒng)的一種反饋,將本次問(wèn)診的記錄添加到個(gè)人機(jī)器人模塊。當(dāng)在個(gè)人機(jī)器人模塊中用戶選擇公開(kāi)自己機(jī)器人時(shí),將會(huì)有可能獲得系統(tǒng)機(jī)器人的問(wèn)題解答,而問(wèn)題解答的信息來(lái)源便是本次用戶點(diǎn)贊的問(wèn)診記錄。步驟3,個(gè)人機(jī)器人知識(shí)庫(kù)構(gòu)建:個(gè)人機(jī)器人是用戶自行創(chuàng)建的在系統(tǒng)中的虛擬代理。用戶可以將自己在育兒的過(guò)程中,所積累的經(jīng)驗(yàn)和知識(shí)通過(guò)培養(yǎng)的方式不斷的向個(gè)人機(jī)器人輸入自己的知識(shí),這樣就實(shí)現(xiàn)了機(jī)器人的成長(zhǎng);個(gè)人機(jī)器人以一個(gè)問(wèn)題對(duì)應(yīng)一個(gè)答案的形式存儲(chǔ)在mysql數(shù)據(jù)庫(kù)中,并以知識(shí)社區(qū)的形式為不同用戶提供過(guò)程式的育兒知識(shí)服務(wù);個(gè)人機(jī)器人知識(shí)庫(kù)的構(gòu)建過(guò)程,就是用戶不斷的輸入自己的知識(shí)讓機(jī)器人記住的過(guò)程。首先,每一個(gè)用戶登錄系統(tǒng)后,都可以創(chuàng)建一個(gè)自己的機(jī)器人。機(jī)器人要有昵稱、年齡、外表、稱呼語(yǔ)等數(shù)據(jù),用戶將在系統(tǒng)的引導(dǎo)下一步步完善這些數(shù)據(jù)。而后,用戶每次進(jìn)入個(gè)人機(jī)器人模塊時(shí),已經(jīng)創(chuàng)建好的機(jī)器人就會(huì)給用戶打招呼,并開(kāi)始服務(wù)。系統(tǒng)服務(wù)的主要模式是問(wèn)答,問(wèn)答的難點(diǎn)在于如何實(shí)現(xiàn)知識(shí)的增長(zhǎng)和基于用戶的問(wèn)題尋找答案。知識(shí)的增長(zhǎng)主要來(lái)源于用戶的培養(yǎng)。當(dāng)用戶訊問(wèn)自己的機(jī)器人一個(gè)問(wèn)題時(shí),倘若系統(tǒng)以前從用戶那里獲取過(guò)這個(gè)問(wèn)題的答案,系統(tǒng)便會(huì)直接給出答案。倘若系統(tǒng)的知識(shí)庫(kù)檢索不到答案,機(jī)器人則會(huì)要求學(xué)習(xí)這個(gè)知識(shí),于是用戶將會(huì)在系統(tǒng)的引導(dǎo)下教會(huì)機(jī)器人這個(gè)知識(shí)點(diǎn)。相應(yīng)的這個(gè)知識(shí)點(diǎn)也會(huì)存儲(chǔ)在系統(tǒng)的知識(shí)庫(kù)中,作為下一次對(duì)用戶提問(wèn)進(jìn)行答案檢索的依據(jù)。系統(tǒng)中用戶的問(wèn)題和答案,采取一對(duì)一的存儲(chǔ)方式,一個(gè)問(wèn)題對(duì)應(yīng)一個(gè)答案存儲(chǔ)在mysql數(shù)據(jù)庫(kù)的表中。答案的尋找依舊依靠于luence全文檢索引擎。系統(tǒng)首先對(duì)所有的用戶問(wèn)題和答案數(shù)據(jù)分域建立索引,當(dāng)用戶問(wèn)題提出時(shí),首先對(duì)用戶問(wèn)題進(jìn)行分詞處理,然后去掉停用詞和虛詞,以主要實(shí)詞和用戶名建立一個(gè)嵌套查詢?nèi)ニ饕胁檎摇V越星短撞樵?,是因?yàn)閘uence中有一套查詢機(jī)制,他可以組合“與”、“或”、”非”的嵌套,使得查詢更加靈活。這里我們嵌套的查詢是:(用戶id)and(實(shí)詞1or實(shí)詞2or實(shí)詞n),這樣就能夠查找指定用戶知識(shí)庫(kù)中的特定問(wèn)題。查找結(jié)果也是基于分?jǐn)?shù)的返回,我們選擇分?jǐn)?shù)最高問(wèn)題的答案作為結(jié)果用來(lái)給用戶回答。用戶可能會(huì)對(duì)問(wèn)題的答案不甚滿意,這說(shuō)明當(dāng)前問(wèn)題與用戶的問(wèn)題有差異,于是系統(tǒng)機(jī)器人將提醒用戶重新記住此新問(wèn)題。不慎滿意的另一種可能是,用戶提問(wèn)的方式有所改變,雖然是同一個(gè)問(wèn)題,可能因?yàn)闀r(shí)間太過(guò)久遠(yuǎn)而用戶用新的語(yǔ)句提出了此問(wèn)題,由此導(dǎo)致系統(tǒng)不能夠識(shí)別這個(gè)問(wèn)題。對(duì)于這種狀況,系統(tǒng)的優(yōu)化方法是在實(shí)現(xiàn)luence建立索引時(shí),添加同義詞詞典,這樣可以解決由于句子中詞語(yǔ)改變而造成的識(shí)別錯(cuò)誤。例如用戶提問(wèn)“孩子發(fā)燒怎么辦?”和用戶提問(wèn)“孩子發(fā)熱怎么辦?”會(huì)檢索到一樣的答案。但是這樣只能解決由于用詞不同而產(chǎn)生的問(wèn)題檢索失敗,對(duì)于因?yàn)榫浞ǖ仍驅(qū)е碌牟蛔R(shí)別問(wèn)題,牽扯到更深層次的研究,本系統(tǒng)暫時(shí)沒(méi)有涉及。另外,在個(gè)人機(jī)器人積累到10個(gè)問(wèn)題以上時(shí),用戶可以選擇公開(kāi)自己的機(jī)器人,這樣當(dāng)用戶再次提出一個(gè)問(wèn)題時(shí),或許在自己的知識(shí)庫(kù)中檢索失敗,導(dǎo)致自己的機(jī)器人不能回答,而此時(shí)因?yàn)楣_(kāi)了數(shù)據(jù),所以可以獲得其他用戶機(jī)器人的答案。與此同時(shí),也將意味著自己的機(jī)器人也會(huì)為他人服務(wù)。通過(guò)這種模式,可以實(shí)現(xiàn)用戶之間交流和分享育兒經(jīng)驗(yàn)。步驟4,系統(tǒng)交互實(shí)現(xiàn):我們也充分人性化的考慮了用戶的使用習(xí)慣,通過(guò)pc端和移動(dòng)端實(shí)現(xiàn)用戶交互;作為一個(gè)機(jī)器人系統(tǒng),首先應(yīng)當(dāng)考慮的就是如何讓系統(tǒng)更加人性化。而人性化不僅體現(xiàn)在算法上面,更加體現(xiàn)在交互上。為了讓系統(tǒng)更加具有人的品質(zhì),我們不但使用語(yǔ)音技術(shù)讓系統(tǒng)具有人的聲音,而且還使用了一些數(shù)據(jù)可視化技術(shù),使得數(shù)據(jù)的展示更加形象生動(dòng)。這樣,系統(tǒng)不僅從視覺(jué)還是從聽(tīng)覺(jué)上,都會(huì)帶給用戶耳目一新的體驗(yàn)。在安卓手機(jī)端,語(yǔ)音合成技術(shù)和語(yǔ)音識(shí)別技術(shù)都比較成熟,系統(tǒng)可以完全實(shí)現(xiàn)服務(wù)器數(shù)據(jù)的讀和聽(tīng),因此用戶和系統(tǒng)的交互是純語(yǔ)音交互。當(dāng)系統(tǒng)構(gòu)建好需要機(jī)器人說(shuō)出的話以后,通過(guò)http協(xié)議傳輸json數(shù)據(jù)到手機(jī)端,手機(jī)直接解析后調(diào)用語(yǔ)音接口合成音頻文件,讓手機(jī)朗讀出來(lái)即實(shí)現(xiàn)了機(jī)器人的“說(shuō)”。而用戶回答機(jī)器人問(wèn)題時(shí),也只是說(shuō)出來(lái),安卓端將調(diào)用語(yǔ)音系統(tǒng)api將用戶語(yǔ)音轉(zhuǎn)化為文字,并構(gòu)建json字符串傳給系統(tǒng)服務(wù)器,從而實(shí)現(xiàn)了機(jī)器人的“聽(tīng)”。瀏覽器端的語(yǔ)音技術(shù)相對(duì)較弱,不過(guò)也可以實(shí)現(xiàn)語(yǔ)音的合成,這機(jī)器人只會(huì)“說(shuō)”,而識(shí)別就需要用戶手動(dòng)輸入文字了。不過(guò),pc鍵盤的文字輸入也是非常方便的,只要用戶擁有一般人的打字速度,交互還是非常流暢的。當(dāng)然,在聽(tīng)與說(shuō)的同時(shí),視覺(jué)上還需要讓用戶感受到機(jī)器人的動(dòng)作。安卓端將使用幀動(dòng)畫的形式,機(jī)器人在說(shuō)與聽(tīng)的同時(shí),播放機(jī)器人交互動(dòng)作動(dòng)畫,讓用戶體驗(yàn)到是在與機(jī)器進(jìn)行交流,而不是手機(jī)。瀏覽器端將使用js實(shí)現(xiàn)圖片的輪播,從而也會(huì)擁有動(dòng)畫的效果。從服務(wù)器端傳來(lái)的還有一些展示數(shù)據(jù),例如疾病預(yù)測(cè)的結(jié)果、疾病詳情、醫(yī)生推薦結(jié)果、醫(yī)生詳情等,這些數(shù)據(jù)安卓端將在webviewr控件中調(diào)用js,采用echars展現(xiàn)。瀏覽器端嵌入echars早已經(jīng)非常成熟,所以也沒(méi)有什么技術(shù)難度。echars動(dòng)態(tài)圖標(biāo)展示,將使得數(shù)據(jù)形象生動(dòng),而不再只像文字一般單調(diào)。對(duì)于系統(tǒng)中機(jī)器人表達(dá)的一些提示性語(yǔ)句,為了不讓用戶感到呆板,我們?nèi)の缎缘脑O(shè)置了許多種表達(dá)。在系統(tǒng)運(yùn)行一個(gè)流程節(jié)點(diǎn)時(shí),系統(tǒng)會(huì)遍歷當(dāng)前提示語(yǔ)的所有說(shuō)法,隨機(jī)選取一個(gè)給用戶提示。這樣,在用戶連續(xù)多次使用系統(tǒng)后,每次都基本會(huì)遇到不同的表達(dá),將會(huì)增加體驗(yàn)的新奇性。本發(fā)明采用上述智能育兒知識(shí)服務(wù)方法的智能育兒知識(shí)服務(wù)系統(tǒng),包括信息采集模塊、專家機(jī)器人模塊、個(gè)人機(jī)器人模塊和系統(tǒng)交互模塊;信息采集模塊與mysql數(shù)據(jù)庫(kù)連接,用于通過(guò)爬蟲(chóng)程序定時(shí)獲取最新的兒童疾病數(shù)據(jù)信息;專家機(jī)器人模塊,用于以知識(shí)圖譜的形式直觀的為用戶提供兒科疾病相關(guān)的各類知識(shí)服務(wù);專家機(jī)器人模塊包括疾病咨詢模塊、疾病預(yù)測(cè)模塊、醫(yī)生推薦模塊;疾病咨詢模塊與疾病預(yù)測(cè)模塊連接,用于獲取用戶提供的疾病名稱或癥狀詞,并將疾病名稱、癥狀詞列表傳遞至疾病預(yù)測(cè)模塊;疾病咨詢模塊包括mmseg4j分詞器和疾病癥狀詞表,mmseg4j分詞器用于切分用戶輸入的口語(yǔ)癥狀詞;疾病癥狀詞表包括mysql數(shù)據(jù)庫(kù)中的疾病癥狀和臨床表現(xiàn)中的詞語(yǔ)、及其同義詞,疾病癥狀詞表用于識(shí)別經(jīng)過(guò)mmseg4j分詞器切分的癥狀詞。疾病預(yù)測(cè)模塊,用于將疾病名稱在mysql數(shù)據(jù)庫(kù)中檢索,以知識(shí)圖譜的形式為用戶展示疾病預(yù)測(cè)結(jié)果;以及將癥狀詞列表與mysql數(shù)據(jù)庫(kù)中每一種疾病的癥狀進(jìn)行匹配,根據(jù)匹配程度以知識(shí)圖譜的形式為用戶展示疾病預(yù)測(cè)結(jié)果;醫(yī)生推薦模塊分別與疾病咨詢模塊、疾病預(yù)測(cè)模塊連接,基于疾病咨詢模塊的咨詢記錄和疾病預(yù)測(cè)結(jié)果的點(diǎn)擊記錄,為用戶推薦與用戶所患疾病相關(guān)的醫(yī)生;個(gè)人機(jī)器人模塊,用于將用戶輸入的知識(shí)以一個(gè)問(wèn)題對(duì)應(yīng)一個(gè)答案的形式存儲(chǔ)在mysql數(shù)據(jù)庫(kù)中,并以知識(shí)社區(qū)的形式為不同用戶提供過(guò)程式的育兒知識(shí)服務(wù);系統(tǒng)交互模塊,包括pc端和移動(dòng)端,采用語(yǔ)音技術(shù)讓系統(tǒng)具有人的聲音,采用數(shù)據(jù)可視化技術(shù)使得數(shù)據(jù)的展示更加形象生動(dòng),包括多種說(shuō)法的提示語(yǔ)。本系統(tǒng)經(jīng)過(guò)從設(shè)計(jì)到實(shí)現(xiàn)的一系列研究,最終可以平穩(wěn)運(yùn)行。其定時(shí)定向的數(shù)據(jù)采集,全面嚴(yán)謹(jǐn)?shù)闹R(shí)庫(kù)構(gòu)建,友好動(dòng)態(tài)的語(yǔ)音交互將會(huì)緩解無(wú)數(shù)育兒父母育兒過(guò)程中的煩惱,甚至于帶給他們育兒的樂(lè)趣,從而填補(bǔ)了兒童醫(yī)療知識(shí)智能服務(wù)在移動(dòng)互聯(lián)網(wǎng)時(shí)代的空白。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1