国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

名老中醫(yī)醫(yī)案數(shù)據(jù)采集與清理算法DCCA的研究

2018-12-15 11:25章亞?wèn)|胡孔法楊濤謝佳東
計(jì)算機(jī)時(shí)代 2018年10期
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲(chóng)醫(yī)案

章亞?wèn)| 胡孔法 楊濤 謝佳東

摘 要: 利用網(wǎng)絡(luò)爬蟲(chóng)抓取網(wǎng)絡(luò)中名老中醫(yī)醫(yī)案數(shù)據(jù),可以為醫(yī)案數(shù)據(jù)挖掘提供優(yōu)質(zhì)的原始數(shù)據(jù)。提出了一種基于網(wǎng)絡(luò)爬蟲(chóng)的名老中醫(yī)醫(yī)案數(shù)據(jù)采集與清理算法DCCA(Data Collection and Cleaning Algorithm),處理了12670個(gè)網(wǎng)頁(yè),抽取出28813條診次數(shù)據(jù)。與傳統(tǒng)方法比較,DCCA的抓取效率更高、處理結(jié)果屬性清晰、處理后的數(shù)據(jù)冗余度低,極大地提高了中醫(yī)藥網(wǎng)站中名老中醫(yī)醫(yī)案數(shù)據(jù)采集與清理效果。

關(guān)鍵詞: 名老中醫(yī); 醫(yī)案; 數(shù)據(jù)采集與清理; 網(wǎng)絡(luò)爬蟲(chóng); DCCA

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2018)10-68-03

Abstract: Using web crawlers to capture the data of famous old Chinese medicine doctors' in the network can provide high quality raw data for medical data mining. This paper proposes a data collection and cleaning algorithm DCCA (Data Collection and Cleaning Algorithm) based on web crawler, which processes 12,670 web pages and extracts 28,813 diagnostic data. Compared with the traditional methods, DCCA has higher crawling efficiency, clearer processing result attributes and lower data redundancy after processing, which greatly improves the data collection and cleaning effect of famous Chinese medicine doctors in Chinese medicine websites.

Key words: famous Chinese medicine doctor; medical records; data collection and cleaning; web crawler; DCCA

0 引言

數(shù)據(jù)挖掘(DataMining)是按照既定的業(yè)務(wù)目標(biāo)從大量的數(shù)據(jù)中提取出潛在、有效并容易被人理解的模式的高級(jí)處理過(guò)程[1]。名老中醫(yī)是中醫(yī)藥學(xué)術(shù)發(fā)展的杰出代表,總結(jié)名老中醫(yī)的經(jīng)驗(yàn)不僅能豐富中醫(yī)學(xué)的理論體系,還能為中醫(yī)藥學(xué)術(shù)的進(jìn)步產(chǎn)生巨大的推動(dòng)作用[2]。網(wǎng)絡(luò)中有大量的數(shù)據(jù),但是數(shù)據(jù)的質(zhì)量不高,研究者們需要花費(fèi)大量的時(shí)間清洗數(shù)據(jù)。如果在收集數(shù)據(jù)的時(shí)候能將數(shù)據(jù)進(jìn)行清理,則會(huì)大幅度地提高數(shù)據(jù)挖掘研究者的工作效率。

網(wǎng)絡(luò)爬蟲(chóng)(Web Crawler)是一個(gè)自動(dòng)下載網(wǎng)頁(yè)的計(jì)算機(jī)程序,是搜索引擎的重要組成部分[3]。目前,國(guó)內(nèi)外學(xué)者對(duì)網(wǎng)絡(luò)爬蟲(chóng)技術(shù)已有一定的研究。孫立偉比較了通用網(wǎng)絡(luò)爬蟲(chóng)、聚焦網(wǎng)絡(luò)爬蟲(chóng)、增量式網(wǎng)絡(luò)爬蟲(chóng)和深層網(wǎng)絡(luò)爬蟲(chóng)四種常見(jiàn)網(wǎng)絡(luò)爬蟲(chóng)[3]。于懷寶的爬蟲(chóng)系統(tǒng)主要是訪問(wèn)JS動(dòng)態(tài)內(nèi)容,并用正則表達(dá)式編寫(xiě)頁(yè)面解析模板來(lái)抽取數(shù)據(jù)[4]。曾偉輝則對(duì)異步交互式網(wǎng)絡(luò) AJAX 框架下的爬蟲(chóng)進(jìn)行了研究[5]。上述研究者們的工作主要聚焦在采集數(shù)據(jù)上,忽略了對(duì)數(shù)據(jù)的清洗,本文使用DCCA算法,從網(wǎng)站上抓取并篩選出名老中醫(yī)的醫(yī)案數(shù)據(jù),這些數(shù)據(jù)可以為中醫(yī)藥數(shù)據(jù)挖掘提供大量的優(yōu)質(zhì)數(shù)據(jù)。

