朴素贝叶斯算法与Bootstrapping方法相结合的中文物种描述文本语义标注研究*
段宇锋1, 朱雯晶2, 陈巧1, 崔红3
1华东师范大学商学院 上海 200241
2上海图书馆上海科学技术情报研究所 上海 200031
3美国亚利桑那大学信息资源与图书馆学学院 图森 85719
通讯作者: 段宇锋 E-mail:yfduan@infor.ecnu.edu.cn

作者贡献声明:

段宇锋, 崔红: 提出研究思路并设计研究方案, 同时负责分析数据和论文的起草与最终版本修订;

朱雯晶, 陈巧: 进行实验以及采集、清洗数据。

摘要

【目的】 降低中文物种描述文本语义标注的学习成本。【方法】 设计基于Bootstrapping的弱监督学习方法, 以少量数据为基础, 迭代执行学习和标注过程。在迭代过程中, 利用置信度最高的标注数据扩充知识库, 提升标注能力。【结果】运用15 041条数据测试算法效率, F-value的平均值达到0.911 2。【局限】对过于稀疏的数据, 标注效率相对较低。【结论】本研究设计的方法不仅有效降低系统学习对训练数据规模的要求, 而且可提高标注效率。

关键词: Bootstrapping方法; 朴素贝叶斯; 物种描述文本; 语义标注
中图分类号:TP391 文献标志码:分类号: TP391 文章编号:2014-5-83-89 文章编号:2014-5-83-89
Semantic Annotation of Species Description Text in Chinese by Combining Naïve Bayes Algorithm with Bootstrapping Method
Duan Yufeng1, Zhu Wenjing2, Chen Qiao1, Cui Hong3
1Business School, East China Normal University, Shanghai 200241, China
2Institute of Scientific and Technical Information of Shanghai, Shanghai Library, Shanghai 200031, China
3School of Information Resources and Library Science, University of Arizona, Tucson, AZ85719, USA
Abstract

[Objective] To reduce cost of machine learning by declining the size of learning dataset in species description text annotation in Chinese.[Methods] Based on Bootstrapping method, design a weakly supervised learning method which performs learning and tagging processes iteratively with a small amount of data at the beginning. The iteration process promotes annotation ability continuously by expanding the knowledge base.[Results] The average score of F-value runs up to 0.911 2 on a dataset with 15 041 sentences.[Limitations] The annotation efficiency might be relatively low on sparse data.[Conclusions] The experimental data shows that the algorithm in this study not only declines the dataset size requirement of machine learning dramatically, but also increases annotation efficiency.

Keyword: Bootstrapping method; Naïve Bayes; Species description text; Semantic annotation
1 引言

人类在探索生命奥秘的过程中, 积累了海量的物种描述文献。这些文献的结构化和半结构化是生命科学领域知识基础设施建设的重要内容, 自动语义标注也因此备受关注。根据实现原理, 现有研究主要可以分为4类, 即基于自然语言处理中句法解析方法的研究、基于本体的研究、基于规则的研究、基于统计学习方法的研究。对此, 笔者已发表的“基于自主学习规则的中文物种描述文本的语义标注研究”一文中已作系统地介绍和归纳[ 1]

在以往的研究中, 采用有监督的朴素贝叶斯算法和自主学习规则的算法, 笔者开发的中文物种描述文本语义标注系统在语句级的标注效率(以F-value衡量)已分别达到0.902和0.930[ 1, 2]。但是, 它们需要以大量学习数据为基础, 对领域专家的依赖性太大。这是包括笔者在内, 几乎以往所有研究共有的问题: 无论是句法特征总结、规则和本体构建, 还是为统计学习方法建立学习数据, 都需要耗费大量领域专家资源。更糟糕的是, 以极高的成本获得的知识和规则往往并不具备理想的通用性, 难以运用到其他物种类群和数据集的处理。

鉴于此, 本研究引入弱监督学习的Bootstrapping方法, 降低现有方法对领域专家的依赖性, 提高方法的可移植性。

2 研究思路
2.1 标注原理

语义标注是在文档中添加元数据信息, 从而实现语义描述的过程。笔者曾在论文中指出,“物种描述使用一定的模式(习性、根、茎、叶、花、萼片、花瓣、雄蕊、心皮和果实等)和半技术性语言列举分类群的特征; ‘并列’和‘包含’是模式构成元素之间最基本的关系, 因此, 描述模式可以被表达成树形结构。”[ 2]。所以, 物种描述文本的句子和子句层标注可视为依据描述模式逐层递进的分类过程。

