<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://string.hlt.inesc-id.pt/w/index.php?action=history&amp;feed=atom&amp;title=RuDriCo2</id>
	<title>RuDriCo2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://string.hlt.inesc-id.pt/w/index.php?action=history&amp;feed=atom&amp;title=RuDriCo2"/>
	<link rel="alternate" type="text/html" href="https://string.hlt.inesc-id.pt/w/index.php?title=RuDriCo2&amp;action=history"/>
	<updated>2026-05-17T21:43:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://string.hlt.inesc-id.pt/w/index.php?title=RuDriCo2&amp;diff=14&amp;oldid=prev</id>
		<title>Eugenio: Created page with &quot;&lt;div style=&quot;float:right;&quot;&gt;__TOC__&lt;/div&gt; ==== Acronym ==== '''''RuDriCo''''' stands for '''''Ru'''''le '''''Dri'''''ven '''''Co'''''nverter   ==== Brief Description ==== RuDriCo2's main goal is to provide for an adjustment of the results produced by the LexMan morphological analyzer to the specific needs of each parser. In order to achieve this, it modifies the segmentation that is done by the former. For example, it might contract expressions provided by the morp...&quot;</title>
		<link rel="alternate" type="text/html" href="https://string.hlt.inesc-id.pt/w/index.php?title=RuDriCo2&amp;diff=14&amp;oldid=prev"/>
		<updated>2024-01-10T13:33:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt; ==== Acronym ==== &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;RuDriCo&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; stands for &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Ru&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;le &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Dri&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ven &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Co&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;nverter   ==== Brief Description ==== &lt;a href=&quot;/wiki/RuDriCo2&quot; title=&quot;RuDriCo2&quot;&gt;RuDriCo2&lt;/a&gt;&amp;#039;s main goal is to provide for an adjustment of the results produced by the &lt;a href=&quot;/wiki/LexMan&quot; title=&quot;LexMan&quot;&gt;LexMan&lt;/a&gt; morphological analyzer to the specific needs of each parser. In order to achieve this, it modifies the segmentation that is done by the former. For example, it might contract expressions provided by the morp...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==== Acronym ====&lt;br /&gt;
