1、基于条件随机场的农业命名实体识别 张剑 吴青 羊昕旖 王彬聪 吴宣为 徐向英 吕强 扬州大学信息工程学院 摘 要: 为满足农业命名实体领域中多样而精确的需求, 本文采用基于条件随机场的命名实体识别, 将农业命名实体分为病虫害、作物、化肥及农药 4 种命名实体, 并用自定义标注集对其进行标注, 以 ICTCLAS 分词系统来对收集到的语料进行分词, 通过添加多种不同的特征以提高识别率。最终训练得到的模型对各命名实体识别的准确率达到了 93%以上, 召回率达到了 84%以上, 证明对农业命名实体细致划分为多个实体是可行的。关键词: 中文命名实体识别; 条件随机场; 农业; 作者简介:张剑 (199
2、6-) , 男, 江苏苏州人, 扬州大学信息工程学院本科生, 研究方向:自然语言处理;作者简介:吴青 (1996-) , 男, 江苏无锡人, 本科生, 研究方向:自然语言处理;作者简介:羊昕旖 (1996-) , 女, 本科生, 研究方向:自然语言处理;作者简介:王彬聪 (1996-) , 女, 本科生, 研究方向:自然语言处理;作者简介:吴宣为 (1977-) , 男, 讲师, 硕士, 研究方向:自然语言处理;作者简介:徐向英 (1979-) , 讲师, 硕士, 研究方向:农业信息化;作者简介:吕强 (1985-) , 讲师, 博士, 研究方向:人工智能, 机器学习, 自动规划与调度。收稿日
3、期:2017-05-04基金:国家自然科学基金青年基金资助项目 (61502412) Chinese Agricultural Named Entity Recognition Based on Conditional Random FieldsZHANG Jian WU Qing YANG Xin-yi WANG Bin-cong WU Xuan-wei XU Xiang-ying LYU Qiang College of Information Engineering, Yangzhou University; Abstract: To meet the requirement of di
4、versification, the paper introduces named entities model based on conditional random fields, divides agricultural named entities into 4 classes, which are diseases and pests, crops, chemical fertilizer, pesticide and annotates. These entities are labeled with custom annotation set. It is segmented c
5、ollected corpus with ICTCLAS segment system and added features to raise the recognition rate. Ultimately, the accuracy rate reaches over 93% and the recalling rate reaches over 84%. This result confirms that recognizing multiple entities after classifying them is feasible.Keyword: Chinese named enti
6、ty recognition; conditional random field; agriculture; Received: 2017-05-040 引言随着目前计算机的普及和互联网的迅猛发展, 各领域的专业文献呈指数增长, 面对如此海量的非结构化文本数据, 如何快速、准确地获取所需信息已成为目前研究者关注的热点问题。命名实体识别是自然语言分析、信息提取1、句法分析、机器翻译2、问答系统3等领域重要的研究基础。其目的是发现文本语料中的 3 大类 (实体类、时间类和数字类) 和 7 小类 (人名、地名、机构名、时间、日期、货币和百分比) 命名实体4。国外对于命名实体识别的研究较早, 在 19
7、91 年 Rua5在第 7 届 IEEE 人工智能应用会议上首次描述了抽取和识别公司名称的系统。之后, 对命名实体识别的研究逐渐火热起来, Bikel 等人提出了基于隐马尔可夫模型的英文命名实体识别, 并在 MUC-66的测试中对英文地名、机构名以及人名识别的 F 值达到了 95%以上7。Lafferty8等人之后又提出了条件随机场 (CRF) 模型, 在命名实体识别领域同样取得很好的成绩。中文命名实体识别起步较晚, 且由于中文的特殊性, 在进行文本处理时首先必须进行词法分析, 这导致了中文命名实体识别要比英文命名实体识别难度更大。通过 10 多年研究, 中文命名实体识别在开放领域已取得较好的
8、成果, 如张华平9等人的 ICTCLAS 分词系统 F 值可达 95.40%。在命名实体识别领域, 有多个模型可供选择, 如最大熵模型10、隐马尔可夫模型11、条件随机场模型等。其中基于条件随机场模型的命名实体识别被广泛用于各个领域, 如郭剑毅12等人的基于层叠条件随机场的旅游领域的命名实体识别, 叶枫13等人基于条件随机场的电子病历命名实体识别。在农业领域, 命名实体的抽取有其领域的特点和需求, 这些特点为海量农业文本中的信息抽取提供了可能, 同时也提出了挑战。农业命名实体的识别能够为进一步实现大数据环境下的异构数据融合以及语义网14的实现提供领域基础, 而在命名实体识别模型的训练过程中所需
9、的语料也可为知识库或本体库的构建提供支持。目前在中文农业命名实体识别领域, 王春雨15等人采用条件随机场模型对农业命名实体进行了识别, 但其仅将所有有关农业的命名实体识别出来, 而没有对识别出的实体进行更加细致的划分。对于一篇文章中的实体, 识别出农业实体只是信息处理任务的基础, 之后还需要对其进行人工的筛选及分类, 从而达到对特定的类别进行特定的处理方法的目的。而若能进行进一步的类别划分, 那么就可减少人工成本, 对于已经分类出的实体只需少量的人工纠错, 从而提高信息处理效率。因此本文将针对农业相关的病虫害、作物、农药和化肥这 4类命名实体进行识别, 即直接从语料中识别出这 4 类不同的农业
10、命名实体, 以满足各类不同的需求。1 条件随机场模型概述条件随机场模型是由 Lafferty 等人于 2001 年提出的, 结合了最大熵模型和隐马尔可夫模型特点的一种判别式概率无向图模型, 它是一种用来标记和切分有序数据的条件概率模型。它解决了隐马尔可夫模型的输出独立性假设问题, 也解决了最大熵模型在每一个节点归一化导致只能找到局部最优解和标记偏见问题, 因此是比较好的命名实体识别模型。由于它可以根据给定的观察序列来推测出对应的状态序列, 因此可以被用来为命名实体序列添加标记, 从而达到识别命名实体的目的。设 X 与 Y 是随机变量, P (Y|X) 是在给定 X 的条件下 Y 的条件概率分布
11、。若随机变量 Y 构成一个由无向图 G= (V, E) 表示的马尔科夫随机场, 如果公式 (1) :图 1 链式条件随机场结构 下载原图对任意节点 v 成立, 则称条件分布 P (Y|X) 为条件随机场, 式中 uv 表示 u 和v 是无向图 G 中的相邻的 2 条边, 则 P (X, Y) 就构成一个条件随机场。其中, 最常用的是链式条件随机场, 其结构如图 1 所示。若 表示被观察序列, 表示状态序列, 在给定随机变量序列 X 的条件下, 公式 (2) 为其状态序列条件概率:其中, Z 是归一化因子, 如公式 (3) 所示:2 基于 CRF 的农业命名实体识别本项目采用 ICTCLAS 工
12、具进行语料分词, 用 CRF+工具进行模型的训练和测试。2.1 语料库的构建2.1.1 语料获取语料主要来自于各大农业网站:中国农业医院 (http:/www.nyyy.cc/) 、中国农业信息网 (http:/ 、上海农业技术网 (http:/ 、中国园林网 (http:/ 、中国农资网 (http:/ 等, 主要内容包括农业病虫害、农药、作物、化肥等信息。通过爬虫爬取各网站上的农业文本信息, 最终一共收集到 114002 句语料, 病虫害词典共 6656 个词, 化肥词典共 1065 个词, 农药词典共 2735 个词, 作物词典共 652 个词。2.1.2 数据预处理对于如此多的语料,
13、完全用人工来标注是不可能的, 因此本文爬取了大量的病虫害、农药、化肥、作物等词语作为用户词典并标注特定词性, 导入 ICT-CLAS, 进行分词, 得到初步处理后的数据。经过对 ICTCLAS 的测试, 笔者采用 6000 个标注好的命名实体, 其中 5000 个词作为用户词典导入, 将 6000 个词作为测试, 用于测试 ICTCLAS 的分词和新词发现功能, 可以发现, ICTCLAS 能够识别所有已经导入的词语, 但是对于没有标注过的词却不能识别, 而对于它的新词发现功能, 在剩下的未导入的 1000 个词中, 只能发现 31 个新词, 因此需要对ICTCLAS 分词后的数据进行人工处理
14、, 以标注那些 ICTCLAS 未标注的词或者修正其标注错误的词。之后将所有实体用特殊符号来标记, 并用n来表示该实体属于哪一个类别以便于在重新分词时为这些命名实体标注标签。通过对这些语料用未导入用户词库的 ICTCLAS 重新分词, 删除添加的特殊符号以及添加特征, 获得可以用于 CRF 训练与测试的语料。2.1.3 语料标注语料标注, 通用的标注集有很多, 比如B, I, O标注集, B 表示命名实体开始, I 表示命名实体的延续, O 表示其他非命名实体的字;或者B, E, M, S, B 表示命名实体的开始, E 表示命名实体的结束, M 表示命名实体的中间部分, S 表示其他命名实体
15、。这里采用通用的B, I, O来标注分词后的语料。但是, 由于需要将所需的命名实体一起识别出来, 导致有多种不同的命名实体需要识别, 因此对该通用的标注集进行更细一步的划分。笔者一共要识别出 4 种不同的命名实体, 分别为病虫害、化肥、农药、作物这 4 种命名实体, 因此对每个命名实体都定义新的标注, 最终整个标注集为bb, bi, hb, hi, zb, zi, nb, ni, o。b 开头表示病虫害实体, h 开头表示化肥实体, n 开头表示农药实体, z 开头表示作物实体, o 表示其他实体。2.2 特征集与特征模板2.2.1 特征集表 1 语料标注示例 下载原表 对于命名实体, 最常见
16、的特征是每个实体的词特征和其词性特征, 这 2 个是最重要的特征。由于需要识别 4 种命名实体, 因此为每个命名实体添加了一种特征, 比如:对于病虫害特征, 该实体最明显的特征就是结尾会出现类似病、虫、害、症等具有明显病虫害特征的字, 因此把具有该特征的词标记为 ed, 没有该特征的词标注为 ned, 类似的对于化肥和农药的实体内部会有大量的化学元素, 因此将所有含有化学元素的字词标记为 ch, 没有的标记为 nch, 此外, 很多的农药存在以灵、克、粉剂、乳油等词结尾的情况, 因此这也可以作为一个重要的特征。对于化肥具有结尾词肥, 作物常见的结尾是树、花、菜瓜等词, 分别标注为 he, nh
17、e 和 ze, nze。因此总共有 7 种特征来共同识别一个字或词。特征标注如表 1 所示。2.2.2 特征模板特征模板是特征集的一种描述, 即将所要用到的特征用一种形式表述给条件随机场。条件随机场通过这些特征生成一系列特征函数, 然后对每个词进行匹配, 从而识别该词是否为一个命名实体, 本项目采用 4 种自定义特征以及词本身和词性共 6 种特征, 通过各自的组合来构成模板示例, 组合示例如表 2 所示。表 2 特征组合 下载原表 2.3 结果评价对测试结果的评价采用了通用的准确率 P (Precission) 、召回率 R (Recall) 、F (F-Mueasure) 值衡量方法:3 实
18、验结果分析先将 CRF 的训练效果与 SVM 对数据的训练效果进行了比较, 通过提取农业语料的词特征、词性特征以及上述 2.2.1 节中 7 种特征作为 SVM 的训练语料, 并选取线性函数作为 SVM 核函数。对农药及病虫害进行了训练及测试, 并最终得到了表 3 的效果。表 3 语料标注示例 下载原表 可以看到 CRF 的效果要远好于相同特征下的 SVM 的效果。将所有的语料按句为单位进行划分, 并将其中 10%语料用于训练, 其余 90%的语料用于测试。在只通过词特征识别命名实体的基础上不断添加特征, 获得了各个命名实体在增加不同特征数量下的识别效果图, 如图 2图 5 所示。图 2 作物
19、实体识别效果变化 下载原图图 3 病虫害实体识别效果变化 下载原图图 4 农药实体识别效果变化 下载原图图 5 化肥实体识别效果变化 下载原图从以上的数据中可以看到, 在有多个命名实体需要同时识别时, 条件随机场模型仍然能够很好地进行命名实体的识别, 再加上多种特征的帮助, 因此可以有一个非常高的准确率和召回率。其次, 可以发现, 在没有特征的情况下, 对于各个命名实体的识别率本身就很高, 这是因为获取了大量的语料用于训练与测试。而随着特征的增加, 模型对每个命名实体的识别效果也有了相应的提高, 同时随着不同特征的添加, 由于是通过同一模型的识别, 因此对不同实体的识别率与召回率会造成不同的影
20、响。虽然对于这些实体来说, 准确率都相应得有所下降, 但是因为随着命名实体的查全率即模型识别出的实体的增加, 错误率也会相应地增加, 因此这是合理的现象。对比于文献15中对农业命名实体的 95%的准确率和 90%的召回率的识别效果, 本次实验的平均准确率达到 96.7%, 召回率达到 88.0%, 证明此次将农业命名实体细分成多个种类来识别的方法是可行的。4 结束语本次对农业命名实体识别的研究, 尝试将多个实体通过一个模型从文本中识别出来, 因此增加了条件随机场模型对各个实体识别的难度, 但是由于语料众多, 以及通过增加多个特征, 显著提高了识别的效果, 达到了理想的识别效果, 证明将一个农业
21、命名实体细分为多个类型更加明确的实体是可行的。在实验之初, 使用 ICTCLAS 工具导入收集到的病虫害、化肥等词典, 通过ICTCLAS 工具直接从语料中标注出所有 ICTCLAS 识别出来的实体, 再将其转换为 CRF 可处理的格式。最后虽然通过这种方式训练出了一个 P 值在 98%以上, R值在 90%以上的模型, 但是该模型更多的是依赖于 ICTCLAS 的分词效果而并非CRF+的训练效果, 而 ICTCLAS 的分词效果上文已经展示了, 其对于用户词典中已经存在的词有极高的识别率, 而对于不在用户词典中的词, 需要使用新词发现功能来让用户对新发现的词进行类别标注并加入用户词典, 这在
22、对大量语料进行分词的过程中是不现实的, 因此放弃了这种方法。之后以条件随机场模型为主, ICTCLAS 只用于进行简单的分词, 来重新训练语料。今后的工作将 CRF+与 ICTCLAS 之间做一个更好的结合, 通过 ICTCLAS 对词库内的词的高识别率, 对条件随机场模型识别出的在用户词典内的命名实体进行纠正, 而对于不在用户词典内的词, 可以使用条件随机场模型根据上下文的识别特性来识别, 提升识别率。参考文献1李保利, 陈玉忠, 俞士汶.信息抽取研究综述J.计算机工程与应用, 2003, 39 (10) :1-5. 2戴新宇, 尹存燕, 陈家骏, 等.机器翻译研究现状与展望J.计算机科学,
23、 2004, 31 (11) :176-179. 3毛先领, 李晓明.问答系统研究综述J.计算机科学与探索, 2012, 6 (3) :193-207. 4孙镇, 王惠临.命名实体识别研究进展综述J.现代图书情报技术, 2010, 26 (6) :42-47. 5Rau L F.Extracting company names from textC/Proceedings of the 7th IEEE Conference on Artificial Intelligence Applications.1991:29-32. 6Grishman R, Sundheim B.Message u
24、nderstanding conference-6:A brief historyC/Conference on Computational Linguistics.1996, 96:466-471. 7Bikel D M, Schwartz R, Weischedel R M.An algorithm that learns whats in a nameJ.Machine Learning, 1999, 34 (1-3) :211-231. 8Lafferty J, Mc Callum A, Pereira F.Conditional random fields:Babilistic mo
25、dels for segmenting and labeling sequence dataC/Proceedings of the 18th International Conference on Machine Learning.2001:282-289. 9张华平, 刘群.基于角色标注的中国人名自动识别研究J.计算机学报, 2004, 27 (1) :85-91. 10Berger A L, Pietra V J D, Pietra S A D.A maximum entropy approach to natural language processingJ.Computational
26、 linguistics, 1996, 22 (1) :39-71. 11Rabiner L, Juang B.An introduction to hidden Markov modelsJ.IEEE ASSP Magazine, 1986, 3 (1) :4-16. 12郭剑毅, 薛征山, 余正涛, 等.基于层叠条件随机场的旅游领域命名实体识别J.中文信息学报, 2009, 23 (5) :47-53. 13叶枫, 陈莺莺, 周根贵, 等.电子病历中命名实体的智能识别J.中国生物医学工程学报, 2011, 30 (2) :256-262. 14王程.语义网网络检索的未来发展J.现代情报, 2005, 25 (4) :72-73. 15王春雨, 王芳.基于条件随机场的农业命名实体识别研究J.河北农业大学学报, 2014, 37 (1) :132-135.