面向中医古籍文本的领域自适应性无监督分词

2022-02-25 06:44张素华程春雷
软件导刊 2022年1期
关键词:分词字符古籍

张素华,叶 青,程春雷,邹 静

(江西中医药大学计算机学院,江西 南昌 330004)

0 引言

自《黄帝内经》起至今,中医学已延绵千年,其有效性被世人验证。中医古籍文献记录了丰富的理论知识和临床经验,采用自然语言处理技术对中医古籍文献进行挖掘具有重要意义,而中医古籍文本分词研究是中医古籍文本自然语言处理研究最基础的工作之一。

中医古籍文本分词与现代文分词有所不同。中医古籍文本包含大量的中医专业术语[1],具有中医领域的鲜明特点,同时保留了古汉语特征[2]:

(1)中医文本领域特色鲜明,语料特征稀疏。结合中医临床使用特点[3],把中医常用专业术语分为阴阳五行、藏象、诊法、疾病、治疗、本草、方剂、针灸、养生、医疗器具等类别,而疾病下的证候如“发热”“恶寒”“脉浮”,方剂如“小柴胡汤”“麻黄汤”“白虎汤”等专业术语在通用语料中稀少,这是常见的现代汉语所不具备的一些特点。

(2)古籍文本单字成词,通假歧义突出[4]。古籍文辞晦涩,具有一词多义特点,如“心之合脉也,其荣色也,其主肾也”中,“主”表示治疗,然而在“心主脉,肺主皮,肝主筋,脾主肉,肾主骨中的“主”表示控制。除此以外,古籍还具有时间跨度大、单字词多等特点,古籍文本与现代文本用词风格迥异。

中医等领域专业性很强,通常缺乏完善、权威的领域词典。此外,现有的人工分词语料主要是SIGHAN 的Bakeoff 语料和人民日报语料等通用语料,高昂的人工标注成本和相应古文分词标准的缺乏使中医领域语料的构建工作迟缓。因此,传统中文分词技术难以直接有效地应用于中医领域或其他特定领域,分词效果存在很大的改进空间[5]。

目前分词效果较好的方法都是基于神经网络和条件随机场的有监督分词方法,这种分词方法需大量的人工标注语料,而中医古籍文本等特定领域缺乏人工标注语料。本文方法无需人工标注语料就能够很方便地应用于各个领域,具有较强的实用价值;现有的无监督分词方法较少且效果较差,本文使用真实领域语料(700 本中医古籍)构造领域自适应无监督分词模型。与其他无监督分词方法和古汉语分词系统进行对比实验,证明本文方法能有效提升分词效果,具有参数鲁棒性强、实现简单等优点。

1 相关工作