'''''RuDriCo''''' stands for '''''Ru'''''le '''''Dri'''''ven '''''Co'''''nverter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Brief Description ====&lt;br /&gt;
[[RuDriCo2]]'s main goal is to provide for an adjustment of the results produced by the [[LexMan]] morphological analyzer to the specific needs of each parser. In order to achieve this, it modifies the segmentation that is done by the former. For example, it might contract expressions provided by the morphological analyzer, such as ''ex-'' and ''aluno'', into one segment: ''ex-aluno''; or it can perform the opposite and expand expressions such as ''nas'' into two segments: ''em'' and ''as''. This will depend on what the parser might need. Altering the segmentation is also useful for performing tasks such as recognition of numbers and dates. The ability to modify the segmentation is achieved through declarative rules, which are based on the concept of pattern matching.  [[RuDriCo2]]  can also be used to solve (or introduce) morphosyntactic ambiguities. By the time  [[RuDriCo2]]  is executed along the processing chain, it performs all of the mentioned tasks.&lt;br /&gt;
&lt;br /&gt;
The input of [[RuDriCo2]] is a set of rules and the text to process. Input text is in XML format and consists in a set of sentences where each sentence has one or more segments. The segments represent words that are constituted by a surface (''word'') and one or more annotations (''class''). An annotation is composed by a lemma (''root'') and a set of attribute-value pairs. The attribute-value pairs represent the properties of each annotation, e.g. the category of a word.&lt;br /&gt;
&lt;br /&gt;
In this example, the word &amp;quot;''partido''&amp;quot; is represented as an ambiguous segment containing one surface and three annotations.&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;[surface='partido',lemma='partido',CAT='adj',NUM='s',GEN=m',DEG='nor']&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;     [lemma='partido,CAT='adj',SCT='com',NUM='s',GEN=m',DEG='nor']&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;     [lemma='partir,CAT='ver',MOD='par',NUM='s',GEN=m']&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[RuDriCo2]]  has two types of rules: disambiguation and segmentation rules. ''Disambiguation'' rules allow the system to choose the correct category of a word by considering the surrounding context. ''Segmentation'' rules change the segmentation and can be divided into contraction and expansion rules. ''Contraction'' rules convert two or more segments into a single one. ''Expansion'' rules transform a segment into at least two segments.&lt;br /&gt;
&lt;br /&gt;
An example of an expansion rule is to transform the segment ''Na'' into two segments ''Em'' and ''a''. An example of a contraction rule is to turn segments ''Coreia'', ''do'' and ''Sul'' into a single segment ''Coreia do Sul''.&lt;br /&gt;
&lt;br /&gt;
Example of a disambiguation rule that disambiguates the form ''a'' which can be an article (art), a pronoun (pro) or a preposition (pre), selecting the POS article when this form is preceded by a preposition:&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;  |[CAT='pre']!|&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;  [surface='a',CAT='art'][CAT=~'art']&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt; :=&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;  [CAT='art']+.&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of a join rule that joins the sequence of tokens ''África do Sul'', producing a single token, which is then given the features of POS (noun), subcategory (proper noun), gender and number :&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;0&amp;gt;[surface='África'],&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;  [surface='do'],&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;  [surface='Sul']&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt; :&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;  [surface=@@+,lemma='África do Sul',CAT='nou',SCT='prp',GEN='f',NUM='s'].&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of an expansion rule that resolves the contracted form ''ao'' (to_the.masc.sg), spliting it into the preposition ''a'' (to) and the definite article ''o'' (the.masc.sg):&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;0&amp;gt;[surface='ao',CAT='pre']&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt; :&amp;lt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;  [surface='a',lemma='a',CAT='pre'],&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt style=&amp;quot;color:red&amp;quot;&amp;gt;  [surface='o',lemma='o',CAT='art',SCT='def',NUM='s',GEN='m'].&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Module evolution ====&lt;br /&gt;
'''''RuDriCo1''''' is an evolution of [http://www.inesc-id.pt/pt/indicadores/Ficheiros/2365.pdf PAsMo], that is, by its turn, is an evolution of MPS (Module Post-SMorph, [[media:MPS1999.txt|bibtex]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In 2009, '''''RuDriCo1''''' was substantially slower than the remaining modules of the chain. [2] describes the changes made to the system to improve its performance by using the concept of layers and also by reducing the number of variables contained in the rules. It also describes the changes in the rule's syntax, such as the addition of new operators and contexts, making the rules more expressive.&lt;br /&gt;
The new version, named  [[RuDriCo2]], is significantly (10 times) faster that the previous version, uses a more expressive language (allowing negation and disjunction, the use of regular expressions both in the lemma and in the surface form) and constitutes an approach towards the XIP parser syntax. It also validates the input data, featuring error messages and warnings for potential problems. [[RuDriCo2]] is a significant improvement over the original module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Demo ====&lt;br /&gt;
[[RuDriCo2]] can be tested [http://string.l2f.inesc-id.pt/demo/tokenizer.pl here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== User's Manual ====&lt;br /&gt;
Though [[RuDriCo2]] is not freely available, the user's manual will be available [[here]] as soon as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Publications ====&lt;br /&gt;
'''[1]''' Cláudio Diniz, [http://www.inesc-id.pt/pt/indicadores/Ficheiros/5451.pdf Um Conversor baseado em regras de transformação declarativas], MSc thesis, Instituto Superior Técnico, Universidade Técnica de Lisboa, Lisboa, Portugal, October 2010 ([[media:Diniz2010b.txt|bibtex]])&lt;br /&gt;
&lt;br /&gt;
'''[2]''' Cláudio Diniz, Nuno Mamede, João D. Pereira, [http://inforum.org.pt/INForum2010/papers/gestao-e-tratamento-de-informacao/Paper085.pdf RuDriCo2 - a faster disambiguator and segmentation modifier], in II Simpósio de Informática (INForum 2010), Universidade do Minho, pages 573-584, September 2010 ([[media:Diniz2010a.txt|bibtex]])&lt;/div&gt;</summary>
		<author><name>Eugenio</name></author>
	</entry>
</feed>