Freeling – S3lab http://s3lab.deusto.es S3lab Security Blog Wed, 06 May 2020 12:51:35 +0000 es hourly 1 https://wordpress.org/?v=5.1.5 Servicio de análisis de frases con FreeLing http://s3lab.deusto.es/servicio-de-analisis-de-frases-con-freeling/ Tue, 07 Jul 2015 09:55:18 +0000 http://s3lab.deusto.es/?p=4117 Hace tiempo os mostramos como montar el sistema de análisis de frases FreeLing en un sistema Unix y utilizarlo con la API para Java. Hoy os traemos un nuevo servicio REST de nuestra Web para realizar este análisis sin necesidad

The post Servicio de análisis de frases con FreeLing appeared first on S3lab.

]]>
textanalysisHace tiempo os mostramos como montar el sistema de análisis de frases FreeLing en un sistema Unix y utilizarlo con la API para Java. Hoy os traemos un nuevo servicio REST de nuestra Web para realizar este análisis sin necesidad de tener montado el sistema. La idea surge de la necesidad de realizar análisis de las frases de manera rápida y desde cualquier lugar. El uso de este servicio no está necesariamente dirigido a la investigación, cualquier persona que necesite obtener que elementos componen una frase, cual es el sentido más probable de una palabra que tiene varios sentidos (ambigua) dentro del contexto de la frase o simplemente por sacar mejores notas en lenguaje, puede utilizarlo.

El objetivo es ofrecer una herramienta para el análisis de frases de fácil uso y que pueda servir para todo aquel que necesite, de alguna manera, analizar frases. En la web oficial de Freeling existe un demostrador de la herramienta para que podáis ver todo el potencial que posee. Nuestro servicio está montado sobre la versión de SVN de FreeLing, utiliza Wordnet 3.0 para la desambiguación de los elementos y también ofrece un sistema de traducción de los términos EAGLE para no tener que buscar exactamente qué significa cada elemento. El servicio REST devuelve un JSON con los análisis que, en principio, nosotros hemos necesitado en nuestras investigaciones. Además, también hemos realizado un cliente en Java que hemos dejado en github para que cualquier persona interesada pueda utilizarlo.

Un ejemplo de los resultados que ofrece con el cliente que hemos publicado es el siguiente:
Frase: ME GUSTA LA LECHE. [size:5]

Terna:ME
que es:PP1CS000
que es para humanos:PRONOMBRE
palabra raiz:ME
tipo:PERSONAL
persona:PRIMERA
genero:COMUN
numero:SINGULAR
caso:DESCONOCIDO
poseedor:DESCONOCIDO
cortes:DESCONOCIDO
estructura chunk: [grup-verb][patons][paton-s]

Terna:GUSTA
que es:VMIP3S0
que es para humanos:VERBO
palabra raiz:GUSTAR
tipo:PRINCIPAL
persona:TERCERA
genero:DESCONOCIDO
numero:SINGULAR
tiempo:PRESENTE
modo:INDICATIVO
sentidos:Experience-Mental
WSD:01777210-v
estructura chunk: [grup-verb][grup-verb][verb]

Terna:LA
que es:DA0FS0
que es para humanos:DETERMINANTE
palabra raiz:EL
tipo:ARTICULO
persona:DESCONOCIDO
genero:FEMENINO
numero:SINGULAR
poseedor:DESCONOCIDO
estructura chunk: [grup-verb][sn][espec-fs][j-fs]

Terna:LECHE
que es:NCFS000
que es para humanos:NOMBRE
palabra raiz:LECHE
tipo:COMUN
genero:FEMENINO
numero:SINGULAR
sentidos:Comestible-Liquid-Natural-Substance
WSD:07844042-n
estructura chunk: [grup-verb][sn][grup-nom-fs][n-fs]

Terna:.
que es:FP
que es para humanos:MARCAPUNTUACION
palabra raiz:.
estructura chunk: [grup-verb][F-term]

Como puede verse, da bastante información útil acerca de los términos desambiguados (códigos de Wordnet 3.0) así como del papel que desempeña el elemento dentro de la Frase. Una cosa más, este servicio, en principio, está pensado para investigaciones y pruebas. El mantenimiento lo hacemos nosotros mismos en nuestros ratos libres por lo que si os encontráis con que deja de funcionar o no responde, os agradeceríamos que nos lo dijerais para intentar solucionarlo.

Esperamos que este nuevo servicio os sirva en vuestras investigaciones.

The post Servicio de análisis de frases con FreeLing appeared first on S3lab.

]]>
FreeLing no es solo para C, con Java también habla http://s3lab.deusto.es/freeling-no-solo-es-para-c-java-tambien/ Tue, 15 Apr 2014 10:28:44 +0000 http://s3lab.deusto.es/?p=1780 A título personal, que un sistema informático pueda analizar y entender lo que estás diciendo, lo veo muy útil. Es genial poder pedir cosas a un sistema sin necesidad de escribir nada y que te comprenda. Sí, lo sé, puedo parecer un

The post FreeLing no es solo para C, con Java también habla appeared first on S3lab.

]]>
freeling

A título personal, que un sistema informático pueda analizar y entender lo que estás diciendo, lo veo muy útil. Es genial poder pedir cosas a un sistema sin necesidad de escribir nada y que te comprenda. Sí, lo sé, puedo parecer un poco vago,  pero es algo magnifico. Una vez dicho esto, os voy a comentar los pasos que sigo para realizar la instalación desde el SVN de FreeLing en Ubuntu para después utilizarlo con Java.

Todo esto que voy a detallar se hace desde la consola de comandos y teniendo instalado en el sistema el idioma inglés. No hace falta que esté seleccionado dicho idioma, solo instalado. Lo primero es instalar las librerías, programas y demás recursos que se van a utilizar. Todas ellas están en los repositorios de Ubuntu 13.10 y se pueden instalar desde aptitude o apt-get. Yo me voy a aptitude.

A fecha de abril de 2014, se debe instalar lo siguiente: build-essential automake autoconf libboost-regex-dev libicu-dev libboost-filesystem-dev libboost-program-options-dev subversion ant swig libtool libboost-thread-dev zlib1g-dev libpcre3-dev libdb6.0-dev. Las herramientas instaladas, no solo son para FreeLing, sino que también nos van a servir para la parte de Java que más adelante detallaré. Ahora creamos la carpeta de freeling donde nos dé la gana, yo normalmente la suelo poner en el escritorio para tenerla a mano para realizar pruebas y consultas, pero la podéis poner donde os venga en gana. Dentro de ella, hacemos la copia del repositorio SVN de freeling desde su sitio. Esto puede tardar un rato. Una vez que tenemos descargado la copia, tenemos que verificar si satisfacemos todas las necesidades para la instalación. Para ello, entramos dentro de la carpeta que hemos descargado, trunk, y ejecutamos autoreconf –install. Hasta la versión 2474, se hacía aclocal; libtoolize; autoconf; automake –a.

Después de este comando, ejecutamos ./configure y rezamos para que no casque nada y obtengamos el OK. Una vez que tengamos el OK vienen los pasos más largos. Ejecutamos make y como root make install. Una vez ejecutado este comando y si no ha fallado nada, ya tenemos instalado freeling en el sistema. Para comprobarlo podemos ejecutar echo “he logrado instalar el programa” | analyze –f analyze -f /usr/local/share/freeling/config/es.cfg. Este comando nos analizará la frase “he logrado instalar el programa” dándonos un resultado semejante a este:

He haber VAIP1S0 0.993808
logrado lograr VMP00SM 1
instalar instalar VMN0000 1
el el DA0MS0 1
programa programa NCMS000 0.953488

Ahora vamos a pegarnos con la parte de Java. En la carpeta de freeling que hemos creado, entramos hasta trunk/APIs/java. En esta carpeta tenemos las herramientas necesarias para generar, mediante JNI, las clases necesarias para realizar las llamadas a freeling para poder procesar las frases desde una aplicación Java. En este punto es donde necesitamos instalar el JDK de Java. Yo os recomiendo instalar el de Oracle, porque en anteriores ocasiones he tenido problemas con el openJDK, pero bueno, que cada uno elija lo que desee.

Con Java, lo de siempre, meter en el .bashrc el JAVA_HOME y, esto es importante , debemos crear, también en el .bashrc, la variable de LD_LIBRARY_PATH que apunte a /usr/local/lib y a la carpeta de freeling donde está la api de Java, trunk/APIs/java.

Una vez que ya tengamos instalado Java y creado la variable de freeling en el .bashrc, tenemos que crear la librería .jar y las clases para comunicarnos con el core de freeling. Para ello, solamente tenemos que revisar el makefile que hay en la carpeta de la api de java, poniendo bien la ruta a los ejecutables de java. Una vez creada la librería, tenemos un Analyze.java para verificar que podemos comunicarnos con freeling mediante java.

Espero que os sirva este manual para la instalación y uso de esta completa librería de Procesado de Lenguaje Natural. En mi página personal tenéis los comandos que he utilizado aquí.

The post FreeLing no es solo para C, con Java también habla appeared first on S3lab.

]]>