Twitter muestra la opción “Traducir Tweet” bajo los tweets para los que hay una traducción disponible, sin embargo requiere por nuestra parte hacer un clic en cada tweet que queramos traducir.
Personalmente y al seguir a varias cuentas que publican en japonés, es una funcionalidad que me resulta muy útil pero debo confesar que muchos tweets acabo leyéndolos por encima o saltándolos directamente por pereza a traducirlos uno a uno.
Por eso la noticia de que Twitter haya empezado a experimentar con la posibilidad de traducir todo tu timeline al idioma que uno elija y aunque aún no haya información sobre cómo funcionará exactamente, no dejo de imaginar lo cómodo que podría resultar tener algo así.
Twitter tampoco ha anunciado cuando estará disponible esta característica o si la llegaremos incluso a ver, pero a mi me ha dejado con las ganas así que me pregunto si sería posible conseguir algo similar usando Botize.
Traductor de cuentas de Twitter
El objetivo es crear una tarea automática donde tengamos un bot que lea tweets de una o más cuentas de Twitter y los publique traducidos a otro idioma, con la idea de seguir a este bot y así poder leer los tweets en mi idioma.
Dado que el API de Twitter solo permite un número limitado de consultas y publicaciones, optimizaré la búsqueda de los tweets de la siguiente manera:
- El bot será capaz de obtener los tweets de una lista de cuentas de usuarios a elegir, excluyendo todas las demás
- De los tweets que publiquen estas cuentas excluirá además todos aquellos que no estén escritos en el idioma que necesitamos traducir
- Por último el bot excluirá los RTs que hagan estas cuentas
En cuanto a la publicación de los tweets también será necesario establecer algunas reglas.
- Para la traducción usaremos el servicio gratuito de Watson, que permite traducir hasta 1.000.000 de caracteres al mes
- Para evitar que algún usuario pueda sentirse molesto por el hecho de que una cuenta publique sus tweets traducidos a otro idioma, el bot publicará en una cuenta privada de Twitter
- Para evitar mencionar a nadie en los tweets, el bot excluirá cualquier @+usuario que pueda contener el texto
- Los tweets se publicarán indicando el autor del tweet seguido del texto traducido:
{{autor}}: {{traducción}}
Por último y esta es una limitación de mi caso en particular. Watson no permite la traducción directa del Japonés al Español. No la necesito pues lo traduciré al inglés.
En español la traducción además de que sería de peor calidad (la AI de Watson habría sido entrenada con menos muestras que en Inglés) resultaría en un texto muy largo. El español requiere de más caracteres que el Japonés para decir lo mismo (los kanjis concentran palabras en un solo carácter) y el límite de 280 caracteres podría quedarse corto al intentar traducir tweets largos escritos en japonés.
Otras limitaciones a tener en cuenta
No tendrá sentido hacer RT o comentar en los tweets del bot pues no estaremos haciendo referencia al tweet original.
El bot se activará para buscar tweets y publicar las traducciones una vez cada hora, sacrificando la inmediatez y el tiempo real propio de Twitter. Podría bajarse hasta una vez cada minuto usando una cuenta premium de Botize.
Traducciones mediante Watson Language Translator
Como ya hemos adelantado, usaremos el servicio de traducción que ofrece Watson, el sistema de inteligencia artificial de IBM.
Este servicio además de contar con más de 70 idiomas, permite traducir tanto textos como documentos completos, manteniendo el formato de archivo y estilos en este último caso.
Para este caso crearé una cuenta Lite de IBM, que si bien está limitada permite hacer uso de casi todos los servicios de Watson de manera gratuita y sin indicar ningún método de pago.
El servicio de traducción de Watson para cuentas Lite permite traducir hasta 1 millón de caracteres al mes, lo equivalente a traducir 3571 tweets de 280 caracteres cada uno. Más que suficiente para mi caso en particular.
Si necesitas escalar tu proyecto en algún momento puedes convertirla en una cuenta premium de IBM simplemente vinculando una tarjeta de crédito.
Pasos para automatizar la tarea
Antes de empezar es indispensable tener lo siguiente (te comparto los enlaces por si los necesitas)
- Cuenta gratuita de Botize (link)
- Cuenta Lite de IBM y conectarla a Botize (link)
- Cuenta de desarrollador de Twitter y conectarla a Botize (link)
Procedamos con la creación de la tarea, para ello y en primer lugar accede a la sección que tiene Botize dedicada a Twitter, aquí.
Como ya tienes tu cuenta de desarrollador de Twitter conectada a Botize, te aparecerá el botón «Crear nueva tarea«. Haz un clic en él y se abrirá el editor de tareas.
Lo que se muestra a continuación serán las distintas operaciones que se pueden automatizar con Twitter. Haz clic en la opción «Si hay nuevos tweets de una búsqueda«.
Esta opción permite establecer un criterio de búsqueda y a partir de ahí programar automatizaciones con cada tweet que encuentre.
Seguidamente vemos los distintos parámetros que podemos personalizar para la búsqueda de tweets.
En el campo Buscar especificaremos la lista de usuarios de los que queremos leer sus tweets escribiéndolo de la siguiente manera:
from:usuario1 OR from:usuario2 OR from:usuario3
Lo único que necesitas hacer es reemplazar los nombres de usuario que están en cursiva por los que necesites en tu caso. En el ejemplo hay 3 usuarios pero puedes poner uno o los que necesites.
A continuación, en el campo «Filtrar por idioma» selecciona el idioma en el que deberán estar escritos los tweets de estos usuarios. Cualquier tweet escrito en otro idioma será excluido.
Haz clic en el botón de Siguiente para continuar y se mostrarán algunos de los servicios de Internet con los que puedes automatizar acciones como paso siguiente a la búsqueda de tweets.
En la caja de búsqueda escribe «translator» y selecciona el icono de Watson Language Translator.
De entre las distintas operaciones que puedes automatizar con Watson Language Translator selecciona la opción «Traducir un texto«.
A continuación puedes ver las opciones que puedes personalizar.
Haz clic en el campo «Texto a traducir» y selecciona la etiqueta Tweet.
En los campos «Traducir de» y «Traducir a» indica el idioma de origen y de destino respectivamente.
Haz un clic en Siguiente y se mostrará un mensaje indicando que la tarea ya está lista para guardarse.
En Botize las tareas de dos pasos ya se pueden guardar, pero en nuestro caso aún nos queda introducir un último paso, el de publicar la traducción.
Para añadir este último paso haz un clic en el símbolo «+» situado a la derecha del icono de Watson Language Translator.
Al hacerlo se habilitará un nuevo espacio y Botize volverá a mostrarte un listado de aplicaciones que puedes utilizar para seguir automatizando más acciones.
Haz un clic esta vez en el icono de Twitter.
De entre las distintas operaciones que puedes automatizar con Twitter selecciona esta vez la opción «Publicar un tweet con foto o vídeo«.
Finalmente vamos a establecer el aspecto del tweet haciendo clic en el campo Tweet.
Puedes seleccionar las etiquetas que mejor se adecúen a tus necesidades. En mi caso utilizo el nombre de usuario de Twitter seguido del texto traducido que ha generado Watson como puedes ver en la siguiente imagen.
En el campo «URL de la imagen o archivo de vídeo» he indicado el tag «URL de la imagen/vídeo«, de modo que si el tweet original tuviese alguno de estos elementos también se incluya en el tweet que va a publicar el bot.
En el apartado «Eliminar del tweet los siguientes datos» he marcado la casilla «Usuarios», de modo que si un tweet tuviese menciones a otros usuarios el bot no los muestre y de este modo evitamos mencionarlos nuevamente. Acción que además sería considerada como una práctica de spam por parte de Twitter y pondría en peligro a nuestro bot.
Por último, solo queda hacer clic en el botón Guardar cambios y la tarea comenzará a funcionar a partir del tweet más reciente que haya para la búsqueda que has indicado.
A partir de entonces la tarea se ejecutará cada hora y en caso de haber un nuevo tweet procederá a traducirlo y publicarlo en la cuenta de Twitter del bot.
Tweet original | Tweet traducido |
He de decir que mis expectativas con la inteligencia artificial de IBM eran muy altas, pero tras una semana de funcionamiento puedo observar que al menos en lo que a traducir del japonés a inglés se refiere, el resultado no es tan bueno como esperaba.
El método para traducir cuentas de Twitter necesitará mejorarse. Si bien en un principio parecía que iba a ser un problema el hecho de que las traducciones llegasen cada hora y no en tiempo real, al menos en mi caso ha resultado no serlo, sin embargo no poder interactuar con el tweet original, comentando o guardándolo como favorito bien merece dedicarle un poco más de tiempo y buscarle solución.
Por último te comparto la tarea automática por si quieres instalarla en tu cuenta de Botize. Puedes personalizarla e indicar tus propias cuentas de Twitter a traducir, el idioma de origen y destino e incluso el aspecto del tweet.
Posibles problemas
La tarea no encuentra tweets para traducir
Si la tarea no encuentra tweets asegúrate que la búsqueda que indicaste esté correcta.
Una manera de comprobarlo es copiándola y pegándola en el buscador de la web de Twitter. Si está correcta te aparecerán resultados, pero si en el buscador de Twitter tampoco te apareciese ningún resultado puede que contienen algún error.
La tarea indica un error de Watson con el texto «Model not found»
La traducción entre los idiomas de origen y destino que has indicado no está soportada por Watson. Deberás buscar otra combinación. Si uno de los dos idiomas es «Inglés» no deberías tener problemas.