Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA INFORMATICA
presentado ante la
INGENIERO EN INFORMÁTICA
A mis padres Pedro y Belinda por su amor y apoyo incondicional en todo momento, a
mi hermana Mary y mi hermano Pedro F por apoyarme y cuidarme siempre, a mi
sobrino Fabián Alejandro por alegrarme los días y a Dios Todopoderoso por guiarme
y acompañarme en cada etapa de mi vida.
Agradecimientos
A mis padres Pedro Herrera y Belinda D’Ambrosi por todo el apoyo y amor
que me han dado durante toda mi vida, por todo lo que me han enseñado y los valores
que han inculcado en mí.
A mis amigos Lino, Patricia, Chikito, Yanir, Miguel, José, Rafa, Marianny,
Vicky, Enrique, Cabral y Ezio por acompañarme durante estos cinco años y hacer de
la universidad momentos únicos e inolvidables.
pp.
Dedicatoria ................................................................................................................... II
Resumen ...................................................................................................................... XI
Introducción .................................................................................................................. 1
CAPÍTULOS
I. El Problema................................................................................................................ 3
Objetivos ................................................................................................................... 7
Alcance ...................................................................................................................... 7
Limitaciones .............................................................................................................. 8
Justificación............................................................................................................... 8
La Empresa.............................................................................................................. 10
Misión. ................................................................................................................ 10
iv
Visión. ................................................................................................................. 10
Valores. ............................................................................................................... 11
Antecedentes ........................................................................................................... 12
Ontología. ........................................................................................................ 22
v
Según el Nivel de Investigación.......................................................................... 27
Etapas. ................................................................................................................. 30
Actividades.......................................................................................................... 30
Herramientas. ...................................................................................................... 32
Roles.................................................................................................................... 35
Codificación. ....................................................................................................... 56
vi
Representación del conocimiento. .................................................................. 56
Conclusiones ........................................................................................................... 78
Recomendaciones .................................................................................................... 79
Anexos ........................................................................................................................ 87
Anexo A. Documento de contexto con los requerimientos iniciales del sistema ... 88
vii
Índice de Figuras
Figura pp.
10. Fórmulas para el cálculo del Recall y Precision del sistema ................................ 53
12. Diseño preliminar del módulo para la visualización del rendimiento del sistema
administrativo.............................................................................................................. 55
13. Diseño preliminar del módulo para la realización de preguntas desde el sistema
administrativo.............................................................................................................. 56
14. Extracto de taxonomía de servicios turísticos clasificada por Dulcey y Ramos ... 61
viii
18. Extracto de mapas de datos con conceptos y relaciones en la ontología .............. 64
22. Consulta SPARQL para la pregunta ¿Qué playas hay en Margarita? ................... 69
25. Ejemplo de pregunta: ¿Dónde puedo comer sushi? enviada al servidor ............... 70
26. Ejemplo de pregunta: ¿Qué playas hay en Margarita? enviada al servidor .......... 71
27. Consulta SPARQL generada a partir de la pregunta: ¿Dónde puedo comer sushi?
..................................................................................................................................... 71
ix
Índice de Tablas
Tabla pp.
x
UNIVERSIDAD CATÓLICA ANDRÉS BELLO
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA INFORMATICA
RESUMEN
xi
1
Introducción
El uso del lenguaje natural como medio de interacción con los computadores
es una de las áreas de la ingeniería informática que más crecimiento ha alcanzado en
los últimos años, principalmente debido al auge del internet de las cosas y los
dispositivos móviles inteligentes que ha ocasionado que una gran cantidad de
personas tengan interacción diariamente con sistemas informáticos, en los que se
buscan la mejor experiencia de usuario.
Una de las áreas que se ha vuelto más popular en los últimos años para hacer
posible este tipo de interacción es el llamado Procesamiento del Lenguaje Natural
(NLP, por sus siglas en ingles). Bird et al. (2009) lo definen como un área que
involucra manipular computacionalmente el lenguaje natural y que involucra
“entender” expresiones humanas, hasta el punto de poder ofrecer una respuesta útil.
De esta manera, ofrece una serie de mecanismos que permiten la interacción entre el
lenguaje humano y las maquinas.
para conocer sobre el país, el cual posee una enorme variedad de destinos turísticos.
Esto, utilizando los métodos convencionales de búsqueda de información como lo son
la navegación por el sitio y búsqueda por palabras claves.
Es por esta razón que a continuación se presenta, este trabajo de grado, cuyo
propósito es el desarrollo de una herramienta que proporcione una alternativa a los
métodos de búsqueda convencionales al momento de consultar información orientada
al dominio turístico en Venezuela, de tal forma que se pueda mejorar la experiencia
que tienen los usuarios al momento de realizar las búsquedas de información,
brindando la posibilidad de realizar preguntas en lenguaje natural como parte de la
aplicación Travelea, un desarrollo de la empresa Momentum Lab, C.A. Así mismo,
con el desarrollo de esta herramienta se estaría colaborando e incentivando con el
impulso tecnológico en el sector turístico del país.
.
CAPÍTULO I
El Problema
Por otra parte, Vállez (2007) afirma que “El uso de lenguaje natural en la
recuperación de la información puede favorecer el acceso a los contenidos de la web
semántica, ya que a los usuarios les resulta más cómodo y ágil usar su forma habitual
de expresión” (como se cita en Olvera y Robinson, 2010). Por lo tanto, no poder
interactuar con las aplicaciones de manera natural, como si se tratase de un guía
turístico digital a través de un buscador, que brinde la posibilidad de realizar
consultas en un lenguaje no estructurado, hace que se evidencie la necesidad del uso
de técnicas de inteligencia artificial, como por ejemplo, procesamiento de lenguaje
natural (PLN) y aprendizaje por computador, con el fin de brindar una mejor
experiencia al usuario al momento de realizar búsquedas dentro de la aplicación, en
sustitución a las búsquedas por palabras claves, preguntas frecuentes o navegación
por el sitio.
Solución Propuesta
Objetivos
Objetivo general.
Objetivos específicos.
Alcance
Limitaciones
Justificación
Marco Teórico
La Empresa
Descripción de la empresa.
Misión.
Visión.
Momentum Lab, C.A tiene como visión ser una empresa reconocida a nivel
global por ofrecer soluciones de software innovadoras propias y a la medida de sus
clientes; ampliando la influencia hacia otros sectores de desarrollo tecnológico.
11
Valores.
Estructura organizativa.
Antecedentes
Bases Teóricas
Asistentes digitales.
Siri: fue presentado en el 2011 por Apple en el lanzamiento del iPhone 4s. Se
trata de un asistente de voz capaz de realizar diversas tareas como: realizar
una llamada, buscar en internet, escribir un email, entre otras. Para su
activación, el usuario debe presionar y sostener el botón Home del IPhone.
Heather (2015) en una comparación con otros asistentes digitales menciona
que “Siri es la mejor entendiendo el lenguaje natural. Puede entender
múltiples maneras de preguntas lo mismo, de manera que no tengas que
preocuparte por recordar las frases exactas de los comandos” (párr. 5).
Google Now: es un asistente personal desarrollado por Google. Utiliza una
interfaz de usuario en lenguaje natural para responder preguntas, realizar
recomendaciones y delegar actividades a servicios web. Hill (2016) comenta
que, esta tecnología es más ambiciosa que Siri, debido a que Google Now
puede aprender de tus hábitos y puede ofrecer información en la cual piensa
que podrías estar interesado.
Alexa: es un asistente personal inteligente desarrollado por Amazon integrado
en un altavoz desarrollado por esta misma empresa llamado “Amazon Echo”.
Se activa mediante un comando de voz y puede realizar tareas como
reproducir música, hacer recordatorios, comprar cosas (Heather, 2015, párr.
8). Una de las características innovadoras de este producto es que brinda
mediante una API la posibilidad de controlar otros artefactos inteligentes del
15
Humanización de la tecnología.
Sobre este tema Turing (1950) propuso un experimento llamado The Imitation
Game, que posteriormente fue llamado “Test de Turing” (Rapaport, 2006, p.151). En
este experimento el investigador buscar determinar si el participante, en una
conversación en lenguaje natural, es un humano o una máquina. Así mismo, existen
competencias como los premios de Loebner en donde se aplica el experimento
propuesto por Turing para seleccionar al computador que se comporte de la manera
más humana en una conversación en lenguaje natural.
Web semántica.
Esta idea fue conceptualizada por Tim Berners Lee en 2001, como la
obtención de datos definidos y conectados de una manera que pueda ser usada por las
máquinas no sólo con fines de visualización, sino que, pueda automatizarse,
integrarse y reusar entre varias aplicaciones. De acuerdo con Los Santos et al (2009)
“la web semántica pretende dar una mejor estructura a los contenidos de las páginas
web para que puedan ser entendidos por los ordenadores.” (p. 4).
(2001) menciona que, la web semántica será una extensión de la actual web y no una
nueva. Berners, indica además, que “en este proyecto convergen la IA, las tecnologías
Web y se proponen nuevas técnicas y paradigmas para la representación del
conocimiento que contribuyan a la localización e integración de recursos a través de
la WWW” como se cita en Milagros et al (2012).
Sobre estas tecnologías, Baldacci (2015) afirma que “un producto o proyecto
puede tratar con la semántica, pero si no utiliza estas normas, no puede conectarse y
ser parte de la web semántica” (p.16).
Los URI son identificadores que son asignados a recursos para identificarlos
de manera única. Sobre ello, Cáceres (2006) menciona que:
Así mismo, OWL 2 presenta una serie de sublenguajes que pueden ser
utilizados dependiendo del caso que se requiera. Narváez (2010), además, describe
cada uno de ellos:
Así, este concepto podría ayudar a la idea de “la web semántica” propuesto
por Berners (2001) en la creación de un espacio de conocimiento.
Ontología.
En otras palabras, una ontología define un esquema específico que refleja una
visión específica del mundo. En sistemas basados en conocimiento, lo que puede ser
representado, puede existir en un mundo conceptualizado (Gruber, 1994, p.1).
Base de conocimiento.
presente en la terminología (Baader et al, 2003, p.50). Las afirmaciones que existen
sobre la terminología definida, puede facilitar la inferencia o razonamiento. En otras
palabras, en una base de conocimiento se registran unas estructuras de datos que
representan un conocimiento estructurados en hechos, y reglas que permiten generar
más conocimiento.
Marco Metodológico
Tipo de Investigación
Hurtado (2007) alude que, si las fuentes de información son vivas y se recoge
en su ambiente natural, el diseño se denomina de campo. Por lo tanto, Se considera
que según el diseño de investigación es de campo.
Metodología de Desarrollo
Etapas.
Actividades.
Tabla 1.
Actividades involucradas en la Metodología Momentum
Herramientas.
Tabla 2.
Herramientas utilizadas en la metodología Momentum.
Herramienta Descripción
Roles.
Product Owner
Development Team.
Los autores mencionan que no hay una manera “correcta” para desarrollar
ontologías. Por ello, discuten los problemas generales a considerar durante el
desarrollo y ofrecen un posible proceso para desarrollar una ontología. Es por ello,
que describen un proceso iterativo en donde empiezan con un primer acercamiento a
la ontología, se realizan revisiones del alcance y de ser necesario se refinan y llenan
los detalles necesarios. Además, enfatizan algunas reglas fundamentales en el diseño
de ontologías, que pueden ayudar a tomar decisiones en algunos casos:
Tabla 3.
Pasos de la metodología Ontology Development 101.
Considerar Documentos Buscar por otras ontologías que definen Una o más
reusar con el el dominio. Existen librerías de ontologías del
ontologías dominio y el ontologías reusables en la web y en la dominio, o parte
existentes alcance de la literatura. de ellas con su
ontología. descripción.
Enumerar Documento Escribir una lista con todos los términos Terminas y
términos con el usados en la ontología, describir los aspectos
importantes dominio y el términos, su significado y propiedades. importantes de
de la alcance de la modelar en la
ontología ontología, y ontología.
bibliotecas
del dominio.
Tabla 4
Pasos de la metodología Ontology Development 101 (continuación).
Nota: Adaptado de Cristani, Matteo & Cuel, Roberta. (2005). A Survey on Ontology
Creation Methodologies. Int. J. Semantic Web. Inf Syst. 1, 49-69.
Procedimiento Metodológico
Resultados
Tabla 5.
Cuadro con los aspectos de funcionamiento de los sistemas de pregunta y respuesta
estudiados.
Sistema Funcionamiento
Tabla 6.
Cuadro con los aspectos de funcionamiento de los sistemas de pregunta y respuesta
estudiados (continuación).
Sistema Funcionamiento
Levantamiento de requerimientos.
Release planning.
Sprint backlog.
ontología, el mapeado de los datos y los datos de conexión a la base de datos. De esta
manera, se seguirán las instrucciones dadas por el framework para la configuración
del sistema.
Figura 8. Vista de la base de datos del sistema Travelea para el sistema de preguntas
y respuestas.
con extensión .obda). Quest usará los mapeos para traducir las consultas SPARQL
sobre la ontología a consultas SQL sobre la base de datos definida en el archivo
de propiedades.
Mapeado: Conecta la ontología con la fuente de datos a través de la definición de
las relaciones entre los conceptos del dominio y los datos a través de un archivo
.obda.
Ontología: Es el componente que representa el conocimiento o los conceptos y
sus relaciones presentes en el dominio turístico Venezolano. Será codificada
usando el estándar OWL 2 QL propuesto por la W3C para la codificación de
ontologías en sistemas OBDA.
Debido a que identificar todas las maneras que una pregunta puede ser
realizada en lenguaje natural es bastante amplio, se implementó un módulo de
búsqueda de similitud con preguntas que el sistema ya conoce. El módulo de
similitud estará basado en identificar las palabras como vectores por medio del
análisis sintáctico de las palabras contenidas en la consulta y aplicar el cálculo de la
similitud basada en cosenos entre las preguntas.
Figura 10. Fórmulas para el cálculo del Recall y Precision del sistema. Adaptado de
“Ontology Based Natural Language Interface for Relational Databases” por
B.Sujatha, .S.Viswanadha, 2016, Procedia Computer Science, 92, p.490, Copyright
2016 por los autores.
Figura 12. Diseño preliminar del módulo para la visualización del rendimiento del
sistema administrativo
56
Figura 13. Diseño preliminar del módulo para la realización de preguntas desde el
sistema administrativo.
Codificación.
Tabla 8.
Extracto de preguntas de competencia
Preguntas de competencia
en una ontología enfocándose los posibles lugares que un turista puede visitar
en un determinado viaje y los servicios turísticos que se pueden brindar
durante su estadía en un lugar determinado.
Tabla 9.
Extracto de clases definidas y su descripción
Clase Descripción
Sitios para dormir Lugar donde una persona puede descansar y hospedarse.
Sitios para comer Lugar donde una persona puede ingerir alimentos o bebidas.
Estación de servicio Instalación situada cerca de una vía de circulación rápida que
dispone de expendedores de combustible y generalmente de
otros servicios, como teléfono, supermercado, etc.
Ferretería Es un establecimiento comercial dedicado a la venta de útiles
para la construcción y las necesidades del hogar.
Mercado de alimentos Establecimiento comercial donde se vende diversos
productos alimenticios.
Abastos Tienda de comestibles y artículos para el hogar.
61
6. Creación de instancias
El último paso de la metodología consiste en crear instancias de clases
en la jerarquía. La definición de una instancia individual requiere: elegir una
clase, crear una instancia individual de la clase y rellenar los valores de la
clase. Sin embargo, la mayoría de los individuos que tendrá nuestra base de
conocimiento estarán almacenados en la base de datos del negocio.
Fase de implementación
Durante esta fase se utilizó el editor de ontologías Protégé con la extensión del
framework de OBDA ONTOP. De esta manera, era posible realizar los mapas en
64
con un patrón se puede abarcar una diversa cantidad de datos relevantes y todas las
preguntas de ese estilo. Sin embargo, este enfoque requiere de gran esfuerzo humano
y tiempo para la elaboración de una amplia variedad de patrones, por lo que
incrementar el número de patrones que el sistema conocerá es un proceso irá
evolucionando a medida que se identifiquen nuevos patrones y se incorporen. Por
consiguiente, las preguntas de competencias utilizadas en la construcción de la
ontología servirán de base para la creación de una primera versión de los patrones de
preguntas.
La librería tuvo que ser modificada para que pudiera aplicar elementos de
procesamiento de lenguaje natural sobre preguntas realizada en español. Para ello se
incorporó el módulo de Pattern el cual es un módulo lingüístico para python que
brinda un etiquetador que ayuda analizar lenguaje natural y ofrece soporte para el
idioma español, anteriormente se habían probado otras herramientas como nltk,
StanfordTagger pero no se obtuvieron los resultados esperados analizando la pregunta
en el idioma español, por lo tanto, se decidió utilizar la herramienta Pattern que
brindaba mejores resultados etiquetando palabras en el idioma español.
Figura 22. Consulta SPARQL para la pregunta ¿Qué playas hay en Margarita?
Figura 25. Ejemplo de pregunta: ¿Dónde puedo comer sushi? enviada al servidor
71
Figura 26. Ejemplo de pregunta: ¿Qué playas hay en Margarita? enviada al servidor
Figura 27. Consulta SPARQL generada a partir de la pregunta: ¿Dónde puedo comer
sushi?
72
Figura 28. Consulta SPARQL generada a partir de la pregunta: ¿Que playas hay en
Margarita?
Caso de estudio.
preguntas realizadas al sistema lograron ser respondidas y 53% de las respuestas son
relevantes para el usuario. Existen diversas razones que pueden explicar los valores
obtenidos, en primer lugar, se tiene una versión inicial de patrones de preguntas que
modelan preguntas factuales. Este tipo de preguntas, son las que devuelven un hecho
en particular. En este caso, los sitios que el usuario este consultando. Como se
mencionó anteriormente, el sistema mejorara a medida que aumenta el uso, pues, se
incrementara la cantidad de patrones conocidos por el sistema. De este modo, se
mejoraría su rendimiento..
Como resultado se realizó un listado de las historias de usuarios con sus tareas
correspondientes, el estado de culminación y la manera en cómo se dio solución, ver
Tabla 11. De esta manera, el listado fue validado y los productos entregados al
cliente.
Conclusiones y Recomendaciones
Conclusiones
Recomendaciones
Debido a la magnitud real del sistema diseñado, sólo una serie de patrones de
preguntas fueron implementadas en concordancia con el tiempo de desarrollo del
trabajo investigativo. Por lo tanto, para ampliar la funcionalidad del sistema, se
realizan las siguientes recomendaciones:
Referencias Bibliográficas
Baader, F., McGuinness, D., Nardi, D., Patel-Scheneider, P. (2003). The description
logic Handbook: Theory, implementation and applications. New York:
Cambridge University Press. Recuperado de: https://goo.gl/83H6mf
Berners-Lee, T.; Hendler, J.; Lassila, O. (2001) “The semantic web”. Scientific
American, v. 284, n. 5, pp. 34-43. Recuperado de: https://goo.gl/2Ch24J
Camacho, A., Matos, M., Santana, I. (s.f). Desarrollo de guía turística a través de
aplicaciones para Smartphone. Universidad Católica Andrés Bello.
Disponible en: https://goo.gl/5ppbh1
Garret, J. (2010). Elements of User Experience. The User-Centered Design for the
Web and Beyond. 2da edición. Pearson Education. Recuperado el 25 de
Julio del 2017 de: https://goo.gl/TLXfQE
Grothaus, M. (2014). Cortana vs Siri: Which PDA system Does What Best? : Know
your mobile. Recuperado de https://goo.gl/Fv2hdx
Heather, K (2015). Which is the best digital assitant: Siri, Cortana, Alexa or Google
Now?. San Francisco: CNN Tech. Recuperado de https://goo.gl/UvbU1m
Hill, S. (2016). How to get the most out of google now: Digital Trends. Recuperado
de: https://goo.gl/jcKZxb
Los Santos, A., Nava, M., Godoy, D. (2009). Web 3.0: integración de la Web
Semántica y a Web 2.0. Recuperado de: https://goo.gl/Y9BBbK
84
Studer, R., Bejamins, R., Fensel, D. (1998). Knowledge engineering: principies and
methods. Data & Knowledge Engineering. 25(1-2). 161-197. Recuperado de:
https://goo.gl/2rEGHG
Todorović, A. (2015). Has The Turing Test Been Passed? Recuperado de:
http://isturingtestpassed.github.io/
Vallez, Mari (2009). “La web semántica y el procesamiento del lenguaje natural”, en
Lluis
Anexos
88
Anexo A.
Documento de contexto con los requerimientos iniciales del sistema
89
90
Anexo B.
Documentación del API Rest
91
Descripción
Devuelve una lista de sitios que pueden ser de utilidad para la consulta
realizada en lenguaje natural.
Petición
GET https://emprenomina.com/api/search
Parámetros
Campos de Respuesta
Campo Descripción
Id ID del sitio.
lat Latitud
lon Longitud
Respuesta
meta:
{
94
"code": "200",
"requestId": 14,
“limit”: 15,
“offset”: 0,
},
Response:{
Items:
"price": "$$$",
"address": "Altavista",
"photo": "",
"id": 13
"lat": “8.6565324”
"lon”: “-64.86858”
95
},
"price": "$$$",
"address": "Altavista",
"photo": "",
"id": 13
"lat": “8.6565324”
"lon”: “-64.86858”
},
Descripción
Petición
POST https://emprenomina.com/api/rating/question
96
Parámetros
Campos de Respuesta
Campo Descripción
status Devuelve el código HTTP con el estado de la petición. Ej. 200 indica que
se recibió el rating de la pregunta se realizó correctamente
97
Anexo C.
Preguntas realizadas y resultados obtenidos durante el caso de estudio
98
Tabla C- 1
Preguntas conocidas por el sistema
posadas en margarita
playas en porlamar
Tabla C- 2
Preguntas no conocidas por el sistema
Tabla C- 3.
Preguntas parcialmente conocidas por el sistema
Tabla C- 4
Preguntas realizadas por personas externas al sistema.
Figura C- 17. Pregunta: ¿que hoteles cinco estrellas hay en ciudad guayana?
Glosario