0 / 7
Bots escritores de contenido: una introducción

Bots escritores de contenido: una introducción

Como escritor y especialista en posicionamiento, tarde o temprano tenía que abordar el tema de los bots automatizados de creación de contenido. Auténticas máquinas solitarias de creación. Porque llevamos años inmersos en la era de la generación automatizada de contenido y de estructuras racionales por parte de máquinas, y no parece que sea algo del completo dominio común. Cuando, en realidad, una parte cada vez mayor del contenido consumido en Internet ya ha sido generado de forma automática y artificial. Es decir: no es algo que ocurrirá, sino que ya ha ocurrido.

Quiero hablaros de LSJBOTresponsable de la creación y revisión de más de 30 millones de entradas de Wikipedia. Él, junto a otros cuatro bots automatizados, se encuentra en el Top 30 de editores más importantes de la enciclopedia.

El caso del cebuano en la Wikipedia

De todas las ediciones de la Wikipedia llama la atención lo que ocurre con la edición en cebuano. Se trata de una lengua que hablan en Filipinas en torno a 16,5 millones de personas. Sin embargo, es la segunda edición de Wikipedia con mayor volumen de artículos tras la edición inglesa. Si la edición inglesa acaba de superar los 6 millones de artículos, la edición en cebuano cuenta con 5,38 millones de artículos. Un dato destacado si consideramos que tan sólo 16 de las 309 ediciones de Wikipedia superan el millón de artículos.

Además, si nos fijamos en cómo funciona el cebuano en la Wikipedia, vemos que sólo cuenta con 6 administradores y 14 usuarios activos. Cuando la Wikipedia en inglés cuenta con 1,143 administradores y más de 138.000 usuarios activos para un volumen de artículos generado prácticamente equivalente.

¿Cómo es posible? Gracias a la utilización de LSJBOT.

De los 1,601 bots taxonomizados en un estudio reciente sobre la Wikipedia, se distinguen nueve categorías según tipo de bot. La mayoría realizan tareas repetitivas y mundanas (para las que se agradece la automatización. En el caso del SEO el bot de crawleo de Screaming Frog es una bendición, por ejemplo) con supervisión humana. Pero algunos sirven para generar contenido con o sin supervisión. Vamos a conocer a LSJBOT. Aquí puedes acceder al estudio mencionado (en inglés).

LSJBOT, el constructor desbocado de contenidos

La existencia de los bots no está mal considerada si estos son supervisados por humanos. Aunque algunos, como LSJBOT tengan capacidades de escritura extraordinarias, se pone en duda su calidad por definición si no ha habido supervisión humana. Por diversos motivos que veremos. Primero, las estadísticas de LSJ.

Fuente: Wikiscan - ceb.wikiscan.org

Esta investigación independiente muestra cómo LSJBOT ha realizado más de 39 millones de revisiones, y 5,378,570 artículos (excluyendo reverts). Fue creado por el físico sueco Sverker Johansson y ha operado durante tiempo en la Wikipedia en idioma Cebuano (de Filipinas) en honor a la mujer del propio Johansson. Hasta el punto de que hay más artículos en Cebuano que habitantes que lo hablan.

[Uno de los problemas colaterales derivados de la existencia de estos bots de generación de contenido masivo, es la pérdida de interés o aliciente por parte de los humanos para escribir artículos manuales. Dado que ya están los bots generándolos masiva e indiscriminadamente, más allá de la capacidad de control humana. Esta conclusión es manfiesta en el estudio detallado que os he compartido arriba. Una triste consecuencia para el humanismo].

¿Cómo funciona LSJBOT?

Los principios de todo bot siempre son básicos. En este caso, lo primero que realiza LSJ es una tarea semántica. El bot escoge un campo semántico, como podría ser por ejemplo el campo semántico "coche". El campo semántico "coche" contiene subcampos, como podrían ser "volantes", "ruedas", "carrocería", "motor", etc. Todos ellos son partes del campo "coche", y a su vez contienen otros sub-sub-campos semánticos.

El siguiente paso consiste en encontrar bases de datos que el bot pueda leer. Dichas bases de datos, ubicadas en la red, aportarán los datos básicos para cada subcambo del campo, a ser incluidos en los artículos que el bot compondrá. En el caso de LSJBOT se utilizó geonames para realizar la composición de artículos de Wikipedia que requirieran de localizaciones geográficas.

Una vez se ha recopilado la información del campo y sus subcampos, se utilizan plantillas de frases prefabricadas que el bot puede rellenar con las informaciones extraídas. Además, crea infoboxes, categorís y links a otros artículos relacionados. Una vez realizado el proceso, se sube el artículo. El resultado, de acuerdo con los análisis macro de páginas como Motherboard, son artículos de una calidad y legibildad más que aceptable.

Sin embargo, si en el proceso de construcción del artículo se producen traducciones, como es el caso de, por ejemplo, los más de medio millón de artículos publicados en Wikipedia con la Content translation tool que ofrece la enciclopedia, entonces pueden darse calcos o traducciones literales que distorsionen el sentido. Ahora, no se dan demasiado.

Consenso en Wikipedia: una traducción / composición realizada por una máquina, y no editada pero publicada, es peor que no publicar nada.

Guía de traducción de la Wikipedia

Mbabel y su utilización de bases de datos semánticas

Creado por Joao Alexandre Peschanski y Érica Azzellini, Mbabel (y basado en una pieza del artista Richard Knipel, Museum of babel) es un bot que genera borradores de artículo basados en información almacenada en la base de datos semántica Wikidata. Es capaz de componer en un solo artículo informaciones de múltiples fuentes diferentes (ha funcionado muy bien en la wikipedia portuguesa, por ejemplo).

A diferencia de otros bots, Mbabel no publica directamente los artículos en la Wikipedia, sino que los sube a una página de test para que los usuarios "vivos" expandan y corrijan cada artículo. Porque en la actualidad (habría que revisar esto constantemente en este artículo, este dato concreto podría ser obsoleto) el bot comete errores notables, siendo el portugués estructuralmente más complejo que el inglés.

Profundizando en NLG (Natural Language Generation)

Seguramente la cuestión más importante radica en cómo es capaz una máquina de componer textos coherentes a partir de datos aislados de una fuente que ella misma rastrea. Para profundizar en este elemento, colabora en este artículo Emilio Martín, Software Engineer y QA Lead en Smartbrand, quien me ha facilitado su Trabajo de Fin de Grado porque trata el tema de la generación automática de contenido.

En su caso, elabora una máquina capaz de generar contenido con lenguaje natural para descripciones de productos de e-commerce, una utilidad muy demandada en la medida que las webs e-commerce suelen tener bases de datos de producto muy grandes y, para su mejor posicionamiento, necesitan buenos textos descriptivos. El trabajo manual es absolutamente ineficaz en el caso de los E-commerce.

Su trabajo, titulado, Automatización para la generación de contenidos para E-commerce, tiene algunos epígrafes previos a la explicación técnica que merece la pena rescatar. No hay que olvidar que estamos hablando de máquinas que crean cosas que los humanos consumirán (leerán), por lo que existe siempre un componente ético a tener en cuenta, en la mente del ingeniero, antes de componer el código de ejecución, la cosa que ejecutará. Puede parecer cómico, pero existe literatura en torno a la ética del márketing (al fin y al cabo, campo para el que sirven muchas máquinas, si no casi todas). Otra cosa es que ni se tenga en consideración en las así llamada Escuelas de negocios.

Generación de Lenguaje Natural: una definición

La Generación de Lenguaje Natural es el sub-área de la Inteligencia Artificial y la lingüística Computacional cuyo ámbito es la construcción de sistemas informáticos que puedan producir textos comprensibles en cualquier lenguaje humano a partir de una información almacenada en un formato no lingüístico. Esta disciplina es referida a menudo como NLG por las siglas del inglés Natural Language Generation.

A continuación, repasamos algunos usos actuales de NLG que consumimos habitualmente sin ser del todo conscientes de ello:

  • Con NLG se compone el texto de las predicciones meteorológicas a partir de la información de los mapas gráficos (sistema FOG)
  • Se puede resumir el contenido estadístico de la información extraída de una base de datos u hoja de cálculo (caso de LSJBOT)
  • Explicar la información médica de un modo más sencillo para el paciente.
  • Generar respuestas a diferentes preguntas a partir de los datos disponibles en un sistema experto.

Un elemento interesante en el ámbito del lenguaje natural viene dado porque gran parte de las herramientas no comerciales que existen han tenido un enfoque académico y un desarrollo universitario, y son de código abierto.

Analicemos alguna (también del ámbito comercial), no sin antes señalar a Ehud Reiter (a quien volvemos más abajo), profesor de Ciencias de la Computación en la Universidad de Aberdeen, y su libro de referencia Building Natural-Language Generation Systems. Para quien quiera introducirse de forma totalmente técnica y más allá de este artículo.

NaturalOWL + Protégé

NaturalOWL es un motor de Generación de Lenguaje Natural de código abierto escrito en Java que utiliza ontologías OWL (Web Ontology Language) para generar descripciones de elementos/ejemplares o clases. OWL es un lenguaje desarrollado para crear ontologías. Es decir, un método formal para describir tipos, propiedades e interrelaciones de entidades dentro de un dominio. Estas ontologías sirven para que los sistemas informáticos puedan entender, en última instancia, con qué están tratando a nivel semántico.

Existen varias sintaxis para OWL, siendo habitual utilizar la de tipo funcional por ser una de las más fáciles de entender. Se muestra como ejemplo la clase que define los vinos de St. Emilion, una variedad de vino de Burdeos:

El texto en lenguaje natural que resultaría del procesado de la ontología anterior mediante NaturalOWL sería:

St. Emilion is a kind of Bordeaux from the St. Emilion region. It has red color and strong flavor. It is made from exactly one grape variety: Cabernet Sauvignon grapes.

Para lograr la construcción de estos textos, primero hay que mapear cómo son las entidades y relaciones de un dominio con las clases de la ontología. Protégé, herramienta open source de la Universidad de Stanford es muy útil para generar ontologías. Un ejemplo con Pizza:

Ontología de la palabra pizza

Arria NLG Studio

Esta herramienta, desarrollada por el antes mencionado Ehud Reiter en la Universidad de Aberdeen es capaz de generar, a partir de datos complejos, informes en lenguaje natural que difícilmente se distinguen de los que realiza un humano.

A diferencia de NaturalOWL se trata de una herramienta comercial de pago (199€ al mes) que se utiliza sobre todo en el análisis de datos financieros, un campo donde se requiere de una capacidad muy fina debido a la masiva cantidad de datos cruzados y en relación.

NLG Studio tiene varias capacidades específicas. Por un lado, permite a los desarrolladores construir aplicaciones de Generación de Lenguaje Natural que capturen de manera continua el conocimiento y los procesos analíticos de expertos en una materia determinada. Por otro lado, puede aceptar la entrada de datos procedentes de múltiples sistemas con diferentes grados de complejidad. Estos datos pueden proceder de cualquier punto de la cadena de procesado de información.

Y, por último, la magia. Permite desarrollar aplicaciones que automatizan la generación y distribución de informes de datos interpretados en forma de textos en lenguaje natural, para acompañar y facilitar a los humanos el análisis de los datos tabulados. Dichos informes se generan bajo demanda o como alertas cuando ocurren determinados eventos.

Cómo es el desarrollo de una solución de NLG

Para desarrollar una solución de NLG es necesaria tanto una especificación previa de los requisitos muy precisa como una buena planificación de su validación (la dificultad de validar este instrumento radica en que la máquina puede generar, a partir de un conjunto de datos, dos textos distintos y al mismo tiempo válidos). Con validación queremos decir que "funciona como esperábamos".

¿Qué puntos deben ser tomados en consideración para desarrollar una solución de Generación de Lenguaje Natural? Vamos a repasarlos aquí de forma resumida:

Especificación de los requisitos

En primer lugar se definen los elementos meta. Por un lado, se utilizan uno o varios ejemplos de cuerpo de texto o text corpus. Estos servirán como referencia para el texto final que se va a general. Por otro lado, se definen datos de entrada y los datos de salida esperados (lo cual ayudará a la validación del proceso).

En la definición de datos de entrada, es muy importante identificar también todo aquello que se quiere transmitir en el texto, pero que no está disponible en los datos que se tomarán. Por lo que es necesario clasificar cada una de las cláusulas de información del texto meta en varias categorías:

  • Texto invariable: un fragmento de texto que siempre estará presente en los textos de salida. Los textos invariables son los más sencillos de generar por razones obvias.
  • Información disponible de manera directa: texto que presenta información disponible directamente en los datos de origen. A pesar de que no suponen un problema desde la perspectiva de obtención de la información, pueden presentar cierta dificultad para el sistema de NLG.
  • Datos computables: texto que incluye información derivada de los datos de entrada pero que requiere cierto procesado. Dependiendo de la complejidad de ese procesado, se decide si merece la pena introducirlos.
  • Información no disponible: texto que hace referencia a datos no disponibles en la información de origen, ni siquiera mediante procesado de la misma. Estos textos no pueden ser generados y por lo tanto se debe decidir si son imprescindibles, en cuyo caso deberá adoptarse una solución que puede pasar por aumentar la cantidad de datos disponibles en el sistema o delegar la tarea en un autor humano.

Funciones de un sistema de NLG

El sistema clásico de Generación de Lenguaje Natural ejecuta una serie de funciones predefinidas que transforman los datos de entrada en algo parecido o cercano al texto meta definido. Hay seis actividades que deben ser completadas con los datos de entrada hasta el texto de salida. Fueron definidas por Ehud Reiter y Robert Dale en el libro arriba mencionado (Building Natural-Language Generation Systems). Respecto a estos puntos, existe un consenso general, aunque podrían tomarse variantes u otras conceptualizaciones.

Determinación del contenido

Lo que ocurre aquí es el proceso de selección de la información que se va a comunicar en el texto. Los datos disponibles recolectados en los datos de entrada permiten generar un conjunto de mensajes, objetos, que luego son utilizados por los sistemas que intervienen en la generación de salida.

Este proceso consiste en filtrar, resumir o concentrar los datos de entrada en cláusulas que se expresan en un lenguaje formal que etiqueta y distingue entidades, conceptos y relaciones dentro de un mismo dominio semántico. Por ejemplo, en un e-commerce, las entidades serían los productos en sí, las imágenes o las características / precio del producto.

Planificación del discurso

Con la planificación del discurso se ordena y dota de una estructura a los mensajes generados en la fase anterior. El texto separado en cláusulas necesita ser ordenado. Esta parte, de naturaleza estructural del texto (componer por ejemplo su introducción, nudo, desenlace) se conceptualiza como una estructura de árbol. Las hojas serían los mensajes individuales (cláusulas) y los nodos internos la forma en que dichos mensajes se agrupan y relacionan entre sí.

En este punto, para lograr riqueza de significado y estructura, hay que aplicar criterios que permitan elegir a la máquina entre las múltiples posibilidades que pueden resultar del proceso de generación. Para ello, hay que tener en cuenta algunos factores:

  • Objetivo de la comunicación: En el caso que nos ocupa, es conseguir reflejar todas las características relevantes de un producto que favorezcan tanto su venta como su posicionamiento en los buscadores.
  • Características del receptor: No todos los textos generados automáticamente son para el mismo tipo de usuario. En el caso del proyecto actual, si bien el receptor es siempre un usuario o potencial comprador, en función del mercado del producto para el que se está generando la descripción las características del usuario pueden variar.
  • Contexto: No se generaría igual la descripción de producto que tiene como objetivo un catálogo que la que tiene como objetivo un artículo de revista o algo más técnico.
  • Requisitos del sistema: En este caso se tratará de generar una estructura determinada que sea utilizable desde otros módulos de la solución.

Agrupación de frases

Con este proceso se agrupan los mensajes que han sido determinados en fases anteriores. Esta agrupación se produce en frases. No siempre será necesario pasar por este profeso porque en algunos casos de la fase 1 Determinación del contenido se pueden generar ya mensajes como frases individuales.

En este punto, donde también se pueden agrupar frases entre sí en el conjunto de un párrafo, es delicado en la medida en que la interrelación entre las frases construidas debe ser fluida y legible.

Lexicalización

Con este proceso se deciden qué palabras y frases específicas sirven para expresas los conceptos y relaciones que aparecen en el resultado final. Un ejemplo posible y simple (entre otros) del funcionamiento de este proceso: cada concepto del dominio tiene una palabra o frase asociadas que se escogerán cada vez que aparezca dicho concepto. Este enfoque no suele aplicarse si lo que se busca es una máquina que, a partir de datos de entrada muy parecidos, genere múltiples textos variados (sería el caso de un e-commerce lleno de productos parecidos.

Generación de expresiones

En este punto se identifican palabras o frases que sirven para designar entidades del dominio. Por ejemplo, utilización de pronombres ("La mesa modelo X" puede ser intercambiable por "esta mesa" o "este producto").

Lo que se busca es obtener objetos lingüísticos que identifican o hacen referencia las entidades del dominio seleccionadas en puntos anteriores. Para un correcto desarrollo de este punto se deben tener en cuenta criterios contextuales (qué se ha generado en frases anteriores). Un ejemplo de esto: no vamos a usar el pronombre si antes, en otra frase previa, no se ha mencionado su sustantivo.

Realización lingüística

Con este proceso aplicamos la regla gramatical con el objeto de obtener un texto correcto en términos de sintaxis, morfología y ortografía. Se escogen aqui los tiempos verbales, la puntuación o el uso de singular o plural según convenga, entre otros.

Estos serían las funciones básicas de un sistema de NLG. Nos quedamos aquí porque la vocación de este artículo es divulgativa y no explícitamente técnica.

DWX Aix: una tecnología propia de Smartbrand

Quien co-firma este artículo, Emilio Martín, es uno de los responsables de la unidad de desarrollo de software y tecnologías propias de Smartbrand. Dicha unidad, liderada por Marcos Herrera, está creando una serie de "máquinas" que realizan acciones avanzadas en substitución de los humanos. Puedes ver los diferentes servicios ofrecidos haciendo click aquí o en la imagen. A nosotros, para el caso, nos interesa DWX Aix.

DWX Aix es un compositor de textos en lenguaje natural altamente especializado para ofrecer un buen rendimiento en la creación automatizada de descripciones de producto para e-commerce. Un producto en desarrollo que en sí no es original ni único, como vemos en el repaso teórico de este artículo, pero sí un elemento competitivamente distintivo en España y en una empresa de las características de Smartbrand (que muchas  veces compite con agencias más grandes y con más recursos por contratos con requerimientos técnicos elevados).

La automatización de procesos en el nivel de generación de contenidos y estructuras (URLs) está llegando y popularizándose.

Imaginad la diferencia entre un grupo de humanos creando fichas de producto manualmente (antes) y una serie de máquinas que con sólo un rato de proceso pueden generar miles de descripciones indistinguibles del lenguaje de un humano. La escalabilidad de un e-commerce alcanza casi un punto de crecimiento exponencial (al menos a nivel de cantidad de contenido) propio de la singularidad con una tecnología así. Como contrapartida, la entropía crece drásticamente en el sistema dominado por máquinas generadoras de contenido. Básicamente porque cada máquina, como cada humano, tiene sus criterios, y también sus posible (o no, dependerá de la calidad del desarrollo) bugs.

Conclusiones de un escritor semidigitalizado

Muchas veces hemos leído acerca de la existencia de bots que, a partir de la lectura de obras literarias y con cierta programación, son capaces de crear ellos mismos textos, incluso novelas coherentes. El principio de la investigación nace en las propias raíces de la lingüistica, en comprender qué es y cómo está estructurado el lenguaje para así poder replicarlo de tal manera que un humano no sea capaz de reconocer la diferencia entre una máquina y una no-maquina.

Este tipo de anuncios (como este tipo de artículos), para alguien que se dedica a escribir con sus propias manos, puede sonar hasta apocalíptico. Pues si ya hay un robot capaz de escribir novelas, se sobreentiende que llagará un momento en que habrá grandes escritores robots. Mi aproximación aquí, para solucionar el embrollo que va a suponer (y ya supone si uno es especialista en SEO serio) la presencia de estos pseudoseres es una concepción profundamente individualista de la literatura. Imagino que para aceptar mejor la figura del robot creador de contenido (y aquí solo hemos analizado algunos ejemplos, gérmenes de algo que crece muy rápido), tendremos que tener como criterio el criterio más humano de todos. Dicho criterio no es que el robot sea capaz de hacerse pasar por humano. Sino que sea capaz de construir su propio mundo y su propio lenguaje. Mientras eso no ocurra, tendremos robots productores de churro-best sellers. Y cuando ocurrá, no habrá problema: toda individualidad es por definición inimitable.

Siempre habrá buenos escritores en la medida en que exista la noción de alma en el mundo, y se contemple.

Artículo co-escrito por Víctor Balcells y Emilio Martín.

Comparte

Bots escritores de contenido: una introducción