<?xml version="1.0"?><!DOCTYPE article SYSTEM "/project/take/software/searchbench_offline_processing/paperxml_generator/aclextractor/src/python/../resource/dtd/paperxml.dtd"><article><header><firstpageheader><page local="1" global="321"/><title>HeidelTime: High Quality Rule-Based Extraction and Normalization of Temporal Expressions</title><pubinfo>Proceedings of the 5th International Workshop on Semantic Evaluation, ACL 2010,pages 321-324, Uppsala, Sweden, 15-16 July 2010. ©2010 Association for Computational Linguistics</pubinfo><author surname="Strötgen" givenname="Jannik"><org  name="University of Heidelberg" country="Germany" city="Heidelberg"/></author><author surname="Gertz" givenname="Michael"><org  name="University of Heidelberg" country="Germany" city="Heidelberg"/></author></firstpageheader><frontmatter><p><b>HeidelTime: High Quality Rule-based Extraction and Normalization of</b></p><p><b>Temporal Expressions</b></p><p><b>Jannik Strötgen</b></p><p>Institute of Computer Science University of Heidelberg Heidelberg, Germany</p><p>stroetgen@uni-hd.de</p></frontmatter><abstract>In this paper, we describe HeidelTime, a system for the extraction and normaliza­tion of temporal expressions. HeidelTime is a rule-based system mainly using regu­lar expression patterns for the extraction of temporal expressions and knowledge re­sources as well as linguistic clues for their normalization. In the TempEval-2 chal­lenge, HeidelTime achieved the highest F-Score (86%) for the extraction and the best results in assigning the correct value at­tribute, i.e., in understanding the seman­tics of the temporal expressions. </abstract></header><body><section number="1" title="Introduction"><p>Temporal annotation of documents, i.e., the ex­traction and chronological ordering of events, is crucial to many NLP applications, e.g., text sum­marization or machine translation. In this paper, we describe our system HeidelTime for the extrac­tion and normalization of temporal expressions in English documents. It was the best-performing system in Task A for English of the TempEval2 challenge<footnote anchor="1"/>. The purpose of this challenge was to evaluate different systems for temporal tagging as well as event and temporal relation extraction since a competitive evaluation helps to drive for­ward research, and temporal annotation is impor­tant for many NLP tasks (Pustejovsky and Vertra­gen, 2009). The annotation scheme for tempo­ral expressions, events, and relations is based on TimeML, the ISO standard for temporal annota­tion<footnote anchor="2"/>.</p><p>Before using temporal information in other ap­plications is possible, the first task to solve is to ex­tract and normalize temporal expressions (Task A of the challenge, annotated as Timex3). There</p><p>!http://semeval2.fbk.eu/ http ://www.timeml.org/</p><p><b>Michael Gertz</b></p><footnote>gertz@uni-hd.de</footnote><p>are two types of approaches to address this prob­lem: rule-based and machine learning ones. We decided to develop a rule-based system since nor­malization can then be supervised in a much eas­ier way. Furthermore, respective systems allow for modular extensions.</p><p>Although we only participated in Task A, we do not consider the extraction and normalization of temporal expressions in isolation, but use temporal information in combination with other extracted facts, e.g., for the exploration of spatio-temporal information in documents (Strötgen et al., 2010). One of our primary objectives is therefore to de­velop a system that can be used in other scenar­ios without any adaptations. Thus, we implement HeidelTime as a UIMA<footnote anchor="3"/> (Unstructured Informa­tion Management Architecture) component to in­tegrate the system into our existing document pro­cessing pipeline. Another advantage of our tem­poral tagger is that the user can choose between a precision- and a recall-optimized rule set. In the TempEval-2 challenge, both rule sets achieved top scores in the extraction (F-scores of 86%) and the precision-optimized set achieved the best re­sults for assigning the correct value attributes to the temporal expressions (85% accuracy).</p><p>The remainder of the paper is structured as fol­lows: The system architecture is outlined in the next section. In Section 3, we present the evalua­tion results of HeidelTime in comparison to other systems that participated in the challenge. We con­clude our paper in Section 4.</p></section><section number="2" title="System Architecture"><p>In this section, the system architecture of Heidel­Time is explained. First, UIMA and our UIMA-based document processing pipeline are detailed, followed by a description of the extraction and normalization tasks, the functionality of the rules<page local="2" global="322"/></p><footnote label="3">http://uiraa.apache.org/</footnote><p>TempEval-2 data other heterogeneous sources</p><doubt alpha="100.0" length="2" tooSmall="False" monospace="0.0">ID</doubt><p>CAS Consumers<b><u>►rule design workflow</u></b></p><p><b>• task workflow</b></p><p>Figure 1 : UIMA pipeline with two workflows, one for rule design and one for using HeidelTime.</p><p>and the post-processing steps.</p><subsection number="2.1" title="Document Processing Pipeline"><p>HeidelTime is developed as a UIMA component so that we are able to integrate our temporal tagger into our existing document processing pipeline. It is an extension of the temporal tagger we already use for the extraction and exploration of spatio-temporal information in documents (Strötgen et al., 2010). UIMA is widely used for process­ing unstructured content such as audio, images, or text. Different components can be combined to create a pipeline of modular tools, and all com­ponents use the same data structure, the Common Analysis Structure (CAS). This allows to combine tools that were not originally built to be used to­gether, an advantage we are using for preprocess­ing tasks as well.</p><p>In general, a UIMA pipeline consists of three types of components, a Collection Reader for ac­cessing the documents from a source and initializ­ing a CAS object for each document. The analy­sis of the documents is performed by Analysis En­gines that add annotations to the CAS objects. Fi­nally, CAS Consumers are used for final process­ing, e.g., for storing the annotated information in a database or performing an evaluation.</p><p>In Figure 1, the document processing pipeline for designing and using our temporal tagger Hei­delTime is depicted. The design workflow (left arrows) contains the TempEval-2 Reader, which reads the TempEval-2 data, initializes a CAS ob­ject for each textual document and adds the anno­tated data to the CAS. For the test set of the temporal expression task, these include the sentence and token information, and for the training set also the gold standard Timex3 entities. Next, the OpenNLP part-of-speech tagger<footnote anchor="4"/> is used, which assigns the corresponding part-of-speech (POS) tag to each token. The information about sen­tences, tokens, and POS tags is then used by our temporal tagger HeidelTime for extracting and normalizing temporal expressions mentioned in the documents. The CAS Consumer TempEval-2 File Writer is used for creating the files needed for applying the scorer and which had to be sub­mitted for evaluation. During the rule develop­ment phase of HeidelTime, the CAS Consumer TempEval-2 Evaluator was used, which compares the gold standard Timex3 annotations with the Timex3 annotations extracted by HeidelTime, re­sulting in lists of true positives, false positives, and false negatives. These lists were then used for adapting existing or creating new rules.</p><p>On the right-hand side of Figure 1, a workflow for using HeidelTime in other scenarios is shown. This workflow reflects the fact that temporal tag­ging is just one intermediate component of our document processing pipeline. Here, the docu­ments have to be split into sentences and tokens using the two analysis engines Sentence Splitter and Tokenizer. The POS tagger and HeidelTime are used in the same way as described for the other workflow. In addition, other Analysis Engines can be used, e.g., for combining the extracted tempo­ral information with spatial information. Finally, CAS Consumers are used, e.g., for storing the spatio-temporal information in a database.</p></subsection><subsection number="2.2" title="Extraction and Normalization Tasks"><p>Every temporal expression <i>te </i>can be viewed as a three-tuple <i>tei = (ei,ti,Vi), </i>where is the expression itself as it occurs in the textual docu­ment, <i>ti </i>represents the type of the expression, and <i>Vi </i>is the normalized value. There are four possi­ble types, namely <i>Date, Time, Duration, </i>and <i>Set. </i>The normalized value represents the temporal se­mantics of an expression as it is specified by the markup language TimeML, regardless of the ex­pression used in the document. The goal of Hei­delTime is to extract for every temporal expression the expression <i>e%</i><i> </i>and to correctly assign the type and value attributes <i>U </i>and <i>Vi, </i>respectively.</p><p>For this, HeidelTime uses hand-crafted rules,</p><p>http ://opennlp.sourceforge.net<page local="3" global="323"/></p><table class="main" frame="box" rules="all" border="1" regular="False"><tr class="row"><td class="cell"></td><td class="cell"></td><td class="cell"></td><td class="cell"></td><td class="cell"></td></tr><tr class="row"><td class="cell"></td><td class="cell"><p>TempEval-2</p></td><td class="cell"><p></p></td><td class="cell"><p>other</p></td><td class="cell"></td></tr><tr class="row"><td class="cell"></td><td class="cell"><p>Reader</p></td><td class="cell"><p></p></td><td class="cell"><p>Collection Readers</p></td><td class="cell"></td></tr><tr class="row"><td class="cell"></td><td class="cell"></td><td class="cell"></td><td class="cell"></td><td class="cell"></td></tr></table><doubt alpha="59.5" length="42" tooSmall="False" monospace="0.0">ExpressionreMonth= "(... |June|July|... )"</doubt><doubt alpha="57.5" length="40" tooSmall="False" monospace="0.0">resourcesreSeason= "(... | summer|... )"</doubt><p>Normalization <i>norrnMov&gt;th(" June") </i>= "06" functions <i>normSeason </i>("summer") = "SU"</p><p>Table 1 : Examples for extraction and normaliza­tion resources for months and seasons.</p><p>which are grouped into four types, namely the four possible types of temporal expressions. More pre­cisely, every rule is a triple of an expression rule, a normalization function and the type information. The extraction rules mainly consist of regular ex­pression patterns. However, other features can be used as well, e.g., a constraint what part-of-speech the previous or next token has to have. Heidel­Time contains resources for both the extraction and the normalization tasks of the rules. For in­stance, there are resources for weekdays, months, or seasons, which are realized as regular expres­sions and can be accessed by multiple extraction rules. In addition, there are knowledge resources for the normalization of such expressions. Exam­ples are given in Table 1.</p><p>Algorithm 1 illustrates how rules are used in HeidelTime. First, the rules are applied to ev­ery sentence of a document, and extracted timexes are added to the CAS object. Then, two post­processing steps are executed to disambiguate un-derspecified values and to remove invalid tempo­ral expressions from the CAS. This functionality is detailed in the next sections with a focus on the linguistic clues for the normalization task.</p><p><b>Algorithm 1 </b>ApplyRules.</p><p><b>foreach </b>sentence <b>in </b>document addDatesToCAS(date_rules, CAS); addTimesToCAS(time_rules, CAS); addDurationsToCAS(dur_rules, CAS);</p><p>addSetsToCAS(set_rules, CAS); <b>end foreach foreach </b>timex3 <b>in </b>CAS</p><p>disambiguate Values(CAS); <b>end foreach</b> remo velnvalidsFromC AS (C AS );</p></subsection><subsection number="2.3" title="Functionality of HeidelTime"><p>There are many ways to textually describe tem­poral expressions, either explicitly, implicitly or relatively (Schilder and Habel, 2001). The extrac­tion for all temporal expressions works in the same way, but assigning the value attributes has to be done differently. Explicit temporal expressions are fully specified, i.e., the value attribute can directly</p><p>explicit temporal expressions <i>datejrl = (reMonth)</i><i>gi </i><i>(reDay</i><i>)g2, </i><i>(reFullYear)</i><i>g3 </i>norm_rl(gl,g2,g3) = g3-normMonth(gl)-normDay(g2) implicit temporal expressions <i>date_r2 = (reHoliday</i><i>)gi </i><i>(reFullYear)</i><i>g2 </i>norm_r2(gl,g2) = g2-normHoliday(gl)</p><table caption="Table 2: Extraction parts and normalization parts of two sample rules."></table><p>be assigned using the corresponding normalization function of the rule. For example, the explicit ex­pression <i>March 11, 1982 </i>can be extracted with the rule date_rl of Table 2 containing the resources <i>reMonth, reDay, </i>and <i>reFullYear </i>(regular ex­pressions for possible month, day and year tokens of a date phrase, respectively). The matched to­kens can be accessed using the group ids so that the normalization function can be called with the extracted tokens resulting in the value 1982-03-11.</p><p>The value attribute of implicit expressions can be assigned once the implicit temporal semantics of such expressions is known. Holidays, for ex­ample, can be extracted using date_r2 with the resource <i>reHoliday </i>and normalized using the knowledge resource for normalization as shown in Table 2. An example is <i>Independence Day 2010 </i>to which the value 2010-07-04 is assigned.</p><p>The normalization of relative expressions for which a reference time is needed is the most chal­lenging task. Examples are <i>last June, </i>just <i>June </i>in phrases such as <i>in June, </i>or <i>year-earlier </i>in <i>the year-earlier results. </i>To such expressions, Hei­delTime assigns the values in an underspecified format depending on the assumed reference time and disambiguates them in a post-processing step. The underspecified values for the examples are UNDEF-last-Iune, UNDEF-Iune, and UNDEF-REF-last-year, respectively. For the first two ex­amples, the document creation time (dct) is as­sumed to be the reference time while for the last example the previously mentioned date is used for reference. In news texts (as used in TempEval-2) the dct is meaningful while other documents may not contain such a reference time. Then, the previ­ously mentioned date is used for all underspecified values. The disambiguation of such expressions is detailed in the next section.</p></subsection><subsection number="2.4" title="Post-Processing"><p>The first post-processing step is to disambiguate underspecified value attributes (see Algorithm 1). If the value starts with UNDEF-REF, the previously mentioned date is used for disambigua­tion, otherwise the document creation time (dct) if meaningful.<page local="4" global="324"/> The value UNDEF-last-June of the previous section is disambiguated by calcu­lating the June before the dct. More complex are even less underspecified values like UNDEF-June. Here, linguistic knowledge is used to dis­ambiguate which June is meant: The tense of the sentence is determined by using the part-of-speech information of the tokens and checking the seman­tics of the verbs in the sentence. This method iden­tifies whether a sentence is past, present, or fu­ture tense. E.g., the tense of the sentence <i>In June, new results will be published </i>will be determined to be future tense and the new value UNDEF-next-June can be assigned instead of UNDEF-last-June if past tense was identified. Such values are then disambiguated using the methods described above.</p><p>If the reference time is assumed to be the previously mentioned date all previous extracted Timex3 are checked to be of the type <i>Date. </i>The value <i>vref </i>of the closest previously mentioned date is then used for further disambiguation. For example, UNDEF-REF-last-year is calculated by subtracting one year from <i>vref.</i><i> </i>This can result in a specific day but also in a specific quarter if the last mentioned timex was a quarter.</p><p>The last post-processing step is to remove all extracted timex annotations that are invalid. In­valid are all expressions that are included in other expressions. For instance, having the phrase <i>June 11 </i>the whole phrase is found by a rule as well as just <i>June. </i>Since <i>June </i>is in <i>June 11, </i>it is removed.</p></subsection></section><section number="3" title="Evaluation"><p>In this section, we outline the evaluation of Hei­delTime and compare our results with other sys­tems that participated in the TempEval-2 challenge Task A for English. For this challenge, we devel­oped two rule sets, one precision- and one recall-optimized set, reflecting the user's choice between precision and recall. The first set consists of 43 rules, 25 for dates, and 6 for times, durations, and sets, respectively. The recall-optimized rule set contains two more rules, one for dates and one for durations. These rules are very general and thus negatively influence precision.</p><p>Our results for the extraction in the two runs are shown in Figure 2 together with the results of the other participating systems. As one can see, both our runs achieved the best F-score results (86%)</p><doubt alpha="6.7" length="15" tooSmall="False" monospace="0.0">60- """"-"-...P</doubt><doubt alpha="2.5" length="40" tooSmall="False" monospace="0.0">50- ,,, ..........,      '",...........r</doubt><doubt alpha="0.0" length="18" tooSmall="False" monospace="0.0">50 60 70 80 90 100</doubt><p>Precision [%]</p><p>Figure 2: Performance of participating systems with an F-score contour for reference. Our runs are shown as full circles.</p><p>with a precision of 90% (82%) and a recall of 82% (91%) for the two sets.</p><p>HeidelTime, with the precision-optimized rule set, was the best system in assigning the value at­tributes (85% values are assigned correctly). In addition, the type attribute was correctly assigned to 96% of the extracted expressions.</p></section><section number="4" title="Conclusions"><p>HeidelTime achieves high quality results for the extraction and normalization of temporal expres­sions. The precision-optimized rule set achieved the best results for interpreting the semantics of the temporal expressions. In our opinion, this as­pect, i.e., assigning the correct value attribute, is crucial since the value is used for further analysis of the documents, e.g., when ordering events or doing a temporal analysis of documents.</p><p>The rule-based approach makes it possible to in­clude further knowledge easily, e.g., to assign tem­poral information directly to historic events.</p></section><references><p>James Pustejovsky and Marc Verhagen. 2009. SemEval-2010 Task 13: Evaluating Events, Time Expressions, and Temporal Relations (TempEval-2). In <i>Proceedings of the Workshop on Semantic Evalu­ations (SEW-2009), </i>pages 112-116. ACL.</p><p>Frank Schilder and Christopher Habel. 2001. From Temporal Expressions to Temporal Information: Se­mantic Tagging of News Messages. In <i>Proceedings of the ACL-2001 Workshop on Temporal and Spatial Information Processing, </i>pages 65-72. ACL.</p><p>Jannik Strötgen, Michael Gertz, and Pavel Popov. 2010. Extraction and Exploration of Spatio-Temporal Information in Documents. In <i>GIR '10, </i>pages 1-8. ACM.</p></references></body></article>