1 網(wǎng)絡(luò)爬蟲(chóng)抓取與數(shù)據(jù)抽取方法

對(duì)于醫(yī)療系統(tǒng)數(shù)據(jù)挖掘的研究[6-8],多半集中于現(xiàn)有數(shù)據(jù)的整理分析,缺乏從獲取數(shù)據(jù)、整理數(shù)據(jù)到分析數(shù)據(jù)的完整過(guò)程。中醫(yī)藥網(wǎng)站上的數(shù)據(jù)內(nèi)容良莠不齊,數(shù)據(jù)結(jié)構(gòu)多,數(shù)據(jù)的結(jié)構(gòu)化水平低,包含的信息維度高,不符合數(shù)據(jù)挖掘的要求。所以,一個(gè)既包含數(shù)據(jù)采集,亦包含數(shù)據(jù)清理的方法亟待研究。本算法包含兩個(gè)部分:一是抓取名老中醫(yī)醫(yī)案信息的網(wǎng)頁(yè);二是清洗名老中醫(yī)醫(yī)案的數(shù)據(jù)。

名老中醫(yī)醫(yī)案數(shù)據(jù)包括了病人基本信息,病情描述信息以及診斷信息等,這些信息的結(jié)構(gòu)復(fù)雜且沒(méi)有規(guī)律。表1中所示的是網(wǎng)站中關(guān)于治療胸痹醫(yī)案的某一診次的部分內(nèi)容,表1中的數(shù)據(jù)包含了多個(gè)維度的信息,且這些信息的出現(xiàn)頻率不確定,這大大地增加了抽取數(shù)據(jù)的難度。

關(guān)于某疾病,僅有一個(gè)診次的醫(yī)案屬于特殊情況。針對(duì)這種情況,本文通過(guò)DCCA的選擇器來(lái)獲得數(shù)據(jù),其中存在特殊的數(shù)據(jù)包含在其他HTML標(biāo)簽中,從邏輯上這部分特殊數(shù)據(jù)不可丟失。DCCA算法在這個(gè)問(wèn)題上做了如下處理:一,遍歷這個(gè)特定的字符數(shù)組,用正則表達(dá)式來(lái)判斷這些字符數(shù)組中的數(shù)據(jù)是否含有阿拉伯?dāng)?shù)字;二,遍歷這些集合,將符合判斷條件的數(shù)據(jù)拼接到最前一個(gè)字符串上。經(jīng)實(shí)踐檢驗(yàn),該數(shù)據(jù)處理方式能夠達(dá)到將邏輯上屬于同一部分但在不同HTML標(biāo)簽中的內(nèi)容整合成同一部分的內(nèi)容。

不同診次所包含的信息是不斷變化的。例如,某人第一次來(lái)就診時(shí)醫(yī)生沒(méi)有安排其進(jìn)行輔助檢查,但是隨著病情的變化,第二次就診時(shí)醫(yī)生安排其進(jìn)行輔助檢查,如果把第二診次輔助檢查的信息存放到第一診次的輔助檢查中,就造成了兩條臟數(shù)據(jù)。針對(duì)包含多個(gè)診次的名老中醫(yī)醫(yī)案信息,DCCA首先區(qū)分不同的診次。主要的方法:一是獲取第二診次的就診時(shí)間,將其作為切分第一診次和第二診次及以后診次的標(biāo)準(zhǔn);二是對(duì)第二診次及以后診次的信息按照特殊的標(biāo)記進(jìn)行抽取。

2 網(wǎng)絡(luò)爬蟲(chóng)抓取與數(shù)據(jù)抽取算法描述

DCCA算法主要是為了抓取中醫(yī)藥網(wǎng)站中名老中醫(yī)的醫(yī)案數(shù)據(jù),并將網(wǎng)頁(yè)中的醫(yī)案信息抽取出來(lái)存入數(shù)據(jù)庫(kù),并對(duì)醫(yī)案數(shù)據(jù)進(jìn)行清理。

2.1 抓取網(wǎng)站中有關(guān)名老中醫(yī)的醫(yī)案數(shù)據(jù)網(wǎng)頁(yè)

