命名实体识别作为自然语言处理领域的一个重要研究方向[1], 其在传统领域的研究较为成熟, F1值可达到90%以上[2].相比传统领域, 专业领域命名实体的产生往往以该领域知识为依据, 兼顾其语言规律特性, 使得识别难度大大增加.本文选择对化学资源文本的命名实体进行研究, 提出一种面向化学资源文本的命名实体识别方法.化学资源文本, 是指包含化学资源的自由文本.化学资源命名实体包括化学物质、属性、参数和量值.其中属性是化学物质之间进行区分的必然性质.参数是属性在某个时空状态下的显性度量, 例如:可燃性是化学物质的属性, 而自燃点是可燃性的一个参数, 自燃点会随着外界条件(大气压等)的变化而变化, 而可燃性却是客观存在的.化学资源文本中命名实体识别主要存在以下难点:
1) 化学资源文本和化学资源命名实体数量庞大且表达方式复杂多样, 命名实体结构没有严格的构词规律可循, 例如化学物质由单个字的物质(溴、银等)到由字和相关符号组成的有机物(邻苯二甲酸二(2-乙基己)酯)等.量值包含了更多的符号(g/cm3、℃等), 并且有的量值字数较多(1 g该品可溶于约5.5 mL水(约18%, 25 ℃)、83 mL醇).
2) 化学资源文本在描述化学物质时往往将属性与参数混为一谈, 使得二者在句中所处的语法位置相同, 区分造成困难.
很多学者对化学资源领域的命名实体识别均有研究.文献[3]通过基于词典的方法来识别小分子物质和药品, 这种方法依赖于词典和匹配算法的质量.文献[4]分析化学物质的领域特征以及统计语言特征, 制定规则识别有效词类序列, 这种方法可移植性很弱, 当数据稍有变化时, 就要修改或增加相应的规则.文献[5-6]使用条件随机场(conditional random field, CRF)等机器学习模型进行化学物质识别, 然而基于机器学习的方法需要依据逻辑直觉手工定制大量特征, 其识别性能很大程度上依赖于特征的质量.近年来, 深度学习被应用到命名实体识别任务中, 其中最常见的神经网络模型有卷积神经网络(convolutional neural network, CNN)[7]、循环神经网络(recurrent neural network, RNN)[8-9]、长短时记忆网络(long short-term memory, LSTM)[10-11]以及双向长短时记忆网络(bi-directional LSTM, BLSTM)[12-13].使用深度学习模型不仅能减少机器学习中手工定制特征的工作量, 还能够自动从词及句子中获得更加有效的特征.
针对化学资源文本命名实体识别难点, 本文提出了一种面向化学资源文本的命名实体识别方法.首先采用基于BLSTM-CRF模型的初始识别, 然后利用基于词典与规则相结合的办法优化识别.该方法一方面通过训练语料, 减少了基于以往方法的复杂性和盲目性, 同时可以很好地解决识别新的命名实体难的问题;另一方面利用规则和词典, 降低了仅使用BLSTM-CRF模型对大规模语料的依赖性, 有效地解决了识别问题.
1 基于BLSTM-CRF模型的初始识别 1.1 预处理本文首先对化学资源文本进行分词处理, 然后定义9种标签进行人工标注, 即L=(B-SUB, I-SUB, B-ATT, I-ATT, B-PAR, I-PAR, B-VAL, I-VAL, N), 各标签依次分别代表化学物质首部、化学物质内部、属性首部、属性内部、参数首部、参数内部、量值首部、量值内部及其他.此外, 要使用BLSTM-CRF模型进行处理, 需要将每个词转换为固定维度的embedding向量[14].设样本句子X由n个词组成, X={x1, x2, …, xn}, embedding向量xt计算公式为xt=Wembrt, 其中:Wemb∈Rd×|V|为embedding向量查询表, 需要训练得到;rt∈R|V|为词的one-hot表示;xt∈Rd, d为embedding向量维度;|V|为one-hot表示下词典V的大小.
1.2 基于BLSTM-CRF模型的命名实体识别BLSTM-CRF模型结构如图 1所示.其中, BLSTM由前馈层、反馈层和输出层组成, 词向量分别作为前馈层与反馈层的输入, 输出层为前馈层与反馈层的输出向量连接.BLSTM能够同时考虑文本的上下文信息, 然而在处理输出标签有强烈依赖关系的数据时, 效果却是有限的.所以加入CRF层, CRF能够有效获得句子级别的标注信息, 进而获得最优的标注序列.
![]() |
图 1 BLSTM-CRF模型结构 Figure 1 Architecture of BLSTM-CRF model |
在BLSTM层, 当输入为xt, 输出为yt时的概率计算公式为
$ \begin{array}{l} {\mathit{\boldsymbol{f}}_t} = \sigma ({\mathit{\boldsymbol{W}}_f}{\mathit{\boldsymbol{h}}_{t - 1}} + {\mathit{\boldsymbol{U}}_f}{\mathit{\boldsymbol{x}}_t} + {\mathit{\boldsymbol{b}}_f}), {\mathit{\boldsymbol{i}}_t} = \sigma ({\mathit{\boldsymbol{W}}_i}{\mathit{\boldsymbol{h}}_{t - 1}} + {\mathit{\boldsymbol{U}}_i}{\mathit{\boldsymbol{x}}_t} + {\mathit{\boldsymbol{b}}_i}), \\ {{\mathit{\boldsymbol{\tilde c}}}_t} = \tanh ({\mathit{\boldsymbol{W}}_c}{\mathit{\boldsymbol{h}}_{t - 1}} + {\mathit{\boldsymbol{U}}_c}{\mathit{\boldsymbol{x}}_t} + {\mathit{\boldsymbol{b}}_c}), {\mathit{\boldsymbol{c}}_t} = {\mathit{\boldsymbol{f}}_t} \odot {\mathit{\boldsymbol{c}}_{t - 1}} + {\mathit{\boldsymbol{i}}_t} \odot {{\mathit{\boldsymbol{\tilde c}}}_t}, \\ {\mathit{\boldsymbol{o}}_t} = \sigma ({\mathit{\boldsymbol{W}}_o}{\mathit{\boldsymbol{h}}_{t - 1}} + {\mathit{\boldsymbol{U}}_o}{\mathit{\boldsymbol{x}}_t} + {\mathit{\boldsymbol{b}}_o}), {\mathit{\boldsymbol{h}}_t} = {\mathit{\boldsymbol{o}}_t} \odot \tanh ({\mathit{\boldsymbol{c}}_t}), \mathit{\boldsymbol{P}}({y_t}|{\mathit{\boldsymbol{x}}_t}) = g(\mathit{\boldsymbol{W}}[\overrightarrow {{\mathit{\boldsymbol{h}}_t}} , \overleftarrow {{\mathit{\boldsymbol{h}}_t}} ] + {\mathit{\boldsymbol{b}}_y}), \end{array} $ |
其中:σ为sigmoid函数;g为softmax函数;⊙为点对乘积;i, f和o分别为输入门、忘记门和输出门;c表示BLSTM中每个记忆单元的状态;b是偏置项;W、U为权重矩阵;
接着, 利用CRF层对BLSTM层的输出进一步处理.定义BLSTM层的输出概率矩阵为Pn*k, k是标签L的个数.Pi, j是指第i个词被标记为第j个标签的概率.对于模型得到的标签序列y={y1, y2, …, yn}, 最优标签序列的计算公式为
$ \begin{array}{l} s\left( {\mathit{\boldsymbol{X}}, \mathit{\boldsymbol{y}}} \right) = \mathop \sum \limits_{i = 1}^n {\mathit{\boldsymbol{A}}_{{y_{i - 1}}, {y_i}}} + \mathop \sum \limits_{i = 1}^n {\mathit{\boldsymbol{P}}_{i, {y_i}}}, \log p\left( {\mathit{\boldsymbol{y}}|\mathit{\boldsymbol{X}}} \right) = \\ s\left( {\mathit{\boldsymbol{X}}, \mathit{\boldsymbol{y}}} \right) - (\log \mathop \sum \limits_{\mathit{\boldsymbol{y}}' \in \mathit{\boldsymbol{Y}}} {{\rm{e}}^{s(\mathit{\boldsymbol{X}}, \mathit{\boldsymbol{y}}')}}), \end{array} $ |
其中:s(X, y)为标签序列y的得分;Ayi-1, yi代表从第i-1个标签转移到第i个标签的概率;Y代表所有可能的标签序列;p(y|X)为标注为标签序列y的概率.为使其达到最大, 采用对数最大似然估计得到代价函数, 最后使用维特比算法[15], 即可求得得分最高的标签序列, 即为最优标签序列.
2 基于词典与规则的识别校正经过大量人工分析发现, 化学资源文本中的命名实体构成存在某些特定规律.因此, 本文使用基于词典与规则相结合的方法, 对BLSTM-CRF模型的识别结果进行校正, 进一步提高识别性能.
2.1 化学物质命名实体校正对化学物质进行命名实体识别和校正的对象是化学物质的中文名称和别名.本文受文献[4]的启发, 借助化学领域的专业命名规范[16]、化学物质名录[17]和化学资源语料库进行统计分析, 建立化学物质特征库如表 1所示.并制定如下规则.
![]() |
表 1 化学物质特征库 Table 1 Feature library of chemical substances |
以标号C-E结尾的化学物质在记录中的比例不足1%.若模型求出的化学物质尾部标号为C-E中的内容, 则将尾部移到下一个字, 继续判断是否包含, 包含继续移动, 直到不包含为止.
2.2 属性与参数命名实体校正人工收集建立属性命名实体库和参数命名实体库.其中属性命名实体库词条总计158个, 如“致密性”、“导电性”、“可燃性”等, 参数命名实体库词条总计287个, 如“密度”、“电导率”、“自燃点”等, 其中1个词条表示1个命名实体.在以上两个命名实体库的基础上, 使用1种文本实体匹配算法, 该算法思想如下:首先求得库中最长的词条的字数n, 取出待校正样本的前m个字, 令m=n, 判断是否能够和库中的某个词条完全匹配, 若完全匹配, 无论模型求得的结果如何, 都将该字段进行标注, 然后删除待校正样本的前m个字, 继续取出前m=n个字进行判断和匹配;若不匹配, m=m-1, 若仍不匹配就继续m=m-1, 直到m等于1, 即m是1个字为止, 这时删掉这个字, 继续取出前m=n个字进行判断和匹配.
2.3 量值命名实体校正同样建立量值命名实体库, 词条总计344个, 如“无毒”、“白色”、“固体”等.在此基础上, 建立量值特征库, 如表 2所示.对量值命名实体校正制定如下规则.
![]() |
表 2 量值特征库 Table 2 Feature library of values |
1) 量值命名实体库校正规则.与文本实体匹配算法相结合进行标注.
2) 单位相关量值命名实体校正规则.以标号A的内容结尾, 向前标注到不包含B的内容为止.
3) 溶解性相关量值命名实体校正规则.以标号C的内容开头, 向后查询到标号E的内容结束, 进行标注, 以标号D的内容结尾, 向前查询到标号E的内容结束, 进行标注.
3 实验设计与结果分析 3.1 实验语料及语料评价由于目前没有比较权威统一的语料库, 因此语料库从百度百科科学分类下的化工科技词条库的词条中爬取所得, 其中段落按照句号进行切分, 整理出4 328个句子进行标注.考虑到化学资源文本的领域性较强, 采取人员标注为主, 规范制定人员从旁指导的模式, 遇到疑难问题经过讨论后达成一致, 以此来不断完善规范.其中标注人员为实验室两名研究生, 主要研究方向均为自然语言处理.规范制定人员主要包括本文作者和一名化学工程专业硕士生.整个标注分为4轮, 前3轮为预标注, 每人标注随机选取的1 000个句子相同的语料, 旨在完善标注规范及修正问题.经过3轮预标注后, 规范趋于稳定, 进行正式标注.语料标注质量采用F值[18]的方式进行IAA评价[19], F值计算公式为
$ P = \frac{{两个人标注的一致数}}{{第一个人标注总数}}, R = \frac{{两个人标注的一致数}}{{第二个人标注总数}}, F = \frac{{2 \times P \times R}}{{P + R}}, $ |
其中F值是通过将一个标注者的标注视为标准, 通过计算另外一个标注者的正确率P和召回率R所得.对于4轮标注, 均采用IAA评价, 随着每轮标注的深入, IAA结果逐渐上升并趋于稳定.正式标注IAA结果为94.89, 标注结果视为可靠的[20], 标注样例如图 2所示.
![]() |
图 2 标注样例 Figure 2 Tagging example |
实验将语料划分为训练集、验证集和测试集, 各集合句子数量及4种命名实体数量如表 3所示.并使用F1(F1-Measure)值对结果进行评测, 其计算公式为
![]() |
表 3 数据集描述 Table 3 Description of data sets |
$ P = \frac{{{N_r}}}{{{N_a}}}, R = \frac{{{N_r}}}{M}, F1 = \frac{{2 \times P \times R}}{{P + R}}, $ |
其中:Nr为标注正确的命名实体总数;Na为识别出的命名实体总数;M为测试集合中的命名实体总数.
3.3 不同参数下的实验分析本文使用中科院研制的汉语词法分析系统对语料进行分词.为了获得高质量的embedding向量查询表, 本文首先爬取化工科技词条库中所有词条中的自由文本, 然后利用word2vec工具中的Skip-gram模型[21]进行训练得到.BLSTM-CRF模型使用theano实现, 并使用反向传播算法进行训练.针对模型参数复杂的问题, 本文做了大量的对比实验, 以分析各个参数对模型的标注性能的影响, 其中涉及到的参数有:embedding向量维度、学习率、隐藏层单元数量以及dropout[22]值.对每种参数进行实验, 其他参数设置为固定值, 分别是:embedding向量维度为200, 学习率为0.01, 隐藏层单元数量为200, dropout值为0.1, 实验结果如图 3所示, 其中均值F为4种命名实体F1值的均值.
![]() |
图 3 不同参数对结果的影响 Figure 3 The effect of different parameters on the results |
通过实验可知, 各参数均存在局部最优值, 即embedding向量维度为200, 学习率为0.005, 隐藏层单元数量为200以及Dropout值为0.1.除此之外, 各参数对模型的标注性能影响也不尽相同, 在此实验中, embedding向量维数对模型的标注性能影响最大, 隐藏层单元数量对模型的标注性能影响微乎其微.
3.4 不同模型结果的对比分析本文使用CRF、RNN、LSTM、BLSTM、RNN-CRF、LSTM-CRF、BLSTM-CRF、BLSTM-CRF+校正8种模型进行化学资源文本的命名实体识别.其中CRF使用CRF++0.58版本工具实现, 特征选择如表 4所示.其他模型参数采用3.3节实验中参数的局部最优值, 实验结果如表 5所示.
![]() |
表 4 CRF特征集合 Table 4 Feature sets of CRF |
![]() |
表 5 8种模型对比实验结果 Table 5 Comparison of experimental results of eight models |
从表 5可以看出, 本文所用的BLSTM-CRF+规则的识别效果好于其他模型的识别效果.通过BLSTM-CRF和BLSTM-CRF+校正的对比实验可知, 引入校正能够明显提升F1值, 尤其两个模型在识别属性和参数的结果相差很大.由于属性和参数两种命名实体组成结构类似, 在句中所处的语法位置相同, 造成仅使用BLSTM-CRF模型识别困难, 难以区分, 校正能够较好地区分这两种命名实体.对于属性, 由于属性数量较少, 属性命名实体库已经比较完整和规范, 所以加入校正后效果得到非常明显的提升.相比于属性, 参数的数量较多且表达方式多样, 所以参数命名实体库无法尽可能地包括所有参数, 通过校正得到的结果稍微差一些.由于标签之间有相对较强的依赖性, 例如被标注为“I-SUB”的词, 其上一个词的标签一定是“B-SUB”或“I-SUB”, 所以在深度模型的基础上引入CRF模型能够进一步提升F1值.从4种命名实体的识别结果可以看出, 对量值的识别结果基本上是最低的, 其次是化学物质, 这也说明了复杂多样的命名实体结构会给识别造成困难.LSTM解决了RNN梯度消失或爆炸的问题, BLSTM又在LSTM仅考虑上文信息的基础上同时考虑了下文的信息, 所以识别结果均优于后一个模型.由于CRF作为传统机器学习的代表模型, 在命名实体识别领域已经比较成熟[23-24], 并且特征也是人工设定, 在文本数量未达到一定规模时能够取得比一般深度学习模型更好的实验效果.
4 结束语综上所述, 本文提出一种面向化学资源文本的命名实体识别方法, 该方法在BLSTM-CRF模型初步识别的基础上, 根据每种命名实体的规律特征, 进一步制定不同的词典和规则进行校正, 经过对比实验表明, 该方法具有较好的准确性和鲁棒性.接下来将在继续增加语料的基础上, 对4种命名实体的识别研究扩充到对分子式、特定外界条件的识别研究上来, 使识别结果更加严谨而有效.并制定不同命名实体之间的关系, 进行关系抽取, 进而扩充化学资源库.
[1] |
Al-AHMARI S S, Al-JOHAR B A. Cross domains arabic named entity recognition system[C]//International Workshop on Pattern Recognition. Tokyo, 2016: 100111I. http://adsabs.harvard.edu/abs/2016SPIE10011E..1IA
( ![]() |
[2] |
CHOU C L, CHANG C H, HUANG Y Y. Boosted web named entity recognition via tri-training[J]. ACM transactions on Asian and low-resource language information processing, 2016, 16(2): 10. ( ![]() |
[3] |
HETTNE K M, STIERUM R H, SCHUEMIE M J, et al. A dictionary to identify small molecules and drugs in free text[J]. Bioinformatics, 2009, 25(22): 2983-2991. DOI:10.1093/bioinformatics/btp535 ( ![]() |
[4] |
李楠, 郑荣廷, 吉久明, 等. 基于启发式规则的中文化学物质命名识别研究[J]. 数据分析与知识发现, 2010, 26(5): 13-17. ( ![]() |
[5] |
ROCKTÄSCHEL T, WEIDLICH M, LESER U. ChemSpot: a hybrid system for chemical named entity recognition[J]. Bioinformatics, 2012, 28(12): 1633-1640. DOI:10.1093/bioinformatics/bts183 ( ![]() |
[6] |
潘国巍, 吉久明, 李楠, 等. 基于两类统计机器学习模型的中文化学物质名称识别研究[J]. 现代情报, 2011, 31(11): 163-165. DOI:10.3969/j.issn.1008-0821.2011.11.040 ( ![]() |
[7] |
DONG X, QIAN L, GUAN Y, et al. A multiclass classification method based on deep learning for named entity recognition in electronic medical records[C]//Scientific Data Summit. New York, 2016: 1-10. http://ieeexplore.ieee.org/document/7747810/
( ![]() |
[8] |
LI L, JIN L, JIANG Z, et al. Biomedical named entity recognition based on extended recurrent neural networks[C]//IEEE International Conference on Bioinformatics and Biomedicine. Washington, DC, 2015: 649-652. http://doi.ieeecomputersociety.org/10.1109/BIBM.2015.7359761
( ![]() |
[9] |
PANDEY C, IBRAHIM Z, WU H, et al. Improving RNN with attention and embedding for adverse drug reactions[C]//International Conference on Digital Health. London, 2017: 67-71. http://dl.acm.org/citation.cfm?id=3079501
( ![]() |
[10] |
LEE C. LSTM-CRF models for named entity recognition[J]. IEICE transactions on information and systems, 2017, 100(4): 882-887. ( ![]() |
[11] |
RONDEAU M A, SU Y. LSTM-based neuroCRFs for named entity recognition[C]//INTERSPEECH. San Francisco, 2016: 665-669.
( ![]() |
[12] |
WANG W, BAO F, GAO G. Mongolian named entity recognition with bidirectional recurrent neural networks[C]//International Conference on TOOLS with Artificial Intelligence. San Jose, CA, 2016: 495-500. http://doi.ieeecomputersociety.org/10.1109/ICTAI.2016.0082
( ![]() |
[13] |
ADAK C, CHAUDHURI B B, BLUMENSTEIN M. Named entity recognition from unstructured handwritten document images[C]//Document Analysis Systems. Santorini, 2016: 375-380. http://ieeexplore.ieee.org/document/7490147/
( ![]() |
[14] |
MIKOLOV T, SUTSKEVER I, CHEN K, et al. Distributed representations of words and phrases and their compositionality[C]//Advances in Neural Information Processing Systems. Lake Tahoe, 2013: 3111-3119. http://dl.acm.org/citation.cfm?id=2999959
( ![]() |
[15] |
陈宇.基于深度置信网络的中文信息抽取方法[D].哈尔滨: 哈尔滨工业大学, 2014. http://cdmd.cnki.com.cn/Article/CDMD-10213-1014084844.htm
( ![]() |
[16] |
中国化学会. 化学命名原则[M]. 北京: 科学出版社, 1984.
( ![]() |
[17] |
国家环境保护总局化学品登记中心. 中国现有化学物质名录[M]. 北京: 中国环境科学出版社, 2001.
( ![]() |
[18] |
OGREN P V, SAVOVA G K, CHUTE C G. Constructing evaluation corpora for automated clinical named entity recognition[C]//International Conference on Language Resources and Evaluation. Marrakech, 2008: 3143-3150.
( ![]() |
[19] |
OGREN P V, M.S, SAVOVA G, et al. Building and evaluating annotated corpora for medical NLP systems[J]. Amia Annu Symp Proc, 2006: 1050. http://www.ncbi.nlm.nih.gov/pubmed/17238668
( ![]() |
[20] |
PESTIAN J P, BREW C, HOVERMALE D J, et al. A shared task involving multi-label classification of clinical free text[C]//The Workshop on Bionlp 2007: Biological, Translational, and Clinical Language Processing. Prague, 2007: 97-104. http://dl.acm.org/citation.cfm?id=1572411
( ![]() |
[21] |
WERBOS P J. Backpropagation through time: what it does and how to do it[J]. Proceedings of the IEEE, 1990, 78(10): 1550-1560. DOI:10.1109/5.58337 ( ![]() |
[22] |
HINTON G E, SRIVASTAVA N, KRIZHEVSKY A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer science, 2012, 3(4): 212-223. ( ![]() |
[23] |
蔡肖红, 刘培玉, 王智昊. 基于语境情感消岐的评论倾向性分析[J]. 郑州大学学报(理学版), 2017, 49(2): 48-53. ( ![]() |
[24] |
CHOPRA D, JOSHI N, MATHUR I. Named entity recognition in hindi using conditional random fields[C]//International Conference on Information and Communication Technology for Competitive Strategies. Udaipur, 2016: 106. http://dl.acm.org/citation.cfm?id=2905165
( ![]() |