如何從巨大的數(shù)字化文本信息中提取有效的知識(shí)是大數(shù)據(jù)時(shí)代學(xué)術(shù)界研究的熱點(diǎn)內(nèi)容[1-2]。隨著中醫(yī)數(shù)字化進(jìn)程的不斷推進(jìn),眾多中醫(yī)古籍資料已完成數(shù)字化工作,如何運(yùn)用大數(shù)據(jù)方法分析這些文本數(shù)據(jù)是一個(gè)值得探索的問題。
文本分類是自然語言處理領(lǐng)域中的一個(gè)重要研究方向,是運(yùn)用計(jì)算機(jī)技術(shù)對文本數(shù)據(jù)按照一定的分類體系或標(biāo)準(zhǔn)進(jìn)行自動(dòng)分類標(biāo)記的方法[3-4]。早期的文本分類技術(shù)主要適用于英文文本,具有使用價(jià)值的中文文本分類方法直到20世紀(jì)90年代末期才被提出,隨即在中文垃圾郵件分類、情感識(shí)別、意圖判別等領(lǐng)域成功應(yīng)用,但針對中醫(yī)文本數(shù)據(jù)的分類研究較少[5-8]。本文通過自動(dòng)提取不同中醫(yī)學(xué)派文獻(xiàn)資料的特征,采用LibSVM和LibLinear進(jìn)行分類預(yù)測計(jì)算,探索一種基于純文本的中醫(yī)學(xué)派區(qū)分方法。
基于機(jī)器學(xué)習(xí)的文本分類通常包括特征提取、特征降維、分類器訓(xùn)練3個(gè)步驟。在中文文本分類研究中,分類器的選擇較為重要,常用的分類器模型有貝葉斯[9]、邏輯回歸[10]、支持向量機(jī)[11]、決策樹[12]、神經(jīng)網(wǎng)絡(luò)[13]等。近年來,支持向量機(jī)在文本分類中的應(yīng)用取得了較為突出的進(jìn)展。雖然其在大數(shù)據(jù)集訓(xùn)練時(shí)會(huì)消耗大量時(shí)間和計(jì)算資源,但具有良好的泛化能力,在分類正確率和魯棒性上占有優(yōu)勢。貝葉斯、邏輯回歸、決策樹等方法具有模型簡單、訓(xùn)練及分類效率高等優(yōu)點(diǎn),但分類能力和魯棒性較弱,如果數(shù)據(jù)集的內(nèi)容和分布不符合模型特點(diǎn),模型的分類性能會(huì)顯著下降[14]。本文選擇Bigram分詞為數(shù)據(jù)預(yù)處理方法、TF-IDF為特征提取方法、Chi-square為特征降維方法、LibSVM和LibLinear為分類器。
Bigram是N-Gram算法中的二元分詞方法,屬于馬爾科夫模型的一種。其原理是先根據(jù)用戶詞典對文本簡單匹配,找出所有的詞典詞,然后將文本內(nèi)容切分為長度為2的字符串序列,每個(gè)字符串即為gram,對全部gram的出現(xiàn)頻度進(jìn)行統(tǒng)計(jì),并按照設(shè)定的閾值進(jìn)行過濾,形成關(guān)鍵gram列表,即為該文本的分詞結(jié)果,具體語言模型如公式(1)所示[15]。
(1)
中文文本處理大多采用Bigram進(jìn)行分詞,因?yàn)殡p字詞出現(xiàn)概率較大,亦有采用三元Trigram或更高元方法進(jìn)行分詞。由于高元模型訓(xùn)練需要更龐大的語料,且數(shù)據(jù)稀疏嚴(yán)重,時(shí)間復(fù)雜度高,精度提高有限,故本文最終采用Bigram方法。
詞頻-逆文本頻率(Term Frequency-Inverse Document Frequency,TF-IDF)由TF和IDF兩部分組成,是常用的文本分類預(yù)處理基本步驟。當(dāng)完成文本分詞后,通過TF-IDF算法和降維處理就可以使用各個(gè)文本的詞特征向量作為文本的特征進(jìn)行文本分類。TF-IDF的主要思想是如果詞w在一篇文檔d中出現(xiàn)的頻率高,并且在其他文檔中很少出現(xiàn),則認(rèn)為詞w具有很好的區(qū)分能力,適合用來區(qū)分文檔d和其他文檔。該算法主要由公式(2)-(4)組成[16]。
tf(w,d)=count(w,d)/size(d)
(2)
(3)
tf-idf=tf(w,d)*idf
(4)
TF-IDF無法計(jì)算文本特征在文本數(shù)據(jù)中的上下文關(guān)系,特別是處理一些高頻特征時(shí)不考慮其在文中的作用,不能全面衡量某些特征的重要性,從而可能造成算法的正確率下降,但其具有處理速度快,算法模型易于實(shí)現(xiàn)且普適性較強(qiáng)等優(yōu)勢,運(yùn)行結(jié)果較符合實(shí)際情況。
通過Bigram和TF-IDF方法得到的原始特征向量具有極大的維度,需要進(jìn)行降維處理,否則會(huì)帶來巨大的計(jì)算開銷并降低分類器的正確率。文本分類的降維方法主要分為基于特征選擇的降維和基于特征提取降維。由于本文使用TF-IDF算法,故首選基于特征選擇的降維方法。Chi-square是其中性能較好的算法之一,對于出現(xiàn)次數(shù)較少的特征更容易給出高分,尤其在特征數(shù)量較大的情況下,該算法的速度和正確率均較互信息法占優(yōu)[17]。Chi-square最基本的思想是通過觀察實(shí)際值與理論值的偏差確定理論與實(shí)際的符合度,該方法認(rèn)為最重要的特征向量是在A類(假設(shè))樣本集合和非A類樣本集合中分布差異最大的,其數(shù)學(xué)本質(zhì)即卡方分布[18]。
LibSVM[19]和LibLinear[20]是兩個(gè)流行的分類器模型,主要用于處理多分類問題和分布估計(jì)問題。LibSVM是基于完整的支持向量機(jī)模型,通過使用核函數(shù)訓(xùn)練的非線性分類器,LibLinear是一種主要針對線性分類場景而設(shè)計(jì)的可顯著提高多分類問題處理效率的大規(guī)模數(shù)據(jù)集線性分類器。理論上,LibSVM具有更強(qiáng)的分類能力,應(yīng)該能夠處理更復(fù)雜的問題,具有更高的正確率,但在處理大規(guī)模數(shù)據(jù)的性能上不如LibLinear。雖然LibSVM和LibLinear模型已經(jīng)得到了諸多應(yīng)用[21-23],但目前尚未發(fā)現(xiàn)在中醫(yī)藥領(lǐng)域的應(yīng)用,故本文將同時(shí)觀察兩種模型,在中醫(yī)文本數(shù)據(jù)分類中的性能。
本文的實(shí)驗(yàn)平臺(tái)計(jì)算機(jī)配置為I7-6700K處理器,8GB內(nèi)存配置,Windows 10 x64操作系統(tǒng),搭建Java Platform Standard Edition 8環(huán)境,選用THUCTC_java_v1[24]作為運(yùn)行環(huán)境。
中醫(yī)學(xué)派是由于學(xué)說師承不同而形成的群體和派別,是中醫(yī)發(fā)展中極為突出的醫(yī)學(xué)現(xiàn)象,但學(xué)派的區(qū)分方法目前尚未達(dá)成統(tǒng)一意見。
本文的主旨在于探索文本分類方法在中醫(yī)研究中的可行性。根據(jù)前期文獻(xiàn)調(diào)研的結(jié)果暫定以疾病和論述對象作為一種中醫(yī)學(xué)派的區(qū)分標(biāo)準(zhǔn),以其代表性著作為主要研究資料,通過機(jī)器學(xué)習(xí)的文本分類方法加以區(qū)分。
根據(jù)以上思想,本文將構(gòu)建一個(gè)文本分類模型,將納入的中醫(yī)文獻(xiàn)分為傷寒、外科、小兒、女科4類。納入的文獻(xiàn)均為純文本數(shù)字化文獻(xiàn),均為已出版的中醫(yī)原文。具體類別及文獻(xiàn)目錄如表1、表2所示。
表1 納入文獻(xiàn)及類別
表2 預(yù)測文獻(xiàn)明細(xì)
首先構(gòu)建中醫(yī)學(xué)派文本分類數(shù)據(jù)集。該數(shù)據(jù)集由表1中所列文獻(xiàn)的TXT文本文件組成,按照4個(gè)類別分別存放在4個(gè)不同的文件夾中,并共同放置在訓(xùn)練文件夾下。第二步隨機(jī)選擇數(shù)據(jù)集中80%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)帶入Bigram算法進(jìn)行分詞,分詞結(jié)果帶入TF-IDF算法提取特征,得到原始特征向量。第三步將原始特征向量降維,并將降維后的特征向量按降維時(shí)得到的權(quán)重從高到低排序,選取前5 000條特征納入LibSVM和LibLinear訓(xùn)練分類器。 第四步將剩余20%的數(shù)據(jù)按照第二、第三步方法進(jìn)行分詞、特征選擇和降維,把得到的結(jié)果放入訓(xùn)練好的分類器中評估。設(shè)定評估正確率(Precision值)大于0.8時(shí)達(dá)到分類預(yù)測要求,若評估結(jié)果不理想則不斷調(diào)整參數(shù)進(jìn)行優(yōu)化。 第五步將表2中的文本數(shù)據(jù)依次放入模型中,從而得到相應(yīng)的預(yù)測值。若某一分類的預(yù)測值大于0.6,則認(rèn)定該分類為預(yù)測結(jié)果;若不能達(dá)到0.6,則認(rèn)定為難以區(qū)分。
納入數(shù)據(jù)集經(jīng)過分詞和TF-IDF算法計(jì)算共提取97 357個(gè)特征詞,LibSVM訓(xùn)練耗時(shí)0.125秒,LibLinear訓(xùn)練耗時(shí)0.062秒,模型Precision值、Recall值和F值均達(dá)到0.8以上(表3)。
表3 分類器訓(xùn)練結(jié)果
經(jīng)測算,除010號(hào)文獻(xiàn)的4種分類預(yù)測值出現(xiàn)偏差外,LibSVM與LibLinear預(yù)測趨勢高度一致,能夠明顯區(qū)分傷寒、外科、小兒、女科等不同流派的文本數(shù)據(jù)(表4)。
表4 基于機(jī)器學(xué)習(xí)的中醫(yī)學(xué)派文本分類結(jié)果
研究結(jié)果表明,本文使用的方法能夠在一定程度上理解中醫(yī)文獻(xiàn)的語義內(nèi)涵,兩種分類器的正確率經(jīng)訓(xùn)練后均達(dá)到90%以上,具有一定的應(yīng)用價(jià)值。LibSVM的正確率略高于LibLinear模型,與理論預(yù)計(jì)相符。由于本文納入訓(xùn)練的數(shù)據(jù)量較少,很難對兩種模型的性能進(jìn)行全面評價(jià)。
本次實(shí)驗(yàn)測試數(shù)據(jù)主要選用了《古今圖書集成醫(yī)部全錄》中的部分內(nèi)容,考慮到《古今圖書集成》的文獻(xiàn)涵蓋內(nèi)容較廣且過于片段化,故又單獨(dú)選取整本《傷寒論》作為對比資料進(jìn)行預(yù)測。根據(jù)文獻(xiàn)實(shí)際內(nèi)容來看,分類器預(yù)測的正確率是可以接受的。編號(hào)1的文獻(xiàn)為單行本傷寒論,是后代傷寒學(xué)派的源頭。從預(yù)測值可以明顯看出,后代傷寒派文獻(xiàn)與《傷寒論》相關(guān)性極高,具有鮮明的特色;編號(hào)2的文獻(xiàn)內(nèi)容主要涵蓋了內(nèi)經(jīng)相關(guān)書目及中醫(yī)基礎(chǔ)理論、中醫(yī)內(nèi)科學(xué)相關(guān)的文獻(xiàn),覆蓋面較廣,雜糅諸家內(nèi)容,難以區(qū)分流派;編號(hào)3的文獻(xiàn)內(nèi)容主要由外科、傷科文獻(xiàn)構(gòu)成,內(nèi)容較為單一,能夠提取出概率高的特征值,故分類結(jié)果明確而單一;編號(hào)4的文獻(xiàn)內(nèi)容涵蓋了歷代醫(yī)家對婦女及孕婦的論著,理法方藥俱全,胎產(chǎn)及小兒相關(guān)內(nèi)容間雜其中,故預(yù)測值偏低,但仍與其他學(xué)派有明顯不同;編號(hào)5的文獻(xiàn)內(nèi)容主要涉及小兒胎產(chǎn)養(yǎng)護(hù)、生理病理特點(diǎn)和小兒各種疾病治療的內(nèi)容,特征詞較為集中,故預(yù)測結(jié)果較為明確。
本文將基于機(jī)器學(xué)習(xí)的文本分類技術(shù)引入到中醫(yī)學(xué)派研究中,探索了基于古典文獻(xiàn)的中醫(yī)學(xué)派分類方法。該方法以計(jì)算機(jī)自動(dòng)尋找文獻(xiàn)的特征詞匯入手,訓(xùn)練并構(gòu)建的中醫(yī)學(xué)術(shù)流派分類器能夠明顯提升研究效率,具有較高的正確率,可以較為準(zhǔn)確地實(shí)現(xiàn)分類預(yù)測功能,對今后開展中醫(yī)藥大數(shù)據(jù)研究具有一定的借鑒意義。