La lingüística computacional

Ando leyendo una tesis relacionada con la lingüística computacional. Es de un genio, con el que espero que colaboremos de un modo u otro, porque está claro que va a ser una referencia en este campo. Su ilusión, sus ganas y su capacidad no le llevarán a otro sitio. (Si me autoriza a escribir su nombre lo pongo…)

La lectura de su tesis, me sirve de pie para contar como veo yo la lingüística computacional, eso sí, en versión breve ;-).

Para nosotros su objeto de estudio es el lenguaje natural «as is» es decir tal y como es. El lenguaje a estudiar es tan soberano como una colonia de hormigas. No creemos que alguien pudiera decir a la colonia de hormigas que «no es lógico» que una cosa sea de esta u otra manera.

Por otra parte el objetivo, para nosotros, es entender el lenguaje natural, ¿cómo? como podamos, haciendo trampas si es preciso… Si hubiera un enano que estuviera dentro del ordenador y le diéramos la palabra y nos dijera si es sustantivo o adjetivo, o masculino y plural,para nosotros sería suficiente… Es decir si el lenguaje no creciera, evolucionara continuamente, nosotros no habríamos hecho un conjugador como onoma, hubiéramos etiquetado los verbos existentes y hubiéramos seguido nuestro camino… pero como hay nuevos verbos no nos ha quedado más remedio que crear la máquina que genera conjugaciones de verbos…

Si alguien nos diera la estructura morfológica que necesitamos, no nos habríamos metido en este berenjenal, pero como uno está continuamente creando palabras… necesitamos la máquina que dando una entrada sea capaz de decirme qué es cada cosa. ¿Y para qué la necesitamos?

Para las palabras nuevas, para las que ya sé, sólo necesito una base de datos que me devuelva la información que necesito. La cosa es que como en el caso del conjugador… necesito la máquina para las nuevas, así que utilizo las palabras antiguas para desarrollar la máquina y al final tendré una máquina para procesar todas las palabras…

Para nuestros objetivos necesitamos una precisión del 100% en las respuestas. Cuando preparábamos los artículos científicos, nuestra lingüista computacional, intentaba adecuar la estructura del artículo a los del campo, e intentaba saber estadísticamente los resultados correctos, y yo le decía… no tiene sentido esa medida en nuestro sistema. El nuestro por definición funciona al 100% porque no nos podemos permitir el lujo de que no sea así, por lo que todas las conjugaciones son correctas. Si encuentro una conjugación incorrecta tengo que modificar el sistema, ya que el lenguaje es soberano, no mi modelo…[hay un conjugador en internet que dice que tiene una fiabilidad del 95% ¿hay algún humano que se fíe del resultado o buscamos confirmar la información en otro conjugador?]

En Onoma hay reglas más o menos generales y verbos marcados específicamente porque no corresponden con las reglas. Estos son muy pocos y muy raros (o muy comunes como ser o haber). Para nosotros el objetivo es que nuestro analizador morfológico funcione al 100% y si la máquina falla con alguna palabra ¡la corregimos a mano! Con eso quiero decir que el lenguaje manda. Hay una serie de verbos absurdos en español, muy raros (con muy poco uso) y con un funcionamiento raro. Uno tiene ganas de llamar a la real academia y decir…¡arreglen esos verbos! pero al final la conclusión es que el lenguaje tiene razón…

El rendimiento del programa…. no nos interesa demasiado.  Si la máquina con las 300.000 palabras sólo la voy a ejecutar una vez, ¡Para qué queremos que sea rápida si luego solo tendremos que ejecutarlo para una palabra por minuto!…. ¿para qué necesitamos que sea tan rápido? El conjugador Onoma ¡tiene las reglas metidas en la base de datos! algo bastante inefectivo. ¿Y qué consigo con ello? Ajustarla sin tocar los programas, es decir que los lingüistas, que no tienen por qué saber programar, modifiquen el comportamiento de la máquina…. Por supuesto que de vez en cuando hay que crear una función nueva y los informáticos la crean, pero es el lingüista el que determina a qué casos y con qué parámetros se aplica…

No se puede hacer lingüística computacional sin lingüistas… si no sería sólo computacional… Los filólogos llevan al menos 500 años estudiando esta lengua, y ahora llegamos unos cuantos y decimos: «no lo que usted sabe no me interesa yo voy a hacer un algoritmo…», y claro si no encaja con el lenguaje, es que el lenguaje está mal…

Cuando manualmente hayamos hecho analizadores morfológicos para varias lenguas nos pondremos a pensar en el método automático de hacer analizadores morfológicos, pero mientras tanto los harémos a medida… si hago trajes, los 20 primeros los tengo que hacer a mano… a partir de ahí buscaré regularidades, modelos, lo que necesitamos por ahora es 100% en precisión…

En la presentación de Onoma un asistente me preguntó por qué no habíamos usado técnicas de aprendizaje automático para encontrar las reglas de Onoma… si el español lleva 1000 años en marcha y nadie ha encontrado el modelo de irregularidades hasta que lo hemos hecho nosotros…¿lo va a encontrar una máquina?… no tiene sentido.