譬如, 在《中国植物志》中对乌藤的描述为:“叶倒卵状披针形, 顶端短渐尖或急尖。外轮花瓣阔卵形或近圆形, 长和宽约19毫米; 药隔顶端被毛; 心皮仅基部及上部被毛。果柄纤细, 柔弱。花期4-9月, 果期8-12月。 产于广东海南岛。生于中海拔山地林中或灌木丛中。越南也有。”[ 3]。依次描述了乌藤的叶、花、果实以及物候学特征。其中, 第二句对花的描述又可细分为对花瓣、药隔、心皮等方面。采用Cui等定义的Schema, 上述文本标注后以XML格式表达为[ 4]:

< ?xml version="1.0" encoding="UTF-8"? >

< description >

< leaves >叶倒卵状披针形, 顶端短渐尖或急尖。< /leaves >

< flowers >

< petal >外轮花瓣阔卵形或近圆形, 长和宽约19毫米;

< anther >药隔顶端被毛;

< carpel >心皮仅基部及上部被毛。

< fruits >果柄纤细, 柔弱。

< phenology >花期4-9月, 果期8-12月。 产于广东海南岛。生于中海拔山地林中或灌木丛中。越南也有。< /phenology >

2.2 算法

本研究采用Bootstrapping朴素贝叶斯算法。朴素贝叶斯(Naïve Bayes)是最优秀的文本分类算法之一。Michie等认为, 在多数情况下它与决策树、神经网络等学习算法性能相当, 在某些情况下甚至优于其他算法[ 5]。但是, 朴素贝叶斯属于典型的统计学习算法, 需要以大量具有与待处理数据相同或相似特征的学习数据为基础, 对领域专家有很强的依赖性。为此, 一些研究在实现贝叶斯分类器时引入弱监督学习的Bootstrapping方法。该方法以少量数据为基础, 在迭代的学习和分类过程中, 不断吸收置信度最高的分类数据扩充知识库, 提升分类能力。因为这种方法在初始阶段只需要少量学习数据, 所以, 不仅显著降低了对专家的依赖程度, 同时也极大地提升了算法的通用性和可移植性。譬如, 罗军等基于Bootstrapping和贝叶斯分类建立的本体标注模型不仅实体识别准确率高, 而且具有较好的扩展性和可移植性[ 6]; 琚春华等基于Bootstrap和贝叶斯分类算法设计了动态数据流的分析和挖掘方法[ 7]; Sacchi等在预测青光眼严重程度的研究中也运用了这种方法[ 8]

除上述原因外, 笔者在以往的研究中运用朴素贝叶斯算法标注中文物种描述文本获得了理想的效率[ 2], 这是本研究采用该方法的第二个原因。

Bootstrapping方法依靠在迭代过程中吸收置信度最高的标注数据扩充知识库, 因此, 自动判断标注的正确程度是实现Bootstrapping方法的关键之一。朴素贝叶斯算法通过比较语句属于分类可取值集合中各元素的概率分类, 概率值可以直接作为标注置信度的依据。

本研究实现的基于Bootstrapping朴素贝叶斯算法的学习和标注过程如图1所示:

图1 基于Bootstrapping朴素贝叶斯算法的语义标注流程

(1) Bootstrapping方法

Bootstrapping方法的基本思想是: 以少量数据(种子)为基础, 迭代地执行学习和标注过程。在迭代的过程中, 利用置信度最高的标注数据扩充知识库, 提升标注能力。具体步骤如下:

①人工建立少量标注样本(种子)作为初始学习数据;

②依据选定算法, 从学习数据中获得知识;

③利用习得知识标注;

④取置信度最高的标注结果纳入学习数据;

⑤重复步骤②至步骤④, 直至完成所有数据的标注或触发结束条件。

(2) 朴素贝叶斯算法

通常, 朴素贝叶斯分类算法表述为[ 9]:

(1)

其中, VNB表示分类器输出的目标值; V表示分类可取值集合; P(vj)表示类别vj的先验概率; P(ai|vj)表示在类别vj中观察到特征ai的概率。