抓取網(wǎng)站中有關(guān)名老中醫(yī)的醫(yī)案數(shù)據(jù),存放在本地磁盤(pán)中,便于比較原始數(shù)據(jù)及清洗后的數(shù)據(jù),檢驗(yàn)DCCA算法的數(shù)據(jù)清洗效果。

2.2 醫(yī)案數(shù)據(jù)抽取

調(diào)用DCCA算法解析名老中醫(yī)醫(yī)案數(shù)據(jù)。算法描述如下:

算法:DCCA(String path)

輸入:離線醫(yī)案數(shù)據(jù)的存儲(chǔ)文件路徑path

輸出:規(guī)范化、標(biāo)準(zhǔn)化后的醫(yī)案數(shù)據(jù)

① For x(每個(gè)離線醫(yī)案) in path:

② 對(duì)醫(yī)案數(shù)據(jù)按照特定的標(biāo)記進(jìn)行拆分,若存在二診時(shí)間,則將值賦給wholedignoisedate,創(chuàng)建數(shù)組strListFirst

③ If wholedignoisedate≠空串 then

④ 將第一診次數(shù)據(jù)存入strListFirst[0],其他診次的數(shù)據(jù)存入strListFirst[1]中,抽取第一診斷次的具體信息

⑤ 抽取strListFirst[1]的內(nèi)容,即按照診次分開(kāi),記切分后的字符串?dāng)?shù)組為contents_zc

⑥ For k(每個(gè)診次) in contents_zc:

⑦ 對(duì)contents_zc(k)的內(nèi)容按照特殊標(biāo)記抽取,記切分后的字符串?dāng)?shù)組為strList2

⑧ For h(二診及以上信息字符串?dāng)?shù)組strList2中的每個(gè)屬性) in strList2:

⑨ 根據(jù)摘要(Summary)等關(guān)鍵字切分strList2,將值賦給診斷信息對(duì)象(prescrition)的具體屬性

⑩ If h start with 中醫(yī)診斷(TcmDiagnosis)、西醫(yī)診斷(MedicalDiagnosis)、方劑組成(PrescriptionComposition) And h不是該診次的最后一個(gè)屬性 And 第h+1個(gè)屬性start with摘要(Summary)、就診時(shí)間(PatientDate)、舌質(zhì)(Tongue)等關(guān)鍵字 then

[11] 將值strList2.get(h) 賦值給診斷信息對(duì)象(prescrtion)的具體屬性

[12] End

[13] Else 重復(fù)步驟⑨

[14] End

[15] End

[16] End

[17] End

[18] Else 根據(jù)"div>p[data-name=屬性名]"將第一診次的信息抽取出來(lái)賦值給診斷信息對(duì)象(prescrtion)的對(duì)應(yīng)屬性

[19] End

[20] End

3 實(shí)驗(yàn)結(jié)果

本實(shí)驗(yàn)通過(guò)DCCA算法,爬取和清洗了專(zhuān)業(yè)的中醫(yī)藥網(wǎng)站上的名老中醫(yī)醫(yī)案網(wǎng)頁(yè)共計(jì)12670個(gè)。最終獲得了符合要求的名老中醫(yī)醫(yī)案診次數(shù)據(jù)共計(jì)28813條,與原始數(shù)據(jù)比較顯示,DCCA算法能夠較好地完成對(duì)網(wǎng)絡(luò)上的中醫(yī)醫(yī)案數(shù)據(jù)的爬取與清洗工作。部分處理結(jié)果如表2和表3所示。

表2中是處理結(jié)果中患者的基本信息,主要包括患者姓名、患者性別、就診時(shí)間、節(jié)氣、主訴等信息,與原始內(nèi)容比較發(fā)現(xiàn)處理后的第一診次的內(nèi)容中沒(méi)有出現(xiàn)第二診次的內(nèi)容,即經(jīng)過(guò)DCCA算法處理后的結(jié)果中沒(méi)有產(chǎn)生臟數(shù)據(jù)。

表3中是處理結(jié)果中患者的刻下癥、舌苔、脈象、中醫(yī)診斷、方名、方劑組成等信息,與原始內(nèi)容比較發(fā)現(xiàn):處理后的第一診次的方名等字段的內(nèi)容中不會(huì)出現(xiàn)第二診次的方名等字段的內(nèi)容,所以DCCA算法在數(shù)據(jù)清洗的效果上優(yōu)于傳統(tǒng)方式,同時(shí)可發(fā)現(xiàn)處理結(jié)果中不同診次的內(nèi)容與原始信息的內(nèi)容完全一致。

4 結(jié)論