中医古籍文本分词将特定文本上下文分割成为一个个独立有意义的字词术语,对当前通用分词技术提出了更高要求。周扬等[6]参考“现代汉语语料库加工——词语切分与词性标注规范与手册”构建中医药文献语料库;孟洪宇[7]等对《伤寒论》构建语料,并利用开源软件CRF++引入字本身、词性、词边界等属性标签进行中医药术语识别;词典可以更好的提高分词效果,莫建文等[8]、蔡勇等[9]利用推荐权重值,结合机械分词词典,设计了一个产生相似中医药词汇的推荐词方法;毛宇[10]在建立频繁词库与分割词库基础上,设计了一个基于双向条件概率和相对位置的中医症状分词算法;李筱瑜[11]运用互信息与邻接熵的新词发现方法对《汉书》进行了新词抽取,并结合古代汉语词汇表、古代人物词表、古代地名表构建了古籍文本词典,使用py NLPIR 分词工具对《汉书》进行分词实验;在机器学习方面,张艳梅等[12]、王莉军等[[13]针对中医古籍语料,通过初步的语言模型分词,再结合人工分词进行语料标注,利用BiLSTM-CRF 模型进行分词。然而该方法训练集和测试集都属于同一人工标注语料,只能验证模型的可靠性但不能验证语料的准确性,评价指标可能存在实验误差。

以上研究显示中医古籍文本分词的不足:①中医古籍分词需要的词库、标注语料及语法规则基本空白,现存的中医语料库较少且尚未公开;②中医古籍标注语料构建门槛较高,需要专业性人才,工作量巨大。中医古籍与现代文风格迥异,且无统一的分词标准,故无论是人工构造词典还是人工标注古籍语料都存在一定的主观误差。

中医古籍文本的有监督分词存在较高门槛,对此,本文改进TextRank 算法,提出ConnectRank 算法对中医古籍文本进行无监督分词。ConnectRank 算法可直接获取字符间连通信息,挖掘字符间深度信息,实现字符间关联强弱计算,关联越强则认为成词的可能性越大。该模型无需深入分析分词标准,而是由语料与统计量决定分词界限。实验证明,该模型在中医古籍本分词任务中F1 综合指标有了较大提高。

2 基本原理

2.1 分词算法起源

PageRank 算法[14]由Google 创始人拉里·佩奇和谢尔盖·布林于1997 年提出。随着Google 的成功,该算法成为搜索引擎领域和学术界十分关注的模型。PageRank 算法基本思想如下:①一个网页被其他网页链接,说明这个网页很重要;②一个网页被越高权重的网页链接,说明该网页越重要。

TextRank 算法[15]基本思想来源于谷歌的PageRank 算法,是一种用于文本的基于图的排序算法。通过将文本分割成若干组成单元(单词、句子)并建立图模型,利用投票机制对文本中的重要成分进行迭代排序[16],仅利用单篇文档本身的信息即可实现关键词提取、自动摘要。该算法可以表示为一个有向有权图,a 是有向有权图中的一个顶点,In(a)为指向该点的点集合,Out(a)为点a 指向的点集合。将TextRank 算法用于关键词提取,顶点a 的得分定义如下:

其中,d为阻尼系数,阻尼系数是为了避免孤立词得分为0 的情况,取值范围为0~1,代表从图中某一特定点指向其他任意点的概率,一般取值为0.85。使用TextRank 算法计算图中各点的得分时,需要给图中的点指定任意初值并递归计算,直到收敛或达最多计算次数。

2.2 分词算法改进

本文提出改进的TextRank 算法——ConnectRank 算法,使TextRank 算法的关键词提取功能适用于自动化分词技术。其与TextRank 算法有两点不同:①将TextRank 算法的词语替换为字符;②计算字符间连通度进行分词。ConnectRank 算法不再以词为单位计算词之间的连通度,而是以字符为单位,通过大小为2 的窗口获取中医古籍字符间的连通强弱,实现字符间关联强弱计算,关联越强成词的可能性越大。部分字符链接如图1 所示。

Fig.1 Partial character link图1 部分字符链接

其中,a,b,c,d,e为图模型中的字符,字符d与字符e的连通度计算如下:

其中,wde表示d、e之间的共现频率,score(d)、score(e)分别为d、e的分数,connect(d,e)为字符d到字符e传递的分数占字符e总分数之比及其相反比的均值。当connect(d,e)大于连通强度阈值时,字符d与字符e链接为一个词。

2.3 分词算法设计流程

(1)计算字符分数。分词算法以“麻黄叁两去节规制叁两去皮”为例,可以画出如图2 所示的分词关系。

Fig.2 Word segmentation relationship图2 分词关系

首先,给每个字同样的分数;其次,以“黄”字分数计算为例,根据公式(1)计算“黄”字分数。假设“黄”前面只有“大黄”、“麻黄”两种入度,而“麻”字除了“麻黄”还有“麻痹”两种情况,“大”字只有“大黄”一种情况,那么“黄”的分数为(1-d)+d*(0.5*score(“麻”)+1*score(“大”))。

(2)计算两个字符的连通强度与分词。通过预训练确定连通阈值,根据式(1)计算所得的分数,通过ConnectRank算法计算其字符间关联强弱。当强度小于连通阈值时对字符进行切分,否则不切。

3 分词实验

3.1 实验环境

处理器:Intel(R)Core(TM)i5-4258U CPU @ 2.40GHz(4 CPUs),~2.1GHz;内存:4096MB RAM;操作系统:Windows 10 专业版64 位(10.0,版本15063);编译器:pycharm;主要应用模块:gensim 模块。

3.2 实验流程

通过一般语料清洁后(去除空格等无意义字符),将字符进行切分,然后根据文本序列得到若干窗口大小为2 的窗口(即每个字符计算左右两个字符与该字符关系),每个窗口内的两个字符之间都有链接关系。设计实验流程如图3 所示。

Fig.3 Experimental flow图3 实验流程

3.3 实验数据及评价指标

实验数据来源于江西中医药大学重点实验室700 本中医古籍(共154MB)进行训练集实验。该实验为无监督分词,训练集无需标注语料,训练集语料数据样例如图4 所示。分词的测试集数据则从700 本中医古籍中较为经典的《伤寒杂病论》《黄帝内经》《难经》《妇人大全良方》《外科精要》《小儿药证直诀》文档中分层抽样,共抽样100 句,3 473个字,由中医古籍专业人员进行分词(用“/”分开),具有较高的可信度。测试集分词语料样例如图5 所示。

精确率P(Precision,P)、召回率R(Recall,R)和综合性能指标F1(F1-measure,F1)如下:

Fig.4 Training set corpus data sample图4 训练集语料数据样例

Fig.5 Test set corpus data sample图5 测试集分词语料样例

3.4 实验设计与实现

3.4.1 无监督分词模型参数设计

连通度阈值对分词性能影响较大,本实验对连通域阈值进行筛选。图6 给出了ConnectRank 算法中不同连通度阈值取值下的精确率、召回率、综合指标F1 的变化。从图中可以看出,当连通度阈值设为2.7 时综合指标F1 较好,因此将ConnectRank 算法连通度阈值设为2.7。

Fig.6 Connectivity threshold of ConnectRank algorithm图6 ConnectRank 算法连通度阈值

3.4.2 实验结果

本文采用ConnectRank 算法深度挖掘文本信息,通过实验设定连通度阈值,面对无监督中医古籍文本进行分词。对ConnectRank 算法进行多种对比实验:①EM 算法[17]进行无监督分词;②对语言模型[18]等算法进行无监督分词;③使用改进后的ConnectRank 算法进行分词。以上实验都使用一致的训练集与测试集。实验①与实验③环境一致,实验②环境为:处理器:Intel(R)Core(TM)i5-3470 CPU @ 3.20GHz;内 存:3036000kB;操 作 系 统:Ubuntu 20.04 LTS;编译器:pycharm;主要应用模块:kenlm 模块。实验结果如表1 所示。

Table 1 Comparison of unsupervised word segmentation schemes表1 无监督分词方案对比

由表1 实验结果可知,对比其他无监督分词算法,ConnectRank 算法具有较好的分词效果,比最好的F1 综合指标56.4%还要高11.2%。EM 无监督分词算法虽然随着迭代次数的增加而增加,但总体准确率还是难以提高,主要原因是EM 无监督分词算法非常依赖初始化的分词结果。由于绝大多词语为四字词以内,故只设置窗口为2、3、4 的语言模型。语言模型的本质是计算字符间的条件概率,该算法F1 值等指标比EM 无监督分词算法更优,但是对比本文提出的ConnectRank 算法仍有一定差距,究其原因是ConnectRank 算法以字为中心,形成字符间错综复杂的字符网络,根据累计权重深度挖掘文本间联系,相比语言模型根据上下文计算字符出现的概率更有优势。

ConnectRank 算法部分分词结果如表2(文本1 及文本2来自标准测试样本中的其中两句)所示。由分词结果可知,对于文本1,该方案可以识别大部分中医术语文本,如“干姜”“大黄”“丹参”,但是“白石英”会错分为“白/石英/”,“炮去皮脐”会错分为“炮/去皮/脐”,主要是“去皮”出现过多,“去皮”两字连通权值较大,导致其连通度大于连通阈值,故出现分错的情况。在文本2 中,ConnectRank 算法基本达到较好的分词效果,“分寸”本是现代文中常用词,而“寸关尺”为中医穴位,属于中医专业术语,该算法成功把“寸关尺”识别出来。

Table 2 Comparison of partial word segmentation results and manual segmentation results表2 部分分词结果与人工分词结果对比

3.4.3 分词实验与古文分词系统对比分析

甲言分词系统是一款专注于古汉语处理的NLP 工具包,也是仅有的基于古汉语分词系统,其本质也属无监督分词。甲言分词系统实验无需训练集,可直接进行分词实验验证,验证集数据与ConnectRank 算法实验的验证集一致。甲言分词系统实验环境如下:处理器:Intel(R)Core(TM)i5-4258U CPU @ 2.40GHz(4 CPUs),频率2.1GHz;内存:4096MB RAM;操 作 系 统:Windows 10 专 业 版64 位(10.0,版本15063);编译器:pycharm;主要应用模块:Jiayan模块。将ConnectRank 算法与之进行对比实验,实验结果如表3 所示。由表3 可知,ConnectRank 算法的无监督分词效果更好。

Table 3 Comparison of ConnectRank algorithm and Jiayan word segmentation system表3 ConnectRank 算法与甲言分词系统对比

4 结语

针对中医古籍文本领域分词研究较少,标准语料、专业词典少等问题,本文改进TextRank 算法,提出了ConnectRank 算法,对中医古籍文献进行无监督分词,使基于中医古籍文献的无监督分词达到较好的分词效果。虽然ConnectRank 算法可以深度挖掘文本内部信息,但对于经常出现的词仍存在分错情况。对此,下一步将引入信息熵和左右熵,根据字符间凝固度和自由度进行切分,并且对分词结果进行简单人工修正,得到的分词结果将用于深度学习结合条件随机场进行再次分词,以进一步提高中医古籍文本领域分词准确率。

猜你喜欢
分词字符古籍
中医古籍“疒”部俗字考辨举隅
分词在英语教学中的妙用
关于版本学的问答——《古籍善本》修订重版说明
字符代表几
一种USB接口字符液晶控制器设计
结巴分词在词云中的应用
结巴分词在词云中的应用
关于古籍保护人才培养的若干思考
消失的殖民村庄和神秘字符
我是古籍修复师