依据朴素贝叶斯算法类分物种描述文本中的语句, 采用语句包含的词、标点、数字等符号作为特征项。则:

(2)

(3)

其中, Sentences_Number为学习数据所含语句总数; Sentences_Numberj为学习数据中目标值为vj的语句数; Vocabulary_Number为学习数据中特征项的数量; n为目标值为vj的学习数据所具有的特征项位置总数; ni为特征项ai在目标值为vj的学习数据中出现的次数。

2.3 性能评价

本研究采用自然语言处理最常用的指标准确率(Precision)和召回率(Recall)评价系统效率。此外, 为综合考虑Precision和Recall, 引入指标F-value。上述指标的计算公式如下:

(4)

(5)

(6)

在标注一个新样例时, 若其所含所有特征项在学习数据中均未出现, 笔者对该语料给予标签“unidentified”, 表示系统获得的经验无法识别该语料。被标注为“unidentified”的语句对性能评价指标准确率无影响, 但会降低召回率和F-value值。

3 实验
3.1 数据集

依据分层和随机抽样相结合的原则, 从《中国植物志》中获得1 009种物种的描述文本, 涉及37个科, 每科大约30个种。采用前述Cui等定义的Schema, 以人工方式进行句子层标注(以“;”和“。”为标识), 共15 199条语句, 如表1所示。在实验中, 种子所含每类数据的数量范围为[10, 100]。因为“roots”、“spore-related-structures”、“compound”对应的语句数量少于实验数据要求, 所以, 从实验数据中删除。实际参与运算的数据量为15 041条。

表1 实验数据分布
3.2 实验结果

根据Bootstrapping方法和朴素贝叶斯算法的原理, 实验主要针对4个问题:

(1) 种子(Seed)规模和步幅(Pace)大小对标注效率的影响;

(2) 迭代过程中标注效率的变化;

(3) 先导词对标注效率的影响;

(4) 算法的标注效率评价。

基于Bootstrapping的研究中, 种子的质量至关重要。本研究没有采用专家筛选种子的做法, 而是利用程序随机地从实验数据中抽取生成种子, 剩余部分作为待标注数据。运行5轮后, 将标注效率(以F-value衡量)位居第二的种子用于实验研究。

研究使用Dell Latitude E6410 (Intel® Core™ i7 CPU, 4GB RAM)计算机, Eclipse运行于Win7(32位)操作系统环境。考虑软硬件环境的支持能力, 以下实验如无明确说明, 测试数据量均为3 000条。测试数据由程序从实验数据中随机抽取(不含种子数据)。

整理实验标注结果发现, 没有数据被标注为“unidentified”。因此, 就测试数据整体而言, Precision、Recall、F-value的值相同。陈述时, 如无需要, 仅指Precision值。

(1) Seed规模和Pace大小对标注效率的影响

在实验中, 以Seed的数量和Pace大小为变量, 观察标注效率的变化。基于领域实践的真实需求, Seed中每类数据的数量取值范围设为[10, 100], 增幅为20; Pace大小的取值范围设为[20, 200], 增幅为20。结果如图2所示:

图2 Seed数量和Pace大小对标注效率的影响

结果显示, 每类取100条数据构成Seed(简写为Seed=100), Pace的值为120(简写为Pace=120)时, 标注效率最高, Precision值达到0.925 3。为了更清楚地了解两者对标注效率的影响, 观察在“Seed=100”、测试数据不变的情况下, Pace大小(Pace∈[10,300], 增幅为10)对标注效率的影响, 如图3所示; 以及“Pace=120”、测试数据不变时, Seed的规模(Seed∈[10,100], 增幅为10)对标注效率的影响, 如图4所示:

图3 Pace对标注效率的影响

图4 Seed规模对标注效率的影响

(2) 迭代过程中标注效率的变化

随着已标注数据的增加, 学习过程会自动更新知识, 并将其用于后续标注。观察“Seed=100”、“Pace=120”时, 每轮标注置信度最高的120条标注结果准确率的变化, 如图5所示。数据显示, 随着标注过程中知识的更新, 标注准确率的波动幅度变大。

图5 知识更新对标注效率的影响

这意味着, 随着标注数据规模的增长, 标注效率可能降低。为此, 笔者将实验数据集除去种子后剩余的14 241条数据, 按每轮增加3 000条直至全部包括的方式, 观察随测试数据量的增加标注效率的变化, 如图6所示:

图6 测试数据规模对标注效率的影响

(3) 先导词(Forerunner)对标注效率的影响

Cui的研究表明先导词对语义标注具有显著影响[ 10], 本课题组的前期研究也证实了该结论在采用有监督学习方法标注中文物种描述文本时的有效性[ 1, 2]。但先导词在基于Bootstrapping算法中的有效性仍有待验证。为此, 在设定“Seed =100”、“Pace=120”, 保持被测试数据不变的条件下, 观察Forerunner不同取值[1,20](增幅为1)时的系统效率, 如图7所示:

图7 Forerunner对标注效率的影响

(4) 算法的标注效率

系统运行参数“Seed=100”、“Pace=120”保持不变;每轮随机从实验数据中(15 041条)生成种子, 剩余数据作为测试集(14 241条); 运行10轮, 测试算法效率, 结果如表2所示:

表2 基于Bootstrapping朴素贝叶斯算法的整体标注效率

为了精确地反映算法对每类数据的识别能力, 统计第10轮标注结果, 具体如表3所示:

表3 基于Bootstrapping朴素贝叶斯算法的元素标注效率
4 讨论

根据实验数据做如下分析和总结:

(1) 图2图4显示, 随着Seed数量的增长, 标注效率明显上升; 当Seed的值取90时(即Seed中每类语句的数量为90条), 标注效率最高(见图4)。尽管从图4的变化趋势可以预测, 随着Seed规模进一步扩大, 标注效率还有微小的上升空间, 但本研究并不主张在实际使用时盲目扩大Seed的规模。因为, 此时本方法实现的标注效率已经超过了使用经典贝叶斯算法和大规模人工训练集获得的标注效率(F-value=0.902); 而且, Bootstrapping方法最显著的优势在于能大幅度降低学习过程对大规模人工训练集的依赖性[ 2]。在已实现比较理想标注效率的情况下, 实在没有必要再投入大量人力增加训练数据规模换取标注效率微弱的提升。

(2) Bootstrapping的基本思路是在迭代的学习和标注过程中, 利用置信度最高的标注数据扩充知识库, 提升标注能力。因此, 在理论上Pace设定的越小, 每轮迭代获得的知识越准确, 越有利于提高标注效率。但图3中的数据显示, 在[10,60]区间, 标注效率随Pace值的增加而提高; 在[60,300]区间, 标注效率虽有波动, 但差异不大。这表明Pace取值过小会降低标注效率。根据标注算法, 推测其原因可能是: 虽然在种子中所有类的先验概率相同, 但是, 待标注数据分布的不均衡性使各类的先验概率随着迭代次数的增加而不断变大。迭代次数越多, 先验概率对计算结果造成的影响越大, 误标的可能性越大。

(3) 由于标注的准确率并非100%, 所以, 每轮新增知识必然含有少量错误。这些错误影响后续标注, 随迭代过程传递并放大。这是图5显示标注效率的波动幅度随迭代过程而变大的原因。图6表明, 随着标注数据规模增长, 标注效率不断降低, 也支持了上述推测。

(4) 单纯采用朴素贝叶斯算法标注中文物种描述文本, 使用先导词获得的标注效率显著高于不使用先导词; Forerunner的值为2时F-value(值为0.902)最高[ 2]。但是, 这次实验未支持这一结论。图7数据显示, 在[1,5]区间, 随着Forerunner值的增加, 标注效率显著提高; 在[6,20]区间, 虽然标注效率的增长速度明显降低, 但随Forerunner值增加仍略有提高。因此, 本研究将语句所含全部特征项纳入计算范畴。

(5) 本研究设计的算法标注效率(F-value)平均值为0.9112(见表2), 高于朴素贝叶斯与先导词相结合获得的效率(F-value=0.902), 差异具有统计学意义(P<0.05)[ 2]

5 结语

实验结果表明, 本研究达到了预期目标。在算法设计中引入Bootstrapping方法, 不仅极大地降低了系统学习对训练数据规模的要求, 而且提高了标注效率。

