陳楚云 李偉林 洪佳明 李麗霞 張去飛 謝麗琴
摘要:本文分析了針灸古籍數(shù)據(jù)的特點,提出根據(jù)針灸學(xué)診治疾病的模式,采用多種數(shù)據(jù)挖掘技術(shù)提取、整合、展示散布于古籍數(shù)據(jù)中的理、法、經(jīng)、穴、術(shù)知識,構(gòu)建一個通過B/S方式提供給用戶使用的針灸古籍數(shù)據(jù)庫平臺;闡述了針灸古籍經(jīng)驗平臺的框架、模塊的功能、實現(xiàn)各功能的方法,對以“中風”為檢索詞的檢索結(jié)果作了演示,并總結(jié)歸納構(gòu)建針灸古籍經(jīng)驗推薦平臺的體會及該平臺在針灸古籍數(shù)據(jù)開發(fā)中的優(yōu)勢。
關(guān)鍵詞:數(shù)據(jù)挖掘技術(shù);針灸古籍;軟件開發(fā)
DOI:10.3969/j.issn.1005-5304.2017.08.002
中圖分類號:R2-05 文獻標識碼:A 文章編號:1005-5304(2017)08-0004-05
Construction Method and Function Display of Recommendation Platform for Acupuncture Ancient Books CHEN Chu-yun1, LI Wei-lin2, HONG Jia-ming3, LI Li-xia1, ZHANG Qu-fei1, XIE Li-qin1 (1. Department of Acupuncture, Guangzhou Hospital of Chinese Medicine, Guangzhou 510130, China; 2. Information and Network Center, Xinhua College, Zhongshan University, Guangzhou 510080, China; 3. College of Medical Information Engineering, Guangzhou University of Chinese Medicine, Guangzhou 510006, China)
Abstract: This article analyzed the characteristics of data of acupuncture and moxibustion in ancient books, and put forward to a mode of diagnosis and treatments according to acupuncture and moxibustion. A variety of data mining techniques were used to extract, integrate and display the theory, methods, meridians, acupoints and techniques in ancient books to establish a database platform of ancient books based on B/S architecture, which can be used by users. Also, this article described the framework, the function of the module, and the method of realizing each function of the experience platform of acupuncture ancient books, and demonstrated an interface of the results searched by key words “stroke”, and summarized the experience of building this platform and the advantages of the platform in the research and development of data of acupuncture ancient books.
Key words: data mining technology; acupuncture ancient books; software development
針灸療效取決于中醫(yī)獨特的理論體系,其診療過程離不開傳統(tǒng)的針灸經(jīng)絡(luò)理論。文獻是記錄歷代針灸基礎(chǔ)理論和臨床經(jīng)驗的主要載體,是總結(jié)和繼承前人學(xué)術(shù)思想的重要資料。針灸古籍是前人對針灸經(jīng)絡(luò)、腧穴、刺灸法等理論和臨床經(jīng)驗的總結(jié),據(jù)不完全統(tǒng)計,現(xiàn)存針灸專著約180種[1]。但傳統(tǒng)的存在形式和使用方式已不能滿足現(xiàn)代社會對信息獲取的需求,且面對如此浩瀚的文獻信息,人工獲取非常有限。如何將針灸古籍蘊含的寶貴經(jīng)驗開發(fā)成為可供現(xiàn)代人隨時獲取的方式,實現(xiàn)針灸古籍有效、
基金項目:廣東省科技計劃項目(2012B060500015);廣東省自然科學(xué)基金(2014A030309013);廣東省第二批名中醫(yī)師承項目(CS2015030)
通訊作者:李偉林,E-mail:lwl_tech@126.com
快捷地為臨床、科研、教學(xué)服務(wù),擴大針灸的影響成為迫在眉睫的問題。
數(shù)據(jù)挖掘技術(shù)是從大量、不完全、有噪聲、模糊、隨機的數(shù)據(jù)中提取隱含、無先驗、對決策有用的知識,用專門算法從數(shù)據(jù)庫中抽取模式,然后通過系統(tǒng)解釋和評價模塊,將模式轉(zhuǎn)換成用戶可以理解的知識。由于古代針灸文獻數(shù)據(jù)量大,記錄方式簡單、術(shù)語不規(guī)范、標準不統(tǒng)一,造成文獻中知識、經(jīng)驗具有明顯模糊性與不確定性。用普通的數(shù)據(jù)獲取方法,無法實現(xiàn)對復(fù)雜的模糊性與不確定性針灸古籍數(shù)據(jù)進行關(guān)聯(lián)分析。為此,筆者通過開發(fā)一個按照針灸學(xué)診治疾病的模式,以針灸古籍為分析對象,采用數(shù)據(jù)挖掘技術(shù)提取、整合、展示散布于古籍數(shù)據(jù)中的理、法、經(jīng)、穴、術(shù)知識,連接現(xiàn)代針灸與古籍作用的平臺,以供用戶檢索使用。茲介紹如下。
1 平臺架構(gòu)
該平臺基于SSH(Struts+Spring+Hibernate)架構(gòu),由Struts實現(xiàn)表示層、Spring實現(xiàn)業(yè)務(wù)邏輯層、Hibernate實現(xiàn)數(shù)據(jù)持久層,數(shù)據(jù)庫用Oracle10g,開發(fā)語言JAVA,運行環(huán)境為Windows2008 R2 Server+Tomcat6.0+JDK1.6,通過B/S(Browser/Server,瀏覽器/服務(wù)器模式)的方式提供給用戶和數(shù)據(jù)錄入核對人員使用。針灸古籍經(jīng)驗推薦平臺功能模塊見圖1。
2 模塊功能實現(xiàn)
2.1 系統(tǒng)管理模塊
系統(tǒng)管理模塊包括操作員管理、角色管理、權(quán)限管理、設(shè)置個人信息、修改密碼、操作日志、訪問IP限定等子模塊,具體分述如下。
2.1.1 操作員管理 是系統(tǒng)管理員開通、設(shè)置錄入校對人員的操作員帳號、密碼、權(quán)限與真實姓名的操作模塊,只有在操作管理開通并授權(quán)的情況下方可進入系統(tǒng)進行相關(guān)的操作,每位參與古籍錄入校對人員均需有針灸專業(yè)知識基礎(chǔ)。
2.1.2 角色管理 因平臺先期的古籍收集整理,以及后期的古籍庫資料庫、資料核對、標準庫的建立工作均需大量人員參與,將參與這項工作的人員進行分工以方便管理是很有必要的,系統(tǒng)中將參與人員按角色區(qū)分為超級管理員、資料錄入校對員、標準庫錄入校對員,其中超級管理員擁有最高權(quán)限。
2.1.3 權(quán)限管理 是系統(tǒng)管理員限定操作員分工范圍的功能模塊,為超級管理員、資料錄入校對員、標準庫錄入校對員3種不同角色限定工作范圍,除超級管理員外,每個操作員登錄系統(tǒng)時只能操作本人錄入校對的古籍或標準庫內(nèi)容,如資料錄入校對員可操作本人錄入校對古籍的查詢、查看、新增、修改、刪除、回收功能。
2.1.4 設(shè)置個人信息 所有操作人員于該功能模塊下完善個人信息,包括聯(lián)系方式、專業(yè)、單位、錄入或校對的古籍書目等。
2.1.5 修改密碼 系統(tǒng)管理員設(shè)置錄入校對人員權(quán)限時使用初始密碼,告知操作員后,操作員可于本功能模塊下修改自己的登錄密碼。
2.1.6 操作日志 所有操作人員每次登錄平臺,平臺自動記錄來訪操作員名稱、IP地址、操作時間,描述其操作內(nèi)容等。
2.1.7 訪問IP限定 為提高系統(tǒng)安全性,除授權(quán)訪問外,還可通過IP地址限制哪些IP地址可以訪問,哪些IP地址不能訪問。
2.2 資料管理模塊
該功能模塊是操作員登錄系統(tǒng)后的操作界面,操作員于此錄入、修改、校對資料,包括標準庫、資料庫、簡繁體轉(zhuǎn)換、數(shù)據(jù)校對與規(guī)范、通假字處理、術(shù)語詞典等子模塊。
2.2.1 標準庫 在數(shù)據(jù)挖掘的多個環(huán)節(jié)需要使用標準庫,如分詞時將標準庫擴充為IKAnalyzer2012_u6(IK)分詞器的詞典,在詞性標注時將標準庫作為ICTCLAS2015的擴展字典,規(guī)則抽取是用標準庫的術(shù)語去標注分析資料庫,監(jiān)督分類也需標準庫作為訓(xùn)練語料,是進行數(shù)據(jù)挖掘的基礎(chǔ)。標準庫包括病證、癥狀、病癥、經(jīng)絡(luò)、穴位、刺灸法6個子庫,操作員可于各個子庫下新增、查看、修改、刪除每個癥狀、病證、病癥、經(jīng)絡(luò)、穴位、刺灸法的名稱、類別、代號、出處、別名、主癥、兼癥、描述等信息,并可上傳圖片。
2.2.2 古籍庫 針灸古籍是平臺進行數(shù)據(jù)挖掘的對象,包括古籍書名目錄、資料列表、回收站3個子庫,并有書籍管理、內(nèi)容管理可供操作員按書名、作者、章、節(jié)、內(nèi)容、錄入人員查詢。①古籍書名目錄:操作員可于本子庫下新增、查看、修改、刪除每本古籍的書名、版本、類別(綜合性、專書)、作者、朝代、備注等信息;②資料列表:操作員可于本子庫下新增、查看、修改、核對、刪除、回收古籍書名目錄下書籍的章、節(jié)、內(nèi)容、備注等,并可插入書中圖片。
2.2.3 繁簡轉(zhuǎn)換 由于古籍存在版本年代的差異,可能存在繁體字,操作員可錄入繁體字與簡體字,系統(tǒng)采用開源包HanLP[2]中的簡轉(zhuǎn)繁詞典,實現(xiàn)繁體字與簡體字的互換。
2.2.4 同名穴處理 資料錄入后,由針灸專業(yè)人員用交叉校對法進行校對,糾正錯誤數(shù)據(jù),刪除重復(fù)數(shù)據(jù)。
2.2.5 通假字處理 古籍存在大量的通假字,根據(jù)高啟沃《簡明通假字字典》[3]對古籍中的通假字進行識別替換,并基于二分Trie樹的前綴查詢算法實現(xiàn)快速的檢索匹配比較。
2.2.6 術(shù)語處理 除了標準庫中的病證、癥狀、病癥、經(jīng)絡(luò)、穴位、刺灸法內(nèi)容是IK分詞器的詞典、ICTCLAS2015的擴展字典,同時將搜狗輸入法的詞庫等進行整理,包括書名、人名、朝代名詞、古代區(qū)域名稱等,作為術(shù)語詞典之一。
2.3 數(shù)據(jù)挖掘模塊
數(shù)據(jù)挖掘是平臺核心部分,目的是實現(xiàn)對非結(jié)構(gòu)化的古籍文本信息按照病癥、腧穴、經(jīng)絡(luò)、刺灸法的關(guān)系進行抽取,并通過關(guān)聯(lián)挖掘分析腧穴的配伍關(guān)系及病癥、腧穴、經(jīng)絡(luò)、刺灸法的對應(yīng)關(guān)系,最終形成知識庫。
2.3.1 分詞 分詞是進行句子理解、語法分析及信息抽取的基礎(chǔ),針灸古籍經(jīng)驗推薦平臺采用IKAnalyzer2012_u6作為分詞器,將上述術(shù)語詞典作為擴展詞典,對資料庫進行切分并標注詞性。
2.3.2 詞性標注 為更好理解古籍中每個句子的含義,在分詞基礎(chǔ)上,對每個詞語進行標注,區(qū)分每一個詞的詞性,系統(tǒng)采用中國科學(xué)院計算技術(shù)研究所開發(fā)的漢語詞法分析系統(tǒng)ICTCLAS2015[4]作為詞性標注工具,將標準庫作其擴展字典,對資料庫進行切分并標注詞性。
2.3.3 依存分析 語法樹的依存關(guān)系分析有助于更好地進行人工智能的自然語言處理分析,平臺采用最大熵算法實現(xiàn)語法樹的依存關(guān)系分析。
2.3.4 規(guī)則抽取 通過詞性標注,得到每個詞語的詞性,通過擴展詞典,將病癥、腧穴、經(jīng)絡(luò)、刺灸法標準庫的術(shù)語通過自定的詞性標注標簽來進行分區(qū),存在關(guān)聯(lián)關(guān)系的句子用正則規(guī)則關(guān)系進行抽取。
2.3.5 監(jiān)督分類 采用Adaboost算法[5],將規(guī)則抽取的結(jié)果根據(jù)標準庫的內(nèi)容進行細分分類。該算法的優(yōu)點是不需預(yù)先標注的手工訓(xùn)練集,只需少量抽取目標的樣本信息及大量的未標注語料就可自動抽取目標信息。先將標準庫構(gòu)建成訓(xùn)練模板,通過Adaboost算法迭代進行分類。
2.3.6 相似度計算 為提高監(jiān)督分類的準確率,在采用Adaboost算法基礎(chǔ)上,采用基于TF-IDF[6]和余弦[7]實現(xiàn)相似度分析。該算法通過詞頻和逆向文檔,將文本信息轉(zhuǎn)為多維的空間向量,通過余弦公式計算兩個空間向量的夾角大小進行評估文本的相似度。
2.3.7 歧義分析 對于同一病癥在不同書籍中存在不同名稱的歧義,采用基于隱含語義分析(latent semantic analysis,LSA)[8]和奇異值分解(singular value decomposition,SVD)[9]來解決。
2.3.8 關(guān)聯(lián)挖掘 通過以上的清理、去噪、整理,形成病癥-腧穴-經(jīng)絡(luò)-刺灸法集,采用Apriori算法[10]實現(xiàn)多層的關(guān)聯(lián)分析,通過迭代和設(shè)置最小支持度和置信度,分析項集之間的潛在關(guān)系,建立腧穴配伍關(guān)系、病癥腧穴對應(yīng)關(guān)系、腧穴刺灸法對應(yīng)關(guān)系的知識庫。
2.3.9 決策分析 在關(guān)聯(lián)挖掘所建立知識庫的基礎(chǔ)上,采用決策樹C4.5算法[11]解決疾病不同癥狀所選用的腧穴、刺灸法可能不同的問題,以提高分類的準確度,實現(xiàn)更好的分類預(yù)測。
2.4 用戶檢索模塊
2.4.1 全文檢索 用戶可于該界面以檢索詞檢索古籍全文,檢索詞將以不同顏色顯示,用戶點擊任意一條記錄可以查看全文。
2.4.2 詞頻統(tǒng)計 用戶檢索全文時,系統(tǒng)自動統(tǒng)計檢索詞在古籍庫中每本書出現(xiàn)的頻率。檢索病癥時,還將出現(xiàn)治療該病癥的經(jīng)絡(luò)、腧穴、刺灸法出現(xiàn)的頻率,以遞減的方式顯示;若檢索的是腧穴,還會出現(xiàn)該穴治療病癥、刺灸法的頻率,以遞減的方式顯示。
2.4.3 關(guān)聯(lián)挖掘結(jié)果 用戶檢索時,平臺將顯示關(guān)聯(lián)挖掘結(jié)果,病癥與腧穴(特定穴)、病癥處方中腧穴與腧穴、病癥與刺灸法及腧穴與刺灸法的支持度和置信度,且病癥與腧穴可以關(guān)系圖的方式表示。
3 平臺演示
通過上述的功能模塊設(shè)計和實現(xiàn),完成平臺的構(gòu)建,根據(jù)《新編針灸大辭典》[12]、《中國針灸穴位通鑒(上、下卷)》[13],將書中的經(jīng)絡(luò)、穴位、刺灸法內(nèi)容錄入系統(tǒng),建立含有經(jīng)絡(luò)、穴位、刺灸法信息的標準庫,具體包括名稱、別名、定義或描述、特性與出處等信息。根據(jù)《中國針灸薈萃·現(xiàn)存針灸醫(yī)籍之部》[14]、《新編針灸大辭典》[12]的針灸醫(yī)籍名稱,收集清代以前針灸古籍并錄入數(shù)據(jù)庫,建立古籍庫,具體包括書名、版本、作者、朝代、章、節(jié)、內(nèi)容等。
3.1 全文檢索結(jié)果界面
用戶通過搜索界面,可對所錄入的150本針灸古籍進行全文檢索。平臺根據(jù)用戶的查詢條件在古籍中進行全文檢索,檢出包含檢索詞的文章,同時檢索檢索詞的別名、通假字等,且于界面以關(guān)聯(lián)詞語表示;全文檢索界面的主體部分是含有檢索詞的書籍名稱及部分章節(jié),檢索詞于文中以紅色顯示,雙擊書目可連接書籍中所有含有該檢索詞的章節(jié);界面同時以頻次遞減的形式列出所有含有該檢索詞的書目。
3.2 腧穴配伍關(guān)聯(lián)分析結(jié)果界面
平臺自動顯示關(guān)聯(lián)分析的結(jié)果,可選擇疾病相關(guān)的癥狀、所用腧穴、腧穴配伍關(guān)系、不同朝代腧穴配伍關(guān)系、刺灸法等。不同支持度與置信度的,分析結(jié)果記錄數(shù)不同,用戶可根據(jù)自身需求選擇支持度與置信度閾值。圖2顯示的是病癥處方中腧穴與腧穴的配伍關(guān)系。
3.3 病癥腧穴關(guān)聯(lián)關(guān)系圖界面
病癥與腧穴的關(guān)系以復(fù)雜關(guān)系圖顯示,圖3顯示的是中風病常見癥狀、常用腧穴及病癥與腧穴間的關(guān)系,使關(guān)聯(lián)分析結(jié)果更直觀。
4 小結(jié)
數(shù)據(jù)挖掘技術(shù)在海量、非線性針灸數(shù)據(jù)處理中具有明顯優(yōu)勢,適于分析散在、龐雜的與針灸相關(guān)的經(jīng)絡(luò)、腧穴、疾病、醫(yī)案等資料,以揭示針灸理論科學(xué)內(nèi)涵。但由于在針灸古籍中,腧穴、病癥術(shù)語不統(tǒng)一,存在同名穴、一穴多名,以及同一癥狀有多種描述等現(xiàn)象,即針灸古籍數(shù)據(jù)具有模糊性與不確定性特點,限制了信息化研究的開展。目前,數(shù)據(jù)挖掘技術(shù)在針灸文獻研究中的應(yīng)用大部分針對單個穴位的應(yīng)用規(guī)律、某個病的選穴規(guī)律、某種刺灸法及單個名家病案的挖掘,且大多采用人工閱讀抽取目的相關(guān)的記錄,建立單病、單穴、單種刺灸法資料庫,而非真正意義上的大數(shù)據(jù)、智能化。針灸古籍經(jīng)驗推薦平臺旨在突破以上限制,采用數(shù)據(jù)挖掘的分詞、詞性標注、依存分析、規(guī)則抽取、相似度計算、隱性語義分析、監(jiān)督分類技術(shù)結(jié)合標準庫,實現(xiàn)自動古籍文本抽取,突破人工限制;建立含有經(jīng)絡(luò)、穴位、病證、病癥對應(yīng)、針灸相關(guān)術(shù)語等的標準庫,采用隱性語義分析用標準庫將病癥、經(jīng)絡(luò)、腧穴庫標準化,解決古籍中腧穴、病癥術(shù)語不統(tǒng)一的問題。構(gòu)建一個具有適合針灸診療模式及數(shù)據(jù)挖掘功能的平臺,綜合多種數(shù)據(jù)挖掘技術(shù),通過“大數(shù)據(jù)”開發(fā)適合所有針灸文獻的智能系統(tǒng),在反映古籍中病癥與腧穴、腧穴與腧穴、病癥與刺灸法、病癥與經(jīng)絡(luò)關(guān)系特點的同時,實現(xiàn)針灸古籍有效、快捷地為針灸臨床、科研、教學(xué)服務(wù),促進針灸的傳承與發(fā)展,并架起一座通往針灸古籍的橋梁。
參考文獻:
[1] 黃龍祥.針灸名著集成[M].北京:華夏出版社,1996:1.
[2] 上海林原信息科技有限公司.HanLP漢語處理包:HanLP v1.2.8[EB/OL]. [2017-03-23].http://hanlp.linrunsoft.com/.
[3] 高啟沃.簡明通假字字典[M].2版.合肥:安徽教育出版社,1999.
[4] 張華平.NLPIR漢語分詞系統(tǒng):ICTCLAS2015[EB/OL].[2015-08-23]. http://ictclas.nlpir.org.
[5] 許劍,張洪偉.Adaboost算法分類器設(shè)計及其應(yīng)用[J].四川理工學(xué)院學(xué)報:自然科學(xué)版,2014,27(1):28-31.
[6] 黃承慧,印鑒,侯昉.一種結(jié)合詞項語義信息和 TF-IDF 方法的文本相似度量方法[J].計算機學(xué)報,2011,34(5):856-864.
[7] 張振亞,王進,程紅梅,等.基于余弦相似度的文本空間索引方法研究[J].計算機科學(xué),2005,32(9):160-163.
[8] 蓋杰,王怡,武港山.潛在語義分析理論及其應(yīng)用[J].計算機應(yīng)用研究,2004,21(3):9-12.
[9] 李金嶺.SVD算法簡介與模擬數(shù)據(jù)檢驗[J].中國科學(xué)院上海天文臺年刊,1998,19:16-21.
[10] HAN J W, KAMBER M.數(shù)據(jù)挖掘概念與技術(shù)[M].范明,孟小峰,譯.3版.北京:機械工業(yè)出版社,2012:148.
[11] 黃文.決策樹的經(jīng)典算法:ID3與C4.5[J].四川文理學(xué)院學(xué)報,2007, 17(5):16-18.
[12] 程寶書.新編針灸大辭典[M].北京:華夏出版社,1995.
[13] 王德深.中國針灸穴位通鑒[M].青島:青島出版社,2004.
[14] 郭靄春.中國針灸薈萃:現(xiàn)存針灸醫(yī)籍之部[M].長沙:湖南科學(xué)技術(shù)出版社,1993.
(收稿日期:2016-12-16)
(修回日期:2017-01-26;編輯:梅智勝)