使用傳統(tǒng)的方法抓取并清洗名老中醫(yī)醫(yī)案,并不能獲取準(zhǔn)確的醫(yī)案數(shù)據(jù)。傳統(tǒng)方式抽取頁(yè)面內(nèi)容的全部數(shù)據(jù),并將抓取的頁(yè)面數(shù)據(jù)存入字符串中,然后根據(jù)頁(yè)面數(shù)據(jù)的關(guān)鍵字符來(lái)處理字符串,這時(shí)候處理完的關(guān)鍵字就會(huì)丟失,會(huì)造成對(duì)數(shù)據(jù)識(shí)別的錯(cuò)誤。再加上醫(yī)案數(shù)據(jù)的結(jié)構(gòu)多樣性,在真正處理時(shí),如果遇到?jīng)]被識(shí)別的關(guān)鍵字,就會(huì)出現(xiàn)切分錯(cuò)誤,導(dǎo)致數(shù)據(jù)維度高等相關(guān)問(wèn)題。

使用DCCA算法抽取網(wǎng)絡(luò)上的名老中醫(yī)醫(yī)案數(shù)據(jù),可以完整地抽取每個(gè)診次的全部信息,并且可以避免傳統(tǒng)方法中經(jīng)常出現(xiàn)的第一診次中包含了第二診次及以后診次的數(shù)據(jù)。通過(guò)中醫(yī)藥領(lǐng)域的數(shù)據(jù)挖掘研究者對(duì)處理結(jié)果的審查,經(jīng)DCCA算法處理后的數(shù)據(jù)達(dá)到數(shù)據(jù)挖掘要求。

參考文獻(xiàn)(References):

[1] J D Mazimpaka. Trajectory data mining: A review of methods and applications[J]. Journal of Spatial Information Science,2016.13(2016):61-99

[2] 吳嘉瑞,唐仕歡,郭位先,張曉朦,張冰.基于數(shù)據(jù)挖掘的名老中醫(yī)經(jīng)驗(yàn)傳承研究述評(píng)[J].中國(guó)中藥雜志,2014.39(4):614-617

[3] 孫立偉,何國(guó)輝,吳禮發(fā).網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的研究[J].電腦知識(shí)與技術(shù),2010.6(15):4112-4115

[4] 于懷寶.面向建材信息的網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2015.

[5] 曾偉輝.支持AJAX 的網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].中國(guó)科學(xué)技術(shù)大學(xué),2009.

[6] 徐巧云,諸紀(jì),陸雯珺.醫(yī)療大數(shù)據(jù)可視化系統(tǒng)架構(gòu)研究與實(shí)踐[J].現(xiàn)代計(jì)算機(jī)(專(zhuān)業(yè)版),2017.30:27-30

[7] 孔抗美,張瑩,李韶斌等.醫(yī)院醫(yī)療數(shù)據(jù)挖掘與分析[J].中國(guó)衛(wèi)生信息管理雜志,2015.8(6):29-33

[8] M Herland, T M Khoshgoftaar, R Wald. A review of data mining using big data in health informatics[J]. Journal of Big Data,2014.1:2

猜你喜歡
網(wǎng)絡(luò)爬蟲(chóng)醫(yī)案
醫(yī)案聊齋續(xù)篇 眩暈案
醫(yī)案聊齋續(xù)篇 吐瀉案
醫(yī)案聊齋續(xù)篇 晨泄案
醫(yī)案聊齋續(xù)篇 吐血案
煉鐵廠鐵量網(wǎng)頁(yè)數(shù)據(jù)獲取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于社會(huì)網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁(yè)挖掘研究
主題搜索引擎中網(wǎng)絡(luò)爬蟲(chóng)的實(shí)現(xiàn)研究
淺析如何應(yīng)對(duì)網(wǎng)絡(luò)爬蟲(chóng)流量
網(wǎng)絡(luò)爬蟲(chóng)針對(duì)“反爬”網(wǎng)站的爬取策略研究
新加香薷飲醫(yī)案6則
尼木县| 基隆市| 灌阳县| 康平县| 白朗县| 新源县| 安宁市| 德钦县| 镇康县| 康平县| 弋阳县| 无极县| 旺苍县| 宝清县| 双桥区| 太白县| 富川| 长岭县| 温州市| 建阳市| 砀山县| 武陟县| 长葛市| 金华市| 肥东县| 图们市| 金山区| 五家渠市| 萨迦县| 林周县| 婺源县| 舟曲县| 醴陵市| 彩票| 普定县| 海阳市| 玛沁县| 股票| 临猗县| 大余县| 长子县|