广东工业大学学报  2014, Vol. 31Issue (3): 88-94.  DOI: 10.3969/j.issn.1007-7162.2014.03.016.
0

引用本文 

左亚尧, 龙耀发, 李杰骏. 基于规则的中文时间表达式识别与规范化[J]. 广东工业大学学报, 2014, 31(3): 88-94. DOI: 10.3969/j.issn.1007-7162.2014.03.016.
Zuo Ya-yao, Long Yao-fa, Li Jie-jun. Recognition and Normalization of Chinese Time Expressions Based on Rules[J]. Journal of Guangdong University of Technology, 2014, 31(3): 88-94. DOI: 10.3969/j.issn.1007-7162.2014.03.016.

基金项目:

广东省自然科学基金资助项目(S2011040004281, S2013010014457)

作者简介:

左亚尧(1974-), 男, 副教授, 主要研究方向为时态信息处理、数据挖掘、粒度计算。

文章历史

收稿日期:2014-04-13
基于规则的中文时间表达式识别与规范化
左亚尧, 龙耀发, 李杰骏     
广东工业大学 计算机学院, 广东 广州 510006
摘要: 为了解决文本时间表达式的识别与规范化问题, 针对时间表达式在形式上的多样性与非结构化, 提出了对时态元素进行刻画的思想, 划分时间表达式类别及规范形式;在此基础上, 采用正则表达式与Trie树结构相结合的方式构建出时间短语识别树, 自动进行中文时间表达式的识别与分类;最后, 提出规范化算法与修正算法处理识别后的结果, 得到规范化形式.以中文语料进行实验, 中文表达式识别与规范化工作达到较好的效果.
关键词: 规则    正则表达式    时间表达式识别    规范化    
Recognition and Normalization of Chinese Time Expressions Based on Rules
Zuo Ya-yao, Long Yao-fa, Li Jie-jun     
School of Computers, Guangdong University of Technology, Guangzhou 510006, China
Abstract: Concerning the problem with the recognition and normalization of time expressions in texts, aiming at the diversity and unstructured forms of time expressions, it proposed the idea of describing temporal elements to divide the types of time expressions and their forms of normalization. With the method that combined regular expressions with Trie tree structure, it built the recognition tree of time expressions, which could recognize time expressions automatically. Finally, it proposed the normalization algorithm and correction algorithm to deal with the recognized results. The results are pretty good.
Key words: rule    regular expressions    recognition of time expressions    normalization    

在自然语言处理、问题回答、信息检索等应用领域中, 时态信息处理变得日益重要.无论是时态数据库还是时态数据挖掘研究领域, 时态信息应用都影响深远, 时态信息促进大数据的存储与利用.近年来, 时态信息的应用吸引了国内外专家学者的关注[1-5].

时态的应用研究首要任务是时间表达式的抽取, 如Peiquan Jin等[6]提出了时态搜索引擎(Time-Inspired Search Engine, TISE), 主要对Web页面的时间进行抽取与检索并且支持不同类型的Web时态信息;李君婵等[7]提出基于最大熵模型的方法来完成时间表达式抽取与类型识别;文献[8]提出一种基于条件随机场(Conditional Random Fields, CRFs)的时间表达式识别方案;文献[9]针对中文医疗记录提出一个时态表达式识别和时态关系抽取框架, 时态表达式识别利用正则表达式建立的语法进行处理, 而时态关系抽取结合了CRFs从中文医疗记录中的医疗问题中自动抽取时态属性.这些学者进行了时态数据抽取的相关工作, 却缺乏对时态数据规范化的研究, 难以更有效地利用时态信息.

随着关注时态信息的学者更为广泛, 人们不满足于时态信息的抽取识别, 为提高时态信息的利用度, 针对已抽取的时间表达式, 进行规范化工作.如文献[10]提出基于规则的HeidelTime系统, 主要是利用正则表达式识别文档中的时态表达式以及对其进行规范化处理;文献[11]描述了一个对时态表达式进行识别和规范化的系统, 利用最大熵模型构建分类器对句子成分分类以完成识别工作, 进而基于规则的方法来实现规范化;

文献[12]提出了一个集成到Web搜索引擎中的时态表达式识别和标准化系统, 该系统用于处理西班牙语的文本内容, 能够同时考虑用户查询和搜索集合中的时间语义, 并独立于其表示.

尽管上述学者就时间表达式进行识别与规范化问题展开了深入研究, 但主要对英文文档进行处理, 而没有应用于中文的时间表达式研究.其次, 时间表达式可以是包含修饰介词和具有粒度属性[13-15]的时间点、时间区间, 而粒度是研究时态信息时重要的因素之一, 研究时态信息需要结合时态粒度进行分析, 而这些学者忽视了粒度属性.

