org.languagetool.rules.es.grammar.xml Maven / Gradle / Ivy
<?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á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="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_regexp="yes" postag="D.*"/> <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="tú">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="tú">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="tú">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="tú">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"></token> <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="mí">A <marker>mi</marker> me gusta.</example> <example correction="mí">Confía en <marker>mi</marker>.</example> <example correction="mí">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> cansada.</example> <example correction="Está"><marker>Esta</marker> muy cansada.</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 min="1" max="3" 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="sé">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="sé">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="dé">No es justo que sólo yo <marker>de</marker>.</example> <example>No es justo que sólo yo dé.</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="té">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="té">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_regexp="yes" postag="(PP...0|V.[^NP]).+"/> </antipattern> <pattern> <marker> <token>se</token> </marker> <token postag_regexp="yes" postag="(P....[^AD]|[DRS]|V.[NP]).+"><exception postag="SENT_END"/><exception>hacia</exception></token> </pattern> <message>Si es del verbo "saber", lleva tilde.</message> <suggestion>sé</suggestion> <example correction="sé">Qué <marker>se</marker> yo.</example> <example correction="sé">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> </rulegroup> <rule id="A_PUNTO_DE" name="*apunto de/a punto de"> <pattern> <marker> <token>apunto</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>se lo apunto de manera inmediata</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/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/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/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/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/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/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> </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 min="0" max="3" postag="DA.*|&pronombres_personales;" postag_regexp="yes"/> <token postag="V.[MSI].*" postag_regexp="yes" regexp="yes">[\p{Ll}]+<exception postag="V.[MSI].*" postag_regexp="yes" negate_pos="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> <short>Expresión incorrecta.</short> <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/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/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://buscon.rae.es/dpdI/SrvltConsulta?lema=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://buscon.rae.es/dpdI/SrvltConsulta?lema=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</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/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/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/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/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/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/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_regexp="yes" postag="(L_)?RG|PP2CP00P|PP3[MF]P000"/> <token postag_regexp="yes" postag="V.P.+"/> </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 postag="VA.*" postag_regexp="yes" inflected="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>realizada</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://buscon.rae.es/dpdI/SrvltConsulta?lema=grosso--> <rule id="GROSSO_MODO" name="A grosso modo --> 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://buscon.rae.es/dpdI/SrvltConsulta?lema=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 --> 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--> 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 scope="next" regexp="yes">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"></token> </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 scope="next" regexp="yes">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 postag="V.[^NGP].*" negate_pos="yes" 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 scope="next" postag="RN|PT.*" postag_regexp="yes"/></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 scope="next" regexp="yes">no|ni|ninguno|ninguna|nadie|nunca|raramente|sin|tampoco</exception><exception scope="next" postag="RN|PT.*" postag_regexp="yes"/></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' -> '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 id="CAT3" default="off" 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/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/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://buscon.rae.es/dpdI/SrvltGUIBusDPD?origen=RAE&lema=g%E9nero2#22)--> <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://buscon.rae.es/dpdI/SrvltGUIBusDPD?origen=RAE&lema=g%E9nero2#22</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://buscon.rae.es/dpdI/SrvltGUIBusDPD?origen=RAE&lema=g%E9nero2#22</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://buscon.rae.es/dpdI/SrvltGUIBusDPD?origen=RAE&lema=g%E9nero2#22</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://buscon.rae.es/dpdI/SrvltGUIBusDPD?origen=RAE&lema=g%E9nero2#22</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>Esca 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>Esca 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 tidle 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 tidle 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>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy