Permalink
Fetching contributors…
Cannot retrieve contributors at this time
1916 lines (1910 sloc) 119 KB
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" title="Pretty print" ?>
<?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css" title="Easy editing stylesheet" ?>
<!--
Spanish Grammar and Typo Rules for LanguageTool
Copyright (C) 2006 Marcin Miłkowski
Copyright (C) 2010 Juan Martorell
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
-->
<!DOCTYPE rules [
<!ENTITY adverbio_lugar "detr&#225;s|delante|debajo|encima|cerca">
<!ENTITY pronombres_personales "PP3..A.*|PP[123]C[SP]000|P0[123].*">
]>
<rules lang="es" xsi:noNamespaceSchemaLocation="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<unification feature="numero">
<equivalence type="S">
<token postag="(PX..|N.{2}|[ADP].{3}|V.{4})[SN0].*|.*_GN_.S.*" postag_regexp="yes"/>
</equivalence>
<equivalence type="P">
<token postag="(PX..|N.{2}|[ADP].{3}|V.{4})[PN0].*|.*_GN_.P.*" postag_regexp="yes"/>
</equivalence>
</unification>
<unification feature="genero">
<equivalence type="M">
<token postag="(PX.|N.|[ADP].{2}|V.{5})[MC].*|.*_GN_M..*" postag_regexp="yes"/>
</equivalence>
<equivalence type="F">
<token postag="(PX.|N.|[ADP].{2}|V.{5})[FC].*|.*_GN_F..*" postag_regexp="yes"/>
</equivalence>
</unification>
<unification feature="persona">
<equivalence type="primera">
<token postag="(P.|V.{3})[10].*" postag_regexp="yes"/>
</equivalence>
<equivalence type="segunda">
<token postag="(P.|V.{3})[20].*" postag_regexp="yes"/>
</equivalence>
<equivalence type="tercera">
<token postag="(P.|V.{3})[30].*" postag_regexp="yes"/>
</equivalence>
</unification>
<category id="CASING" name="Mayúsculas y minúsculas" type="typographical">
<rule id="MIN_MESES" name="Meses en minúscula">
<pattern case_sensitive="yes">
<token negate_pos="yes" postag="SENT_START"/>
<marker>
<token regexp="yes">Enero|Febrero|Marzo|Abril|Mayo|Junio|Julio|Agosto|Septiembre|Octubre|Noviembre|Diciembre</token>
</marker>
</pattern>
<message>Los meses del año se escriben en minúsculas: <suggestion><match case_conversion="alllower" no="2"/></suggestion>.</message>
<url>http://www.rae.es/consultas/mayuscula-o-minuscula-en-los-meses-los-dias-de-la-semana-y-las-estaciones-del-ano</url>
<example correction="julio" type="incorrect">En <marker>Julio</marker> hace mucho calor.</example>
<example type="correct">El pasado <marker>diciembre</marker> estuve en Andorra.</example>
</rule>
<rule id="MIN_DIAS_SEMANA" name="Días de las semana en minúscula">
<antipattern>
<token regexp="yes">Lunes|Martes|Miércoles|Jueves|Viernes|Sábado|Domingo</token>
<token regexp="yes">de(l)*</token>
<token regexp="yes">[A-ZÁÉÍÓÚÑ].+</token>
</antipattern>
<pattern case_sensitive="yes">
<token negate_pos="yes" postag="SENT_START"/>
<marker>
<token regexp="yes">Lunes|Martes|Miércoles|Jueves|Viernes|Sábado|Domingo</token>
</marker>
<token negate="yes">Santo</token>
</pattern>
<message>Los días de la semana se escriben en minúsculas: <suggestion><match case_conversion="alllower" no="2"/></suggestion>.</message>
<url>http://www.rae.es/consultas/mayuscula-o-minuscula-en-los-meses-los-dias-de-la-semana-y-las-estaciones-del-ano</url>
<example correction="lunes" type="incorrect">Todos los <marker>Lunes</marker> son tristes.</example>
<example type="correct">Los <marker>martes</marker> juego un partido de tenis.</example>
<example type="correct">Este <marker>Viernes</marker> de Dolores estaremos fuera.</example>
<example type="correct">El <marker>Jueves</marker> Santo habrá procesión.</example>
</rule>
<rule id="MIN_ESTACIONES" name="Estaciones del año en minúscula">
<pattern case_sensitive="yes">
<token negate_pos="yes" postag="SENT_START"/>
<marker>
<token regexp="yes">Primavera|Verano|Otoño|Invierno</token>
</marker>
</pattern>
<message>Las estaciones del año se escriben en minúsculas: <suggestion><match case_conversion="alllower" no="2"/></suggestion>.</message>
<url>http://www.rae.es/consultas/mayuscula-o-minuscula-en-los-meses-los-dias-de-la-semana-y-las-estaciones-del-ano</url>
<example correction="verano" type="incorrect">Este <marker>Verano</marker> me voy de vacaciones.</example>
<example type="correct">Ha sido el <marker>invierno</marker> más frío que recuerdo.</example>
</rule>
</category>
<category id="TYPOS" name="Ortografía (tipográficos)" type="misspelling">
<rule id="USO_HUSO" name="uso/huso horario">
<pattern>
<marker>
<token inflected="yes">uso</token>
</marker>
<token inflected="yes">horario</token>
</pattern>
<message>Error ortográfico.</message>
<suggestion><match no="1" postag="(NC.*)" postag_regexp="yes" postag_replace="$1">huso</match></suggestion>
<example correction="huso">En el <marker>uso</marker> horario de las Canarias.</example>
<example correction="husos">En otros <marker>usos</marker> horarios.</example>
</rule>
<!--AE_COMIDO Tiempos compuestos por «a» o «e» + participio-->
<rulegroup id="AE_COMIDO" name="Tiempos compuestos 'a' o 'e' + participio">
<!--A_PARTICIPIO a comido-->
<rule id="A_PARTICIPIO" name="a + participio">
<pattern>
<token><exception inflected="yes" regexp="yes">meter|ol[oe]r|sab[oe]r|gust(o|ar)|arom.+|pest.+</exception></token>
<marker>
<token>a</token>
</marker>
<token postag="V[ASM]P00SM" postag_regexp="yes"><exception regexp="yes">(gan|sold|abog|pes?c)ado|dicho|(cubi|mu)erto|partido</exception></token>
</pattern>
<message>El verbo 'haber' lleva hache: <suggestion>ha</suggestion></message>
<short>El verbo «haber» lleva hache.</short>
<example correction="ha">El atleta <marker>a</marker> corrido de forma espectacular.</example>
<example>Este bacalao huele <marker>a</marker> pescado fresco.</example>
</rule>
<!--E_PARTICIPIO e comido-->
<rule id="E_PARTICIPIO" name="e+ participio">
<pattern>
<marker>
<token>e</token>
</marker>
<token postag="V[ASM]P00SM" postag_regexp="yes"><!--Excluímos las palabras que empiezan por «i», ya que «e» puede actuar como conjunción--><exception regexp="yes">^h?[ií].* </exception></token>
</pattern>
<message>El verbo 'haber' lleva hache: <suggestion>he</suggestion></message>
<short>El verbo «haber» lleva hache.</short>
<example correction="he">Siempre <marker>e</marker> comido bien.</example>
<example>Nos llevamos como anfitrión <marker>e</marker> invitado.</example>
</rule>
<!--PRON_E_PARTICIPIO me e comido-->
<rule id="PRON_E_PARTICIPIO" name="pronombre + e + participio">
<!--Con pronombre al principio, «e» es siempre incorrecto antes de participio.-->
<pattern>
<token postag="PP.*" postag_regexp="yes"/>
<marker>
<token>e</token>
</marker>
<token postag="V[ASM]P00SM" postag_regexp="yes" regexp="yes">^h?[ií].*</token>
</pattern>
<message>El verbo 'haber' lleva hache: <suggestion>he</suggestion></message>
<short>El verbo «haber» lleva hache.</short>
<example correction="he">Nos <marker>e</marker> incluido en la lista.</example>
<example>Les <marker>he</marker> invitado.</example>
</rule>
</rulegroup>
<rule id="HA_INFINITIVO" name="*ha/a + infinitivo">
<pattern>
<marker>
<token>ha</token>
</marker>
<token postag="V.N.*|N.*|AQ.*" postag_regexp="yes"><exception postag="V.P.*" postag_regexp="yes"/><exception regexp="yes">de|menester|lugar</exception></token>
</pattern>
<message>Si es una preposición, se escribe <suggestion>a</suggestion>.</message>
<example correction="a">Lo ha vuelto <marker>ha</marker> hacer.</example>
<example correction="a">Volver <marker>ha</marker> casa.</example>
<example>Lo ha dicho.</example>
<example>Lo ha claramente dicho.</example>
<example>Ha de regarse sin falta.</example>
</rule>
<!--AH_INF ah acabar-->
<rule id="AH_INF" name="ah + infinitivo (a)">
<pattern case_sensitive="no">
<token>ah</token>
<token postag="V[ASM]N0000" postag_regexp="yes"/>
</pattern>
<message>La preposición se escribe sin h: <suggestion>a \2</suggestion>.</message>
<short>La preposición «a» se escribe sin «h»</short>
<example correction="a hablar">Voy <marker>ah hablar</marker> con ella.</example>
</rule>
<!-- HAZ_HAS Confusiones con el verbo hacer, ser y el sustantivo haz -->
<rulegroup id="HAZ_HAS" name="Hacer/ser, haz">
<!-- HAZ_PARTICIPIO Antes de un participio «Has» se escribe con «S». -->
<rule id="HAZ_PARTICIPIO">
<antipattern>
<token postag="D.*" postag_regexp="yes"/>
<token>haz</token>
</antipattern>
<pattern case_sensitive="no">
<marker>
<token>haz</token>
</marker>
<token postag="V[ASM]P00.*" postag_regexp="yes"/>
</pattern>
<message>El verbo auxiliar se escribe con «s»: <suggestion>has</suggestion>.</message>
<short>El verbo auxiliar se escribe con «s»</short>
<example correction="Has"><marker>Haz</marker> agotado mi paciencia.</example>
<example>El haz dividido se proyecta en varios sitios.</example>
</rule>
</rulegroup>
<!--VOY_HA_INF ir + ha + INF-->
<rule id="VOY_HA_INF" name="ir ha + infinitivo (a)">
<pattern>
<token inflected="yes">ir</token>
<token>ha</token>
<token postag="V[ASM]N0000" postag_regexp="yes"/>
</pattern>
<message>Esta palabra se escribe sin h: <suggestion>\1 a \3</suggestion>.</message>
<short>La preposición «a» se escribe sin «h»</short>
<example correction="Voy a hablar"><marker>Voy ha hablar</marker> con ella.</example>
</rule>
<!--VOY_INF ir + infinitivo (a)-->
<rule id="VOY_INF" name="ir + infinitivo (a)">
<pattern>
<token inflected="yes">ir<exception inflected="yes" regexp="yes">ver|ser</exception></token>
<token postag="V[ASM]N0000" postag_regexp="yes"/>
</pattern>
<message>La construcción «ir» mas infinitivo exige la presencia de la preposición «a»: <suggestion>\1 a \2</suggestion>.</message>
<short>La construcción «ir» mas infinitivo exige la presencia de la preposición «a»</short>
<example correction="Voy a hablar"><marker>Voy hablar</marker> con ella.</example>
</rule>
<rule id="ECHO_HECHO" name="*echo/hecho">
<pattern>
<token inflected="yes" regexp="yes">ser|estar|parecer|resultar|este</token>
<marker>
<token regexp="yes">echo|echa|echas</token>
</marker>
</pattern>
<message>Si es del verbo hacer, se escribe <suggestion>h\2</suggestion>.</message>
<example correction="hecho">Parece <marker>echo</marker> de madera.</example>
<example correction="hecho">Está <marker>echo</marker> de madera.</example>
<example correction="hecha">Esta <marker>echa</marker> de madera.</example>
</rule>
<!-- PRONOM_TILDE Pronombres personales con o sin tilde -->
<!-- Pronombres personales cuyo tilde se olvida o se pone impropiamente.
Atención: estas reglas pueden generar muchos falsos positivos.-->
<rulegroup id="PRONOM_TILDE" name="Pronombres personales con o sin tilde">
<short>El pronombre personal lleva tilde.</short>
<!-- TU_VERBO_P2 tu + verbo en 2a persona-->
<rule id="TU_VERBO_P2" name="Tu + verbo en 2a">
<pattern>
<marker>
<token>tu</token>
</marker>
<token postag="V.{3}2.*" postag_regexp="yes"><exception negate_pos="yes" postag="V.{3}2.*" postag_regexp="yes"/></token>
</pattern>
<message>El pronombre personal <suggestion>tú</suggestion> lleva tilde.</message>
<example correction="">Cuando <marker>tu</marker> vuelves, yo voy.</example>
<example>Me alegra tu vuelta al trabajo.</example>
</rule>
<rule id="TU_C" name="Tu + conjunción">
<pattern>
<marker>
<token>tu</token>
</marker>
<token postag="C." postag_regexp="yes"><exception>bien</exception></token>
</pattern>
<message>El pronombre personal <suggestion>tú</suggestion> lleva tilde.</message>
<example correction="">Esto queda entre <marker>tu</marker> y yo.</example>
<example>Me alegra tu a la sazón victoria.</example>
</rule>
<rule id="EL_C" name="El + conjunción">
<pattern>
<marker>
<token>el</token>
</marker>
<token postag="CC"><exception regexp="yes">bien|tanto</exception></token>
</pattern>
<message>El pronombre personal <suggestion>él</suggestion> lleva tilde.</message>
<example correction="él">Esto queda entre <marker>el</marker> y yo.</example>
<example>Me gusta el que tienes.</example>
</rule>
<!-- TU_PARTICULA_VERBO_P2 tu no te lo pierdas
Anulamos si entremedias hay al menos un nombre-->
<rule id="TU_PARTICULA_VERBO_P2" name="Tu + partícula + verbo en 2a">
<pattern>
<marker>
<token>tu</token>
</marker>
<token postag="[RPC].*|UNKNOWN" postag_regexp="yes" skip="3"><exception postag="A.*|DI0.S0" postag_regexp="yes"/><exception postag="A.*|DI0.S0" postag_regexp="yes" scope="next"/><exception regexp="yes" scope="next">[,;-_—]</exception></token>
<token postag="V.{3}2.*" postag_regexp="yes"><exception regexp="yes" scope="previous">[,;-_—]</exception><exception postag="A.*|DI0.S0" postag_regexp="yes" scope="previous"/><exception negate_pos="yes" postag="V.{3}2.*" postag_regexp="yes"/></token>
</pattern>
<message>El pronombre personal <suggestion>tú</suggestion> lleva tilde.</message>
<example correction="">Cuando <marker>tu</marker> no vuelves, yo voy.</example>
<example>Me alegra tu feliz vuelta al trabajo.</example>
</rule>
<!-- EL_VERBO_P3 El + verbo 3a persona lleva tilde-->
<rule id="EL_VERBO_P3" name="el + verbo en 3a">
<pattern case_sensitive="yes">
<marker>
<token regexp="yes">[Ee]l</token>
</marker>
<token postag="V.{3}3.*" postag_regexp="yes"><exception postag="N.*|P.*|AQ.*" postag_regexp="yes"/><exception regexp="yes">\p{Lu}.*</exception></token>
</pattern>
<message>El pronombre personal <suggestion>él</suggestion> lleva tilde.</message>
<example correction="él">Cuando <marker>el</marker> llegó, yo me fui.</example>
<example>Me alegra tu vuelta al trabajo.</example>
</rule>
<!-- TU_FINAL Tu al final de la oración. Siempre será nominativo.-->
<rule id="TU_FINAL" name="Pronombre tú al final de la oración.">
<pattern>
<marker>
<token>tu</token>
</marker>
<token postag="SENT_END" regexp="yes">[.?!;]</token>
</pattern>
<message>El pronombre personal <suggestion>tú</suggestion> lleva tilde.</message>
<example correction="">Tu hermana es como <marker>tu</marker>.</example>
<example>¿Te puedes ocupar tú?</example>
</rule>
<!-- EL_FINAL Él al final de la oración-->
<rule id="EL_FINAL" name="Pronombre sin tilde al final de la oración">
<pattern>
<marker>
<token>el</token>
</marker>
<token postag="SENT_END" regexp="yes">[.?!]</token>
</pattern>
<message>El pronombre personal <suggestion>él</suggestion> lleva tilde.</message>
<example correction="él">Se encargará <marker>el</marker>.</example>
<example>Esa caja es para él.</example>
</rule>
<!-- MI_FINAL mi al final de la oración simepre es pronombre personal. -->
<rule id="MI_TILDE" name="mi/mí">
<pattern>
<token postag="SPS00"/>
<marker>
<token>mi</token>
</marker>
<token><exception postag="N.*|A.*" postag_regexp="yes"/></token>
</pattern>
<message>Si es pronombre, se escribe con tilde.</message>
<suggestion>mí</suggestion>
<example correction="">A <marker>mi</marker> me gusta.</example>
<example correction="">Confía en <marker>mi</marker>.</example>
<example correction="">Ella estaba cerca de <marker>mi</marker>.</example>
<example>Me voy a mi casa.</example>
<example>Mi gran amigo Pedro.</example>
</rule>
</rulegroup>
<rulegroup id="ESTA_TILDE" name="*esta/está">
<antipattern>
<marker>
<token postag="SPS00"/>
<token>esta</token>
</marker>
</antipattern>
<antipattern>
<marker>
<token postag="V.[SIGN].*|V.P..SF" postag_regexp="yes"/>
<token>esta</token>
</marker>
</antipattern>
<rule>
<!-- está + participio-->
<pattern>
<marker>
<token>esta</token>
</marker>
<token min="0" postag="RG"/>
<token postag="V.P..S[FM]" postag_regexp="yes"><exception postag="NCFS000"/></token>
</pattern>
<message>Si es del verbo estar, se escribe <suggestion>está</suggestion>.</message>
<example correction="Está"><marker>Esta</marker> cansado.</example>
<example correction="Está"><marker>Esta</marker> muy cansado.</example>
<example correction="Está"><marker>Esta</marker> agotado.</example>
<example>Esta revista es antigua.</example>
<example>Esta comida es buena.</example>
<example>Al ser esta superada.</example>
<example>Siendo esta formada por varios miembros</example>
<example>cuando sea esta formada por varios miembros</example>
<!-- <example>Al verse esta superada.</example> better disambiguation needed-->
</rule>
<rule>
<!--está + gerundio-->
<pattern>
<marker>
<token>esta</token>
</marker>
<token min="0" postag="RG"/>
<token postag="V.G.*" postag_regexp="yes"><exception postag="NCFS000"/></token>
</pattern>
<message>Si es del verbo estar, se escribe <suggestion>está</suggestion>.</message>
<example correction="Está"><marker>Esta</marker> cantando.</example>
<example correction="Está"><marker>Esta</marker> siempre corriendo.</example>
<example correction="Está"><marker>Esta</marker> esperando.</example>
</rule>
<rule>
<!--está + preposición, adverbio-->
<antipattern>
<marker>
<token>en</token>
<token>realidad</token>
</marker>
</antipattern>
<pattern>
<marker>
<token>esta</token>
</marker>
<token regexp="yes">en|con|entre|aquí|ahí|allí|allá|el|la|lo|un|una|uno</token>
</pattern>
<message>Si es del verbo estar, se escribe <suggestion>está</suggestion>.</message>
<example correction="está">El niño <marker>esta</marker> en la guardería.</example>
<example correction="Está"><marker>Esta</marker> en la guardería.</example>
<example correction="Está"><marker>Esta</marker> en aquella.</example>
<example correction="está">Lo que <marker>esta</marker> aquí.</example>
<example>Sustituye a esta en la jerarquía.</example>
<example>aunque esta en realidad no lo sea</example>
<example>Tras esta en 1954</example>
<example>Ante esta en mayo</example>
<example>Finalizada esta en 1445</example>
<example>Se une con esta en sus puntos extremos</example>
<example>Al contraponer esta con aquella.</example>
<example>Se divide esta entre la suma de los pesos.</example>
<!--<example>para evitar que esta entre.</example> difficult-->
<example>siendo esta uno de los mejores ejemplos</example>
<example>es esta una de las mejores</example>
<example>por ser esta la casa matriz</example>
</rule>
<rule>
<!-- está + adjetivo-->
<antipattern>
<marker>
<token>esta</token>
<token postag="A...S.|V.P..SF" postag_regexp="yes"/>
<token postag="NCFS000"/>
</marker>
</antipattern>
<antipattern>
<marker>
<token>esta</token>
<token max="3" min="1" postag="A..[FC][SN].|V.P..SF|NCFS.*|CC" postag_regexp="yes"/>
<token postag="V.[SI].*" postag_regexp="yes"/>
</marker>
</antipattern>
<pattern>
<marker>
<token>esta</token>
</marker>
<token min="0" postag="RG"/>
<token postag="A...S." postag_regexp="yes"><exception postag="NCFS000|AO0FS0" postag_regexp="yes"/></token>
</pattern>
<message>Si es del verbo estar, se escribe <suggestion>está</suggestion>.</message>
<example correction="Está"><marker>Esta</marker> disponible.</example>
<example correction="Está"><marker>Esta</marker> muy bonito.</example>
<example correction="Está"><marker>Esta</marker> preciosa.</example>
<example correction="está">Tu cuenta <marker>esta</marker> vacía.</example>
<example>Esta preciosa y antigua casa</example>
<!-- "y" needs disambiguation -->
<example>Esta preciosa casa es muy antiga.</example>
<example>En esta tercera ocasión.</example>
<example>Esta tercera decisión fue la definitiva.</example>
<example>Esta última es la mejor</example>
<example>Esta es preciosa.</example>
</rule>
</rulegroup>
<rulegroup id="VERBO_TILDE" name="Verbos con o sin tilde">
<short>El verbo lleva tilde.</short>
<!-- LO_SE lo sé-->
<rule id="LO_SE" name="lo se (sé)">
<pattern>
<token regexp="yes">l[oae]</token>
<marker>
<token>se</token>
</marker>
</pattern>
<message>El presente de indicativo primera persona del verbo saber es <suggestion>sé</suggestion>.</message>
<example correction="">Yo lo <marker>se</marker> desde hace tiempo</example>
<example>Si lo sé, no vengo.</example>
</rule>
<!-- SE_FINAL se al final de la oración simepre es verbo. -->
<rule id="SE_FINAL" name="se al final de la oración. (sé)">
<pattern>
<marker>
<token><!--Included «lo» to avoid overlap with LO_SE rule--><exception regexp="yes" scope="previous">per|lo</exception>se</token>
</marker>
<token postag="SENT_END" regexp="yes">[.?!]</token>
</pattern>
<message>El presente de indicativo primera persona del verbo saber es <suggestion>sé</suggestion>.</message>
<example correction="">Hay quien programa, pero yo no <marker>se</marker>.</example>
<example>Hay que saber tocar y yo sé.</example>
</rule>
<!-- DE_FINAL Dé al final de la oración-->
<rule id="DE_FINAL" name="Verbo dé sin tilde al final de la oración">
<pattern>
<marker>
<token>de</token>
</marker>
<token postag="SENT_END" regexp="yes">[.?!]</token>
</pattern>
<message>El verbo <suggestion>dé</suggestion> (forma del verbo dar) lleva tilde.</message>
<example correction="">No es justo que sólo yo <marker>de</marker>.</example>
<example>No es justo que sólo yo dé.</example>
</rule>
<rule id="CONTINUA" name="continua/continúa">
<pattern>
<marker>
<token>continua</token>
</marker>
<token postag="V.G.*" postag_regexp="yes"/>
</pattern>
<message>Si es un verbo, lleva tilde.</message>
<suggestion>continúa</suggestion>
<example correction="Continúa"><marker>Continua</marker> recibiendo apoyos.</example>
<example>De tensión continua.</example>
</rule>
</rulegroup>
<rulegroup id="SUSTANTIVO_TILDE" name="Verbos con o sin tilde">
<short>El sustantivo lleva tilde.</short>
<!-- TE_N: sustantivo masculino-->
<rule id="TE_N" name="té sustantivo">
<pattern>
<marker>
<token>te</token>
</marker>
<token regexp="yes">de|verde|perla|negro</token>
</pattern>
<message>El sustantivo <suggestion>té</suggestion> (bebida) lleva tilde.</message>
<short>El sustantivo «té» lleva tilde.</short>
<example correction="">El <marker>te</marker> verde japonés es muy sabroso.</example>
<example>El té verde japonés es muy sabroso.</example>
</rule>
<!-- TE_FINAL Té al final de la oración-->
<rule id="TE_FINAL" name="Sustantivo té sin tilde al final de la oración">
<pattern>
<marker>
<token>te</token>
</marker>
<token postag="SENT_END" regexp="yes">[.?!]</token>
</pattern>
<message>El sustantivo <suggestion>té</suggestion> (bebida) lleva tilde.</message>
<example correction="">Ella bebía <marker>te</marker>.</example>
<example>Ella bebía té.</example>
</rule>
</rulegroup>
<!-- SE_SABER_SER En la oración, se delante de ciertas palabras lleva tilde -->
<rule id="SE_SABER_SER" name="Se delante de ciertas palabas" type="misspelling">
<antipattern>
<token>se</token>
<token postag="(PP...0|V.[^NP]).+" postag_regexp="yes"/>
</antipattern>
<pattern>
<marker>
<token>se</token>
</marker>
<token postag="(P....[^AD]|[DRS]|V.[NP]).+" postag_regexp="yes"><exception postag="SENT_END"/><exception>hacia</exception></token>
</pattern>
<message>Si es del verbo "saber", lleva tilde.</message>
<suggestion>sé</suggestion>
<example correction="">Qué <marker>se</marker> yo.</example>
<example correction="">Pero <marker>se</marker> quién fue.</example>
<example>Ella se fue.</example>
<example>Ella se lo dijo.</example>
</rule>
<rule id="SE_HACIA" name="Se + hacia / hacía" type="misspelling">
<antipattern>
<marker>
<token>lo</token>
<token>hacia</token>
<token regexp="yes">arriba|abajo|adentro|afuera</token>
</marker>
</antipattern>
<pattern>
<token regexp="yes">[stm]e|l[aeo]s?|nos|os</token>
<marker>
<token>hacia</token>
</marker>
</pattern>
<message>Si es del verbo "hacer", lleva tilde.</message>
<suggestion>hacía</suggestion>
<example correction="hacía">Eso se <marker>hacia</marker> mal.</example>
<example correction="hacía">Eso le <marker>hacia</marker> mal.</example>
<example correction="hacía">Esa bota la <marker>hacia</marker> otra compañía.</example>
<example>Depende de lo hacia abajo que apuntes.</example>
</rule>
<rule id="MAS" name="mas/más">
<pattern>
<token>mas</token>
</pattern>
<message>Si no es conjunción (= pero, sino), lleva tilde.</message>
<suggestion>más</suggestion>
<example correction="más">No hay <marker>mas</marker>.</example>
<!-- archaic or formal <example>Me gusta, mas no lo quiero</example>-->
</rule>
<rulegroup id="AUN" name="aún/anun">
<!-- AÚN > AUN -->
<rule>
<pattern>
<marker>
<token>aún</token>
</marker>
<token>así</token>
</pattern>
<message>Solo se acentúan cuando equivale a "todavía".</message>
<suggestion>aun</suggestion>
<url>http://www.fundeu.es/recomendacion/aun-asi-y-aun-asi-no-son-lo-mismo-1130/</url>
<example correction="Aun"><marker>Aún</marker> así, lo consiguieron.</example>
<!--<example>Siguen aún así.</example>-->
</rule>
<rule>
<antipattern>
<marker>
<token regexp="yes">más|menos|mejor|peor</token>
<token min="0" postag="A.*|RG" postag_regexp="yes"/>
<token>aún</token>
</marker>
</antipattern>
<antipattern>
<marker>
<token regexp="yes">más|menos|mejor|peor</token>
<token regexp="yes">.+mente</token>
<!-- falta añadir adverbios acabaods en -mente en el tagger-->
<token>aún</token>
</marker>
</antipattern>
<pattern>
<marker>
<token>aún</token>
</marker>
<token regexp="yes">si|cuando</token>
</pattern>
<message>Solo se acentúan cuando equivale a "todavía".</message>
<suggestion>aun</suggestion>
<example correction="Aun"><marker>Aún</marker> si estas no tienen efecto.</example>
<example>Mejor aún si es así.</example>
<example>Más aún si es así.</example>
<example>Decae más rápidamente aún si nos salimos del disco.</example>
</rule>
<rule>
<pattern>
<token>ni</token>
<marker>
<token>aún</token>
</marker>
</pattern>
<message>Solo se acentúan cuando equivale a "todavía".</message>
<suggestion>aun</suggestion>
<example correction="aun">ni <marker>aún</marker> la mitad</example>
</rule>
<!-- AUN > AÚN -->
<rule>
<pattern>
<token regexp="yes">más|menos|mejor|peor</token>
<marker>
<token>aun</token>
</marker>
</pattern>
<message>Se acentúan si equivale a "todavía".</message>
<suggestion>aún</suggestion>
<example correction="aún">Más <marker>aun</marker> si estas no tienen efecto.</example>
</rule>
<rule>
<pattern>
<marker>
<token>aun</token>
</marker>
<token>no</token>
<token><exception postag="V.G.*" postag_regexp="yes"/></token>
</pattern>
<message>Se acentúan si equivale a "todavía".</message>
<suggestion>aún</suggestion>
<example correction="Aún"><marker>Aun</marker> no está claro.</example>
<example>Aun no siendo así, es fantástico.</example>
</rule>
<rule>
<pattern>
<marker>
<token>aun</token>
</marker>
<token regexp="yes">más|menos|mejor|peor</token>
<token><exception postag="V.G.*" postag_regexp="yes"/></token>
</pattern>
<message>Se acentúan si equivale a "todavía".</message>
<suggestion>aún</suggestion>
<example correction="aún">Es <marker>aun</marker> más grande de lo que pensaba.</example>
</rule>
<rule>
<pattern>
<marker>
<token>aun</token>
</marker>
<token min="0" postag="PP.*" postag_regexp="yes"/>
<token postag="V.I.*" postag_regexp="yes"><exception postag="RG|N.*" postag_regexp="yes"/></token>
</pattern>
<message>Se acentúan si equivale a "todavía".</message>
<suggestion>aún</suggestion>
<example correction="Aún"><marker>Aun</marker> pensaba que sí.</example>
<example correction="Aún"><marker>Aun</marker> se desconoce.</example>
<example>Aun enfermo, fue a la escuela.</example>
<example>Aun así, me lo pasé bien.</example>
</rule>
<rule>
<pattern>
<token postag="V.[SI].*" postag_regexp="yes"><exception postag="RG|N.*" postag_regexp="yes"/></token>
<marker>
<token>aun</token>
</marker>
<token><exception>si</exception></token>
</pattern>
<message>Se acentúan si equivale a "todavía".</message>
<suggestion>aún</suggestion>
<example correction="aún">Pensaba <marker>aun</marker> lo mismo.</example>
<example>No me importaría aun si ella no viene.</example>
</rule>
<rule id="CUAL_SIN_ACENTO" name="el *cuál/el cual">
<pattern>
<token postag="DA.*|SP.DA" postag_regexp="yes"></token>
<marker>
<token regexp="yes">cuál|cuáles</token>
</marker>
</pattern>
<message>No se acentúa.</message>
<suggestion><match no="2" regexp_match="cuál(.*)" regexp_replace="cual$1"/></suggestion>
<example correction="cual">El país del <marker>cuál</marker> vengo.</example>
<example correction="cuales">Documentos a los <marker>cuáles</marker> ha tenido acceso.</example>
<example correction="cual">Lo <marker>cuál</marker> es muy importante.</example>
<example>¿Cuál es la respuesta correcta?</example>
</rule>
</rulegroup>
<rule id="A_PUNTO_DE" name="*apunto de/a punto de">
<pattern>
<marker>
<token>apunto<exception scope="previous" regexp="yes">me|te|lo|la|le|nos|os|los|las|les</exception></token>
<token>de</token>
</marker>
<token><exception regexp="yes">manera|forma</exception></token>
</pattern>
<message>Esta locución es escribe: <suggestion>a punto de</suggestion>.</message>
<url>http://www.fundeu.es/recomendacion/a-punto-de-no-apunto-de-1427</url>
<example correction="a punto de">Estaba <marker>apunto de</marker> llegar.</example>
<example>Apunto de manera inmediata</example>
<example>Me apunto de voluntario.</example>
</rule>
<!-- ROMAN NUMERALS CHECKER : Comprobación de números romanos (adaptado de la versión catalana) -->
<rule id="ROMAN_NUMERALS_CHECK" name="comprueba números romanos">
<pattern case_sensitive="yes">
<marker>
<token regexp="yes" spacebefore="yes">[MCDXLVI]+ <exception regexp="yes">(?=.)M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})</exception> <exception postag="[RYANDV].*|.*LOC.*" postag_regexp="yes"/> <exception regexp="yes">XML|DLL</exception></token>
</marker>
</pattern>
<message>Número romano incorrecto.</message>
<example correction="">El siglo <marker>XVIIII</marker> se conoce como el "Siglo de la Industrialización".</example>
<example>El rey Felipe II fue hijo del emperador Carlos V.</example>
<example>Bienvenido al XV Congreso de Matemáticas.</example>
</rule>
</category>
<category id="CAT1" name="Ortografía (concepto)" type="grammar">
<!-- HABER_AVER Uso incorrecto de «haber» por «a ver»-->
<rulegroup id="HABER_AVER" name="Uso incorrecto de «haber» por «a ver»">
<short>Posible confusión del verbo «ver» con el verbo «haber»</short>
<!--HABER_QUE-->
<rule>
<pattern>
<token>haber</token>
<token regexp="yes">qu[eé]</token>
</pattern>
<message>Verifique que no quiso decir <suggestion>a ver qué</suggestion>.</message>
<example correction="a ver qué">Mirad esto, <marker>haber que</marker> opináis.</example>
<example>Tiene en su haber el Campeonato del Mundo.</example>
</rule>
<!--HABER_SI-->
<rule>
<pattern>
<token postag="SENT_START"/>
<marker>
<token>haber</token>
<token>si</token>
</marker>
</pattern>
<message>Verifique que no quiso decir <suggestion>a ver si</suggestion>.</message>
<example correction="A ver si"><marker>Haber si</marker> puedes arreglar esto.</example>
<example>No va a haber si se ha acabado.</example>
</rule>
</rulegroup>
<!-- Y_E_O_U confusión en el nexo -->
<rulegroup id="Y_E_O_U" name="y Italia, o Honduras">
<!-- Y_E Cambio e por y-->
<rule id="Y_E" name="e ante palabras empezando por i">
<pattern>
<token>y<exception scope="previous">¿</exception></token>
<token regexp="yes">^h?[ií].* <exception regexp="yes">^h?ih?[aeouáéóú].*</exception><!--Números romanos--><exception regexp="yes">[ivxlcdm]+</exception></token>
</pattern>
<message>Cuando precede a palabras que comienzan por «i-» (o «hi-»), la conjunción «y» se transforma en «e»: <suggestion>e <match no="2"/></suggestion></message>
<short>Cuando precede a palabras que comienzan por «i-» (o «hi-»), la conjunción «y» se transforma en «e»</short>
<example correction="e Italia">Alemania <marker>y Italia</marker> disputarán el torneo.</example>
<example>¿<marker>Y Irene</marker>?</example>
</rule>
<!-- O_U Cambio u por o-->
<rule id="O_U" name="cambio de o ante palabras empezando por o">
<pattern>
<token>o</token>
<token regexp="yes">^h?[oó].*</token>
</pattern>
<message>Cuando precede a palabras que comienzan por «o-» (u «ho-»), la conjunción «o» se transforma en «u»: <suggestion>u <match no="2"/></suggestion></message>
<short>Cuando precede a palabras que comienzan por «o-» (u «ho-»), la conjunción «o» se transforma en «u»</short>
<example correction="u Honduras">El torneo lo disputarán Alemania <marker>o Honduras</marker>.</example>
</rule>
</rulegroup>
<!-- AFRENTAR_DIFICULTADES http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_050.htm-->
<rule id="AFRENTAR_DIFICULTADES" name="afrentar dificultades o problemas (afrontar)">
<pattern>
<token inflected="yes" skip="1">afrentar</token>
<token inflected="yes" regexp="yes">dificultad|problema|vicisitud</token>
</pattern>
<message>La forma correcta es usando el verbo «afrontar»: <suggestion><match include_skipped="none" no="1" postag="(.*)" postag_replace="$1">afrontar</match> <match include_skipped="following" no="1"/> <match no="2"/></suggestion>"</message>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_050.htm</url>
<short>Confusión entre «afrontar» y «afrentar»</short>
<example correction="afrontar muchos problemas">Tuvo que <marker>afrentar muchos problemas</marker> con la mudanza.</example>
<example>Afrontaron muchas dificultades en la travesía.</example>
</rule>
<!-- DESTORNILLAR_RISA http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_015.htm-->
<rule id="DESTORNILLAR_RISA" name="destornillarse de risa (desternillarse)">
<pattern>
<token inflected="yes" skip="1">destornillar</token>
<token>de</token>
<token>risa</token>
</pattern>
<message>La forma correcta es usando el verbo «desternillar»: <suggestion><match include_skipped="none" no="1" postag="(.*)" postag_replace="$1">desternillar</match> <match include_skipped="all" no="2"/> <match no="3"/></suggestion>"</message>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_015.htm</url>
<short>Confusión entre «desternillar» y «destornillar»</short>
<example correction="desternilló de risa">Con ese chiste, se <marker>destornilló de risa</marker>.</example>
<example>Casi te desternillas de risa el otro día.</example>
</rule>
<!-- CONTRA_MAS http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_034.htm-->
<rule id="CONTRA_MAS" name="Contra más (cuanto más)">
<pattern>
<token>contra</token>
<token>más</token>
</pattern>
<message>La forma correcta es <suggestion>cuanto más</suggestion> excepto en el contexto de litigar o luchar y no en el contexto de sumar.</message>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_034.htm</url>
<short>Expresión incorrecta excepto en el contexto de luchar o litigar.</short>
<example correction="cuanto más">Seguro que <marker>contra más</marker> estudias, más aprendes</example>
<example>Cuanto más insistas, menos caso te haré.</example>
</rule>
<!-- SIN_ECUANIME confusión «sin ecuánime» «sine qua non» -->
<rule id="SIN_ECUANIME" name="sin ecuánime (sine qua non)">
<pattern>
<token inflected="yes" regexp="yes">condición|requisito</token>
<token>sin</token>
<token>ecuánime</token>
</pattern>
<message>La forma correcta es <suggestion>\1 sine qua non</suggestion>.</message>
<short>Confusión entre «sine qua non» y «sin ecuánime»</short>
<example correction="condición sine qua non">Para aprobar, la <marker>condición sin ecuánime</marker> es obtener un 5.</example>
<example>Es condición sine qua non tener permiso para entrar en el local.</example>
</rule>
<rule id="CONFUSION_AL_LA" name="confusión al/la">
<pattern>
<marker>
<token>al</token>
</marker>
<token postag="NCF.*" postag_regexp="yes"><exception postag="NCM.*|SPS00|C." postag_regexp="yes"/><exception regexp="yes">habla|agua|águila|arma|alba|haya</exception></token>
</pattern>
<message>Posible error de concordancia.</message>
<suggestion>la</suggestion>
<example correction="la">El presidente de <marker>al</marker> República italiana.</example>
<example>Al final</example>
<example>Estamos al habla.</example>
<example>Cayó al agua.</example>
</rule>
</category>
<category id="GRAMMAR" name="Gramática" type="grammar">
<rule id="PREPOSICION_VERBO" name="Combinación imposible: preposición + verbo conjugado">
<antipattern>
<marker>
<token regexp="yes">desde|hasta|de</token>
<token regexp="yes">hace|hacía</token>
</marker>
</antipattern>
<pattern>
<token postag="SPS00|SP\+DA" postag_regexp="yes"><exception postag="CS|A.*|RG" postag_regexp="yes"/></token>
<token max="3" min="0" postag="DA.*|PP3..A.*|PP[123]C[SP]000|P0[123].*" postag_regexp="yes"/>
<token postag="V.[MSI].*" postag_regexp="yes" regexp="yes">[\p{Ll}]+<exception negate_pos="yes" postag="V.[MSI].*" postag_regexp="yes"/><exception>verse</exception></token>
</pattern>
<message>Combinación imposible: preposición + verbo conjugado.</message>
<example correction=""><marker>en informa</marker>.</example>
<example correction=""><marker>con el informa</marker>.</example>
<example correction=""><marker>del informa</marker>.</example>
<example correction=""><marker>de cantaba</marker>.</example>
<example correction=""><marker>al encontrase</marker> ésta en baja.</example>
<example correction=""><marker>De lo debemos</marker> a él.</example>
<example>de cantar</example>
<example>Entre ellos están la llama</example>
<example>según anunció un portavoz</example>
<example>no volvieron a verse más</example>
<!-- It needs better disambiguation: verse (v. ver, v. versar)-->
<example>al encontrarse ésta en baja</example>
<example>Cuanto más bajo se encuentre el sol</example>
<example>El papel de las arqueas</example>
<example>El sobre contenía información</example>
</rule>
<rule id="SURGIR_EFECTO" name="*surgir/surtir efecto">
<pattern>
<marker>
<token inflected="yes">surgir</token>
<token>efecto</token>
</marker>
</pattern>
<message>Expresión incorrecta.</message>
<suggestion><match no="1" postag="(V.*)" postag_regexp="yes" postag_replace="$1">surtir</match> efecto</suggestion>
<url>http://castellanoactual.com/surtir-o-surgir-efecto/</url>
<example correction="surtió efecto">No <marker>surgió efecto</marker>.</example>
<example>No surtió efecto.</example>
</rule>
<!-- EN_BASE_A En base a -> con base en (o basado en) (o sobre la base de) (http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_039.htm)-->
<rule id="EN_BASE_A" name="en base a">
<pattern>
<token>en</token>
<token>base</token>
<token>a</token>
</pattern>
<message>Es preferible usar otra expresión.</message>
<suggestion>basándonos en</suggestion>
<suggestion>basándose en</suggestion>
<suggestion>con base en</suggestion>
<suggestion>sobre la base de</suggestion>
<suggestion>en relación con</suggestion>
<suggestion>según</suggestion>
<suggestion>por</suggestion>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_039.htm</url>
<example correction="basándonos en|basándose en|con base en|sobre la base de|en relación con|según|por">Se puede regresar a la zona <marker>en base a</marker> lo expuesto por las autoridades.</example>
<example>Se ha reducido la cadencia de los trenes basándose en la estadistica elaborada.</example>
</rule>
<!-- DE_GRATIS (http://lema.rae.es/dpd/srv/search?key=gratis)-->
<rule id="DE_GRATIS" name="«de gratis» (gratis)">
<pattern case_sensitive="no">
<token>de</token>
<token>gratis</token>
</pattern>
<message>La forma correcta es decir <suggestion>gratis</suggestion> o <suggestion>de balde</suggestion>.</message>
<url>http://lema.rae.es/dpd/srv/search?key=gratis</url>
<short>Confusión entre dos formas equivalentes</short>
<example>El agua es gratis.</example>
<example correction="gratis|de balde">El agua es <marker>de gratis</marker>.</example>
</rule>
<!-- DEQUEISMO_QUEISMO Dequeísmo y queísmo: utilización incorrecta de DE + QUE
Fuentes: http://cvc.cervantes.es/ALHABLA/MUSEO_HORRORES/museo_010.htm -->
<rulegroup id="DEQUEISMO_QUEISMO" name="Queísmos y dequeismos" type="grammar">
<short>Posible dequeísmo.</short>
<!--INF_PP_QUE Queísmo: convenceros que -> convenceros de que -->
<rule id="INF_PP_QUE" name="Infinitivo tipo convencer + pron.pers + que">
<pattern>
<token regexp="yes">(alegrar|enterar|informar|dudar|convencer|hartar|quejar|protestar)(me|te|l[ea][s]?|se|nos|os)</token>
<token>que</token>
</pattern>
<message>En este contexto, el verbo va seguido normalmente de la preposición 'de': <suggestion>\1 de \2</suggestion></message>
<url>http://cvc.cervantes.es/ALHABLA/MUSEO_HORRORES/museo_010.htm</url>
<example correction="alegrarse de que">Está bien <marker>alegrarse que</marker> haya dinero para todos.</example>
<example>No pareces <marker>enterarte de que</marker> todo está resuelto.</example>
</rule>
<!-- ESTAR_SEGURO_QUE Queísmo: Estoy seguro que -> Estoy seguro de que -->
<rule id="ESTAR_SEGURO_QUE" name="Estar + seguro + que">
<pattern>
<token inflected="yes"><exception postag="VAIP3S0"/>estar</token>
<token inflected="yes" regexp="yes">seguro|alegre|triste|entristecer|sorprender|convencer|agobiar|preocupar|harto|cansar|aburrir</token>
<token>que</token>
</pattern>
<message>En este contexto, el verbo va seguido normalmente de la preposición 'de': <suggestion>\1 \2 de \3</suggestion></message>
<url>http://cvc.cervantes.es/ALHABLA/MUSEO_HORRORES/museo_010.htm</url>
<short>Posible queísmo.</short>
<example correction="Estamos seguros de que"><marker>Estamos seguros que</marker> falta poco para acabar.</example>
<example><marker>Está segura de que</marker> lo que decís es cierto.</example>
</rule>
<!-- PP_V_QUE Queísmo: me alegro que -> me alegro de que -->
<rule id="PP_V_QUE" name="PP + verbo tipo alegrar + que">
<pattern>
<token postag="PP[12]C[SP]000" postag_regexp="yes"/>
<token inflected="yes" regexp="yes">alegrar|sorprender|entristecer|agobiar|emocionar|aburrir|preocupar<exception postag="VM..3.." postag_regexp="yes"/></token>
<token>que</token>
</pattern>
<message>En este contexto, el verbo va seguido normalmente de la preposición 'de': <suggestion>\1 \2 de que</suggestion></message>
<url>http://cvc.cervantes.es/ALHABLA/MUSEO_HORRORES/museo_010.htm</url>
<short>Posible queísmo.</short>
<example correction="Nos alegramos de que"><marker>Nos alegramos que</marker> haya comida para todos</example>
<example>Fue cuando <marker>os enterasteis de que</marker> se acabó la temporada.</example>
</rule>
<!-- VERBO_DE_QUE Queísmo: Pienso de que -> Pienso que -->
<rule id="VERBO_DE_QUE" name="verbo tipo pensar + de que">
<pattern>
<token inflected="yes" regexp="yes">pensar|opinar|creer|comentar|expresar|decir|deducir|inferir|colegir|razonar|comunicar|confirmar|corroborar|desmentir|constar|resultar|aconsejar|ver|observar<exception>razones</exception></token>
<token>de</token>
<token>que</token>
</pattern>
<message>Posible dequeísmo: <suggestion>\1 \3</suggestion>.</message>
<url>http://cvc.cervantes.es/ALHABLA/MUSEO_HORRORES/museo_010.htm</url>
<example correction="Pienso que"><marker>Pienso de que</marker> estamos mejorando mucho.</example>
<example>Creemos <marker>que</marker> podemos mejorar más.</example>
</rule>
<!-- ESTAR_CLARO_DE_QUE Queísmo: Está claro de que -> Está claro que -->
<rule id="ESTAR_CLARO_DE_QUE" name="Verbo tipo estar + AQ + de que">
<pattern>
<token inflected="yes" regexp="yes">ser|estar|encontrar|ver|entender</token>
<token postag="RG|AQ.*" postag_regexp="yes"><exception inflected="yes" regexp="yes">seguro|libre|consciente|harto</exception></token>
<token>de</token>
<token>que</token>
</pattern>
<message>Posible dequeísmo: <suggestion>\1 \2 \4</suggestion>.</message>
<url>http://cvc.cervantes.es/ALHABLA/MUSEO_HORRORES/museo_010.htm</url>
<example correction="Es fácil que"><marker>Es fácil de que</marker> volvamos a encontrarnos</example>
<example><marker>Encontrarás útil que</marker> hayan cambiado el cartel</example>
</rule>
<!-- V3_DE_QUE Dequeísmo: Me alegra de que -> Me alegra que -->
<rule id="V3_DE_QUE" name="Verbo en 3a + de que">
<pattern>
<token postag="PP[123]C[SP][0D]00" postag_regexp="yes"/>
<token regexp="yes">alegra|entristece|agobia|importa|resbala|harta|emociona|altera|aburre|falta|preocupa</token>
<token>de</token>
<token>que</token>
</pattern>
<message>Posible dequeísmo: <suggestion>\1 \2 \4</suggestion>.</message>
<url>http://cvc.cervantes.es/ALHABLA/MUSEO_HORRORES/museo_010.htm</url>
<example correction="Me alegra que"><marker>Me alegra de que</marker> volvamos a encontrarnos</example>
<example><marker>Me entristece que</marker> hayan cambiado el cartel</example>
</rule>
<!-- INSISTIR_DE_QUE Dequeísmo: Insisto de que -> Insisto en que -->
<rule id="INSISTIR_DE_QUE" name="Verbo tipo insistir + de que">
<pattern>
<token inflected="yes">insistir</token>
<token>de</token>
<token>que</token>
</pattern>
<message>Posible dequeísmo: <suggestion>\1 en \3</suggestion>.</message>
<url>http://cvc.cervantes.es/ALHABLA/MUSEO_HORRORES/museo_010.htm</url>
<example correction="insistas en que">No <marker>insistas de que</marker> vayamos al cine</example>
<example><marker>Inisitieron en que</marker> les faltaba un documento.</example>
</rule>
</rulegroup>
<rule id="DADO_A_QUE" name="*dado a que/dado que">
<pattern>
<token>dado</token>
<token>a</token>
<token>que</token>
</pattern>
<message>Expresión incorrecta.</message>
<suggestion>dado que</suggestion>
<url>http://lema.rae.es/dpd/srv/search?id=cucx2A8WkD6ImAtPsX#4</url>
<example correction="dado que">Hay que esperar turno, <marker>dado a que</marker> en muchas ciudades la oferta es menor.</example>
</rule>
<!--DETRAS_PX http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_025.htm-->
<rulegroup id="DETRAS_PX" name="Adverbio de posición + posesivo">
<short>Los posesivos nunca pueden acompañar a los adverbios.</short>
<!--1ª Singular: detrás mío.-->
<rule>
<pattern>
<token regexp="yes">&adverbio_lugar;</token>
<token postag="PX1.S0S0" postag_regexp="yes"/>
</pattern>
<message>La expresión correcta es «<suggestion>\1 de <match no="2" postag="PX(\d).S0S0" postag_regexp="yes" postag_replace="PP$1CSO00">mí</match></suggestion>».</message>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_025.htm</url>
<example correction="detrás de mí">Venían <marker>detrás mío</marker>.</example>
<example>Tengo a los niños encima de mí.</example>
</rule>
<!--2ª Singular: debajo tuyo/tuya-->
<rule>
<pattern>
<token regexp="yes">&adverbio_lugar;</token>
<token postag="PX2.S0S0" postag_regexp="yes"/>
</pattern>
<message>La expresión correcta es «<suggestion>\1 de <match no="2" postag="PX(\d).S0S0" postag_regexp="yes" postag_replace="PP$1CSO00">ti</match></suggestion>».</message>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_025.htm</url>
<example correction="detrás de ti">Venían <marker>detrás tuyo</marker>.</example>
<example>Tienes a los niños encima de ti.</example>
</rule>
<!--1ª plural: delante nuestro/a.-->
<rule>
<pattern>
<token regexp="yes">&adverbio_lugar;</token>
<token postag="PX1.S0P0" postag_regexp="yes"/>
</pattern>
<message>La expresión correcta es «<suggestion>\1 de nosotros</suggestion>» o «<suggestion>\1 de nosotras</suggestion>».</message>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_025.htm</url>
<example correction="detrás de nosotros|detrás de nosotras">Venían <marker>detrás nuestro</marker>.</example>
<example>Tenemos a los niños encima de nosotros.</example>
</rule>
<!--2ª plural: cerca vuestro/a-->
<rule>
<pattern>
<token regexp="yes">&adverbio_lugar;</token>
<token postag="PX2.S0P0" postag_regexp="yes"/>
</pattern>
<message>La expresión correcta es «<suggestion>\1 de vosotros</suggestion>» o «<suggestion>\1 de vosotras</suggestion>».</message>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_025.htm</url>
<example correction="detrás de vosotros|detrás de vosotras">Venían <marker>detrás vuestro</marker>.</example>
<example>Tenemos a los niños encima de vosotros.</example>
</rule>
<!--3ª: detrás suyo-->
<rule>
<pattern>
<token regexp="yes">&adverbio_lugar;</token>
<token postag="PX3.{2}0C0" postag_regexp="yes"/>
</pattern>
<message>La expresión correcta es «<suggestion>\1 de él</suggestion>» o «<suggestion>\1 de ella</suggestion>» o «<suggestion>\1 de ello</suggestion>» o «<suggestion>\1 de ellos</suggestion>» o «<suggestion>\1 de ellas</suggestion>» o «<suggestion>\1 de usted</suggestion>» o «<suggestion>\1 de ustedes</suggestion>».</message>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_025.htm</url>
<example correction="detrás de él|detrás de ella|detrás de ello|detrás de ellos|detrás de ellas|detrás de usted|detrás de ustedes">Venían <marker>detrás suya</marker>.</example>
<example>Tienen a los niños encima de ellos.</example>
</rule>
</rulegroup>
<!--http://roble.pntic.mec.es/acid0002/index_archivos/Gramatica/imperativo.htm
cantad [cantar/VMM02P0]
cantéis[cantar/VMSP2P0]
ven [venir/VMM02S0
vengas[venir/VMSP2S0]-->
<!--NO_IMPERATIVO No + imperativo-->
<rule id="NO_IMPERATIVO" name="no + imperativo">
<pattern>
<token regexp="yes">no|nunca|jamás</token>
<token postag="VMM.*" postag_regexp="yes"><exception negate_pos="yes" postag="VMM.*" postag_regexp="yes"/></token>
</pattern>
<message>Con la partícula negativa \1, en lugar del imperativo \2 debe usarse el subjuntivo <suggestion>\1 <match no="2" postag="VMM.(.{3})" postag_regexp="yes" postag_replace="VMSP$1"/></suggestion>.</message>
<url>http://roble.pntic.mec.es/acid0002/index_archivos/Gramatica/imperativo.htm</url>
<short>Con sentido negado, en lugar del imperativo debe emplearse el subjuntivo.</short>
<example correction="No contéis"><marker>No contad</marker> con nosotros.</example>
<example>Nunca contéis conmigo.</example>
</rule>
<rule id="ID_HUBO_HUBIERON" name="Uso incorrecto del plural del verbo haber">
<antipattern>
<marker>
<token inflected="yes" postag="V.[IS].3P." postag_regexp="yes">haber</token>
</marker>
<token postag="(L_)?RG|PP2CP00P|PP3[MF]P000" postag_regexp="yes"/>
<token postag="V.P.+" postag_regexp="yes"/>
</antipattern>
<antipattern>
<marker>
<token inflected="yes" postag="V.[IS].3P." postag_regexp="yes">haber</token>
</marker>
<!-- TODO: correct next token when -mente adverbs are tagged -->
<token regexp="yes">de|.+mente</token>
<!-- TODO: activate next commented token when pronominal and reflexive forms are tagged -->
<!-- <token postag_regexp="yes" postag="V.N0000"/> -->
</antipattern>
<pattern>
<marker>
<token inflected="yes" postag="V.[IS].3P." postag_regexp="yes">haber<exception>han</exception></token>
<!-- "han" no se usa como plural de "hay"-->
</marker>
<token regexp="yes">.+<exception postag="V.P.+|PP3.*|UNKNOWN" postag_regexp="yes"/></token>
</pattern>
<message>Se conjuga el verbo Haber en plural para la tercera persona sólo si va seguido del participio de un verbo. <suggestion><match no="1" postag="V(.{3})3P(.)" postag_regexp="yes" postag_replace="V$13S$2"/></suggestion></message>
<short>Verbo haber en plural sin participio.</short>
<example correction="Hubo"><marker>Hubieron</marker> varios disparos</example>
<example correction="Había"><marker>Habían</marker> como mínimo cinco.</example>
<example>Hubo varios disparos</example>
<example>Hubiera sido peor si no vienen.</example>
<example>Ellos habían nacido para jugar.</example>
<example>De la dinastía Han.</example>
</rule>
<rule id="HABER_GERUNDIO" name="han *realizando/realizado">
<pattern>
<token inflected="yes" postag="VA.*" postag_regexp="yes">haber<exception>hay</exception></token>
<marker>
<token postag="V.*" postag_regexp="yes"><exception postag="V.P..SM|[^V].*|VMP0000" postag_regexp="yes"/></token>
</marker>
</pattern>
<message>Falta un participio o la preposición 'de'.</message>
<suggestion><match no="2" postag="V.P..SM" postag_regexp="yes"/></suggestion>
<suggestion>de <match no="2" postag="V.N.*" postag_regexp="yes"/></suggestion>
<example correction="realizado|de realizar">No se han <marker>realizando</marker>.</example>
<example correction="realizado|de realizar">No se han <marker>realizar</marker>.</example>
<example correction="defendido|de defender">Habían <marker>defendiendo</marker> el resultado.</example>
<example correction="encontrado|de encontrar">Se han <marker>encontraron</marker> indicios.</example>
<example correction="considerado|de considerar">Se han <marker>consideran</marker> indicios.</example>
<example>Entre lo que hay consideramos que sí.</example>
<example>Habían considerado la cuestión.</example>
<example>Que haya malentendidos.</example>
<example>Había como mínimo cinco.</example>
<example>Allí no ha llovido.</example>
</rule>
<!--PP_SE: te se -> se te-->
<rule id="PP_SE" name="te se, me se">
<pattern>
<token postag="PP.CS[0D]00" postag_regexp="yes"/>
<token>se</token>
</pattern>
<message>El orden de las partículas debe invertirse: «<suggestion>\2 \1</suggestion>».</message>
<short>El pronombre reflexivo en 3a persona debe ir primero.</short>
<example correction="se te">¡Como te agarre, <marker>te se</marker> cae el pelo!</example>
<example>Lo agarraron y se le cayó el pelo.</example>
</rule>
<!--MAS_BUENO_MALO más + bueno/malo = mejor/peor-->
<rulegroup id="MAS_BUENO_MALO" name="más + bueno/malo (mejor/peor)">
<short>Confusión con el comparativo.</short>
<!--MAS_BUENA más buena = mejor-->
<rule id="MAS_BUENA">
<pattern>
<token>más</token>
<token inflected="yes" postag="AQ.*" postag_regexp="yes">bueno</token>
</pattern>
<message>Se utiliza el término <suggestion><match no="2" postag="AQ.{2}(.)." postag_replace="AQ0C$10">mejor</match></suggestion></message>
<example correction="mejor">Este pan está <marker>más bueno</marker> que el otro</example>
<example>Cuando una solución es la más simple es mejor que cualquier otra.</example>
</rule>
<!--MAS_MALA más mala = peor-->
<rule id="MAS_MALA">
<pattern>
<token>más</token>
<token inflected="yes" postag="AQ.*" postag_regexp="yes">malo</token>
</pattern>
<message>Se utiliza el término <suggestion><match no="2" postag="AQ.{2}(.)." postag_replace="AQ0C$10">peor</match></suggestion></message>
<example correction="peor">Este pan está <marker>más malo</marker> que el otro</example>
<example>Cuando una solución es la más complicada es peor que cualquier otra.</example>
</rule>
</rulegroup>
<!--GROSSO_MODO
http://lema.rae.es/dpd/srv/search?key=grosso-->
<rule id="GROSSO_MODO" name="A grosso modo --&gt; grosso modo">
<pattern>
<token postag="SP.*" postag_regexp="yes"/>
<token regexp="yes">gross?o</token>
<token>modo</token>
</pattern>
<message>La expresión latina <suggestion>grosso modo</suggestion> se usa sin preposición.</message>
<url>http://lema.rae.es/dpd/srv/search?key=grosso</url>
<short>La expresión latina se usa sin preposición.</short>
<example correction="grosso modo">Las cifras indican <marker>a grosso modo</marker> que la gestión es correcta.</example>
<example>La Tierra se encuentra, dicho grosso modo, a ocho minutos-luz del Sol.</example>
</rule>
<!--SIN_ENCAMBIO Sin en cambio = Sin embargo/en cambio-->
<rule id="SIN_ENCAMBIO" name="Sin en cambio --&gt; Sin embargo, en cambio">
<pattern>
<token>sin</token>
<token>en</token>
<token>cambio</token>
</pattern>
<message>Se utiliza <suggestion>en cambio</suggestion> o <suggestion>sin embargo</suggestion></message>
<short>fusión errónea de dos expresiones distintas.</short>
<example correction="en cambio|sin embargo">Imagino que <marker>sin en cambio</marker> está de acuerdo.</example>
<example>La Tierra se encuentra, en cambio, a ocho minutos-luz del Sol.</example>
</rule>
<!--SI_QUIERA Si quiera = siquiera-->
<rule id="SI_QUIERA" name="Si quiera--&gt; Siquiera">
<pattern>
<token>si</token>
<token>quiera</token>
</pattern>
<message>Se utiliza <suggestion>siquiera</suggestion></message>
<short>Separación incorrecta del adverbio o conjunción.</short>
<example correction="siquiera">Imagino que ni <marker>si quiera</marker> está de acuerdo.</example>
<example>La que sí quiera, puede venir.</example>
</rule>
<rulegroup id="SINO_SI_NO" name="sino/si no">
<antipattern>
<marker>
<token regexp="yes">o|y</token>
<token min="0">,</token>
<token>si</token>
<token>no</token>
</marker>
</antipattern>
<rule>
<!-- TODO: This rule needs better disambiguation of nouns/verbs after "sino/si no"-->
<antipattern>
<marker>
<token>si</token>
<token>no</token>
<token>?</token>
</marker>
</antipattern>
<pattern>
<token postag="RN|PT.*" postag_regexp="yes" skip="-1"><exception regexp="yes">como|cuando</exception><exception regexp="yes" scope="next">sino|porque</exception></token>
<marker>
<token>si<exception scope="previous">como</exception></token>
<token skip="-1">no<exception postag="V.[MSI].*" postag_regexp="yes" scope="next"/></token>
</marker>
<token postag="SENT_END|_PUNCT.*" postag_regexp="yes"/>
</pattern>
<message>Posible confusión.</message>
<suggestion>sino</suggestion>
<example correction="sino">No lo hizo él <marker>si no</marker> su primo.</example>
<example correction="sino">No lo hizo él <marker>si no</marker> su hermano.</example>
<example>No iré si no para de llover.</example>
</rule>
<rule>
<pattern>
<marker>
<token skip="2">sino<exception regexp="yes" scope="next">que|también|porque|como|cómo|donde|qué|quien|quién|si|quienes|quiénes|,|;|cuando|según</exception></token>
</marker>
<token postag="V.[^NGP].*" postag_regexp="yes"><exception negate_pos="yes" postag="V.[^NGP].*" postag_regexp="yes"/></token>
</pattern>
<message>Posible confusión.</message>
<suggestion>si no</suggestion>
<example correction="Si no"><marker>Sino</marker> vienes, será peor.</example>
<example correction="si no">¿Qué podía hacer <marker>sino</marker> quería resignarme?</example>
<example>No es así, sino de otra manera.</example>
</rule>
<rule>
<pattern>
<token postag="RN|PT.*" postag_regexp="yes" skip="-1"><exception postag="RN|PT.*" postag_regexp="yes" scope="next"/></token>
<marker>
<token>si</token>
<token>no</token>
</marker>
<token regexp="yes">que|también|porque|donde|como|cuando|quien|quién|quienes|quiénes</token>
</pattern>
<message>Posible confusión.</message>
<suggestion>sino</suggestion>
<example correction="sino">No quiero que venga, <marker>si no</marker> que no vuelva por aquí.</example>
</rule>
<rule>
<pattern>
<token postag="SENT_START" skip="-1"><exception regexp="yes" scope="next">no|ni|ninguno|ninguna|nadie|nunca|raramente|sin|tampoco</exception><exception postag="RN|PT.*" postag_regexp="yes" scope="next"/></token>
<marker>
<token>sino</token>
</marker>
</pattern>
<message>Posible confusión.</message>
<suggestion>si no</suggestion>
<example correction="si no">La mayoría, <marker>sino</marker> todas, son tóxicas.</example>
<example>Él no solo es valiente sino sabio.</example>
<example>Ninguna de las dos entidades puede existir, sino en relación con el Otro.</example>
</rule>
</rulegroup>
</category>
<category id="CAT2" name="Concordancia" type="inconsistency">
<rule id="LAS_NUMBER_MALE" name="'las tres preceptos' etcétera">
<pattern>
<marker>
<token>las</token>
</marker>
<token postag="Z"/>
<token postag="NCMP000"/>
</pattern>
<message>concordancia gramatical</message>
<suggestion>los</suggestion>
<example correction="los">Cumplir dos de <marker>las</marker> tres preceptos.</example>
</rule>
<rule id="LOS_NUMBER_FEMALE" name="'los tres preguntas' etcétera">
<pattern>
<marker>
<token>los</token>
</marker>
<token postag="Z"/>
<token postag="NCFP000"/>
</pattern>
<message>concordancia gramatical</message>
<suggestion>las</suggestion>
<example correction="las">Cumplir dos de <marker>los</marker> tres preguntas.</example>
</rule>
<rule id="ALGUNA_OTRO" name="'alguna otro' -&gt; 'alguna otra'">
<pattern>
<token>alguna</token>
<marker>
<token>otro</token>
</marker>
</pattern>
<message>concordancia gramatical</message>
<suggestion>otra</suggestion>
<example correction="otra">Alguna <marker>otro</marker> error de ortografía</example>
</rule>
<!--CONC_NUM Concordancias de número-->
<rulegroup id="CONC_NUM" name="Concordancias de número">
<!-- Exclusiones deliberadas:
Las formas estilísticas adjetivo + nombre (casos S->P y P->S)
Razón: Son costosas (x2) y poco comunes para justificar su inclusión.
TODO: Incluir una categoría por defecto desactivada con esas reglas.
No se sintetiza porque es muy difícil saber la intención del autor y más que ayudar puede despistar.
TODO: Simplificar con desambiguación.
TODO: sugerencias múltiples-->
<short>Concordancia de número dudosa.</short>
<antipattern>
<marker>
<token>lo</token>
<token postag="AQ.*" postag_regexp="yes"/>
<token>que</token>
</marker>
</antipattern>
<rule id="LO_LOS" name="confusión lo/los">
<pattern>
<marker>
<token>lo</token>
</marker>
<token postag="N..P.*|AQ..P.|V.P..P." postag_regexp="yes"><exception postag="V.[SI].*" postag_regexp="yes"/></token>
</pattern>
<message>Posible error de concordancia.</message>
<suggestion>los</suggestion>
<example correction="los">a favor de <marker>lo</marker> acreedores.</example>
<example correction="los">a favor de <marker>lo</marker> azulados.</example>
<example>¿Por qué lo preguntas?</example>
<example>Lo eres tú.</example>
<example>Lo pequeños que son.</example>
</rule>
<!-- DET_NOM_SING Concordancia (el pavos) -->
<rule id="DET_NOM_SING" name="Concordancia singular en Determinante + nombre">
<pattern case_sensitive="yes">
<token postag="D.{3}S.*" postag_regexp="yes"><exception postag="DI0CS0"/></token>
<token postag="N.{2}P.*" postag_regexp="yes"><!--TODO: Include adjectives: N.{2}P.*|AQ.{2}P. --><exception negate_pos="yes" postag="N.{2}P.*" postag_regexp="yes"/><exception regexp="yes">[Bb]otones|\p{Lu}\p{L}*</exception></token>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\2».</message>
<example correction="">Acércame <marker>la sillas</marker>, por favor.</example>
<example>Acércame las sillas, por favor.</example>
</rule>
<!-- DEL_NOM_SING Concordancia (del pavos) -->
<rule id="DEL_NOM_SING" name="Concordancia singular en «del» + nombre">
<pattern case_sensitive="yes">
<token regexp="yes">del|al</token>
<token postag="N.{2}P.*" postag_regexp="yes"><!--TODO: Include adjectives: N.{2}P.*|AQ.{2}P. --><exception negate_pos="yes" postag="N.{2}P.*" postag_regexp="yes"/><exception regexp="yes">\p{Lu}\p{L}*</exception></token>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\2».</message>
<example correction="">Ha vuelto <marker>del parques</marker> pronto.</example>
<example>Ha vuelto del parque pronto.</example>
</rule>
<!-- DET_NOM_PLUR Concordancia (los pavo) -->
<rule id="DET_NOM_PLUR" name="Concordancia plural en Determinante + nombre">
<pattern case_sensitive="yes">
<token postag="D.{3}P.*" postag_regexp="yes"/>
<token postag="N.{2}S.*" postag_regexp="yes"><!--TODO: Include adjectives: N.{2}S.*|AQ.{2}S. --><exception negate_pos="yes" postag="N.{2}S.*" postag_regexp="yes"/><exception regexp="yes">\p{Lu}\p{L}*</exception></token>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\2».</message>
<example correction="">Ordenamos <marker>las silla</marker> por colores.</example>
<example>Ordenamos las sillas por colores.</example>
</rule>
<!-- NOM_ADJ_SINGULAR Concordancia (pavo rojos) -->
<rule id="NOM_ADJ_SINGULAR" name="Concordancia singular Nombre + adjetivo">
<pattern case_sensitive="yes">
<marker>
<token postag="N.{2}S.*" postag_regexp="yes" skip="1"><exception postag="C.*|SP.*" postag_regexp="yes" scope="previous"/><exception postag="[VRCD].*|SP.*" postag_regexp="yes"/><exception regexp="yes">mayoría|minoría|parte|número|mitad|vez|modo|manera|guisa|forma</exception><exception postag="N.*" postag_regexp="yes" scope="next"/><exception regexp="yes" scope="next">[^\p{L}].*|al|del|suficientemente</exception></token>
<token postag="A.{3}P.*" postag_regexp="yes"><exception postag="[VRCD].*|SP.*" postag_regexp="yes" scope="previous"/><exception postag="D.*|SP.*" postag_regexp="yes"/><exception regexp="yes">\p{Lu}\p{L}+|juntos</exception></token>
</marker>
<token postag=".+" postag_regexp="yes"><exception postag="N.{2}P.*" postag_regexp="yes" scope="current"/></token>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\2».</message>
<example correction="">Hay <marker>silla rojas</marker> en esa tienda.</example>
<example>Hay sillas verdes en esa tienda.</example>
</rule>
<!-- NOM_ADJ_PLURAL Concordancia (pavos rojo) -->
<rule id="NOM_ADJ_PLURAL" name="Concordancia plural Nombre + adjetivo">
<pattern case_sensitive="yes">
<marker>
<token postag="N.{2}P.*|P.{3}P.*" postag_regexp="yes" skip="1"><exception postag="SP.*" postag_regexp="yes" scope="previous"/><exception regexp="yes">\p{Lu}\p{L}*</exception><exception negate_pos="yes" postag="N.{2}P.*|P.{3}P.*" postag_regexp="yes"/><exception inflected="yes" postag="" regexp="yes">me|nos|mí|conmigo|ti|contigo|lo|le|les|se|consigo|la|do</exception><exception regexp="yes">botones|veces</exception><exception regexp="yes" scope="next">[^\p{L}].*|al|del</exception></token>
<token postag="A.{3}S.*" postag_regexp="yes"><exception postag="[VRCD].*|SP.*" postag_regexp="yes" scope="previous"/><exception scope="previous">del</exception><exception postag="R.*|SP.*" postag_regexp="yes"/><exception regexp="yes">clave|guía|extra|\p{Lu}\p{L}+</exception></token>
</marker>
<token postag=".+" postag_regexp="yes"><exception postag="C.*" postag_regexp="yes" regexp="yes">[;,]</exception></token>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\2».</message>
<example correction="">Pintaremos las <marker>sillas verde</marker> de otro color.</example>
<example>Pintaremos las sillas verdes de otro color.</example>
</rule>
<!-- LAS_CASAS Concordancia (las casa) -->
<rule id="Las_Casa" name="las casa">
<pattern>
<token regexp="yes">las|los</token>
<marker>
<token>casa</token>
</marker>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\2».</message>
<example correction="">Las <marker>casa</marker> de la colina.</example>
<example>Las casas de la colina.</example>
</rule>
</rulegroup>
<!-- CONC_GENERO Concordancias de género -->
<rulegroup id="CONC_GENERO" name="Concordancias de género">
<!-- Exclusiones deliberadas:
Las formas estilísticas adjetivo + nombre (casos M->F y F->M)
Razón: Son costosas (x2) y poco comunes para justificar su inclusión.
TODO: Incluir una categoría por defecto desactivada con esas reglas.
El grupo completo se ha copiado del de concordancias de género,
sustituyendo S y P por F y M respectivamente y ajustando los textos
y las posiciones.
TODO: Simplificar con desambiguación.
TODO: Realizar sugerencias múltiples.
-->
<short>Concordancia de género dudosa.</short>
<!-- DET_NOM_FEM Concordancia (la pavo) -->
<rule id="DET_NOM_FEM" name="Concordancia femenino en Determinante + nombre">
<pattern case_sensitive="yes">
<token postag="D.{2}F.*" postag_regexp="yes"/>
<token postag="N.{1}M.*" postag_regexp="yes"><exception negate_pos="yes" postag="N.{1}M.*" postag_regexp="yes" scope="current"/><exception regexp="yes">botones|\p{Lu}\p{L}*</exception><exception inflected="yes" regexp="yes">la|do|número</exception></token>
</pattern>
<message>Posible falta de concordancia de género entre «\1» y «\2».</message>
<example correction="">Me gusta <marker>esa teléfono</marker> para ti.</example>
<example>Me gusta ese coche para ti.</example>
</rule>
<!-- DET_FEM_NOM_FEM Palabras que empiezan por fonema A tónico. -->
<rule id="DET_FEM_NOM_FEM" name="Palabras que empiezan por fonema A tónico">
<pattern case_sensitive="no">
<token>la</token>
<!--Eliminado "alta" por tener valor femenino y masculino.-->
<token regexp="yes">aura|ágata|ágora|águila|álgebra|áncora|ánfora|ánima|área|árnica|acta|afta|agua|aguasal|aguaviva|ala|alba|alga|algia|alma|alza|ama|anca|ancla|ansia|ara|arca|archa|aria|arma|arpa|arria|arte|asa|ascua|asma|aspa|asta|aula|ave|aya|haba|habla|hacha|hada|hambre|hampa|haya</token>
</pattern>
<message>Antes de una palabra que empieza por "a" o "ha" tónicas, se emplea el determinante masculino: <suggestion>el \2</suggestion>.</message>
<short>Determinante incorrecto.</short>
<example correction="el agua">Me gusta <marker>la agua</marker> que hay ahí.</example>
<example>Me gusta el agua que hay ahí.</example>
</rule>
<!-- DET_NOM_MASC Concordancia (ese pava) -->
<rule id="DET_NOM_MASC" name="Concordancia masculino en Determinante + nombre">
<pattern case_sensitive="yes">
<token postag="D[^P].{1}M.*" postag_regexp="yes"><exception regexp="yes">[Ee]l|(([Aa]l|[Nn]in)g)?[Uuú]n</exception><exception postag="R.*" postag_regexp="yes"/></token>
<token postag="N.{1}F.*" postag_regexp="yes"><exception negate_pos="yes" postag="N.{1}F.*" postag_regexp="yes" scope="current"/><exception regexp="yes">\p{Lu}\p{L}*</exception></token>
</pattern>
<message>Posible falta de concordancia de género entre «\1» y «\2».</message>
<example correction="">Me gusta <marker>ese silla</marker> que hay ahí.</example>
<example>Me gusta esa silla que hay ahí.</example>
</rule>
<!-- EL_NOM_MASC Concordancia (el pava) -->
<!-- La última excepción es para evitar solapamiento con EL_AGRAVANTE -->
<rule id="EL_NOM_MASC" name="Concordancia masculino en «el» + nombre">
<pattern case_sensitive="yes">
<token postag="DA0MS0"/>
<token postag="N.{1}F.*" postag_regexp="yes"><exception negate_pos="yes" postag="N.{1}F.*" postag_regexp="yes" scope="current"/><exception regexp="yes">\p{Lu}\p{L}*|aura|ágata|ágora|águila|álgebra|áncora|ánfora|ánima|área|árnica|acta|afta|agua|aguasal|aguaviva|ala|alba|alga|algia|alma|alta|alza|ama</exception><exception regexp="yes">anca|ancla|ansia|ara|arca|archa|aria|arma|arpa|arria|arte|asa|ascua|asma|aspa|asta|aula|ave|aya|haba|habla|hacha|hada|hambre|hampa|haya</exception><exception regexp="yes">a(grav|tenu)ante</exception></token>
</pattern>
<message>Posible falta de concordancia de género entre «\1» y «\2».</message>
<example correction="">Me gusta <marker>el silla</marker> que hay ahí.</example>
<example>Me gusta esa silla que hay ahí.</example>
</rule>
<!-- DEL_NOM_MASC Concordancia (del pava)-->
<rule id="DEL_NOM_MASC" name="Concordancia masculino en «del» + nombre">
<pattern case_sensitive="yes">
<token regexp="yes">[Dd]el|[Aa]l</token>
<token postag="N.{1}F.*" postag_regexp="yes"><exception postag="AQ.*|N.{1}M.*|SP.*" postag_regexp="yes" scope="current"/><exception regexp="yes">\p{Lu}\p{L}*|aura|ágata|ágora|águila|álgebra|áncora|ánfora|ánima|área|árnica|acta|afta|agua|aguasal|aguaviva|ala|alba|alga|algia|alma|alta|alza|ama</exception><exception regexp="yes">anca|ancla|ansia|ara|arca|archa|aria|arma|arpa|arria|arte|asa|ascua|asma|aspa|asta|aula|ave|aya|haba|habla|hacha|hada|hambre|hampa|haya</exception></token>
</pattern>
<message>Posible falta de concordancia de género entre «\1» y «\2».</message>
<example correction=""><marker>Del silla</marker></example>
<example>Del paso</example>
</rule>
<!-- NOM_ADJ_FEM Concordancia (pava rojo) -->
<rule id="NOM_ADJ_FEM" name="Concordancia femenino Nombre + adjetivo">
<pattern case_sensitive="yes">
<token/>
<marker>
<token postag="N.{1}F.*|PD0F.*" postag_regexp="yes" skip="1"><exception postag="SP.*|C." postag_regexp="yes" scope="previous"/><!--Previously excluded C.*|SP.*|R.* without negated POS--><exception negate_pos="yes" postag="N.{1}F.*|PD0F.*" postag_regexp="yes"/><exception regexp="yes">\p{Lu}\p{L}*|\w</exception><exception inflected="yes" regexp="yes">mayoría|minoría|mitad|parte|vez|era|eres</exception><exception postag="[NVRCD].*|SP.*|PR.*" postag_regexp="yes" scope="next"/><exception regexp="yes" scope="next">\W*</exception><exception regexp="yes" scope="next">del|al</exception></token>
<token postag="A.{2}M.*" postag_regexp="yes"><exception regexp="yes">\p{Lu}\p{L}+|juntos</exception></token>
</marker>
<token postag=".+" postag_regexp="yes"><exception postag="N.{1}M.*" postag_regexp="yes" scope="current"/></token>
</pattern>
<message>Posible falta de concordancia de género entre «\2» y «\3».</message>
<example correction="">La <marker>silla feo</marker> está al fondo.</example>
<example>La silla roja está al fondo</example>
</rule>
<!-- NOM_ADJ_MASC Concordancia (pavo roja) -->
<rule id="NOM_ADJ_MASC" name="Concordancia masculino Nombre + adjetivo">
<pattern case_sensitive="yes">
<marker>
<token postag="N.{1}M.*|P.{2}M.*" postag_regexp="yes" skip="1"><exception negate_pos="yes" postag="N.{1}M.*|P.{2}M.*" postag_regexp="yes"/><exception>dos</exception><exception regexp="yes" scope="next">[^\p{L}]+</exception><exception postag="[VCD].*|SP.*" postag_regexp="yes" scope="next"/></token>
<token postag="A.{2}F.*" postag_regexp="yes"><exception regexp="yes">\p{Lu}\p{L}+</exception><exception postag="N.*" postag_regexp="yes"/></token>
</marker>
<token postag=".+" postag_regexp="yes"><exception postag="N.{1}F.*" postag_regexp="yes" scope="current"/></token>
</pattern>
<message>Posible falta de concordancia de género entre «\1» y «\2».</message>
<example correction="">El <marker>sillón roja</marker> está al fondo.</example>
<example>El sillón rojo está al fondo.</example>
</rule>
<!-- CADA_UNA_DE_LOS Concordancia (Concordancia M/F) -->
<rule id="CADA_UNA_DE_LOS" name="Concordancia «Cada una de los»">
<pattern case_sensitive="no">
<token postag="SENT_START"/>
<token>cada</token>
<token>una</token>
<token>de</token>
<token>los</token>
</pattern>
<message>Posible falta de concordancia de género entre «\3» y «\5».</message>
<short>Concordancia de género dudosa en la forma distributiva cada... de...</short>
<example correction=""><marker>Cada una de los</marker> caballeros está ocupado.</example>
<example>Cada uno de los caballeros está ocupado.</example>
</rule>
<!-- CADA_UNO_DE_LAS Concordancia (Concordancia F/M) -->
<rule id="CADA_UNO_DE_LAS" name="Concordancia «Cada una de las»">
<pattern case_sensitive="no">
<token postag="SENT_START"/>
<token>cada</token>
<token>uno</token>
<token>de</token>
<token>las</token>
</pattern>
<message>Posible falta de concordancia de género entre «\3» y «\5».</message>
<short>Concordancia de género dudosa en la forma distributiva cada... de...</short>
<example correction=""><marker>Cada uno de las</marker> damas está ocupada.</example>
<example>Cada una de las damas está ocupada.</example>
</rule>
<!-- EL_AGRAVANTE Concordancia (este atenuante) -->
<!-- Esta regla solapaba a EL_NOM_MASC en algunos casos y se añade una excepción para evitarlo -->
<rule id="EL_AGRAVANTE" name="El agravante y el atenuante">
<pattern>
<token postag="D..M.." postag_regexp="yes"/>
<token inflected="yes" regexp="yes">a(grav|tenu)ante</token>
</pattern>
<message>En Derecho, «\2» tiene tratamiento femenino, ya que se omite la palabra «circunstancia».<suggestion><match no="1" postag="(D..)M(..)" postag_regexp="yes" postag_replace="$1F$2"/></suggestion></message>
<example correction="la">Se hizo con <marker>el agravante</marker> de nocturnidad.</example>
<example correction="la">En este caso concurre <marker>el atenuante</marker> del pronto pago.</example>
</rule>
</rulegroup>
<!--Concordancias con verbos-->
<!--CONC_V_PERSONA Concordancia de persona-->
<rulegroup id="CONC_V_PERSONA" name="Concordancia de persona">
<!--Concordancica de persona (pronombre personal nominativo + verbo)
TODO: Simplificar con desambiguación
TODO: Ofrecer sugerencias múltiples-->
<short>Concordancia de persona dudosa.</short>
<!-- PP_V_1 Concordancia (yo entregas)-->
<rule id="PP_V_1" name="Concordancia 1ª persona">
<pattern>
<token postag="PP1(.{2}N|CN0|MP0).*" postag_regexp="yes"><exception postag="SP.*" postag_regexp="yes" scope="previous"/><exception postag="V.{3}1.*|C.*|SP.*" postag_regexp="yes"/></token>
<token postag="V.{3}[23].*" postag_regexp="yes"><exception postag="V.{3}1.*|AQ.*" postag_regexp="yes"/></token>
</pattern>
<message>Posible falta de concordancia de persona entre «\1» y «\2».</message>
<example correction=""><marker>Yo vienes</marker></example>
<example>Yo vengo</example>
</rule>
<!-- PP_V_2 Concordancia (tú entrego)-->
<rule id="PP_V_2" name="Concordancia 2ª persona">
<pattern case_sensitive="no">
<token postag="PP2(.{2}N|CN0|MP0).*" postag_regexp="yes"><exception postag="SP*" postag_regexp="yes" scope="previous"/></token>
<token postag="V.{3}[13].*" postag_regexp="yes"><exception postag="AQ.*|SP.*" postag_regexp="yes"/><!--TODO: generalizar.--><exception regexp="yes">como|una|obra</exception></token>
</pattern>
<message>Posible falta de concordancia de persona entre «\1» y «\2».</message>
<example correction=""><marker>Tú vengo</marker></example>
<example>Tú vienes</example>
</rule>
<!-- PP_V_3 Concordancia (él entrego)-->
<rule id="PP_V_3" name="Concordancia 3ª persona">
<pattern case_sensitive="no">
<token postag="PP3(.*000|CN0|MP0).*" postag_regexp="yes"><exception postag="SP.*" postag_regexp="yes" scope="previous"/></token>
<token postag="V.{3}[12].*" postag_regexp="yes"><exception postag="V.{3}3.*|C.*|SP.*" postag_regexp="yes"/><exception postag="V.{3}3.*|AQ.*|[NCR].*" postag_regexp="yes"/></token>
</pattern>
<message>Posible falta de concordancia de persona entre «\1» y «\2».</message>
<example correction=""><marker>Él vengo</marker></example>
<example>Él viene</example>
</rule>
<!-- PP_V_SINGULAR Concordancia singular (él vienen)-->
<rule id="PP_V_SINGULAR" name="Concordancia singular Nombre + verbo">
<!-- Eliminados sustantivos y otros pronombres por elevado número de falsos positivos. -->
<pattern>
<token postag="PP.{2}S.*" postag_regexp="yes"><exception postag="SP.*|C.*|PT.*" postag_regexp="yes" scope="previous"/><exception negate_pos="yes" postag="PP.{2}S.*" postag_regexp="yes"/><exception postag="PP.C.[0D]00" postag_regexp="yes"/></token>
<token postag="V.{4}P.*" postag_regexp="yes"/>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\2».</message>
<example correction=""><marker>Yo venimos</marker></example>
<example>Yo vengo</example>
</rule>
<!-- PP_V_PLURAL Concordancia (ellos viene)-->
<rule id="PP_V_PLURAL" name="Concordancia plural Nombre + verbo">
<!-- Eliminados los sustantivos y otros pronombres por exceso de falsos positivos.-->
<pattern>
<token postag="PP.{2}P.*" postag_regexp="yes"><exception postag="SP.*|CS.*|PT.*" postag_regexp="yes" scope="previous"/> <exception postag="AQ.*|V.*|PP[12]C.000|PP3.{2}[AD]00" postag_regexp="yes"/></token>
<token postag="V.{4}S.*" postag_regexp="yes"><exception negate_pos="yes" postag="V.*" postag_regexp="yes"/></token>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\2».</message>
<example correction="">sólo <marker>ellos vuela</marker> por el cielo</example>
<example>aviones vuelan</example>
</rule>
</rulegroup>
</category>
<category default="off" id="CAT3" name="Concordancia predicativa" type="inconsistency">
<!-- SUJ_PRED_ATRIB_SINGULAR Concordancia (pavo es rojos) -->
<rule id="SUJ_PRED_ATRIB_SINGULAR" name="Concordancia de sujeto y predicado en singular en oraciones atributivas">
<pattern case_sensitive="yes">
<token postag="N.{2}S.*|P.{3}S.*" postag_regexp="yes" skip="1"><exception scope="previous">del|al</exception><exception postag="SP.*|C.*" postag_regexp="yes" scope="previous"/><exception postag="PP.C.[DO0]00|R.*|C.*|SP.*" postag_regexp="yes"/><exception regexp="yes">mayoría|minoría|parte|número</exception><exception postag="[NC].*" postag_regexp="yes" scope="next"/></token>
<token inflected="yes" regexp="yes" skip="1"><exception regexp="yes" scope="previous">[^\w].*|se</exception><exception postag="C.*|SP.*" postag_regexp="yes" scope="previous"/><exception postag="C.*|SP.*" postag_regexp="yes" scope="next"/>ser|parecer</token>
<token postag="N.{2}P.*|A.{3}P.*" postag_regexp="yes"><exception postag="V.*" scope="previous"/><exception postag="SP.*|[CDRV].*" postag_regexp="yes"/></token>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\3».</message>
<short>Concordancia de número dudosa.</short>
<example correction="">Esa <marker>cortina parece suaves</marker></example>
<example>Los aviones son azules</example>
</rule>
<!-- SUJ_PRED_ATRIB_PLURAL Concordancia (pavos es rojo) -->
<rule id="SUJ_PRED_ATRIB_PLURAL" name="Concordancia de sujeto y predicado en número en oraciones atributivas">
<pattern>
<token postag="N.{2}P.*|P.{3}P" postag_regexp="yes" skip="1"><exception postag="SP.*" postag_regexp="yes" scope="previous"/><exception>botones</exception><exception postag="PP.C.[DO0]00" postag_regexp="yes"/><exception postag="[NC].*" postag_regexp="yes" scope="next"/></token>
<token inflected="yes" regexp="yes" skip="1"><exception regexp="yes" scope="previous">[^\w].*|se</exception><exception postag="VM[NG]0000" postag_regexp="yes" scope="next"/>ser|estar|parecer</token>
<token postag="N.{2}S.*|A.{3}S.*" postag_regexp="yes"><exception postag="SP.*|[CD].*" postag_regexp="yes" scope="previous"/><exception postag="SP.*|[CDRV].*" postag_regexp="yes"/></token>
</pattern>
<message>Posible falta de concordancia de número entre «\1» y «\3».</message>
<short>Concordancia de número dudosa.</short>
<example correction="">Las <marker>cortinas parecen suave</marker></example>
<example>Los aviones son azules</example>
</rule>
<!-- SUJ_PRED_ATRIB_FEM Concordancia (pava es rojo)-->
<rule id="SUJ_PRED_ATRIB_FEM" name="Concordancia de sujeto y predicado en femenino en oraciones atributivas">
<!--*Quitados los pronombres: Eso es cal-->
<pattern>
<token postag="N.{1}F.*" postag_regexp="yes" skip="1"><exception postag="SP.*" postag_regexp="yes" scope="previous"/><exception postag="[RC].*" postag_regexp="yes"/><exception postag="[NC].*" postag_regexp="yes" scope="next"/></token>
<token inflected="yes" regexp="yes" skip="2"><exception regexp="yes" scope="previous">[^\w].*|se</exception>ser|parecer</token>
<token postag="A.{2}M.*" postag_regexp="yes"><exception postag="SP.*|[CDRV].*" postag_regexp="yes"/><exception regexp="yes">la|do</exception></token>
</pattern>
<message>Posible falta de concordancia de género entre «\1» y «\3».</message>
<short>Concordancia de género dudosa.</short>
<example correction="">La <marker>cortina es amarillo</marker></example>
<example>Los aviones son amarillos</example>
</rule>
<!-- SUJ_PRED_ATRIB_MASC Concordancia (pavo es roja) -->
<rule id="SUJ_PRED_ATRIB_MASC" name="Concordancia de sujeto y predicado en masculino en oraciones atributivas">
<pattern>
<token postag="N.{1}M.*" postag_regexp="yes" skip="1"><exception postag="RN"/><exception regexp="yes">botones|la|do</exception><exception postag="N.*|CS" postag_regexp="yes" scope="next"/></token>
<token inflected="yes" regexp="yes" skip="2"><exception regexp="yes" scope="previous">[^\w].*|se</exception>ser|estar|parecer</token>
<token postag="A.{2}F.*" postag_regexp="yes"><exception postag="SP.*|[CDRV].*" postag_regexp="yes"/></token>
</pattern>
<message>Posible falta de concordancia de género entre «\1» y «\3».</message>
<short>Concordancia de género dudosa.</short>
<example correction=""><marker>Este es amarilla</marker></example>
<example>La avioneta será costosa</example>
</rule>
</category>
<category id="CAT4" name="Estilo" type="style">
<rule id="A_NIVEL_DE" name="a nivel de">
<antipattern>
<marker>
<token>nivel</token>
<token>de</token>
<token min="0" postag="D.*" postag_regexp="yes"/>
<token regexp="yes">tierra|mar|agua|galería|tejado|terraza</token>
</marker>
</antipattern>
<pattern>
<token>a</token>
<token>nivel</token>
<token>de</token>
</pattern>
<message>En sentido figurado es preferible usar otras expresiones.</message>
<suggestion>en el ámbito de</suggestion>
<suggestion>en cuanto a</suggestion>
<suggestion>a escala de</suggestion>
<suggestion>en</suggestion>
<suggestion>entre</suggestion>
<suggestion>en la esfera de</suggestion>
<suggestion>en el terreno de</suggestion>
<suggestion>en lo relativo a</suggestion>
<suggestion>en términos de</suggestion>
<url>http://www.fundeu.es/recomendacion/a-nivel-de-usos-correctos-e-incorrectos-1054/</url>
<example correction="En el ámbito de|En cuanto a|A escala de|En|Entre|En la esfera de|En el terreno de|En lo relativo a|En términos de"><marker>A nivel de</marker> actores.</example>
<example>A nivel de mar.</example>
</rule>
<rule id="OROGRAFIA_DEL_TERRENO" name="redundancia: orografía del terreno">
<pattern>
<token>orografía</token>
<token>del</token>
<token>terreno</token>
</pattern>
<message>Redundancia.</message>
<suggestion>orografía</suggestion>
<url>http://www.fundeu.es/recomendacion/orografia-del-terreno-expresion-redundante-60/</url>
<example correction="orografía">La <marker>orografía del terreno</marker> complica las tareas de extinción.</example>
</rule>
<!-- LOOR : La forma preferida es OLOR (http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_014.htm)-->
<rule id="LOOR" name="Loor de multitudes">
<pattern>
<token>loor</token>
<token>de</token>
<token>multitudes</token>
</pattern>
<message>Se prefiere la expresion «<suggestion>olor de multitudes</suggestion>».</message>
<url>http://cvc.cervantes.es/lengua/alhabla/museo_horrores/museo_014.htm</url>
<short>Expresión incorrecta.</short>
<example correction="olor de multitudes">Entraron en <marker>loor de multitudes</marker></example>
<example>Entraron en olor de multiitudes</example>
</rule>
<!--ELLOS_ELLAS: El neutro en español se forma igual que el masculino (http://lema.rae.es/dpd/srv/search?id=Tr5x8MFOuD6DVTlDBg#21)-->
<rulegroup id="ELLOS_ELLAS" name="Redundancias no sexistas incorrectas">
<short>Redundancia. El neutro es suficiente.</short>
<!-- TODAS_Y_TODOS : Primero ellas y luego ellos, sin partículas-->
<rule id="TODAS_Y_TODOS" name="Redundancia neutro - femenino + masculino">
<pattern>
<token postag="(P.|N).FP.+" postag_regexp="yes"/>
<token postag="CC"><exception>sino</exception></token>
<token><match no="0" postag="(P.|N)(.)F(.+)" postag_regexp="yes" postag_replace="$1$2M$3"/></token>
</pattern>
<message>Posible redundancia. Si no se quiere remarcar la diferencia de género, es suficiente con <suggestion>\3</suggestion>.</message>
<url>http://lema.rae.es/dpd/srv/search?id=Tr5x8MFOuD6DVTlDBg#21</url>
<example correction="todos">Hemos llegado <marker>todas y todos</marker></example>
<example>Defenderemos a nuestros compañeros.</example>
</rule>
<!-- TODOS_Y_TODAS : Primero ellos y luego ellas, sin partículas-->
<rule id="TODOS_Y_TODAS" name="Redundancia neutro - masculino + femenino">
<pattern>
<token postag="(P.|N).MP.+" postag_regexp="yes"/>
<token postag="CC"><exception>sino</exception></token>
<token><match no="0" postag="(P.|N)(.)[MC](.+)" postag_regexp="yes" postag_replace="$1$2F$3"/></token>
</pattern>
<message>Posible redundancia. Si no se quiere remarcar la diferencia de género, es suficiente con <suggestion>\1</suggestion>.</message>
<url>http://lema.rae.es/dpd/srv/search?id=Tr5x8MFOuD6DVTlDBg#21</url>
<example correction="todos">Hemos llegado <marker>todos y todas</marker></example>
<example>Defenderemos a nuestros compañeros.</example>
</rule>
<!--LAS_TIAS_Y_LOS_TIOS : Primero ellas y luego ellos, con preposiciones y artículos-->
<rule id="LAS_TIAS_Y_LOS_TIOS" name="Redundancia neutro - femenino + masculino con partículas">
<pattern>
<token postag="[DS].+" postag_regexp="yes"><exception postag="P.*" postag_regexp="yes"/></token>
<token postag="(P.|N).FP.+" postag_regexp="yes"/>
<token postag="CC"><exception>sino</exception></token>
<token postag="[DS].+" postag_regexp="yes"><exception postag="P.*" postag_regexp="yes"/></token>
<token><match no="1" postag="(P.|N)(.)F(.+)" postag_regexp="yes" postag_replace="$1$2M$3"/></token>
</pattern>
<message>Posible redundancia. Si no se quiere remarcar la diferencia de género, es suficiente con <suggestion><match include_skipped="following" no="4"/> <match no="5"/></suggestion>.</message>
<url>http://lema.rae.es/dpd/srv/search?id=Tr5x8MFOuD6DVTlDBg#21</url>
<example correction="los mozos">Mira cómo se divierten <marker>las mozas y los mozos</marker></example>
<example>Queda sopa para todos los alumnos y para todas las jugadoras.</example>
</rule>
<!--LOS_TIOS_Y_LAS_TIAS : Primero ellos y luego ellas, con preposiciones y artículos-->
<rule id="LOS_TIOS_Y_LAS_TIAS" name="Redundancia neutro - masculino + femenino con partículas">
<pattern>
<token postag="[DS].+" postag_regexp="yes"><exception postag="P.*" postag_regexp="yes"/></token>
<token postag="(P.|N).[MC]P.+" postag_regexp="yes"/>
<token postag="CC"><exception>sino</exception></token>
<token postag="[DS].+" postag_regexp="yes" skip="1"><exception postag="P.*" postag_regexp="yes"/></token>
<token><match no="1" postag="(P.|N)(.)[MC](.+)" postag_regexp="yes" postag_replace="$1$2F$3"/></token>
</pattern>
<message>Posible redundancia. Si no se quiere remarcar la diferencia de género, es suficiente con <suggestion><match include_skipped="following" no="1"/> <match no="2"/></suggestion>.</message>
<url>http://lema.rae.es/dpd/srv/search?id=Tr5x8MFOuD6DVTlDBg#21</url>
<example correction="los mozos">Debemos ayudar a <marker>los mozos y las mozas</marker></example>
<example>Debemos ayudar a los alumnos.</example>
</rule>
</rulegroup>
<!-- EN_RELACION_A: La forma preferida es: en relación con o con relación a-->
<rule id="EN_RELACION_A" name="en relación a">
<pattern case_sensitive="no">
<marker>
<token>en</token>
<token>relación</token>
<token regexp="yes">a|al</token>
</marker>
</pattern>
<message>En español, la expresión «en relación a / al» no existe. Puede cambiarse por <suggestion>en relación con</suggestion>, <suggestion>con relación a</suggestion> o <suggestion>en lo que se refiere a</suggestion>.</message>
<short>En español, la expresión «en relación a» no existe.</short>
<example correction="en relación con|con relación a|en lo que se refiere a">Es muy austero <marker>en relación a</marker> su indumentaria</example>
<example>Es muy austero en relación con su indumentaria</example>
</rule>
<!-- TODO: Following rules need simplification using Regex. Lots of falsee positives due to skip -1 attr.-->
<!-- RELACIONADO_A: La forma preferida es: RELACIONADO CON-->
<rule id="RELACIONADAOS_A" name="relacionada/o/s a">
<pattern>
<marker>
<token regexp="yes">relacionad[oa]s{0,1}<exception scope="current"/></token>
<token>a</token>
</marker>
</pattern>
<message>En español, la expresión «\1 \2» no existe. Puede cambiarse por <suggestion>\1 con</suggestion>.</message>
<short>En español, la expresión «\1 \2» no existe.</short>
<example correction="relacionada con">Esa canción está <marker>relacionada a</marker> los Beatles.</example>
<example>Esa canción está relacionada con los Beatles.</example>
</rule>
<rule id="RELACIONADAOS_AL" name="relacionada/o/s al">
<pattern>
<marker>
<token regexp="yes">relacionad[oa]s{0,1}<exception scope="current"/></token>
<token>al</token>
</marker>
</pattern>
<message>En español, la expresión «\1 \2» no existe. Puede cambiarse por <suggestion>\1 con el</suggestion>.</message>
<short>En español, la expresión «\1 \2» no existe.</short>
<example correction="relacionada con el">Esa canción está <marker>relacionada al</marker> amor.</example>
<example>Esa canción está relacionada con el amor.</example>
</rule>
<rulegroup id="CONTRACORRIENTE" name=" *contracorriente, *a contra corriente">
<url>http://www.fundeu.es/recomendacion/a-contracorrienteo-contra-corriente/</url>
<rule>
<pattern>
<token><exception regexp="yes">a|la</exception></token>
<marker>
<token>contracorriente</token>
</marker>
</pattern>
<message>Expresión incorrecta.</message>
<suggestion>contra corriente</suggestion>
<suggestion>a contracorriente</suggestion>
<example correction="contra corriente|a contracorriente">Ir <marker>contracorriente</marker></example>
<example>a contracorriente</example>
</rule>
<rule>
<pattern>
<token>a</token>
<token>contra</token>
<token>corriente</token>
</pattern>
<message>Expresión incorrecta.</message>
<suggestion>contra corriente</suggestion>
<suggestion>a contracorriente</suggestion>
<example correction="contra corriente|a contracorriente">Ir <marker>a contra corriente</marker></example>
</rule>
</rulegroup>
<rule id="TAL_ES_ASI" name="*tal es así/tanto es así">
<pattern>
<token>tal</token>
<token>es</token>
<token>así</token>
<token min="0">,</token>
<token>que</token>
</pattern>
<message>Expresión incorrecta</message>
<suggestion>tanto es así que</suggestion>
<suggestion>tan es así que</suggestion>
<url>http://www.fundeu.es/recomendacion/tan-es-asi-y-no-tal-es-asi/</url>
<example correction="Tanto es así que|Tan es así que"><marker>Tal es así que</marker> los resultados fueron positivos.</example>
</rule>
</category>
<category id="CAMBIOS_NORMA" name="cambios en las normas lingüísticas">
<rule id="SOLO" name="sólo/solo">
<pattern>
<token>sólo</token>
</pattern>
<message>La tilde es innecesaria según la norma actual.</message>
<suggestion>solo</suggestion>
<suggestion>solamente</suggestion>
<suggestion>únicamente</suggestion>
<url>http://www.rae.es/consultas/el-adverbio-solo-y-los-pronombres-demostrativos-sin-tilde</url>
<example correction="solo|solamente|únicamente">Y <marker>sólo</marker> tiene tres.</example>
</rule>
<rule id="ESTE" name="éste/este">
<pattern>
<token regexp="yes">ést(e|a|os|as)</token>
</pattern>
<message>La tilde es innecesaria según la norma actual. Se puede usar en caso de ambigüedad.</message>
<suggestion><match no="1" regexp_match="(?iu)é(.*)" regexp_replace="e$1"/></suggestion>
<url>http://www.rae.es/consultas/el-adverbio-solo-y-los-pronombres-demostrativos-sin-tilde</url>
<example correction="Este"><marker>Éste</marker> es el camino.</example>
<example correction="este">En relación con <marker>éste</marker>.</example>
</rule>
</category>
</rules>