因此, 本文探索性地研究基于规则的方法并结合时态粒度角度来完成时间表达式识别与规范化任务.

1 时间表达式的分析与识别

一般而言, 时间表达式的随意多样特点, 让文本的时态信息处理难度加大.比如, 在新闻文本中“9点左右”, “3天前”等时间表达式.为完成识别与规范化工作, 首先要对时间表达式进行分析.变化的粒度是时间表达式的分析关键因素, 因此, 处理时态信息前, 要对其进行粒度刻画.

1.1 时态粒度的刻画

时间表达式包含粒度属性, 为了便于对时间表达式分析, 下面先进行粒度化的描述.关于时态粒度、前驱粒度、后继粒度、时态粒点、时态粒区、时态跨度以及时态原语等概念可参见文献[15].

由于时间表达式可以包含修饰介词, 而修饰介词起的作用是表示时间上的方向.时间表达式可以是时间粒点与修饰介词的组合或时态跨度与修饰介词的组合, 都为时间粒区, 前者为时间粒点在介词所指方向上的一段时间, 后者在下面定义1给出详细描述.

定义1  (相对时态跨度):一般为时态跨度与修饰介词的组合, 描述一段相对于未来或过去持续的并独立于任何时间粒点和时态粒区的时间属性, 记作(-|+)ΔtsGi, 其中$ {t_s} = \hat a_{j = 1}^iGj\left( X \right) $, GjG, XT, Gi为其有效粒度(最细粒度), 而正负号取决于修饰介词.当相对时态跨度结合上下文语义之后, 可以通过时态运算转化为时间粒点或时态粒区.在本文, 按照它的表现形式分为相对时态跨度粒点reftpGi和相对时态跨度粒区refI.

根据上述时态粒度的刻画, 可以把时间表达式分成4类:时间粒点tpGi、时态粒区I、相对时态跨度粒点reftpGi和相对时态跨度粒点refI.表 1给出新闻文本各种类型的举例.

表 1 时间类型举例 Table 1 Instances of time types
1.2 时间表达式的组合

中文时间表达式实质上由几种不同成分(前缀、时间粒点、相对时态跨度、衔接、后缀)的组合形成, 图 1给出相关实例.本文利用正则表达式的文法对每种成分类型构建规则列表r_list={r1, r2, r3, r4, r5}, 见表 2.结合中文时间短语语法[16]与大量中文时间表达式的分析得出, 存在10余种不同规则组合, 将其称为组合列表$ \ell $={l1, l2, …ln}.可以采用$ \ell $识别中文文本的时间表达式, 其中任一li能够识别出时间表达式及其类型, 如r2+r5可以识别类型I的时间表达式(如“7月后”).可令∀l$ \ell $, 为一个二元结构l=〈reg, type〉, 其中reg为规则组合, type为reg能够唯一识别的时间表达式类型.

图 1 时间表达式分析举例 Figure 1 Instance about study of time expression
表 2 规则描述 Table 2 Description of rules

为了便于描述, 本文定义了时间前缀词表(如:大约、到、从等)、时间后缀词表(如:左右、之后、之前、晚上、期间等)和节日词表(如:中秋节、国庆节等).上述3个词表已包含了出现在时间表达式中的修饰介词, 这些资源都是和时间短语的语言特点有紧密联系.其中, Wfore∈时间前缀词表, Wtail∈时间后缀词表, Wfest∈属于节日词表.

2 时间表达式的识别

在上一节, 结合粒度角度对时间表达式进行了深层次的分析, 划分了时间表达式的类型, 以及描述了组合规则, 用于识别时间表达式及其类型.下面描述结合规则与Trie树构建出时间短语识别树.

2.1 Trie树的插入与构建操作

利用$ \ell $来构建Trie树[17], 以便能够快速识别新闻出现的时间表达式, 同时得出识别后时间表达式的类型. Trie树根结点不包含任何信息, 且每个节点为三元组, nodei=〈ri, typei, bType〉, 其中bType用于标记typei是否有效.

假设存在待插入li与Trie树Root, Trie树插入算法如图 2所示.

图 2 结点插入算法 Figure 2 Algorithm for node insertion

Trie树构建操作较为方便, 在已知组合列表$ \ell $情况下, 先创建Root节点, 循环取出组合li对Root进行插入操作即可生成Trie树, 图 3为插入$ \ell $(其中包含3个组合$ \ell $)举例.

图 3 时间短语识别树的生成 Figure 3 Production of TERT
2.2 TERT树的遍历识别

