Ad verba per numeros
Friday, April 11, 2008, 09:02 AM
painter
es posible derivar que es un tipo de artista (artist
) y, en consecuencia, un creador (creator
) y, a su vez, una persona (person
). Existen diversas iniciativas que han vinculado las categorías de la Wikipedia con Wordnet (p.ej. YAGO), sin embargo, aunque este proyecto tendría ciertas similitudes con dichas iniciativas tiene unos objetivos más modestos. Básicamente, lo que se pretende es asociar a cada categoría "wikipédica" (de un subconjunto dado) información proveniente de Wordnet para facilitar la organización de la información de los artículos categorizados; posteriormente, dicha información debería facilitar, al menos, la identificación de artículos relativos a personas, grupos de personas, artefactos, eventos y lugares. Este proyecto está bastante relacionado con la oferta titulada "Visualizing Picasso - Visualización gráfica y exploración de redes asociativas". En este proyecto se utilizarán tecnologías como: extracción de términos (servicio web de Yahoo) y etiquetado Part-Of-Speech (probablemente mediante LingPipe).El objetivo del proyecto aquí descrito es desarrollar prototipos que plasmen las ideas anteriores, generando un conjunto de datos de tamaño relativamente pequeño pero útil e ilustrativo. Producir documentación de calidad que describa la/s técnica/s empleadas/desarrolladas y permita su replicación futura a mayor escala.La idea es utilizar diversas herramientas ya disponibles (como Wordnet, LingPipe y varios servicios web) para poder hacer cosas como lo siguiente:- Saber que un Modern painter es un painter y, en consecuencia, un artist / creative person y, por tanto, un creator y, entonces, un person / individual / human y, en consecuencia, un organism, ...
De este modo podrían tenerse filtros más o menos específicos. - Asociar a los artículos wikipédicos categorías excluyentes como "persona", "grupo de personas", "evento", "artefacto", etc.
- Por ejemplo, saber que el artículo wikipédico Picasso se puede identificar con una persona (que resulta ser un creator, artista, pintor, pintor moderno, además de pintor español).
- En cambio, Femme aux Bras Croisés es un artefacto, en concreto, una obra de arte y, para más señas, una pintura.
- Por otro lado, Spanish Civil War es un evento, que involucró a grupos de personas, en acciones militares, en concreto una guerra y, además, civil.
1881 births | 1973 deaths | Andalusian people | Cubism | French Communist Party members | Modern painters | Pablo Picasso | Spanish atheists | Spanish communists | Spanish painters | Spanish people of the Spanish Civil War | Spanish potters | Spanish sculptors
¡IMPORTANTE! La primera fase del pipeline consistiría entonces en obtener los nombres de todas las categorías asociadas con un artículo dado. Lo ideal sería elaborar un script que recibiese como parámetro una ruta y generase como salida un archivo (quizás en XML).Una vez se conocen las categorías habría que asociar a cada una de ellas la metainformación que está disponible en Wordnet. Para los siguientes ejemplos voy a centrarme únicamente en dos categorías: Spanish people of the Spanish Civil War
y Spanish painters
.Comencemos con la primera, es un nombre bastante largo y habría que procesarlo de algún modo antes de consultar Wordnet puesto que no nos serviría de mucho consultar por separado los términos spanish
, people
, of
, the
, civil
y war
; eso sin olvidar que of
y the
no es que resulten particularmente interesantes.¡IMPORTANTE! Esta sería la segunda fase y aquí entraría en juego el siguiente servicio web de Yahoo. Se trata de un servicio de extracción de términos que, lamentablemente, sólo funciona de manera aceptable en inglés. Si quieres ver qué resultados proporciona sin necesidad de programar nada puedes utilizar http://yq.search.yahoo.com/Así, para Spanish people of the Spanish Civil War
obtendríamos los siguientes términos multipalabra: spanish civil war
, spanish people
. Para Spanish painters
se obtendría spanish painters
.En resumen, en la fase 2 se asociaría a cada nombre de categoría uno o más términos multipalabra obtenidos mediante el servicio web de Yahoo. Ni que decir tiene que no todo será tan sencillo como en estos ejemplos pero los problemas que surjan en esta fase (como en cualquier otra) se resolverían dentro de ella sin necesidad de afectar a ninguna otra tarea.¿Qué se hará con los términos multipalabra obtenidos?En primer lugar se intentará comprobar si aparecen "tal cual" en Wordnet. Para hacer pruebas podéis utilizar esta versión online. No es la "oficial" pero me gusta más su interfaz. También podéis descargar una versión para Windows (en realidad DOS).Así pues, habría que consultar Wordnet con spanish people
, spanish civil war
y spanish painters
.Para spanish people
ofrece un resultado: Spanish, Spanish people, the people of Spain
, puede resultar interesante almacenar estas definiciones. Sin embargo, lo que más me interesa es conocer la jerarquía semántica de la palabra. Para ello nos interesa el enlace (en esta explicación, en la aplicación seguramente usases un comando o bien una versión en SQL) spanish people is a kind of
, si lo pulsas verás que:Spanish, Spanish people
=> nation, land, country, a people
=> people
=> group, grouping
Es decir, spanish people
es una nación, una tierra, un país, un pueblo (una gente), un grupo.Para spanish civil war
también hay información: Spanish Civil War, civil war in Spain in which General Franco succeeded in overthrowing the republican government, during the war Spain became a battleground for fascists and socialists from all countries, 1936-1939
y también hay información is a kind of
:Spanish Civil War
=> civil war
=> war, warfare
=> military action, action
=> group action
=> act, human action, human activity
=> event
Con spanish painters
no hay la misma suerte puesto que no aparece en Wordnet. Así pues necesitamos algo más:¡IMPORTANTE! La tercera fase (que no se aplicaría como puedes ver en todos los casos) requiere procesar los términos multipalabra con lo que se denomina un POS tagger. POS significa Part-Of-Speech y, básicamente, nos etiqueta si una palabra es un nombre, un adjetivo, un verbo, etc. Lo mejor sería utilizar LingPipe (hay documentación sobre uso de un proyecto anterior), para esta explicación puedes probarlo online aquí.Si introducimos spanish painters.
(¡ojo! el punto "." es importante) nos produciría la siguiente salida:<output>
<s i="0">
<token pos="jj">spanish</token>
<token pos="nns">painters</token>
<token pos=".">.</token>
</s>
</output>
¿Qué significa jj
, nns
y otras etiquetas POS que aparecen en este XML? En este caso se ha utilizado el denominado Brown Corpus y JJ
significa adjective y NNS
plural noun. Los adjetivos son, obviamente, interesantes pero por las pruebas que he hecho creo que lo más razonable es limitarse a los nombres. Eso quiere decir que para la categoría Spanish painters
hemos obtenido (mediante Yahoo) el término multipalabra spanish painters
y mediante LingPipe sabemos que se le puede asociar a dicha categoría el adjetivo spanish
y que la información de Wordnet la encontraremos para el nombre painters
.Así, al introducir painters
(sí, ya sé que está en plural) en Wordnet encontramos:1. an artist who paints
2. a worker who is employed to cover objects with paint
3. a line that is attached to the bow of a boat and used for tying up (as when docking or towing)
4. cougar, puma, catamount, mountain lion, panther, Felis concolor, large American feline resembling a lion
Como se puede ver, painter
tiene 4 sentidos diferentes, ¿cuál es el que nos interesa? Como seres humanos somos capaces de identificar el primero con Picasso pero la cuestión es cómo hacerlo automáticamente. Para esto tengo una serie de ideas bastante claras que sé que pueden ser bastante robustas pero creo que eso lo dejaremos para más adelante.En resumen, hasta el momento he expuesto las 3 primeras fases del pipeline y las tecnologías a utilizar; espero que te haya quedado un poco más clara la idea aunque, claro está, el conseguir "pegar" unas cosas con otras ya será otra cuestión. El servicio web de Yahoo es muy sencillo, LingPipe está escrito en Java y ya hay un precedente de uso en la EUITIO. Casi lo que más me preocupa es Wordnet aunque hay varios proyectos relacionados que podrían resultar útiles para "consumirla" vía programática con facilidad.Back Next