Cuando hayamos hecho un conjugador de español, otro de portugués y otro de francés puede que seamos capaces de crear una máquina que mediante aprendizaje automático encuentre el modelo del italiano… ¿no parece más lógico?

El lenguaje no admite ningún porcentaje de error, bastante porcentaje de error proviene de la información que manejamos…

Nuestro analizador morfológico funcionará al 100% en español y al 0% en cualquier otra lengua… aquí hacemos trajes a medida no una máquina de hacer trajes automáticos, muy rápidos, pero que en realidad no le terminan de sentar bien a nadie…

A partir de ahí, llega la ¿contradicción? Creemos que el lenguaje se almacena y construye de un modo más o menos lógico en la mente, ya que no tenemos capacidad de almacenar miles de informaciones dispersas, así que tiene que haber  un sistema o un pseudosistema detrás del aparente caos. Nuestro objetivo es buscarlo y con los verbos lo hemos encontrado. Con las palabras vamos camino de encontrarlo, pero tiene toda la pinta de pasar como en el verbo, será un modelo lógico que afecte al 95% de las palabras, un modelo de excepciones que afecten al 4,9% restante, otras excepciones más extrañas que afecten al 0,09 restante y el resto habrá que meterlo a mano y rendirse a la evidencia…. es absurdo pero es así (lo bueno es que identificando esos ejemplos y regularizándolos podríamos simplificar en órdenes de magnitud el aprendizaje de la lengua, pero para eso habrá tiempo…)

Es nuestra visión particular de este asunto y la línea que seguimos…gracias a ella en un par de años podremos ofrecer a la comunidad de estudiosos un conjugador 100% efectivo, un lexicón 100% perfecto y un corpus en condiciones para trabajar con unas cantidades de información y con un coste ridículo, seguramente cero euros para los contribuyentes… ¿se puede pedir más?… pues sí, en cuanto se pueda una información semántica, de sinónimos, de etimología, de colocaciones, de morfología, de… de lo que haga falta…y se lo vamos a dar, garantizado!! ;-))

Y sobre esos cimientos la máquina que entiende el lenguaje y responde preguntas, y traduce y entiende y habla… ahí llegará lo verdaderamente divertido…

Tenemos un grupo de filólogos/lingüistas geniales y unos informáticos también geniales, los mejores mientras no se demuestre lo contrario, que hacen muy bien su trabajo. Y quizá este prometedor investigador que ha motivado este texto colabore de un modo u otro con nosotros… ¿qué más queremos?

Saludos desde el Molino!

4 ideas sobre “La lingüística computacional

  1. José dice:

    Hice una Licenciatura Inglesa con muy buenos resultados, aunque me equivoqué enormemente a la hora de elegir esta carrera. En consecuencia, tengo un trabajo que no me gusta nada.

    Con el tiempo me he dado cuenta de que lo que adoraría es la Lingüística Computacional. Siempre se me dieron bien las matemáticas y la programación, pero es que mi pasión siempre ha sido el aprendizaje de idiomas, conozco cómo funcionan gramaticalmente idiomas de muchas familias lingüísticas, como el suajili, euskera, coreano, quechua, etc.

    La pregunta que tengo mucho interés en que me respondas es: ¿qué me recomiendas estudiar para poder dedicarme profesionalmente a la lingüística computacional? (no importa el tiempo que requiera). Desde luego a mí personalmente me gustaría hacer la carrera de Informática, no tengo problemas en empezar tarde puesto que no tengo obligaciones familiares ni estoy comprando piso ni coche… :-), y soy bueno y constante en el aprendizaje.

    Y después, un master o postgrado en Lingüística Computacional, si pudiera ser en el extranjero, vi alguno que parecía atractivo en Zurich y Thübingen.

    Muchas gracias de antemano! Un saludo.

    • ebaste dice:

      José. En primer lugar decirte que es un honor que te pongas en contacto con nosotros y nos preguntes estas cosas. No te preocupes, lo mejor es saber lo que cada uno quiere hacer en cada momento y tú pareces tenerlo muy claros, y eso es lo importante.
      Podrías estudiar algunas cosas para abordar este tema, pero el problema es que hay dos orillas, la de la filología/lingüística (que suele despreciar la tecnología) y la de la computación, que suele despreciar la lengua, así que la cosa anda difícil para recomendar.
      Por otra parte por lo que cuentas tienes bastante capacidad por lo que yo, de hacer algo oficial, me apuntaría directamente a un master, pero tampoco sabría indicarte cuál.
      Me da la impresión de que la lingüística va a pasar de la alquimia a la química por lo que resulta un tanto inútil, tanto estudiar alquimia (desaparece) como química, para la que todavía no hay escuelas…
      Lo mejor es que te pases por el Molino, nos conozcas y hablemos tranquilamente de las posibilidades…

      Un abrazo y de nuevo gracias por el comentario…

      Eduardo

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.