为了便于描述, 本文把构建的Trie树称为时间短语识别树(Time Expression Recognition Tree, TERT), TERT的目的在于识别新闻中出现中文时间表达式.同时也能获取时间表达式的类别, 参见上述定义的类别tpGiIreftpGirefI.以下给出了从文本Tx的pos上开始识别时间表达式的过程:

(1) 输入文本Tx={wpos1, wpos2, wpos3…wposn}, 令匹配位置pos为pos1, 定义时间表达式缓冲区stemp.执行(1).

(2) 如果pos为posn, 识别结束, 否则清空缓冲区stemp, 从root结点开始, 即node←root.执行(3).

(3) 从node逐一取出孩子结点中的规则与Tx起始位置pos进行匹配, 取得匹配结果s.如果s≠null, 代表孩子节点nodei的规则匹配成功, 将s合并stemp上, pos下移strlen(s)个单位, node←nodei, 重复执行(3);若失败, 执行(4).

(4) 判断node的bType元素, 若为true, 识别中文表达式成功, 将type元素和stemp保存起来, 执行(2);若为false, 则识别时间表达式失败, pos←pos+1, 执行(2).

通过上述算法能够识别新闻中出现时间表达式, 将会生成一个te_list序列. te_list中∀tei元素都可以看作一个二元tei=〈ei, typei〉, 其中ei时间表达式为抽取出来的短语, typei是该表达式的类型.

3 规范化处理

为提高时态信息的利用度, 针对已识别的时间表达式, 进行规范化工作.

3.1 时态元素的规范化

本文规范化过程是把识别出来的t转换成公历系统的时态粒度Gi.可令公历系统时态Gi粒度全域G={Y(Year), M(Month), D(Day), H(Hour), Mi(Minute), S(Second)}, 如“国庆节”等, 因此构建节日资源RESfest, 用于把节日转化为公历系统的Gi, 参考表 3;对于IrefI的规范化形式多样, 需要构建模板资源RESinter辅助, RESinter实质上是特征词(前缀、后缀等)与区间模板Imodel的映射关系.其中Imodel都含有未知参数, Imodel的示例如表 4所示.

表 3 节日资源RESfest示例 Table 3 Instances of festival resources
表 4 区间模板资源RESinter示例 Table 4 Instances of resources of interval templates

对于tpGi, 有可能出现其他时态系统的对于确切的相对时态跨度(-|+)ΔtsGi, 一般由tpGi与前后缀组成, 可以根据它们判断其跨度的大小和方向.如“9天前”, normalSpan("9天前")=“-9GD”.而有小部分为特殊的(-|+)ΔtsGi, 则需要构建资源进行处理, 参见表 5.

表 5 特殊相对时态跨度资源示例 Table 5 Instances of resources of special relative temporal span with Granularities

假定通过TERT得到te序列:te_list={te1, te2, …ten}, 规范化算法具体过程:循环地取出te_list的元素tei, 进行规范化处理, 按照tei.type的不同情况一一处理, 将结果保存到norm_list中.规范化详细情形如图 4所示.

图 4 规范化算法示图 Figure 4 Normalization algorithm for time expressions

对于运算$ \left\lfloor {{t_{{\rm{ref}}}}} \right\rfloor $Gj+dt, 其中Gjdt的最细且时态元μ≠0. $ \left\lfloor {{t_{{\rm{ref}}}}} \right\rfloor $Gj的作用是把tref中比Gj更细的时态粒度的值设为0.参考时间tref的获取, 通过tei-1规范化后形式得到的.如果tei-1I, 则取I的任一边界, 如果tei-1tpGi类, 则取其值t即可.上述为中文规范化算法, 具体例子参考示例1.

示例1

