sábado, 16 de septiembre de 2017

petraSearch: ¡Nueva versión con un flamante modo gramatical!

La principal novedad de la versión 1.1 de petraSearch es el nuevo modo gramatical, que nos permite buscar no solo cadenas de texto, sino también secuencias de palabras con una sintaxis intuitiva y cómoda.

Para ilustrarlo con el texto de ejemplo que incluye la nueva versión de petraSearch, imaginemos que queremos saber los adjetivos que utilizó Bécquer para el sustantivo «voz» en su famosa obra «El monte de las ánimas». Solo tenemos que activar el modo gramatical pulsando el botón «G» y escribir en el cuadro de búsqueda:

voz -a%

Nos aparecerán todas las veces que aparece el sustantivo «voz» seguido de un adjetivo y, además, también veremos al final una lista con todos estos adjetivos ordenados por frecuencia:


Aparte de su utilidad para realizar estudios de estilo, esta función también resulta muy práctica cuando estamos redactando un texto y no conseguimos encontrar una palabra concreta. Por ejemplo, ¿queremos añadir un adverbio al verbo «creer» y no encontramos el que nos guste? Solo hay que activar el modo gramatical, escribir «creer -r%» y veremos una lista de los adverbios que se utilizan en los textos que nos interesan. En este sentido, esta función viene a ofrecer un diccionario de colocaciones, solo que dinámico y específico de los textos que decidamos.

Pero, ¿cómo funciona esta sintaxis? Tan solo tenemos que escribir las palabras que queremos buscar separándolas por espacios. Si en un lugar de una palabra concreta queremos especificar una categoría gramatical, basta con escribir un guión seguido de una letra para identificar la categoría en cuestión:

-v (verbo), -n (nombre), -a (adjetivo), -r (adverbio), -s (preposición), -d (determinante), etc.

Para ver la lista completa de categorías gramaticales, puedes consultar la descripción completa en la ayuda de petraREV.

Si no indicamos que queremos buscar una palabra literalmente, se buscarán todas sus posibles formas. Por ejemplo, para «decir», se buscará «digo», «dices», «dices», «decimos», etc. Para indicar que queremos buscar una única forma de una palabra, hay que precederla con un signo igual. Por ejemplo:

=dije

Busca únicamente aquellos casos en los que aparece la palabra «dije». Por tanto, es importante escribir la forma canónica de una palabra cuando queramos buscar todas sus posibles formas. Es decir, infinitivo para los verbos, singular para los nombres, etc.

Cuando queramos aceptar cualquier palabra, solo hay que escribir un punto. Por ejemplo:

noche . -a

Admite tanto «noche tan bonita» como «noche más hermosa».

Por último, cuando queramos realizar un análisis rápido de frecuencia solo tenemos que añadir un % a la palabra que nos interesa. Por ejemplo:

noche . -a%

Realiza un análisis de la frecuencia con la que aparecen los adjetivos según este patrón, pero:

noche .% -a

Realiza un análisis de la frecuencia de las palabras que aparecen entre «noche» y un adjetivo.

Dado que es la primera vez que incorporamos esta función, nos encantaría saber qué os parece y si se os ocurren mejoras que podrían mejorar su utilidad. ¡Esperamos vuestros comentarios!

jueves, 6 de julio de 2017

petraREV: Cómo crear una planificación de archivos a partir de un recuento

Aparte de las funciones para revisar traducciones, petraREV también incluye varias opciones para facilitar el trabajo de traducción. Por ejemplo, al traducir un proyecto, particularmente si se trata de uno extenso o con muchos archivos, es muy útil saber en todo momento en qué punto del proyecto estamos, es decir, cuánto hemos traducido o revisado ya y cuánto nos queda todavía pendiente. Todos los programas de traducción incorporan funciones que nos ofrecen esta información, pero con frecuencia cometen errores o son demasiado lentos. Por ejemplo, muchas veces los problemas con las penalizaciones hacen que lo que debería aparecer como texto 100% traducido se contabilice como texto al 99%, lo que puede darnos algún susto. Además, las planificaciones también son útiles para repartir el trabajo entre varios traductores o programarnos el tiempo que vamos a dedicar al proyecto.

Pero, ¿qué es una planificación? Se trata sencillamente de una hoja de cálculo donde aparece junto al nombre de cada archivo el número de palabras de cada tipo que tiene. Por ejemplo, el siguiente corresponde al recuento de un proyecto ficticio:


Gracias a las funciones de las hojas de cálculo, podemos hacemos un montón de operaciones con el recuento, como por ejemplo, dar prioridad a los archivos más pequeños o a lo más grandes y, sobre todo, asegurarnos rápidamente de que el volumen del trabajo que estamos a punto de comenzar coincide con el que nos han asignado.

Crear un recuento de este tipo con petraREV es muy fácil, basta con abrir la aplicación o, si no la hemos descargado todavía, conseguirla de manera gratuita de http://www.opentranslation.es/petrarev/descarga.htm.

Una vez abierta, basta con elegir HerramientasGestión de proyectos o, si preferimos usar el teclado, pulsar Control + O. Aparecerá el siguiente cuadro de diálogo:


Ahora debemos elegir en el cuadro de texto Archivo de recuento la ruta donde está el archivo con el recuento que hemos creado con nuestro programa de traducción asistida. Si queremos guardar el recuento, también tendremos que elegir en el cuadro de texto Archivo de plan, la ruta donde queremos que lo guarde.

Una vez especificada esta información, solo queda hacer clic en Convertir y habremos generado una completa planificación.

Una última nota, aparte de guardar el plan donde le hemos indicado, también se mostrará siempre el recuento en pantalla, de una manera similar a la siguiente:

Si preferimos este formato o tenemos cualquier problema al generar el archivo, también podemos copiar y pegar esta tabla, ya sea en una hoja de cálculo o en un procesador de textos.

Por el momento, solo se admiten esta función solo es compatible con los recuentos de algunas herramientas, pero si necesitáis algún formato en concreto, podéis escribirnos para contarnos los formatos que necesitáis.

miércoles, 7 de junio de 2017

Ya disponible la biblioteca Java del etiquetador morfosintático petraTAG

Hace ya bastante tiempo que está disponible la aplicación petraTAG, que además de permitir realizar el etiquetado morfosintáctico de cualquier texto en español, también incluye numerosas herramientas para analizar los resultados del etiquetado, pero... ¿qué ocurre cuando queremos integrar un etiquetado eficaz en nuestra propia aplicación?

Para facilitar la integración del motor de etiquetado de petraTAG en cualquier proyecto, acabamos de lanzar en nuestra web la primera versión abierta del motor de etiquetado. Para descargarla, solo tenemos que dirigirnos a la página de la API de la ayuda en línea de petraTAG y descargar el archivo petraTAG-API1.0.zip, que contiene la biblioteca y todos los archivos necesarios para etiquetar un texto en español o inglés.

Vamos a ver cómo utilizar esta biblioteca con un ejemplo muy sencillo que desarrollaremos en Netbeans. Para crear el proyecto, solo tenemos que elegir FileNew Project. En el cuadro de diálogo que aparecerá, elegimos JavaJava Application. Un nuevo cuadro de diálogo nos pedirá que elijamos el nombre del proyecto y la carpeta donde se guardará. En nuestro caso, vamos a elegir como nombre del proyecto petraTAGdemo.

Ahora tenemos que vincular nuestra biblioteca así que, en el árbol del proyecto que aparece a la izquierda, nos situamos encima del proyecto que acabamos de crear y elegimos Properties. Nos vamos ahora a la categoría Libraries y agregamos los dos archivos jar que contiene el zip: Utiles.jar y petraTAG.jar.

¡Ya queda muy poco! Solo tenemos que copiar la carpeta languages que hemos descargado anteriormente en el directorio raíz del proyecto que hemos creado y podremos comenzar a crear a escribir el código de nuestra aplicación. Para comprobar que funciona, podemos escribir lo siguiente:

package petratagdemo;

import petratag.TaggedSentence;
import petratag.Language;

public class PetraTAGdemo {

    public static void main(String[] args) {
        Language language=new Language();       
        language.init("ES");
       
        String text="Este texto es un ejemplo.";
        TaggedSentence sentence=new TaggedSentence();
        sentence.tag(text, language);
       
        for (int n=1;n<=sentence.length;n++) {
            System.out.println(sentence.tokens[n]+" - "+sentence.lemmas[n]+" - "+sentence.posTags[n]);
        }
    }
}


Si lo ejecutamos, deberíamos obtener el siguiente resultado:

- Loaded 271681 dictionary entries and 60 locutions.
Este - este - dd0ms0
texto - texto - ncms000
es - ser - vsip3s0
un - uno - di0ms0
ejemplo - ejemplo - ncms000
. - . - Fp


Pero, ¿cómo funciona? Vamos a ver paso a paso este pequeño programa para ver cómo se etiqueta el texto.

Comencemos con:

        Language language=new Language();       
        language.init("ES");

Para etiquetar un texto, debemos definir un idioma que creamos aquí con la primera línea. La segunda línea carga los datos necesarios para un idioma concreto. Actualmente, solo están disponible el español y el inglés, pero sería fácil crear otros idiomas. Solo es necesario cargar un idioma una vez y, si no queremos etiquetar en varios idiomas, basta con definir un objeto Language, por lo que es habitual definirlo como objeto estático para toda nuestra clase.

        String text="Este texto es un ejemplo.";
        TaggedSentence sentence=new TaggedSentence();
        sentence.tag(text, language);

El objeto que contendrá los datos del etiquetado es TaggedSentence y para etiquetar el texto, solo tenemos que llamar al método tag, indicando el idioma y el texto que queremos etiquetar.

        for (int n=1;n<=sentence.length;n++) {
            System.out.println(sentence.tokens[n]+" - "+sentence.lemmas[n]+" - "+sentence.posTags[n]);
        }

Al etiquetar el texto, se han rellenado automáticamente tres matrices que incluyen todos los datos que necesitamos: los tokens (o palabras), los lemas y las etiquetas morfosintáticas, que siguen la convención establecida en el etiquetario del proyecto. Con este bucle, recorremos todos sus valores.

Aparte del etiquetado, la biblioteca incluye muchas funciones que aumentan su utilidad. No obstante, hemos optado por elegir un ejemplo sencillo que explique claramente los elementos básicos del etiquetado. Para más información, podéis consultar la página informativa sobre la clase. Próximamente, comentaremos algunas posibilidades más y, si tenéis cualquier duda, será para nosotros un placer responder a cualquier pregunta.

domingo, 26 de marzo de 2017

petraTAG: ¿Cómo extraer los diálogos de un texto?

Tras varios meses ocupados en otros proyectos, ¡ha llegado la hora de retomar petraTAG! Tenemos previstas muchas novedades muy interesantes pero, para amenizar la espera, hemos pensado que ya era hora de lanzar una nueva versión de petraTAG, así que ya podéis descargarla desde la página web de petraTAG.

Dado que actualmente estamos desarrollando diversas nuevas características, es un momento ideal para hacernos llegar vuestras ideas y sugerencias, así que no dudéis en publicar aquí un comentario o enviarnos un mensaje directamente a la dirección de la sección de contacto de nuestra página principal.

Una de las funciones que hemos mejorado es el análisis de los diálogos. La mejor manera de ilustra esta función es mediante un ejemplo, como el siguiente texto extraído de «Los cinco y el tesoro de la isla» de Enid Blyton:

Mamá movió la cabeza.
¡Qué estupendo ponerme otra vez los shorts!dijo Ana, bailando de contenta—. Ya estoy cansada del uniforme del colegio. Tengo enormes ganas de ir con shorts o en traje de baño y ponerme a jugar con los chicos.

En el texto anterior, hemos diferenciado mediante colores el texto clasificándolo en tres tipos:
1. Texto normal (en azul)
2. Diálogos (en verde)
3. Acotaciones de diálogos (en morado)

petraTAG puede hacer un recuento de las palabras de un texto que corresponden a cada categoría. Además, extrae los interlocutores y los ordena según el número de veces que se les cita.

Para utilizar esta función, hay que cargar y etiquetar un texto, para lo que basta con elegir Archivo → Cargar archivo. El texto se importará y se etiquetará automáticamente, para lo que es necesario esperar un poco. Cuando aparezcan las estadísticas de etiquetado, hay que elegir Herramientas → Extraer diálogos y en unos segundos obtendremos los resultados. Por ejemplo, para el libro «Los cinco y el tesoro de la isla» que antes comentábamos, obtenemos lo siguiente:

Así podemos confirmar por ejemplo, con las estadísticas en la mano, que Dick era el protagonista menos relevante. También vemos que gran parte del texto son diálogos, algo habitual en la literatura juvenil. También vemos que se indica el interlocutor en la mayoría de las ocasiones.

Para compararlas, podemos ver estas estadísticas para «Crepúsculo» de Stephanie Meyer y «También esto pasará» de Milena Busquets.

Crepúsculo (Stephanie Meyer)
También esto pasará (Milena Busquets)
Conforme vamos avanzando hacia la literatura «seria», es fácil observar que el porcentaje del total que corresponde a los diálogos es cada vez menor. Curiosamente, las acotaciones aumentan en «Crepúsculo», pero disminuyen muy pronunciadamente en «También esto pasará». Por último, también salta a la vista que en estos dos últimos libros el porcentaje de casos en los que se marca el interlocutor es muy inferior. Aún más, si tenemos en cuenta que estos dos libros se han escrito en primera persona y, por tanto, el interlocutor viene implícito con el tiempo verbal (dije, grité, susurré...). De no ser así, el porcentaje sería muy inferior.

Si tenéis alguna idea sobre cómo aplicar esta función a vuestro proyecto, no dudéis en ponernos en contacto con nosotros.

lunes, 23 de enero de 2017

Tutorial: ¿Cómo descargar y alinear los Diarios Oficiales de la Unión Europea?

Hace no mucho, descubrí en la web un recurso que considero que puede ser tremendamente interesante para muchos traductores: los Diarios Oficiales de la Unión Europea. Al tratarse de documentos oficiales, están disponibles en varios idiomas y, por si fuera poco, la propia página ofrece la posibilidad de alinear automáticamente los textos en hasta tres idiomas, por lo que buscar un término en inglés y encontrar su equivalente en español es pan comido. Además, dada la amplia diversidad de temas tratados en el derecho europeo, es fácil encontrar términos de prácticamente todas las disciplinas. Aunque tal vez la opción que encontremos no sea óptima, al menos puede darnos una posibilidad sobre la continuar nuestras búsquedas. Para realizar la búsqueda, solo tenemos que utilizar la página o, directamente, podemos escribir en Google:

"término que queremos buscar" site:eur-lex.europa.eu


Si bien estas búsquedas en línea son muy útiles, también habrá casos en los que sea preferible realizar las búsquedas con herramientas de escritorio como, por ejemplo, la simpar herramienta gratuita de búsqueda petraSearch de OpenTranslation. Tal vez sea porque queremos comparar las frecuencias con las que ocurren varias posibilidades o quizás porque queremos realizar las búsquedas sin conexión a internet.

Sea como sea, el sitio nos permite descargar estos documentos y, una vez en nuestro disco duro, podremos alinearlos cómodamente con la última versión de petraRev. Los pasos que debemos seguir son muy sencillos:

1. Navega hasta la dirección donde se encuentran los diarios.

http://data.europa.eu/euodp/en/data/dataset?q=official+journals+of+the+european+union&organization=publ&ext_boolean=exact&sort=modified_date+desc

2. Descarga la versión correspondiente al español y al inglés.

3. Elimina, si los hay, los archivos .doc y .tif. Si hay archivos .zip, descomprímelos y elimínalos luego.

4. Copia todos los archivos a una sola carpeta con:

find "carpetaOrigen" -type f -exec mv {} "carpetaDestino" \;

5. Una vez que todos los archivos se encuentren en una carpeta, abre petraRev y elige Herramientas → Revisar. En la pantalla de revisión, borra todas las operaciones con Marcar todo → Quitar. Ahora, escribe Alinear lotes de archivos y haz doble clic en esta operación para añadirla a la lista de operaciones.

6. Haz doble clic ahora en esta operación para configurar esta operación. Solo tienes que indicar dónde se encuentran la carpeta con los archivos de origen y la carpeta con los archivos de destino. Si lo deseas, también puedes indicar dónde quieres que se guarden los archivos alineados.

7. Haz clic en Revisar y, después de una breve espera, se alinearán los archivos y se cargarán en la herramienta. Puedes hacer clic en Archivo → Exportar para exportar la traducción al archivo que desees.

Así, conseguirás tener una base de datos fenomenal donde buscar términos particularmente complicados o para los que quieras conocer una traducción oficial.

¡Un último consejo! Si alineas todos los archivos correspondientes a un año, el archivo de salida será bastante grande (entre 100 y 200 MB), por lo que puedes reducirlo, sin perder información, seleccionando Herramientas → Edición. En la pestaña Reemplazar, elige la opción Eliminar por... Repetidos y haz clic en Eliminar. Eso sí, tendrás que tener paciencia porque es fácil que el número de segmentos que deberá comprobar supere los dos millones, por lo que es fácil que tengas que esperar algo más de media hora, para conseguir los resultados. Afortunadamente, se trata de un proceso que solo hay que hacer una vez y podrás disfrutar de sus frutos durante mucho tiempo.