分析测试数据的标注结果, 笔者还发现数据稀疏性是影响标注效率的主要原因。表3数据显示, 元素“buds”的召回率只有0.56。元素“buds”仅有109条语句, 占实验数据总量的0.7%; 抽取种子后仅余9句, 占测试数据的0.06%。“fruits”的召回率也偏低, 为0.58。统计“fruits”的应标未标样例, 其中的86%被标注为“flowers”。“fruits”和“flowers”的描述用词相似。譬如,“蒴果卵圆形, 微长于宿存萼, 5瓣裂;” 中除“蒴果”外的所有词, 在“flowers”中出现的频率都相当高; 而且,“fruits”与“flowers”相比, 后者的数据量几乎是前者的5倍(见表1)。这导致许多描述“fruits”的语句被识别成“flowers”。进一步的分析还发现, 上例以及“果实2-4个聚生于小枝顶端叶腋, 稀单生。”和“果序伞形, 单生叶腋;” 等句中的“蒴果”、“果实”、“果序”等词语对识别其描述对象具有重要价值。如何赋予这些词权重或者结合基于规则的方法进一步提高系统性能是下一步研究的重点。

参考文献
[1] 段宇锋, 黑珍珍, 鞠菲, . 基于自主学习规则的中文物种描述文本的语义标注研究[J]. 现代图书情报技术, 2012(5): 41-47.
(Duan Yufeng, Hei Zhenzhen, Ju Fei, et al. Study on Semantic Markup of Species Description Text in Chinese Based on Auto-learning Rules[J]. New Technology of Library and Information Service, 2012(5): 41-47. ) [本文引用:3] [CJCR: 1.073]
[2] 段宇锋, 黑珍珍, 鞠菲, . 基于贝叶斯分类的中文物种描述文本的语义标注研究[J]. 情报学报, 2012, 31(8): 805-812.
(Duan Yufeng, Hei Zhenzhen, Ju Fei, et al. Semantic Annotation of Species Description Text in Chinese Literature by Naïve Bayes Classifier[J]. Journal of the China Society for Scientific and Technical Information, 2012, 31(8): 805-812. ) [本文引用:7] [CJCR: 1.1348]
[3] 中国植物志编辑委员会. 中国植物志[M]. 北京: 科学出版社, 1959.
(Flora of China Editorial Committee. Flora of China[M]. Beijing: Science Press, 1959. ) [本文引用:1]
[4] Cui H. The XML Schema for MARTT[OL]. [2012-08-08]. http://publish.uwo.ca/~hcui7/research/xmlschema.xsd. [本文引用:1]
[5] Michie D, Spiegelhalter D J, Taylor C C. Machine Learning, Neural and Statistical Classification[M]. New York: Ellis Horwood, 1994. [本文引用:1]
[6] 罗军, 高琦, 王翊. 基于Bootstrapping的本体标注方法[J]. 计算机工程, 2010, 36(23): 85-87.
(Luo Jun, Gao Qi, Wang Yi. Ontology Annotation Method Based on Bootstrapping[J]. Computer Engineering, 2010, 36(23): 85-87. ) [本文引用:1] [CJCR: 0.492]
[7] 琚春华, 殷贤君, 许翀寰. 结合自助抽样的动态数据流贝叶斯分类算法[J]. 计算机工程与应用, 2011, 47(8): 118-121, 142. (Ju Chunhua, Yin Xianjun, Xu Chonghuan. Bayesian Classification Algorithm of Dynamic Data Stream Based on Bootstrap[J]. Computer Engineering and Applications, 2011, 47(8): 118-121, 142. ) [本文引用:1] [CJCR: 0.457]
[8] Sacchi L, Tucker A, Counsell S, et al. Improving Predictive Models of Glaucoma Severity by Incorporationg Quality Indicators[J]. Artificial Intelligence in Medicine, 2014, 60(2): 103-112. [本文引用:1] [JCR: 1.355]
[9] Mitchell T M. 机器学习[M]. 曾华军, 张银奎, 等译. 北京: 机械工业出版社, 2003: 112-143.
(Mitchell T M. Machine Learning[M]. Translated byZeng Huajun, Zhang Yinkui, et al. Beijing: China Machine Press, 2003: 112-143. ) [本文引用:1]
[10] Cui H. MARTT: A General Approach to Automatic Markup of Taxonomic Descriptions with XML[OL]. [2011-10-12]. http://cais-acsi.ca/proceedings/2005/cui_2005.pdf. [本文引用:1]