Detección de errores ortográficos

Desde hace un buen tiempo que vengo preguntándome cómo Firefox, LibreOffice y Thunderbird detectan los errores ortográficos mientras voy escribiendo (el clásico subrayado en rojo), ya que ¿Si LibreOffice lo hace por qué no puedo? Además lo más obvio es que ya existe algún proyecot dedicado a solucionar este problema, para evitar reinventar la rueda.

Pez raro. Raro como la búsqueda que tuve que hacer

Ufff… Este pez es tan raro como la búsqueda que tuve que hacer

Después de hacer búsquedas raras (¡No puedo creer por qué está tan “oculta” esa información en los buscadores!) pude encontrar por fin LanguageTool que se trata de una herramienta que funciona con diccionarios de mútiples idiomas y me dice qué palabras tienen errores (Además de otro tipo de problemas en los textos).

El problema a resolver

Tengo decenas de cientos de textos mal escritos. Solo necesito saber cuáles tienen más o menos errores para poder hacer una rápida selección de los “menos incorrectos” y descartar los demás.

Más tarde quiero utilizar LanguageTool para tener una interfaz fordista de corrección de errores a lo Turco Mecánico.

¿Cómo uso LanguajeTool en mi código?

1. Bajas la versión stand-alone.

2. Descomprime el .zip…

3. Ejecuta el comando (en el directorio descomprimido):

java -cp languagetool-server.jar org.languagetool.server.HTTPServer –port 8081

4. Haces una petición GET hacia:

http://localhost:8081/?language=es&text=hola+dia

Parámetros de la URL:

  • language: lenguaje en el cual está el texto.
  • text: el texto a “corregir”.

Nos va a devolver un XML como este:

<?xml version=”1.0″ encoding=”UTF-8″?>
<matches software=”LanguageTool” version=”2.2″ buildDate=”2013-06-30 18:39″>
<language shortname=”es” name=”Spanish”/>
<error fromy=”0″ fromx=”0″ toy=”0″ tox=”4″ ruleId=”UPPERCASE_SENTENCE_START” msg=”Esa frase no se inicia con mayúscula” replacements=”Hola” context=”hola dia” contextoffset=”0″ offset=”0″ errorlength=”4″ category=”Mayúsculas y minúsculas” locqualityissuetype=”typographical”/>
<error fromy=”0″ fromx=”5″ toy=”0″ tox=”8″ ruleId=”HUNSPELL_RULE” msg=”Hallado un posible error de ortografía” replacements=”día#ida#di#da#odia#dina#dita#dial#dila#dima#diga#diva#diña#ria#dio” context=”hola dia” contextoffset=”5″ offset=”5″ errorlength=”3″ category=”Posible error tipográfico” locqualityissuetype=”misspelling”/>
</matches>

Para utilizar esta información voy a leerlo con la clase SimpleXMLElement

¿Cómo resultó la solución de mi problema?

Tenía ganas de obtener un promedio de errores. Pero obtuve una desviación stándar de 20000…

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>