Freeling R&D

Freeling es una suite de analizadores lingüísticos desarrollados y mantenidos por el TALP Research Center de la Universitat Politècnica de Catalunya. Estas notas son un registro acerca del uso y desarrollo de aplicaciones  con esta herramienta.


Índice

  1. Introducción
  2. Uso
  3. Desarrollo de aplicaciones
  4. Referencias

Introducción

El presente texto ha sido escrito siendo Freeling 4 la versión actual de la librería de análisis de lenguaje natural. Como se mencionaba en la introducción de este conjunto de páginas dedicadas a Freeling (que constituyen ya por derecho propio ya un subsitio en el sitio web), muchos toman el programa de ejemplo que los creadores de la librería han desarrollado como un medio o mecanismo para trabajar o desarrollar investigaciones con esta librería. Algunos más, incluso, hacen referencia o toman a este programa de muestra como «el parser Freeling«, tomando y adaptándose a lo que ésta provee como salida. La librería, sin embargo, provee un panorama y posee una potencialidad mucho mayor, que sólo puede apreciarse haciendo uso de la librería como tal (i.e. como algo alrededor de la que deben desarrollarse aplicaciones específicas y a la medida); como algo que permita a su creador obtener lo que éste busca y evitar tener que hacer conversiones de datos, estructuras y formatos1-4.

Desarrollar aplicaciones o realizar investigaciones sobre lingüística computacional haciendo uso de Freeling requiere, idealmente, de:

  1. Conocimiento teórico de lingüística computacional.
  2. Conocimientos en lingüística
  3. Experiencia en el desarrollo de aplicaciones en C++ en Unix.
  4. Conocimientos de aprendizaje automatizado (machine learning).
  5. Conocimiento de lo que Freeling provee.

Aunque con lo  anterior no se pretende decir que uno debe ser experto en cada uno de estos temas, sí debe entenderse que se debe tener un nivel mucho mayor a uno intermedio (algo mucho mayor a meramente haber leído algunos artículos, haber ojeado algunos manuales, o haber hojeado algunos libros) en cada uno de éstos (donde «conocimientos» es de mayor peso que «experiencia»). Tanto es imprescindible saber a qué se refiere «análisis morfológico» y entender qué es lo que Freeling provee en este aspecto, como también saber como hacer uso de los módulos de Freeling desde un programa en C++ (o vía Python), estar familiarizado con el uso de comandos unix para compilación, ligado y  generación de programas ejecutables (o scripts para el caso de Python), saber cómo preparar los datos para que estos tengan sentido desde el punto de vista de un algoritmo de aprendizaje automático y poder entender lo que Freeling entrega como salida o resultados.

No hay un texto único que provea todo lo que aquí se menciona, aunque algo puede indicarse. Por ejemplo, para entender más sobre Freeling deben leerse (en el orden en que aparecen) las cuatro primeras referencias1-4 listadas en esta página y los manuales de Freeling (referencia).

Tras lo anterior, puede revisarse el tutorial de desarrollo con Freeling que el TALP – UPC Research Center mantiene en GitBooks5.

Uso

Sobre las convenciones de estilo empleadas en los ejemplo abajo citados, refiérase a nuestras guías. Similarmente, revísese nuestra declaración de responsabilidad.

Programa de muestra

Ciertamente, el programa de muestra de Freeling no es en sí «Freeling«, pero resulta muy útil para revisar las capacidades de los analizadores que la integran y familiarizarse con su utilización, por lo que vale la pena dedicarle algo de tiempo (y algunas líneas) en su uso (y descripción). Como se señalaba en la validación de la instalación, su invocación es simple:


$ export FREELING="/usr/local"
$ export FREELINGSHARE="$FREELING/share/freeling"
$ $FREELING/bin/analyze -f es.cfg
Esto es una prueba.
Esto este PD00S00 1
es ser VSIP3S0 1
una uno DI0FS0 0.951973
prueba prueba NCFS000 0.950339
. . Fp 1
<CTRL+D>
$

Los dos primeros export son para fijar las variables de ambiente que requiere el script analyze,  que sólo se requiere hacerlo una vez. Es importante mencionar que, al trabajar en forma interactiva. el programa de muestra espera la entrada de una oración completa (cosa que logra identificando el punto final de la oración). E.g.:

$ $FREELING/bin/analyze -f es.cfg
Esto es una prueba.
Esto este PD00S00 1
es ser VSIP3S0 1
una uno DI0FS0 0.951973
prueba prueba NCFS000 0.950339
. . Fp 1
<CTRL+D>
$ $FREELING/bin/analyze -f es.cfg
Esto es una prueba
.
Esto este PD00S00 1
es ser VSIP3S0 1
una uno DI0FS0 0.951973
prueba prueba NCFS000 0.950339
. . Fp 1
<CTRL+D>
$

En el segundo ejemplo, hasta introducir un punto se activó el análisis.

El programa de muestra no está limitado a trabajar en forma interactiva. La entrada de datos de STDIN puede ser redireccionada para que se tome del resultado de otro comando, lo que permite, por ejemplo:


$ echo "Esto es una prueba" | $FREELING/bin/analyze -f es.cfg
Esto este PD00S00 1
es ser VSIP3S0 1
una uno DI0FS0 0.951973
prueba prueba NCFS000 0.950339

 
$

donde puede notarse que ya no hay que introducir un CTRL+D para terminar el programa, lo que resulta útil en muchos sentidos.

Adicionalmente, el programa de muestra permite controlar (sobreescribir) algunas de las opciones declaradas en los archivos de configuración,  por lo que combinando lo arriba indicado es posible explorar más fácilmente las opciones que el programa de muestra permite hacer uso. Por ejemplo.


$ echo "Esto es una prueba" | $FREELING/bin/analyze -f es.cfg --outlv token
Esto
es
una
prueba


$ echo "Esto es una prueba" | $FREELING/bin/analyze -f es.cfg --outlv morfo
Esto este PD00S00 1
es ser VSIP3S0 1
una uno DI0FS0 0.951973 uno PI0FS00 0.0420733 1 Z 0.00586141 unir VMM03S0 3.0688e-05 unir VMSP3S0 3.0688e-05 unir VMSP1S0 3.0688e-05
prueba prueba NCFS000 0.950339 probar VMIP3S0 0.0474041 probar VMM02S0 0.00225734


$ echo "Esto es una prueba" | $FREELING/bin/analyze -f es.cfg --outlv tagged
Esto este PD00S00 1
es ser VSIP3S0 1
una uno DI0FS0 0.951973
prueba prueba NCFS000 0.950339


$

Desarrollo de aplicaciones

Algunas aplicaciones que han sido desarrolladas  con Freeling, se citan en el documento de L. Padró and E. Stanilovsky4. Para quienes se preguntan cómo desarrollar aplicaciones con Freeling, recomendaríamos revisar el tutorial de desarrollo con Freeling que el TALP – UPC Research Center mantiene en GitBooks5 pero consideramos importante tener presentes las recomendaciones que indicamos en la introducción de ésa página web.

Referencias

  1. X. Carreras and L. Padró, “A Flexible Distributed Architecture for Natural Language Analyzers,” in Proceedings of the LREC 2002 Third International Conference on Language Resources and Evaluation, 2002, pp. 1813–1817.
  2. X. Carreras, I. Chao, L. Padró, and M. Padró, “Freeling: An Open-Source Suite of Language Analyzers,” in Proceedings of the 4th Language Resources and Evaluation Conference (LREC 2004), 2004, vol. 4, pp. 239–242.
  3. L. Padró, M. Collado, S. Reese, M. Lloberes, and I. Castellón, “FreeLing 2.1: Five years of open-source language processing tools,” in Proceedings of the 7th International Conference on Language Resources and Evaluation, 2010, pp. 931–936.
  4. L. Padró and E. Stanilovsky, “FreeLing 3.0: Towards Wider Multilinguality,” in Proceedings of the Language Resources and Evaluation Conference (LREC 2012), 2012, pp. 2473–2479.
  5. «FreeLing TutorialTALP – UPC Research Center web repository at GitBooks. Visited: 2018.01.03. URL: https://talp-upc.gitbooks.io/freeling-tutorial/content/

Twitter Wordpress eMail
© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Avila
Creación: 2017.12.31
Última actualización: 2023.06.24
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto.