10/06/2015

Qué es la semántica y para qué sirve


 ¿Os suena lo de la web semántica, verdad? Pues voy a intentar explicaros esto de la semántica de forma muy-muy facilita,  como si fuerais ordenadores de 4 años.  Al final del post os cuento para qué nos puede servir. 

La semántica a secas es la disciplina académica que se ocupa del significado. Imitando a los humanos, también los ordenadores hacen lo posible por entender los textos y por relacionar entre sí los datos contenidos en esa información para extraer valor de ellos.

En en un mundo inundado de datos poco estructurados, la semántica es una herramienta imprescindible para ayudarnos a entender la información, almacenarla, relacionarla con más información, compartirla, buscar y encontrar. ¿Y para qué nos sirve todo eso?, pues ¿para qué va a ser? para extraer el valor económico de los datos. Estamos, por tanto, al 100% en nuestro conocido mundo de Data Coaching: de los datos y los beneficios.

En otra vida anterior (a finales del siglo pasado) fui lingüista de dedicación completa. Más en concreto lexicógrafo (hacedor de diccionarios) y sé de lo que hablo: no es nada fácil entender en profundidad el significado de nuestros mensajes humanos y mucho menos relacionar los datos que contienen con otros

En realidad debería haber dicho que el lenguaje humano es muy complejo en general, pero que a los humanos se nos hace fácil de entender. El lenguaje natural, el que usamos diariamente, este mismo post, está lleno de ambigüedades, palabras con varios significados, sinónimos que se diferencian por connotaciones sutiles, ironías y otras trampas. Es difícil para una máquina abrirse camino en esta jungla. Por poner un ejemplo de la complejidad del lenguaje humano, y a pesar de lo humillante de tener que contar la gracia de los chistes: para los que no lo habías pillado, eso de “en una vida anterior” con la que arranca el párrafo anterior era en broma. A pesar de lo que he dicho, habéis entendido que eso no significa literalmente que yo crea en la reencarnación.

Humanos contra máquinas 

Como no tengo abuela, puedo decir sin ruborizarme que nosotros los humanos somos excelentes en esto de la semántica. Seguramente nacimos ya con esa capacidad y llevamos toda la vida practicando, así que nos parece algo sencillo y natural entender y generar mensajes, detectar ironías, desambiguar y cosas más difíciles aún.

Como sé que hay ordenadores leyendo, interpretando y clasificando este post, espero que no os sintáis ofendidos, pero, ¡ya os gustaría llegar al nivel de interpretación semántica que tenemos los humanos!

Queridas máquinas, nos dais mil vueltas haciendo cálculos matemáticos complejos y nos dais sopas con honda en ajedrez desde hace años. Sin embargo, llevamos docenas de años intentando enseñaros a imitar nuestra capacidad de entender textos y, aunque habéis hecho grandísimos progresos, --no os ofendáis--, de verdad que aún no habéis llegado a nuestro nivel.

El único problemilla que le encuentro a nuestra especie es que escalamos mal. Es decir, nos cuesta hacer crecer algo a lo bestia. En concreto, si me leo un libro al día, voy a necesitar 60 mil años para leerme los libros de la Biblioteca del Congreso de Estados Unidos. Para poder aprovechar el conocimiento de esos libros, meter 1 millón de lectores como yo no va mejorar el resultado final. Aunque generemos un gran ambiente de trabajo, y hagamos reuniones los lunes a las 8 am para compartir, el millón de  lectores metidos en la faena no vamos a ser capaces de combinar de forma efectiva el conocimiento. ¿Está claro no?

Para más INRI, cada año se crean en el mundo nuevos libros que equivalen a 8 veces la famosa Biblioteca del Congreso. Y estoy hablando sólo de libros, no de los otros tipos de documentos que producimos muchísimo más a menudo los humanos: mails, posts, twits, ebooks, manuales, contratos y así. La verdad, renuncio a lo de leerme todos esos libros. No pienso pasarme ni siquiera 1.000 años de mi vida y de las próximas vidas, si se me conceden, leyendo sin ton ni son. No es calidad de vida.

Lo reconozco, vamos a necesitar alguna ayudita de vosotros los ordenadores para aprovechar mejor nuestro tiempo y extraer valor de los datos. Veamos cómo se hace.

Entendiendo la semántica 

Cuando voy al extranjero y me presento a un desconocido suelo decir en el idioma que toque cosas como “Me llamo Eduardo. Soy de Pamplona. Pamplona está en España”.

<Comienza una digresión>. Normalmente, en este momento de mi presentación personal es donde meto lo del “running of the bulls”. Ya sabéis, Pamplona = Encierro. Y éste es un buen momento para, cuando me vengo arriba, colocar los dos índices extendidos a derecha e izquierda de la frente para representar los cuernos de un toro. Los de fuera, a menudo, sonríen y asienten. Olvidad toda esta digresión sobre el “running of the bulls” y los cuernos, porque no me sirve para el ejemplo de semántica. Sólo lo he dicho por romper el hielo. </Fin de la digresión >.

Con o sin cuernos en la frente, cualquier humano, aunque sea extranjero, es capaz de inferir, a partir de lo que he dicho, que Eduardo es de España.

Pero lo que yo he dicho en realidad es “Eduardo es de Pamplona” y “Pamplona está en España”. ¿Parece fácil hacer esta inferencia verdad? Pues para un ordenador que no disponga de reglas semánticas, esta inferencia es imposible a partir de los datos que le hemos dado.

La semántica en los ordenadores trabaja con un modelo de datos que le permite entender el significado de lo que lee, extraer la información, estructurarla y conectarla con otros datos que ya dispone. Puede incluso aprender a partir de lo que va leyendo.

El modelo de datos más frecuente en Semántica es el que define RDF (Marco de Descripción de Recursos, del inglés Resource Description Framework o RDF). Hace años que Google mejora sus resultados para búsquedas valiéndose de un marcado semántico basado en RDF.

La búsqueda semántica mejora significativamente la precisión de los resultados mediante la comprensión de la intención del que busca y el significado contextual de los términos. Los sistemas de búsqueda semántica incluyen el contexto de la búsqueda, la intención, sinónimos, palabras ambiguas, consultas generales frente a consultas especializadas, para ofrecer resultados relevantes. Los principales motores de búsqueda web como Google y Bing incorporan algunos elementos de búsqueda semántica. Por eso las tácticas de mejora de posicionamiento en buscadores basados en  en semántica producen mejores resultados que las de SEO tradicional. 

A vosotros humanos no os va a costar entender esto de la semántica, pero como hay máquinas leyendo lo voy a explicar muy-muy despacio y con ejemplos simplicísimos.

RDF se basa en un modelo de datos muy simple, pero que ha demostrado una gran capacidad de extraer significado del lenguaje humano. La semántica interpreta todas las expresiones con tres elementos: sujeto-predicado-objeto. Estas expresiones son conocidas como triples.

Para la frase “Eduardo es de Pamplona”. Eduardo es el sujeto, es de sería el predicado, y Pamplona es el objeto. En Pamplona está en España. Pamplona es el sujeto, está en es el predicado y España es el objeto. El predicado es usa para mostrar la relación entre un sujeto y un objeto. Cuidado porque, aunque se le parece, no es lo mismo que los análisis sintácticos del cole.



Con una estructura simple como ésta, las máquinas ya podéis empezar a manipular las piezas como en un puzle, para avanzar en la extracción de significado e incluso realizar inferencias. La representación gráfica de mis dos frases tendría el aspecto del grafo de abajo, donde los nodos se unen con líneas que muestran sus relaciones. Como mis dos frases contienen el nodo Pamplona. Aparecerían más o menos así:


Nos hacen falta unas cuentas reglas para que el sistema funcione. No me meto aquí, por ejemplo, con las taxonomías del tipo Pamplona pertenece a Navarra que pertenece a España, u ontologías, un poco más complejas, del tipo Pamplona es una ciudad de Navarra, situada 42°49′00″N y 1°39′00″O), queridas máquinas, ya habéis llegado a la inferencia que hemos planteado al principio: Eduardo es de España.

Esto es un ejemplo de cómo puede aprende una máquina. El ordenador solo, partiendo de dos frases y gracias a reglas de las ontologías, ha inferido que Eduardo es de España. ¡Excelente! A esto le llamamos machine-learning, aprendizaje automático. Es un pequeño paso para los humanos, pero un gran paso para la computación.

¿Semántica para qué?

Como los humanos, la especie conocida más perfecta que se conoce por su tecnología semántica innata, en realidad no escala bien, para sacar algo en claro, por ejemplo, a los 160 TB de información contenidos en los textos de libros que se publican anualmente (20 TB es el tamaño de la de Biblioteca del Congreso, la que me costaba a mí 60.000 años leer), o extraer significado de las 700.000 piezas de contenido que se comparten en Facebook cada minuto o de los 200 millones de emails por minuto, los ordenadores enriquecidos con recursos semánticos pueden ayudarnos a extraer valor de ese flujo de textos y sobre todo compartirlos y combinarlos para extraer descubrimientos valiosos.

Pongamos algunos ejemplos:

a. Gestión del conocimiento: Cualquier organización puede necesitar procesar Terabytes de información expresada en lenguaje natural antes de tomar decisiones estratégicas de negocio.

Por ejemplo, necesito saber qué está haciendo la competencia y me viene bien disponer de un proceso automatizado e inteligente que recorra Internet para capturar y seleccionar la información competitiva que afecta a mi negocio.

Otro ejemplo. Imaginemos que una oncóloga que busca más información sobre los mejor tratamiento para un cliente de, digamos 70 años, con unos síntomas determinados, no le va a venir mal que un sistema semántico que ha sido capaz de “leerse”, “entender” y “aprender” de la literatura médica disponible en todo el mundo y seleccionar los documentos que parecen más pertinentes para evaluar la eficiencia de una terapia determinada.

Otro más: muy a menudo el problema con la atención al cliente son los operadores. Cuando se tienen cientos o miles de personas atendiendo por turnos a clientes a menudo ansiosos, cuando no rabiosos, encontrar la mejor solución para cada cliente que llama requiere que los operadores puedan dar la mejor repuesta que cada empresa puede dar a cada pregunta que han hecho alguna vez sus clientes. No es posible que todos los operadores se las sepan todas, así que la semántica nos va ayudar a encontrar las mejores respuestas.
  
b. Voz del Cliente: dime qué piensan los clientes de mis productos a partir de la información que se extrae de los millones de twits que se escriben por minuto, mails a la compañía, foros, investigación cualitativa y llamadas a la empresa. Los ordenadores van a leérselo todo e intentarán, haciendo uso de la semántica, hacer descubrimientos valiosos para el negocio que se convertirán en acciones que mejoren la cuenta de resultados.

c. Personalización y monetización. Este ejemploa va para mis compañeros de DropCoin, que están ayudando ya a cientos de empresas a monetizar, por fin, sus contenidos gratuitos, por medio de nano-donaciones. DropCoin ya lleva en poco más de 7 meses cerca de 50 millones de páginas que incluyen su botón de donación en páginas de contenidos. Hay muchos artículos para leer y analizar si queremos aprender a identificar qué tiene que tener un artículo para que funcione la nano-donación que se plantea con Dropcoin. Asimismo, cuando un lector está leyendo un artículo determinado, la tecnología semántica puede ayudarme a descubrir qué otros artículos tengo que recomendarle a ese lector en concreto para que vaya a leerlos y considere donar también para estos artículos recomendados.

d. Seguridad: Con el objeto de prevenir amenazas de seguridad, numerosos organismos y empresas pueden utilizar la tecnología semántica para leer y entender grandes cantidades de información en documentos, contenidos web o redes sociales.

Resumiendo, aunque aún hay camino por recorrer para seguir enseñando a los ordenadores a extraer el significado de los textos escritos en lenguaje natural, la semántica es ya una herramienta eficaz para ayudarnos a trabajar sobre volúmenes de información que los humanos no podemos asumir.