鄭豐杰,周璐,李宇航
北京中醫(yī)藥大學(xué),北京 100029
張仲景所撰《傷寒雜病論》成書不久即散亂不 存,魏晉太醫(yī)令王叔和將其“傷寒”部分,編次為《張仲景方十五卷》,得以流傳。北宋王洙在宮藏舊書中得仲景《金匱玉函要略方》三卷,宋臣孫奇、林億等將“雜病”內(nèi)容,又“采散在諸家之方”,編勒成《金匱方論》,后世習(xí)稱《金匱要略》,但原版已佚。元代鄧珍復(fù)刻仿宋本《新編金匱方論》傳承王洙蠹簡本,據(jù)目前所知,世間僅存一部,是趙開美本、醫(yī)統(tǒng)本、明仿宋本、俞橋本的祖本,也是現(xiàn)存大字本系統(tǒng)中最善本[1]。
據(jù)宋臣孫奇、林億等統(tǒng)計,《金匱要略》全書“凡二十五篇,除重復(fù),合二百六十二方”。關(guān)于262方之統(tǒng)計,后世習(xí)以正方、附方和雜療三篇方分別計數(shù),但正方有226首、183首、177首、176首之說,附方有26首、28首、29首之謂[2-6],但雜療方計數(shù)不詳,全書條文計數(shù)也未見報道。本文以元代鄧珍本《金匱要略》為藍本,建立原文和方劑數(shù)據(jù)庫,采用可提取電子文本特定內(nèi)容的正則表達式與描述數(shù)據(jù)間映射關(guān)系的數(shù)據(jù)字典技術(shù),結(jié)合人工校對,對《金匱要略》全篇條文與載方進行統(tǒng)計,以期為系統(tǒng)研究與學(xué)習(xí)《金匱要略》提供參考。
以影印元代鄧珍本《新編金匱方論》為數(shù)據(jù)源[7],將原文與載方數(shù)據(jù)錄入數(shù)據(jù)庫。數(shù)據(jù)表中字段設(shè)置如下:段落ID字段(用于標(biāo)識原文段落號),來源篇目字段(記錄源于《金匱要略》篇目),段落字段(記述原文段落)。在此基礎(chǔ)上,遵循《金匱要略方論》中“逐方次于證候之下”的原文排版,設(shè)置方名字段與方劑組成字段,列于段落字段之后。根據(jù)上述字段劃分,各字段錄入規(guī)則與示例如下:①論述證候與治療用方的原文錄入:即一段原文論述證候與治療用方,再起一段原文記述具體的方藥組成。對于此類原文,將論述證候與治療用方的原文錄入段落字段,具體的方藥組成內(nèi)容錄入方名字段與方劑組成字段,如表1中段落ID為71與72的內(nèi)容;②未載方名的原文錄入:原文錄入段落字段,方名字段與方劑組成字段以“無”字填充,如表1段落ID為70的內(nèi)容;③有方無論的原文錄入:若原文單列方名,則納入條文段落當(dāng)中,以作為有方無論的條文,如表1中段落ID為73的內(nèi)容;④若記載方名與組成的原文存在多方并舉,如《禽獸魚蟲禁忌并治第二十四》中載:“香豉二兩,杏仁三兩。右二味,蒸一食頃,熟杵之服,日再服;又方,煮蘆根汁,飲之良?!狈矫蚪M成均以“/”進行分割,如表1中段落ID為275與331的內(nèi)容;⑤若原文中某方劑未載藥物組成,且非附方,可按原文方后所附說明找到方劑出處,繼而確定方藥組成。如“產(chǎn)后風(fēng),續(xù)之?dāng)?shù)十日不解,頭微痛,惡寒,時時有熱,心下悶,干嘔汗出,雖久,陽旦證續(xù)在耳,可與陽旦湯即桂枝湯,方見下利中?!备鶕?jù)“即桂枝湯,方見下利中”提示,按桂枝湯藥物組成錄入。
表1 《金匱要略》原文數(shù)據(jù)表結(jié)構(gòu)與示例
根據(jù)上述錄入方案,從《臟腑經(jīng)絡(luò)先后病脈證第一》至《果實菜谷禁忌并治第二十五》,共采集364個段落,作為條文與載方統(tǒng)計的數(shù)據(jù)基礎(chǔ)。
2.1條文劃分規(guī)則的確立本文《金匱要略》原文條文劃分,據(jù)元代鄧珍復(fù)刻影印本[7],這是現(xiàn)存最早的孤本、珍善本,最大程度上保留了宋版原貌。
該影印本為豎排版式,每段原文結(jié)尾后,新的一段原文另起一豎行,這種書寫形式構(gòu)成了原文固有的自然段,各自然段內(nèi)的醫(yī)理論述完整。此外,在部分原文段落內(nèi)存在一種特殊的符號“○”??v觀全書,根據(jù)該符號所在位置的規(guī)律,可總結(jié)出以下四種功能:第一,標(biāo)示篇名:“○”出現(xiàn)在各篇篇名之前,如“○痙濕暍病脈證并治第二”;第二,原文分段:“○”在原文之間,將大段的原文進一步分成若干醫(yī)理論述完整的小段,如《痙濕暍病脈證并治第二》篇中“太陽病,發(fā)熱無汗,反惡寒者,名曰剛痓。一作痙,余同。○太陽病,發(fā)熱汗出而不惡寒,名曰柔痓?!鹛柌?,發(fā)熱,脈沉而細者,名曰痓,為難治?!钡谌?,標(biāo)示問答句式:見于“問曰”“師曰”句式中,如“問曰,上工治未病,何也?○師曰,夫治未病者,見肝之病,知肝傳脾,當(dāng)先實脾……”。第四,標(biāo)示加減法:如《瘧病脈證并治第四》篇“蜀漆散方”后所附“○溫瘧加蜀漆半分,臨發(fā)服一錢匕”。
本文即根據(jù)原文固有自然段與“○”的分段功能,結(jié)合分段后的原文應(yīng)具有完整醫(yī)理論述的規(guī)律,來確立條文的劃分規(guī)則,即:①獨立成條:原文段落中無“○”,則將原文固有的自然段落作為一則條文。②以“○”分條:原文段落中以“○”作為對條文劃分的標(biāo)識符,對段落中的條文進行劃分。
經(jīng)過正則表達式的條文劃分統(tǒng)計,依據(jù)獨立成條進行條文劃分,100%的條文具有完整的醫(yī)理論述。根據(jù)以“○”分條進行條文劃分,所分條文的99.4%(317條)具有完整的醫(yī)理論述??梢姡暾尼t(yī)理論述是鄧珍復(fù)刻影印本[7]固有條文劃分規(guī)律。
據(jù)統(tǒng)計,僅2處,占0.6%,疑似“○”誤標(biāo),具體如下:①《痰飲咳嗽病脈證并治》中的“病溢飲者,當(dāng)發(fā)其汗,大青龍湯主之?!鹦∏帻垳嘀髦??!雹凇肚莴F魚蟲禁忌并治第二十四》中的“鱉目凹陷者,及壓下有王字形者,不可食之?!鹌淙獠坏煤想u鴨子食之?!?/p>
可以看出,若將此兩處誤標(biāo)“○”刪除,則能體現(xiàn)出完整的醫(yī)理論述特征,從而更加完整地體現(xiàn)出此影印本條文劃分的固有規(guī)則。
故本文將“病溢飲者,當(dāng)發(fā)其汗,大青龍湯主之。小青龍湯亦主之?!弊鳛橐粭l而不是兩條;將“鱉目凹陷者,及壓下有王字形者,不可食之。其肉不得合雞鴨子食之?!弊鳛橐粭l而不是兩條。
2.2利用正則表達進行條文計數(shù)正則表達是對字符操作的一種邏輯公式,用事先定義好的字符及字符組合,組成規(guī)則字符串,對符合規(guī)則的電子文本進行提取,該方法被廣泛用于提取電子文本中的特定內(nèi)容[8]。根據(jù)條文劃分標(biāo)志“○”,從段落中取出條文的正則表達式可寫為“\○(.+?)\○/g”,該表達式中的兩個“\○”表示將條文的提取限定在兩個“○”之間;“(.+?)”表示提取出兩“○”之間的全部文字,即提取出條文;“/g”意為global(全局)有效,即只要段落中的文字在兩“○”之間,則作為條文取出。該正表達式可用java或python等計算機編程語言編寫。使用編寫的正則表達式進行條文提取前,先將上述①②中不作為條文劃分標(biāo)志的“○”去除,以避免錯誤的條文提取。
正則表達式作用于段落提取時,計算機會在所有段落的開頭與末尾加入“○”,以保證正則表達式能將獨立成條的段落提取為一則條文。如《肺痿肺癰咳嗽上氣病脈證治第七》中的段落:“脈沉者,澤漆湯主之?!奔尤搿啊稹弊?yōu)椤啊鹈}沉者,澤漆湯主之?!稹?,從而使正則表達式的規(guī)則也適用于獨立成條的段落。又如《五臟風(fēng)寒積聚病脈證并治第十一》中段落:“肺中風(fēng)者,口燥而喘,身運而重,冒而腫脹?!鸱沃泻聺崽?。○肺死藏,浮之虛,按之弱如蔥葉,下無根者,死?!钡拈_頭與末尾加入“○”后,正則表達式可提取“肺中風(fēng)者,口燥而喘,身運而重,冒而腫脹。”“肺中寒,吐濁涕?!薄胺嗡啦?,浮之虛,按之弱如蔥葉,下無根者,死?!惫?條原文。
經(jīng)統(tǒng)計,鄧珍本《金匱要略》各篇條文計數(shù)如表2所示,其中前22篇共計431條,后3篇共計209條,全書共載條文640條。
表2 《金匱要略》各篇條文計數(shù)一覽表
3.1“方名-藥物數(shù)據(jù)字典”的建立數(shù)據(jù)字典是一種用于對數(shù)據(jù)進行描述的計算機技術(shù),可用于存放具有映射關(guān)系的數(shù)據(jù)[9]。利用數(shù)據(jù)字典,可將各篇的方名與方劑組成字段下的數(shù)據(jù)形成“鍵”與“值”的映射,其中方名作為數(shù)據(jù)字典的“鍵”,即方名索引,藥物作為數(shù)據(jù)字典的值,即索引對應(yīng)的具體藥物組成,形成“方名-藥物數(shù)據(jù)字典”。若方名下實載多方,則按方名_1,方名_2,方名_3……給予編號。字典示例如表3所示。
表3 方名-藥物數(shù)據(jù)字典示例
3.2《金匱要略》全書載方計數(shù)應(yīng)用數(shù)據(jù)字典進行統(tǒng)計鄧珍本所載方劑計數(shù),是在建立數(shù)據(jù)字典后,由計算機對各篇方名進行遍歷,并利用數(shù)據(jù)字典獲取方名對應(yīng)的藥物,獲取藥物組成后,再與篇內(nèi)中其他方名對應(yīng)的藥物進行兩兩對比。在綜合考慮方劑名稱、藥物組成與劑量、主治病證等基礎(chǔ)上,確立兩兩比對標(biāo)準(zhǔn)如下:①方名相同(去除《外臺》、《千金》等標(biāo)明方劑來源的前綴)、藥物組成相同,算作一方。如水氣病篇之防己黃芪湯與《外臺》防己黃芪湯,二者均由防己、甘草、白術(shù)、黃芪組成,且《外臺》防己黃芪湯原文中寫有“方見風(fēng)濕中”。②方名不同(去除《外臺》、《千金》等標(biāo)明方劑來源的前綴),藥物組成與劑量相同,視作一方,藥物組成相同但劑量不同視作兩方,如小承氣湯與厚樸三物湯。
基于以上標(biāo)準(zhǔn),應(yīng)用數(shù)據(jù)字典對鄧珍本《金匱要略》各篇載方數(shù)統(tǒng)計表明,全書二十五篇共載方297首,去除重復(fù)共計262方,其中前22篇去除重復(fù)為205方,其中正方182首(包括有方名而無藥物組成方劑6首,即杏子湯、黃連粉、藜蘆甘草湯、附子湯、膠姜湯、葶藶丸),見表4,附方23首,見表5,后3篇載方除重復(fù)共57首,見表6。
表4 《金匱要略》正方182首一覽表
表5 《金匱要略》前22篇23首附方一覽表
表6 《金匱要略》后3篇57首雜療方一覽表
續(xù)表4 《金匱要略》正方182首一覽表
對于鄧珍本《金匱要略》的條文,使用正則表達的方法進行劃分,可確保條文切分的客觀性與準(zhǔn)確性,依據(jù)劃分條文的醫(yī)理論述是否完備,確定條文是否需要合并,可保證條文能夠傳遞完整的醫(yī)理論述。經(jīng)過條文計數(shù)的核定,鄧珍本《金匱要略》全書條文為640條。對于《金匱要略》所載方劑,習(xí)慣上被分為正方、附方和雜療方[10]。正方和附方均見于前22篇,附方是林億等“采散在諸家之方,附于諸篇之末”之方,雖多冠以《千金》《外臺》等晉唐方書,多數(shù)學(xué)者均認(rèn)為宋臣校訂《金匱要略》持之有據(jù),方錄之以附,故亦屬仲景方的體系范疇[6,11-12]。在鄧珍本中正方、附方方名多用黑底陰文(有學(xué)者稱之為“黑帽”[13])突出顯示。雜療方專指《雜療方第二十三》《禽獸魚蟲禁忌并治第二十四》《果實菜谷禁忌并治第二十五》3篇所載方劑。分析學(xué)者統(tǒng)計《金匱要略》載方數(shù)不同的原因,可能主要與劃分標(biāo)準(zhǔn)、重復(fù)計算、依據(jù)版本等有關(guān)。我們以鄧珍本為數(shù)據(jù)源,采用數(shù)據(jù)字典技術(shù),發(fā)揮計算機統(tǒng)計標(biāo)準(zhǔn)一致、客觀性高等特點,核定出《金匱要略》各篇載方、正方、附方、雜療方數(shù),除去重復(fù),全書上中下三卷25篇共載方262首,與林億等所云[7]:“斷自雜病以下,終于飲食禁忌,凡二十五篇,除重復(fù),合二百六十二方”之說相合。《金匱要略》條文與載方統(tǒng)計,既為《金匱要略》的系統(tǒng)學(xué)習(xí)與研究提供了參考,也為中醫(yī)古籍文獻整理提供了方法學(xué)借鑒。