$ {\rm{已知}}t{e_i}\left\{ \begin{array}{l} e = ''八天前'', \\ {\rm{type}}{{ = ''}_{{\rm{ref}}}}t_p^{{G_i}''} \;\;\;, \end{array} \right. $

其中, 参考时间tref=2013GY12GM20GD.

(1) tei. e∈Special relative temporal span with Granularities, 即8天前不属于特殊相对时态跨度, 于是有dt=normalSpan(3天前)=-3GD.(2) t=$ \left\lfloor {{t_{ref}}} \right\rfloor $Gj+dt$ \left\lfloor {2013{G_Y}12{G_M}20{G_D}} \right\rfloor $GM-3GM⇒2013GY12GM-3GM⇔(2013, 12, 0, 0, 0, 0)+ (0, 0, -3,0, 0)=(2013, 9, 0, 0, 0, 0)⇔2013GY9GM, 即t=2013GY9GM.(3)根据后缀“前”, 从RESinter查找出相应[tt, t], combine([tt, t], t)⇒[tt, t], wheret=2013GY9GM.

存在Δt的时态粒区都为不确定粒区, 均需限定在某一范围内才有意义, 如“16:00左右”, 其规范化后的取值为[tt, tt], where t=16GH, 当其可能的取值范围位于[15GH, 17GH], 即“15:00到17:00之间”时, 对其表示是有意义的, 语义可信度较高, 具体取值按实际情况而定.

3.2 时态元修正

事实上, 时态元μ=Gi(t)还可能出现下面两种取值:

$ \left\{ \begin{array}{l} \mu < 0, {G_i} \ne {G_1}, \\ \mu > \left| {{G_{i - 1}}} \right|, {G_i} \ne {G_1}. \end{array} \right. $

假如示例1中的dt=-13GMdt=+1GM, 其所得的t是非规范化的情况.因此, 需要对t进行修正处理.

修正算法过程:

(1) 令j=n, 执行(2).

(2) 如果j=1, 结束修正.从最细的时态粒度Gj开始往最粗时态粒度G1扫描时间因子tp, 取出第一个不为0的时态元, 令其为μi, 代表当前时态粒度Gi下的时态元, 再令Gi-1粒度下的时态元为μi-1.如果|Gi-1|为刚度, 令γ=|Gi-1|执行(4);否则执行(3).

(3) 由于|Gi-1|为弹度, 得到μi-1对应的|Gi-1|μi-1并令其为γ;得到μi-1-1对应的|Gi-1|μi-1-1并令其为γ′.如果μi < 0, 则μi+=γ′, μi-1-=1;如果μi > γ, 则μi-=γ, μi-1+=1;令j=i-1, 执行(2).

(4) μi < 0, 则μi+=γ, μi-1-=1;如果μi > γ, 则μi-=γ, μi-1+=1;令j=i-1, 执行(2).

利用上述修正算法能够规范t的非规范时态元μ.

4 结果与分析

本文利用精确率(Precision)、召回率(Recall)和F-measure值作为实验的评测标准.

本文实验语料是人民日报1998年1月的新闻语料, 其中包含中文时间表达式共20 861个.采用人工的方式按照上文所述的类别对新闻语料中出现的时间表达式进行分类, 然后构建TERT进行自动识别和分类时间表达式, 最后两者结果比较如表 6所示, 表 7给出识别与规范化处理的测试结果.

表 6 人工标注与识别结果比较 Table 6 Comparison of results between artificial tabbing and automatic extraction
表 7 系统测试结果 Table 7 System testing results

表 6表 7可以得到时间表达式识别的准确率为88.20%, 而时间表达式规范化的准确率为78.28%, 结果令人满意.基于规则的方法处理时态数据能够极大提高系统的运行速度, 同时不必像机器学习依赖标注语料的质量.从表 6表 7可以看出, 用构建规则的方法识别与规范化得到满意的结果, 是一个可行的方案, 但也无可避免存在一些错误.其中tpGi类别精确率比其他类别高出不少, 这是由于其形式固定导致的. IreftpGirefI类别由于其形式多变, 利用规则的识别只能识别出大部分常见的形式, 无法处理特殊自定义的时间表达式, 因此造成召回率不高的情况.

其中存在的错误主要是在于规则的不完善、语义知识的欠缺.虽然在识别与规范化处理时, 利用中文时间表达式拥有相对稳定的特点, 但不能如机器学习等方法能够结合上下文信息获取来更高的召回率, 同时手写规则的准确性与涵盖面在很大程度上影响系统的性能.存在小部分变换灵活的中文时间表达式, 因此需不断地测试与改进相结合, 尽可能完善系统规则.

5 结束语

本文介绍了对新闻语料进行时间抽取与规范化的研究工作, 在时态粒度属性的角度下进一步构建时间短语识别树, 其用于识别中文时间表达式以及标记类别, 最后对每一种类别的时间表达式逐一进行规范化处理, 得到较为满意的效果.采用人工启发式规则识别与规范化形式较为稳定的中文时间表达式能够得到很好的效果, 但整体性能上却受到一部分变换灵活的中文时间表达式的影响.另外, 本文对不可标记的时间表达式不作处理.如“大学毕业后”, “灾难发生前”等, 其拥有一定时间含义, 却时间难以确定.未来工作将深入研究这方面, 使该工作更为完善.

参考文献
[1]
Shabtai A, Kanonov U, Elovici Y. Instrusion detection for mobile devices using the knowledge-based, temporal abstraction method[J]. Journal of Systems and Software, 2010, 83(8): 1524-1537. DOI: 10.1016/j.jss.2010.03.046.
[2]
Fuchs E, Gruber T, Pree H, et al. Temporal data mining using shape space representations of time series[J]. Neurocomputing, 2010, 74(1): 379-393.
[3]
Strötgen J, Gertz M, Popov P. Extraction and exploration of spatio-temporal information in documents[C]//Proceedings of the 6th Workshop on Geographic Information Retrieval. [s. l. ]: ACM, 2010: 16.
[4]
Kovačević A, Dehghan A, Filannino M, et al. Combining rules and machine learning for extraction of temporal expressions and events from clinical narratives[J]. Journal of the American Medical Informatics Association, 2013, 20(5): 859-866. DOI: 10.1136/amiajnl-2013-001625.
[5]
Alonso O, Gertz M, Baeza-Yates R. On the value of temporal information in information retrieval[C]//ACM SIGIR Forum. [s. l. ]: ACM, 2007, 41(2): 35-41.
[6]
Jin P, Lian J, Zhao X, et al. Tise: A temporal search engine for web contents[C]//Intelligent Information Technology Application, 2008. ⅡTA'08. Second Inter-national Symposium on. [s. l. ]: IEEE, 2008: 220-224.
[7]
李君婵, 谭红叶, 王风娥. 中文时间表达式及类型识别[J]. 计算机科学, 2012, 39(11): 191-195.
Li J C, Tan H Y, Wang F E. Recognition of temporal expressions and their types in Chinese[J]. Computer Science, 2012, 39(11): 191-195. DOI: 10.3969/j.issn.1002-137X.2012.11.044.
[8]
朱莎莎, 刘宗田, 付剑锋, 等. 基于条件随机场的中文时间短语识别[J]. 计算机工程, 2011, 37(15): 164-167.
Zhu S S, Liu Z T, Fu J F, et al. Chinese Temporal Phrase Recognition Based on Conditional Random Fields[J]. Computer Engineering, 2011, 37(15): 164-167. DOI: 10.3969/j.issn.1000-3428.2011.15.052.
[9]
Zhou X J, Li H M, Lu X D, et al. Temporal expression recognition and temporal relationship extraction from Chinese narrative medical records[C]//Bioinformatics and Biomedical Engineering, (iCBBE) 2011 5th International Conference on. [s. l. ]: IEEE, 2011: 1-4.
[10]
Strötgen J, Gertz M. HeidelTime: High quality rule-based extraction and normalization of temporal expressions[C]//Proceedings of the 5th International Workshop on Semantic Evaluation. USA PA, Stroudsbury: Association for Computational Linguistics, 2010: 321-324.
[11]
Kolomiyets O, Moens M F. KUL: recognition and normalization of temporal expressions[C]//Proceedings of the 5th International Workshop on Semantic Evaluation. USA PA, Stroudsbury: Association for Computational Linguistics, 2010: 325-328.
[12]
Vicente-Diez M T, Martinez P. Temporal semantics extraction for improving web search[C]//Database and Expert Systems Application, 2009. DEXA'09. 20th International Workshop on. Linz: IEEE, 2009: 69-73.
[13]
左亚尧, 汤庸, 舒忠梅, 等. 时态的粒度刻画及演算问题研究[J]. 计算机科学, 2010, 37(012): 114-119.
Zuo Y Y, Tang Y, Shu Z M, et al. Research on the Characterization and the Calculus of Temporal Granularities[J]. Computer Science, 2010, 37(012): 114-119.
[14]
左亚尧, 汤庸, 舒忠梅. 基于粒度层次映射转换的时态粒点差运算方法[J]. 计算机研究与发展, 2013, 49(11): 2320-2327.
Zuo Y Y, Tang Y, Shu Z M. Subtraction operation between temporal points with granularities based on granularity hierarchy mapping[J]. Journal of Computer Research and Development, 2013, 49(11): 2320-2327.
[15]
左亚尧, 舒忠梅, 汤庸. 时态原语的粒度约束与规范化问题探讨[J]. 小型微型计算机系统, 2013, 34(005): 1070-1075.
Zuo Y Y, Shu Z M, Tang Y. Exploration into Granularity Constraints and Standardization of Temporal Primitives[J]. Journal of Chinese Computer Systems, 2013, 34(005): 1070-1075.
[16]
余东涛. 现代汉语时间词研究[D]. 武汉: 华中师范大学文学院, 2006.
[17]
Terrovitis M, Passas S, Vassiliadis P, et al. A combination of trie-trees and inverted files for the indexing of set-valued attributes[C]//Proceedings of the 15th ACM international conference on Information and knowledge management. [s. l. ]: ACM, 2006: 728-737.