caracterizaciÓn de la informaciÓn mediante la …
TRANSCRIPT
CARACTERIZACIÓN DE LA INFORMACIÓN MEDIANTE LA EXTRACCIÓN DE METADATOS
UTILIZANDO RECUPERACIÓN DE INFORMACIÓN SOBRE CONVOCATORIAS
ANDREY MAURICIO FERNANDEZ FRANCO
MAURICIO MUÑOZ GUZMÁN
UNIVERSIDAD DE SANBUENABENTURA CALI
FACULTAD DE INGENIERÍA
PROGRAMA DE INGENIERÍA DE SISTEMAS
SANTIAGO DE CALI, 2016
CARACTERIZACIÓN DE LA INFORMACIÓN MEDIANTE LA EXTRACCIÓN DE METADATOS
UTILIZANDO RECUPERACIÓN DE INFORMACIÓN SOBRE CONVOCATORIAS
ANDREY MAURICIO FERNANDEZ FRANCO, MAURICIO MUÑOZ GUZMÁN
[email protected], [email protected]
ESTE INFORME SE PRESENTA EN CUMPLIMIENTO PARCIAL DE LOS REQUISITOS PARA EL GRADO
DE INGENIERO DE SISTEMAS POR ANDREY MAURICIO FERNÁNDEZ FRANCO Y MAURICIO MUÑOZ
GUZMÁN
DIRECTORA
EMILIA ROCIO SEGOVIA MSc.
UNIVERSIDAD DE SANBUENABENTURA CALI
FACULTAD DE INGENIERÍA
PROGRAMA DE INGENIERÍA DE SISTEMAS
SANTIAGO DE CALI, 2016
AGRADECIMIENTOS
Le agradecemos a Dios por darnos la oportunidad y las capacidades para poder cursar la carrera de
Ingeniería de Sistemas encontrando nuestra vocación en la universidad, que nos acogió a lo largo
de 5 años. En este tiempo nunca estuvimos solos, los docentes fueron nuestros guías y supieron
transmitir sus enseñanzas; queremos nombrar a Diego Armando Gómez Mosquera, el cual nos
enseñó que la teoría siempre va junto a la práctica, a Johan Steve Bejarano Fiesco, quien
fundamentó los pilares del conocimiento obtenido por nosotros, a la ingeniera María Teresa López
Dueñas por siempre mostrarnos con claridad y fortaleza las decisiones correctas en el proceso
académico, a Emilia Rocío Segovia MSc, por dirigir nuestro trabajo y dedicarnos toda su atención
para culminar nuestro proceso en la universidad. Finalmente a la ingeniera Beatriz Eugenia Grass
por siempre estar apoyándonos y guiándonos de manera correcta a través de nuestra vida
académica junto a los otros docentes del programa de Ingeniería de Sistemas, quienes estuvieron
siempre presentes.
DEDICATORIA
Esta tesis se la quiero dedicar a mi madre y a mi padre la cuales fueron fundamentales
en mi proceso académico, a mi tío Roberto a mi tía Elizabeth, los cuales siempre han
estado hay para apoyarme y aconsejarme cuando mi padre y mi madre no han estado
presentes, y por ultimo pero no por esto menos importante a mis 2 abuelos los cuales
son los pilares de mi vida y siempre estaban velando por mi bienestar y mis
preocupaciones.
Mauricio Muñoz Guzmán
DEDICATORIA
Esta tesis se la quiero dedicar a mi padre que siempre ha velado por el bienestar de
nuestra familia, a mi madre y a mi hermana quienes siempre han sido incondicionales y
que con su gran apoyo, me dieron una motivación constante durante el transcurso de
la carrera, confiando en mí y permitiendo alcanzar este momento. A mis amigos y a cada
una de las personas que han contribuido a ser la persona que soy ahora. Gracias.
Andrey Mauricio Fernández Franco
Contenido ÍNDICE DE ILUSTRACIONES .................................................................................................................. 8
1. INTRODUCCIÓN ........................................................................................................................... 9
2. DEFINICIÓN DEL PROBLEMA ..................................................................................................... 10
3. MARCO TEÓRICO Y ESTADO DEL ARTE ...................................................................................... 11
3.1 RECUPERACION DE INFORMACIÓN (RI) ............................................................................ 11
3.2 PSI-Probe ........................................................................................................................... 12
3.3 Jaspersoft® Studio ............................................................................................................. 13
3.4 JAMon(Java Application Monitor) ..................................................................................... 13
3.5 Apache PDFBox ................................................................................................................. 13
3.6 Java DOM Parser ............................................................................................................... 13
3.7 Zathuracode 5.1.0 ............................................................................................................. 14
3.8 HERRAMIENTAS PARA LA RECUPERACIÓN DE LA INFORMACIÓN .................................... 15
3.8.1 Angoss KnowledgeREADER .............................................................................................. 16
3.8.2 Attensity ........................................................................................................................... 17
3.8.3 Lexalytics .......................................................................................................................... 17
3.8.4 SAS Text Analytics ............................................................................................................ 18
3.8.5 DatumBox ......................................................................................................................... 18
3.8.6 AlchemyAPI ...................................................................................................................... 19
3.8.7 KEA ................................................................................................................................... 20
3.8.8 ParsCit .............................................................................................................................. 21
3.8.9 Mr. Dlib ............................................................................................................................. 21
4. OBJETIVO GENERAL ................................................................................................................... 22
4.1 OBJETIVOS ESPECÍFICOS .................................................................................................... 22
5. ALCANCE DEL PROYECTO .......................................................................................................... 23
6. PROYECTOS RELACIONADOS ..................................................................................................... 24
7. ANÁLISIS DE LAS HERRAMIENTAS PRE-SELECCIONADAS .......................................................... 26
8. DESCRIPCIÓN DE LA SOLUCIÓN ................................................................................................. 29
8.1 ARQUITECTURA DEL SISTEMA ........................................................................................... 29
8.1.1 ESTILO ARQUITECTÓNICO ......................................................................................... 30
8.1.2 PATORNES DE DISEÑO ............................................................................................... 31
8.2 DIAGRAMA DE COMPONENTES ........................................................................................ 33
8.3 MODELO DE BASE DE DATOS ............................................................................................ 34
8.4 DESCRIPCIÓN DEL PROCESO DE NEGOCIO ........................................................................ 35
9. PRUEBAS CON EL EXTRACTOR ................................................................................................... 40
Caso 1: Artículos en inglés ......................................................................................................... 41
Caso 2: Artículos en español ..................................................................................................... 41
Caso 3. Artículos de periódico en inglés-español ...................................................................... 42
10. RESULTADOS ......................................................................................................................... 43
11. PROYECTOS FUTUROS ........................................................................................................... 45
12. CONCLUSIONES ..................................................................................................................... 46
13. REFERENCIAS ......................................................................................................................... 47
ANEXO 1. DIAGRAMA BPM DEL SISTEMA ......................................................................................... 50
14. DOCUMENTO DE ESPECIFICACIÓN DE REQUISITOS DEL SOFTWARE .................................... 51
1. Introducción .............................................................................................................................. 54
1.1 Propósito ................................................................................................................................. 54
1.2 Alcance .................................................................................................................................... 54
1.3 Descripción del Producto ........................................................................................................ 54
1.3.1 Perspectiva del Producto ................................................................................................. 54
1.3.2 Funciones del Producto .................................................................................................... 54
1.3.3 Características de los usuarios ......................................................................................... 55
1.3.4 Limitaciones ..................................................................................................................... 55
1.4 Definiciones ............................................................................................................................. 55
2. Referencias .................................................................................................................................... 56
3. Requisitos Específicos ................................................................................................................... 56
3.1 Interfaces ................................................................................................................................. 56
3.2 Funciones ................................................................................................................................ 57
3.3 Requisitos de usabilidad .......................................................................................................... 57
3.4 Requisitos de desempeño ....................................................................................................... 57
3.5 Requisitos lógicos de base de datos ........................................................................................ 57
3.6 Restricciones de diseño ........................................................................................................... 57
3.7 Información de soporte ........................................................................................................... 58
4. Verificación .................................................................................................................................... 58
5. Apéndices ...................................................................................................................................... 58
5.1 Acrónimos y abreviaturas........................................................................................................ 58
ANEXO 2. HISTORIAS DE USUARIO .................................................................................................... 59
ÍNDICE DE ILUSTRACIONES
Ilustración 1. La problemática de la RI. Fuente:[Tolosa, 2008] ......................................................... 12
Ilustración 2. Arquitectura del sistema propuesto por Deco (et al). Fuente:[Casali y Deco, 2015] .. 24
Ilustración 3. Idiomas compatibles y características de Semantria. Fuente: [Lexalytics]. ................ 26
Ilustración 4. Precios de los paquetes de Semantria. Fuente: [Lexalytics]. ...................................... 27
Ilustración 5. Estilo arquitectónico en capas. Fuente:[Gómez, 2015] .............................................. 30
Ilustración 6. Arquitectura de Zathuracode. Fuente:[Gómez, 2015] ................................................ 30
Ilustración 7. Diagrama de secuencia patrón Business Delegate. Fuente:[Alur et al., 2006] ........... 31
Ilustración 8. Diagrama de secuencia patrón DAO. Fuente:[Alur et al., 2006] ................................. 32
Ilustración 9. Diagrama de componentes del sistema ...................................................................... 33
Ilustración 10. Modelo físico de base de datos. ................................................................................ 34
Ilustración 11. Diagrama de comunicación del sistema .................................................................... 35
Ilustración 12. Diagrama de flujo del proceso inicial del sistema ..................................................... 36
Ilustración 13. Diagrama de flujo del segundo proceso del sistema ................................................ 36
Ilustración 14. Diagrama del proceso realizado por AlchemyAPI ..................................................... 37
Ilustración 15. Reporte palabras clave de un documento ................................................................ 38
Ilustración 16. Reporte logs del sistema de caracterización ............................................................. 38
Ilustración 17. Reporte palabras sugeridas ....................................................................................... 39
Ilustración 18. login de administración. ............................................................................................ 44
Ilustración 19. Pantalla del prototipo................................................................................................ 44
1. INTRODUCCIÓN
El constante avance de la tecnología permite que cada vez más, la sociedad se encuentre más conectada en distintos campos como la economía, lo social, lo académico, investigación, etc. Entre estos avances está la expansión del acceso a internet, el cual es cada vez mayor en el mundo gracias a los planes de masificación de internet diseñados e implementados actualmente y que ha permitido que países en estado de desarrollo aprovechen la tecnología para dar un gran salto económico y social, como se expresa en “Experiencias Internacionales en la Masificación de Internet” del Plan Vive Digital del MinTIC. [MINTIC, 2014] Esta masificación del internet ha hecho que los medios de comunicación avancen exponencialmente en velocidad y eficiencia, logrando estar a disposición de casi toda la humanidad, esto conlleva a que una gigantesca cantidad de información se transporte por este medio. Debido a tal magnitud de la información que se encuentra alojada en internet, cuando se realiza un búsqueda de información específica, la información que se encuentra suele ser inadecuada o simplemente no es relevante para quien realiza la consulta, es por eso que se hace necesario que los documentos deban pasar por un filtro según su contenido y área de interés para lograr su máxima asimilación. Este proyecto se fundamenta en una idea planteada por el grupo LIDIS (LABORATORIO DE INVESTIGACIÓN PARA EL DESARROLLO DE LA INGENIERIA DE SOFTWARE) de la Universidad San Buenaventura Cali, al observar la necesidad de realizar una caracterización de los documentos de las convocatorias y becas para poder tratar de manera más eficiente esta información y lograr así mejorar el aprovechamiento de las oportunidades ofertadas en estas. En la investigación hecha para este proyecto, encontramos el proyecto llamado “Herramientas para potenciar el uso de Repositorios de Objetos de Aprendizaje” llevado a cabo por Claudia Deco, Ana Casali, Cristina Bender y Raúl Kantor, el cual tiene entre sus objetivos: Facilitar el almacenamiento de documentos en repositorios, la extracción automática de metadatos y mejorar la búsqueda de información mediante expansión semántica de la consulta y sistemas recomendadores. Para lograr estos objetivos se abordó la problemática de la extracción automática de metadatos, utilizando herramientas de Recuperación de información (RI). Basados en el trabajo realizado por Deco (et al)[Casali y Deco, 2015], vemos que lo primero que se debe hacer con la información de las convocatorias es una caracterización de esta información mediante la utilización de RI, ya que la meta final de un sistema de recuperación de información es que la información recuperada debe ser útil o relevante al usuario. En solución a la necesidad presente en la Universidad San Buenaventura de Cali, se desarrolló una herramienta que permite realizar la caracterización de documentos de convocatorias y becas por medio de la recuperación de la información, para satisfacer de la mejor forma posible una consulta realizada sobre los documentos presentes en un repositorio de convocatorias.
2. DEFINICIÓN DEL PROBLEMA En los últimos años la masificación de internet hace que la cantidad de información que se encuentra en la red sea demasiada, además de la que se genera diariamente [Beneyto, 2013; Moore, 2011], por esto al realizar una búsqueda con cualquier motor, se pueden obtener resultados que no son relevantes para quien realiza la búsqueda. En nuestro entorno universitario este problema se percibe al ver a estudiantes que en trascurso de su vida universitaria no han escuchado de las convocatorias ofrecidas por otras entidades. Esto se puede deber, a que la información nunca llego al estudiante o la información que llegó a este no le sea relevante. A su vez esto repercute en la pérdida de oportunidades para que un estudiante pueda aumentar su nivel académico y de aprendizaje. Adicionalmente al problema por parte de los estudiantes de la Universidad San Buenaventura Cali, está el problema por parte de los docentes investigadores de la universidad quienes debido a la cantidad de información, invierten mayor cantidad de tiempo de análisis de las convocatorias, que en muchos casos no aplican a sus intereses. Por lo tanto existe la necesidad por parte de la Universidad San Buenaventura Cali de implementar mecanismos que faciliten la recopilación, almacenamiento, procesamiento, análisis y recuperación de la información relevante existente como es planteado por Barraza (et al)[Barraza et al., 2014].
3. MARCO TEÓRICO Y ESTADO DEL ARTE
En esta parte del documento iniciaremos con la descripción de lo que se trata la recuperación de la
información en la sección 3.1, posteriormente en las secciones 3.2 a 3.7 se presentan componentes
que se usarán en el desarrollo de la herramienta de caracterización de documentos y finalmente en
la sección 3.8 se da una breve descripción de las herramientas pre-seleccionadas a ser revisadas a
mayor profundidad para el proyecto.
3.1 RECUPERACION DE INFORMACIÓN (RI)
La recuperación de información (RI) es la ciencia de la búsqueda de información en documentos
electrónicos y cualquier tipo de colección documental digital, encargada de la búsqueda de
metadatos que describan documentos.[Singhal, 2001]
Otra definición de RI dada por Ricardo Baeza-Yates es “la Recuperación de Información trata con la
representación, el almacenamiento, la organización y el acceso a ítems de información”.
Por otra parte Croft dice que la recuperación de información es “el conjunto de tareas mediante las
cuales el usuario localiza y accede a los recursos de información que son pertinentes para la
resolución del problema planteado. En estas tareas desempeñan un papel fundamental los lenguajes
documentales, las técnicas de resumen, la descripción del objeto documental, etc.”. Por otro lado,
Korfhage definió la RI como “la localización y presentación a un usuario de información relevante a
una necesidad de información expresada como una pregunta”.
La estructura de un sistema de recuperación de información es: [Tolosa, 2008]
Se tiene una colección de documentos con información de uno o más temas.
Hay usuarios que realizan una consulta al sistema de recuperación de información en busca
de información específica.
A la consulta realizada por el usuario, el sistema retorna – de forma ideal – referencias a
documentos “relevantes”, es decir aquellos que satisfacen la consulta específica de
información hecha por el usuario, generalmente en forma de una lista ordenada.
Ilustración 1. La problemática de la RI. Fuente:[Tolosa, 2008]
3.2 PSI-Probe
PSI-Probe es una bifurcación del proyecto Lambda Probe, es impulsado por la comunidad y
distribuido bajo la misma licencia de código abierto (GPLv2). Esta herramienta se utiliza para realizar
el monitoreo del servidor, ampliando el administrador Tomcat, haciendo más fácil administrar y
supervisar una instancia de Apache Tomcat. A diferencia de otras herramientas de monitoreo del
servidor. PSI-Probe no requiere que se realicen cambios en las aplicaciones. Las funciones de PSI-
Probe son proporcionadas por medio de una interfaz accesible en la web que se disponga
simplemente desplegándola en el servidor. Las características de PSI-Probe son: [PSI-Probe, 2015]
Solicitudes: monitorear el tráfico en tiempo real, incluso en función de cada aplicación.
Sesiones: Navega / atributos de búsqueda, ver IP pasado, expira, el tamaño estimado.
JSP: Navegar, ver fuente, compilar.
Fuentes de datos: Ver el uso de la piscina, ejecutar consultas.
Registros: Ver el contenido, descarga, los niveles de cambio en tiempo de ejecución.
Temas: Ver pila de ejecución, matan.
Conectores: Estado, gráficos de uso.
Cluster: Estado, tablas de uso.
JVM: tablas de uso de memoria, asesorar GC
Java Service Wrapper: Reiniciar JVM.
Sistema: el uso de CPU, uso de memoria, uso del archivo de intercambio.
3.3 Jaspersoft® Studio
Jaspersoft Studio es un diseñador de informes gratuito, de código abierto y basado en Eclipse para
JasperReports y JasperReports Server. Se pueden crear diseños muy sofisticados que contienen
gráficos, imágenes, subinformes, tablas JDBC, TableModels, JavaBeans, XML, Hibernate, CSV, y
fuentes personalizadas. Los reportes pueden ser publicados como PDF, RTF, XML, XLS, CSV, HTML,
XHTML, texto, DOCX o en OpenOffice. [Jaspersoft]
3.4 JAMon(Java Application Monitor)
JAMon (Java Application Monitor) es una API de Java que permite realizar el monitoreo de
aplicaciones por parte de los desarrolladores, revisando el rendimiento y comportamiento de estas.
Los módulos que se monitorean automáticamente son: SQL, solicitudes de páginas HTTP, Spring
Beans, llamadas a métodos, Log4j y Excepciones. [JAMon]
3.5 Apache PDFBox
La librería Apache PDFBox ™ es una herramienta de código abierto de Java para trabajar con
documentos PDF. Este proyecto permite la creación de nuevos documentos PDF, manipulación de
documentos existentes y la capacidad de extraer el contenido de los documentos. Apache PDFBox
también incluye varias utilidades de línea de comandos, determina el contenido de un documento
PDF (imagen, texto). Apache PDFBox se publica bajo la licencia Apache v2.0.
PDFBox es un proyecto de la Apache Software Foundation http://www.apache.org/. [The-Apache-
Software-Foundation, 2009]
3.6 Java DOM Parser
JDOM Parser es una de las opciones proporcionadas por Java para analizar documentos XML, JDOM
permite recorrer un documento XML para acceder a los datos o para modificar los datos de este
tipo de documentos. Funciona de manera muy similar pero más eficiente al DOM Parser, el cual
analiza el XML mediante la carga de todo el contenido del documento y creando su árbol de
jerarquía completo en la memoria[Tutorialspoint].
3.7 Zathuracode 5.1.0
Zathuracode es un generador de código para el desarrollo de aplicaciones empresariales en Java
Enterprise Edition (JavaEE) partiendo de un modelo de base de datos existente. Propuesta por Diego
Armando Gómez con ayuda del grupo de investigación LIDIS (Laboratorio de Investigaciones para el
Desarrollo de la Ingeniería de Software) de la Universidad de San Buenaventura Cali.
Zathuracode es una herramienta de uso libre que se distribuye bajo la licencia Apache 2.0 mantenida
y patrocinada por la empresa Vortexbird S.A.S.
Las tecnologías con las cuales Zathuracode 5.1.0 genera las aplicaciones son: [Vortexbird]
Spring Framework 4.2.4 RELEASE: Es un framework que proporciona un modelo de
programación y configuración de modernas aplicaciones empresariales basadas en Java,
manejando la inyección de dependencias para la persistencia, además brindando apoyo
para JDBC, JPA, JMS y mucho más.[Pivotal-Software, 2016a]
Spring Security 4.0.3 RELEASE: Spring Security es un framework que se centra en
proporcionar la autenticación y autorización para aplicaciones basadas en J2EE.[Pivotal-
Software, 2016b]
PrimeFaces 5.5: Son componentes visuales de Java Server Faces presentes en una suite de
código abierto, que posee una gran cantidad de componentes para hacer más fácil la
creación de aplicaciones web en Java.
HIbernate 4.3.11 Final: Hibernate es un de mapeo objeto-relacional (ORM) para la
plataforma Java, nos facilita el mapeo de atributos entre una base de datos relacional y el
modelo de objetos de una aplicación.[RedHat]
Java Server Faces Mojarra 2.2.12: Es la tecnología que simplifica la creación de interfaces
de usuario para aplicaciones Java Server siendo una implementación del estándar Java
Server Faces.[Oracle, 2014]
Java: Java es un lenguaje de programacióncorientado a objetos que fue diseñado
específicamente para tener tan pocas dependencias de implementación como fuera
posible.
3.8 HERRAMIENTAS PARA LA RECUPERACIÓN DE LA INFORMACIÓN
En la búsqueda de herramientas para realizar la recuperación de la información nos encontramos
con el informe “A review of Text Analytics Suppliers” realizado en enero de 2014 por BUTLER
ANALYTICS, en el cual como su nombre lo dice, presenta una reseña de los proveedores de análisis
de texto. En este documento se muestran tres grupos de funcionalidades en los que se pueden
clasificar las herramientas, los tres grupos son:
Análisis de texto orientado al usuario y al análisis de sentimientos: esta funcionalidad trata
de identificar y extraer información subjetiva al realizar el análisis de los textos, como
plantea el informe, esta es una ciencia con muy poco desarrollo y que abarca varios
enfoques diferentes, pero de la que se espera un progreso significativo en los próximos
años.
Procesamiento del lenguaje natural (PLN): El PLN permite extraer el significado de los datos
del texto al usar técnicas para realizar tareas como la traducción de idiomas, categorización
y etiquetado de documentos, extracción de términos significativos, etc.
Minería de texto: La minería de texto se refiere a la aplicación de algoritmos a los datos del
texto con el fin de encontrar patrones explotables.
A continuación se presentará una tabla que categoriza algunas herramientas de RI por la funcionalidad que ofrecen: [BUTLER-ANALYTICS., 2014]
Tabla 1. Herramientas de RI separadas por funcionalidad. Fuente: [BUTLER-ANALYTICS., 2014]
Funcionalidad Herramientas Análisis de texto orientado al usuario y al
análisis de semantica textual
Alchemy API
AngossKnowledgeREADER
Attensity Text Analytics
Clarabridge
Eaagle
ExpertSystem
FICO
Lexalytics
Leximancer
SAS Text Analytics
Procesamiento de lenguaje natural
AlchemyAPI
AngossKnowledgeREADER
Attensity Text Analytics
BasisTechnology
Clarabridge
Clustify
Connexor
DatumBox
ExpertSystem
FICO
Intellexer
KBSPortal
Lexalytics
Leximancer
Linguamatics
NetOwl
Provalis
AeroText
SAS Text Analytics
Minería de texto
AngossKnowledgeREADER
DatumBox
Eaagle
FICO
PolyAnalyst de Megaputer
Provalis
AeroText
SAS Text Analytics
Statistica Text Miner
Basados en la tabla anterior, se pre-seleccionaron las herramientas a ser revisadas a mayor
profundidad para el proyecto “Caracterización de la información de convocatorias y becas mediante
recuperación de información”, esta pre-selección se realizó teniendo en cuenta que se necesita la
funcionalidad de procesamiento de lenguaje natural para poder obtener la información necesaria
de los documentos a ser procesados por el sistema, también se tuvo en cuenta la información y el
acceso a ella de las herramientas con PLN (con información se refere a documentos que hablen
sobre la herramienta y sus características). A continuación ampliaremos la información sobre estas
herramientas preseleccionadas:
3.8.1 Angoss KnowledgeREADER
KnowledgeREADER de Angoss es parte de un amplio conjunto de herramientas de análisis y aborda
específicamente el análisis de texto en el contexto de las aplicaciones orientadas al cliente y
marketing. Se especializa en la representación visual que incluye un dashboard para el sentiment
analysis y el análisis de texto, y también proporciona un mapa algo único de los resultados de la
minería asociada para mostrar las palabras que tienden a ocurrir juntas. [Angoss., 2015; BUTLER-
ANALYTICS., 2014]
Características:
Dashboard para el análisis de texto y sentiment analysis
Análisis de comparación, tendencia y asociación
Exploración de documentos con sentiment markup
Extracción de tópico, tema y entidad
Categorización por temas de consulta y concepto
Perfilado, segmentación y modelado predictivo usando árboles de decisión y árboles de
estrategia
Herramientas de preparación de datos para combinar los ajustes de análisis con datos
estructurados
Incluye análisis en base de datos y soporte de datos e importación desde la base de datos,
archivos Excel, CSV, HTML, WORD, PDF y Outlook PST.
Soporta múltiples idiomas
3.8.2 Attensity
Attensity se especializa en análisis social, pero también ofrece un motor de análisis de texto de uso
general. Cuatro componentes principales definen lo que ofrece:
Attensity Pipeline recoge datos de más de cien millones de fuentes sociales como entrada
para el análisis.
Attensity Respond ofrece un mecanismo para responder a un comentario social.
Attensity Analyze permite que el texto en los correos electrónicos, notas call-center,
encuestas y otras fuentes de texto para ser analizado por el sentimiento y la tendencia.
Attensity Text Analytics proporciona un motor subyacente que abarca varias tecnologías
NLP únicas y un servidor de anotación semántica para auto-clasificación, extracción de
entidades y extracción exhaustiva. Viene con buenas herramientas de integración también,
así que los resultados de análisis de texto se pueden combinar con el análisis de datos
estructurados.
Tres soluciones horizontales se ofrecen para el marketing, servicio al cliente y TI. [BUTLER-
ANALYTICS., 2014]
3.8.3 Lexalytics
Lexalytics es uno de los precursores en el análisis de texto y su motor de análisis de texto Salience
se utiliza en estudios de mercado, monitoreo de medios sociales, encuesta de análisis/voz del
cliente, la búsqueda empresarial y aplicaciones de políticas públicas. La funcionalidad ofrecida por
Salience incluye análisis de los sentimientos, la extracción de entidades con nombre, extracción de
temas, análisis de los sentimientos de nivel de entidad, resumen y las facetas y la extracción de
atributos. El motor Salience se puede integrar en otras aplicaciones de negocio a través de un
conjunto flexible de APIs, y puede ser ajustado para tareas muy específicas y altos niveles de
rendimiento.
Otro componente esencial en el enfoque Lexalytics son los directorios de datos. Esto proporciona
efectivamente un parámetro de entorno controlado con archivos para establecer patrones de
relación, análisis de los sentimientos, y la creación de temas. Se ofrece soporte no-Inglés a través
de este mecanismo. Cada directorio puede configurarse para soportar una tarea en particular la
entrega de considerable flexibilidad y potencia. [BUTLER-ANALYTICS., 2014]
3.8.4 SAS Text Analytics
SAS Text Analytics es parte de la muy amplia capacidad de análisis que ofrece SAS. Varios módulos
se proporcionan incluyendo:[BUTLER-ANALYTICS., 2014]
SAS Contextual Analysis - para la creación de modelos de clasificación de documentos.
SAS Enterprise Content Categorization - para la categorización de contenido automatizada,
y varios módulos adicionales añaden capacidad adicional según sea necesario.
SAS Ontology Management - para definir relaciones semánticas.
SAS SentimentAnalysis
SAS Text Miner - uso de diversas técnicas supervisadas y no supervisadas.
3.8.5 DatumBox
DatumBox proporciona una plataforma de aprendizaje de máquina basada en la nube con 14 áreas
separadas de funcionalidad, muchas de las cuales son relevantes para el análisis de texto. Las
diversas funciones se llaman a través de una API REST y abordan los siguientes tipos de aplicaciones:
[BUTLER-ANALYTICS., 2014]
Análisis de Sentimiento - clasifica documentos como positivo, negativo o neutral.
Análisis de Sentimiento Twitter - dirigido específicamente a los datos de Twitter.
Análisis Subjetividad - clasifica documentos como subjetivos (opiniones personales) u
objetivo.
Clasificación de temas - documentos asignados a 12 categorías temáticas.
Detección de Spam - documentos marcados como spam o nospam.
Detección de contenido para adultos.
Evaluación de legibilidad - sobre la base de términos y expresiones idiomáticas.
Detección de idioma.
Detección comercial - comercial o no comercial basándose en palabras clave y expresiones.
Detección Educacional - en función del contexto.
Detección de Género - escrito por o dirigirse a hombres/mujeres basado en palabras e
idiomas.
Extracción de palabras clave.
Extracción de texto - extracción de información importante de una página web.
La similitud de documentos - para detectar página web duplicados y plagio.
Para finalizar de nombrar herramientas de IR, a continuación son nombradas las que fueron analizadas en el trabajo llamado “Herramientas para potenciar el uso de Repositorios de Objetos de Aprendizaje” llevado a cabo por Claudia Deco, Ana Casali, Cristina Bender y Raúl Kantor.
3.8.6 AlchemyAPI
AlchemyAPI fue fundada en 2005 y tiene su sede en Denver, Colorado. Planes de precios para los
servicios basados en la nube se basan en transacciones por día y comienzan con una suscripción
gratuita de arranque.
Soporta sentiment analysis, marketing, content discovery, inteligencia de negocio y la mayoría de
las tareas en las que se necesita el procesamiento de lenguaje natural. Posee un set de
entrenamiento usado para modelar el lenguaje 250 veces más grande que la Wikipedia; también
utiliza tecnologías de aprendizaje profundas (redes neuronales multicapa), además del análisis de
texto, usa tecnología de reconocimiento de imágenes. [BUTLER-ANALYTICS., 2014]
AlchemyAPI ofrece por medio de una REST API las siguientes funcionalidades:
Sentiment analysis (Análisis de sentimiento): También conocido como minería de opinión,
permite identificar el sentimiento positivo o negativo de un documento o página web. Este
intenta determinar la actitud de un interlocutor o escritor con respecto a algún tema o la
polaridad contextual general de un documento. (Se puede utilizar sobre una página web
mediante su URL, un documento HTML o un String).
Taxonomy (Taxonomía): Permite categorizar el código HTML o contenido basado en web,
asignando categoría más probable a la información. (Se puede utilizar sobre una página web
mediante su URL, un documento HTML o un String).
Concept Tagging (Etiquetado de conceptos): Permite etiquetar automáticamente el código
HTML, texto o documentos basados en web. El concept tagging es capaz de abtraer,
entendiendo como se relacionan los conceptos y etiquetar adecuadamente. Por ejemplo:
“Mis marcas favoritas son BMW, Ferrari y McLaren” generaría la etiqueta “Industria del
automóvil”. (Se puede utilizar sobre una página web mediante su URL, un documento HTML
o un String).
Entity Extraction: Permite la identificación de personas, empresas, organizaciones,
ciudades, accidentes geográficos y otros tipos de entidades en HTML, texto o contenido
basado en web. (Se puede utilizar sobre una página web mediante su URL, un documento
HTML o un String).
Keyword Extraction: Permite la extracción de palabras claves utilizando algoritmos
estadísticos y procesamiento del lenguaje natural para analizar las palabras claves que
puedan ser usadas para indexar el contenido de la extracción, generando nubes de
etiquetas y mucho más. (Se puede utilizar sobre una página web mediante su URL, un
documento HTML o un String).
Relation Extraction: Permite identificar las relaciones sujeto-accion-objeto dentro de un
HTML, texto o contenido basado en web. (Se puede utilizar sobre una página web mediante
su URL, un documento HTML o un String).
Text Extraction: Permite realizar la extracción de texto de una página web. (Solo puede ser
usado en páginas web ya que la información es extraída de una estructura de etiquetas
como HTML, xHTML o XML).
Face Detection: Permite la detección y reconocimiento de rostros en las URLs dadas.
Image Link Extraction: Permite extraer los enlaces de las imágenes de una URL especificada.
Image Tagging: Extrae las etiquetas de las imágenes de una URL especificada
Author and Authors Extraction: Extrae los autores de una página web o un documento
HTML. (Solo realiza la extracción de HTML ya que utiliza las etiquetas para saber quién es el
autor del documento, página o blog).
Language Detection: Detecta el idioma del texto estudiado
Feed Detection: Extrae los links RSS/ATOM Feed embebidos en cualquier página web.
Microformats Parsing: Entiende estándares Microformats de datos y es capaz de extraer el
contenido con formato hCard, adr,geo y rel- desde cualquier página web. Aprovecha estos
datos estructurados para mejorar la categorización de una página web y llevar a cabo tareas
de descubrimiento de contenido (content discovery).
Publication Date: Extrae la información de la fecha de publicación cuando está especificada
en la página web.
3.8.7 KEA KEA es un algoritmo para extraer palabras clave de los documentos de texto. Se puede utilizar ya sea para la indexación libre, donde frases clave se seleccionan del propio documento, o para la indexación con un vocabulario controlado. KEA también se puede utilizar para el etiquetado
automático. KEA está implementado en Java y es independiente de la plataforma. Es un software de código abierto distribuido bajo la Licencia Pública General GNU. [Casali y Deco, 2015]
3.8.8 ParsCit Aplicación de código abierto, estructura al documento y genera un XML donde identifica Título, Autor, Resumen y Palabras Clave. Utiliza aprendizaje automático supervisado, incluye utilidades para ejecutarse como servicio Web o como aplicación independiente. [Casali y Deco, 2015]
3.8.9 Mr. Dlib Mr. Dlib, una biblioteca digital de lectura mecánica. Mr. dlib proporciona acceso a varios millones
de artículos en texto completo y sus metadatos en formato XML y JSON a través de un servicio web
REST. Además, el Mr. dlib ofrece documentos relacionados con artículos académicos dados. El
servicio está destinado a servir investigadores que necesitan datos bibliográficas y de texto
completo de la literatura académica de sus análisis (por ejemplo, de impacto y de análisis de
tendencias); proveedores de servicios académicos que necesitan información adicional para
mejorar sus propios servicios (por ejemplo, las recomendaciones de la literatura); y los proveedores
que quieren construir sus propios servicios basados en datos del Mr. dlib. [Bell, 2011]
4. OBJETIVO GENERAL
Desarrollar una herramienta para caracterizar la información de las convocatorias en un modelo de base de datos mediante information retrieval.
4.1 OBJETIVOS ESPECÍFICOS Seleccionar las herramientas de recuperacion de informacion apropiadas de
búsqueda y extracción de metadatos de las convocatorias.
Diseñar el modelo de metadatos que caracterice las convocatorias.
Construir la herramienta que realice la caracterización de la información para
almacenar el resultado en el modelo.
Evaluar el desempeño de la aplicación en un entorno controlado para así validarla.
5. ALCANCE DEL PROYECTO
A continuación se presentan en el alcance del proyecto los puntos que se considera son relevantes
y han sido desarrollados en la solución para apoyar el análisis de convocatorias por parte de los
docentes investigadores y para el aprovechamiento de la información de estas por parte de los
estudiantes, problema presente en la Universidad San Buenaventura Cali:
Recuperación de información de Convocatorias y Becas presentes en el repositorio
local.
Acceso a los resultados de la caracterización por medio de una interfaz mediante
consultas hechas por los usuarios.
Generación de reportes con información relevante del sistema y de la caracterización
realizada.
Obtención de sugerencias hechas por parte de los usuarios para fortalecer la
caracterización.
Modificación de parámetros por parte de los administradores del sistema (expansión
del diccionario, etc.).
6. PROYECTOS RELACIONADOS
Para la elaboración de este proyecto, realizamos una búsqueda de herramientas similares a la
herramienta planteada para este proyecto, que permitan realizar una extracción automática de
metadatos de documentos.
En la búsqueda encontramos el proyecto llamado “Herramientas para potenciar el uso de
Repositorios de Objetos de Aprendizaje”[Casali et al., 2014], llevado a cabo por Claudia Deco, Ana
Casali, Cristina Bender y Raúl Kantor, el cual tiene entre sus objetivos: Facilitar el almacenamiento
de documentos en repositorios, la extracción automática de metadatos y mejorar la búsqueda de
información mediante expansión semántica de la consulta y sistemas recomendadores. Para lograr
estos objetivos se abordó la problemática de la extracción automática de metadatos, utilizando
herramientas de RI.
Entre las herramientas que fueron analizadas en este proyecto están: AlchemyAPI, KEA, MrDlib y
ParsCit. Entre los resultados obtenidos muestran que KEA y AlchemyAPI obtuvieron resultados
similares (60%) en cuanto a la precisión (la precisión está definida como el cociente entre el número
de respuestas correctas y el número de respuestas producidas) en la extracción de palabras clave y
que el mejor rendimiento se dio al combinar a AlchemyAPI y ParsCit obteniendo un 70% en la
precisión, un 14% más que con AlchemyAPI en solitario.
Ilustración 2. Arquitectura del sistema propuesto por Deco (et al). Fuente:[Casali y Deco, 2015]
Adicionalmente a las herramientas para la extracción de los metadatos, utilizan el Apache PDFBox
para realizar la extracción de información de los documentos en formato PDF, el crawler crawler4j
y el motor de base de datos de grafos Neo4j.
Entre lo descrito anteriormente se obtuvo información muy importante para el planteamiento de la
herramienta que desarrollamos por la similitud del proyecto, diferenciándose en que no hacemos
uso de una base de datos orientada a grafos ya que no vamos a hacer el mapeo de sitios de donde
se extrae la información ya que los documentos que vamos a caracterizar están en el repositorio
local y que únicamente se va a usar el AlchemyAPI apoyada por un diccionario de términos en
reemplazo de ParsCit para realizar la caracterización de los documentos.
7. ANÁLISIS DE LAS HERRAMIENTAS PRE-SELECCIONADAS
Para las herramientas pre-seleccionadas en la sección 3, se realizó un análisis más exhaustivo para
determinar la que sería parte del proyecto, de este análisis se obtuvieron los siguientes resultados:
De las herramientas Angoss KnowledgeREADER y SAS Text Analytics se encontró información y
artículos referentes a las características y funcionalidades ofrecidas por estas, pero no fue posible
obtener una demo a pesar de haberla solicitado mediante la página oficial de cada una de ellas,
tampoco se obtuvo información adicional (a la que se expuso en la sección 3 de este documento) a
pesar de la solicitud hecha en las secciones de soporte de las páginas oficiales de estos proveedores
(http://www.angoss.com/predictive-analytics-software/software/knowledgereader/ -
http://www.sas.com/en_us/software/analytics/text-miner.html).
Al buscar información de Lexalytics encontramos que esta herramienta ofrece una herramienta
llamada Semantria, especializada en el procesamiento de lenguaje natural, esta tiene una API
compatible con distintos lenguajes como Ruby, .NET, JavaScript, Node JS, Python, Java , PHP y C++.
La API además soporta los siguientes lenguajes:
Ilustración 3. Idiomas compatibles y características de Semantria. Fuente: [Lexalytics].
Y los precios de Semantria de Lexalytics son:
Ilustración 4. Precios de los paquetes de Semantria. Fuente: [Lexalytics].
Por otra parte DatumBox ofrece una API REST que se conecta mediante una API Key dada por
Datumbox y la cual tiene clientes para PHP, C#, Python, Ruby, Node JS y Java, esta API provee un
número limitado de llamados que son 1000 por día, pero la documentación de las APIs como tal no
existe.
Entre las herramientas estudiadas por Claudia Deco y Ana Casali se encuentran:
KEA (keyphrases extraction algorithm), una herramienta para la extracción de términos
relevantes implementada en Java, que requiere una fase de entrenamiento para ser usada.
El alcance de esta herramienta es limitado para la información que requerimos extraer de
los documentos que serán procesados.
MrDlib (Machile readable digital library) es una biblioteca digital que permite el acceso a
diversos artículos y sus metadatos, esta herramienta se encuentra en una fase beta de
desarrollo, por esta razón decidimos no utilizarla en nuestro proyecto.
ParsCit estructura el documento y general un XML donde se identifica Título, Autor,
Resumen y Palabras Clave, se ejecuta como servicio web, pero debe ser entrenado en el
tipo de documentos a procesar, especialmente en el idioma español, la documentación
respecto a ParsCit es nula y el servicio es intermitente cuando realizamos pruebas en la
página, razón por la que decidimos descartar esta herramienta.
Finalmente está AlchemyAPI nombrada en la investigación realizada por Casali (et al)[Casali y Deco,
2015] y en el documento elaborado por BUTLER ANALYTICS[BUTLER-ANALYTICS., 2014], esta
herramienta es la más completa de las investigadas, tiene todas las funcionalidades en las que se
categorizan las herramientas en la Tabla 1. Adicionalmente el API REST funciona mediante un cliente
en Java, que para uso académico permite realizar un máximo de 30.000 llamados a la API por día o
1.000 llamados para el uso comercial, para aumentar los llamados a más de 200.000.000 diarios, se
debe acceder al “AlchemyAPI Subscription Plan”.
Como se puede observar AlchemyAPI es la herramienta más apropiada para lograr la construcción
del sistema de caracterización, de las funcionalidades ofrecidas por AlchemyAPI nos centraremos
en la extracción de palabras claves y la extracción de entidades; adicionalmente para aumentar el
éxito en los resultados integraremos a la herramienta un diccionario de términos.
8. DESCRIPCIÓN DE LA SOLUCIÓN
En el diseño de la plataforma colaborativa hecho por Barraza (et al)[Barraza et al., 2014], se propone
que una de las herramientas de la plataforma sea un “Observatorio de convocatorias”. El grupo de
investigación LIDIS ha propuesto la realización de un observatorio de convocatorias para la
Universidad San Buenaventura Cali, el cual está compuesto por tres proyectos. El primero es el
“Portal web para presentación de convocatorias y becas para investigadores” el cual mediante la
utilización de un crawler que traerá la información de distintas páginas de convocatorias tales como
Colciencias (Departamento administrativo de ciencias, tecnología e innovación
http://www.colciencias.gov.co/). El segundo proyecto es la “Caracterización de la información
mediante la extracción de metadatos utilizando recuperacion de informacion sobre convocatorias”,
que se alimenta de los resultados del portal web y se encargará de caracterizar la información de
las convocatorias y guardar los resultados del procesamiento de los documentos en una base de
datos, que a su vez alimentará el tercer proyecto del “Observatorio de convocatorias” el cual es el
“Desarrollo de un sistema de recomendaciones basado en el histórico de consulta y perfiles de
usuario para convocatorias y becas de proyectos de investigación” que como su nombre lo indica,
se encargará de recomendar la información que ha sido previamente caracterizada a los usuarios
del Observatorio.
De acuerdo a lo planteado la pregunta ¿Es posible realizar una herramienta que permita la
extracción de metadatos de las convocatorias para realizar su caracterización? Para dar solución a
esta pregunta y basados en el trabajo hecho por Deco (et al)[Casali y Deco, 2015], se ha propuesto
un sistema que aplique la recuperación de la información para realizar la extracción de metadatos
de los documentos, haciendo uso en el sistema de herramientas presentes en el mercado como
AlchemyAPI.
El lenguaje de programación para la elaboración del sistema de extracción y caracterización de
información seleccionado es Java, al hacer uso de herramientas tales como Zathuracode, PSI Probe
y librerías tales como PDFBox, JDOM Parser, nio librería nativa de Java y la propia AlchemyAPI para
la extracción de Información.
8.1 ARQUITECTURA DEL SISTEMA
A continuación se describe el estilo arquitectónico de la herramienta desarrollada para la
caracterización de convocatorias y becas a partir de la arquitectura base ofrecida por el framework
Zathuracode, como la lógica de negocio, el delegado de negocio, los POJOs, los Data Access Object
y el Entity Manager Helper.
8.1.1 ESTILO ARQUITECTÓNICO
La arquitectura de software del sistema está definida por el estilo de arquitectura de capas
jerárquicas o arquitectura estratificada, el sistema está organizado en capas que proveen un
conjunto de servicios a las capas superiores y requieren de los servicios de las capas inferiores,
facilitando la comprensión, el mantenimiento, reutilización y la portabilidad del sistema
desarrollado.
Ilustración 5. Estilo arquitectónico en capas. Fuente:[Gómez, 2015]
Este estilo arquitectónico, es la arquitectura genérica obtenida al hacer uso del framework
Zathuracode como apoyo en la generación del código base de nuestro sistema en Java Enterprise
Edition a partir del modelo de base de datos definido (sección 8.3).
Ilustración 6. Arquitectura de Zathuracode. Fuente:[Gómez, 2015]
8.1.2 PATORNES DE DISEÑO
Los patrones de diseño en el software, son modelos reutilizables de software que proveen
soluciones a problemas comunes de los cuales ya se tiene una solución probada y óptima. En el
sistema desarrollado, los patrones de diseño ofrecidos por Zathuracode son:
Business Delegate: El Business Delegate se usa para reducir el acoplamiento entre los
clientes de la capa de presentación y los servicios de negocio, este actúa como una
abstracción de negocio del lado del cliente, ocultando la implementación de los servicios
del negocio.
Ilustración 7. Diagrama de secuencia patrón Business Delegate. Fuente:[Alur et al., 2006]
DAO (Data Access Object): Es un patrón en el cual se identifican todas las entidades del
negocio, transformándolas en clases de las que se generan instancias. Las clases encapsulan
cierta lógica del negocio para realizar persistencia de datos, permitiendo continuar con el
hilo sin perder la transacción.
Ilustración 8. Diagrama de secuencia patrón DAO. Fuente:[Alur et al., 2006]
Singleton: Instancia la clase de manera única lo cual impide que existan dos instancias
dentro de una misma sesión, evitando la duplicidad de datos.
DTO (Data Transfer Object): Es un objeto que transporta datos entre procesos usualmente
usado para evitar penalizaciones de tiempo al realizar transacciones en una base de datos,
esto funciona a través de la creación de un objeto de negocio el cual está compuesto de
todas las entidades necesarias.
Interface: Este patrón tiene como objetivo separar las funciones por medio de firmas de
métodos de las implementaciones, brindando la capacidad de modificar las
implementaciones sin modificar el código donde se hace el llamado de dicha interfaz.
Adicionalmente a estos patrones de diseño brindados por el framework Zathuracode fueron
implementados en el desarrollo del sistema, los siguientes patrones:
Iterator: Define interfaces las cuáles serán las encargadas para acceder
secuencialmente a un grupo de objetos de una colección.
Observer: El patrón observador se puede definir como el monitoreo y estados de
cambio de una instancia, objeto o archivo y notificar a todas las dependencias el cambio
de este, desencadenando acciones automáticamente.
8.2 DIAGRAMA DE COMPONENTES
Ilustración 9. Diagrama de componentes del sistema
En el sistema el comportamiento de los componentes comienza en la capa de presentación de los
XHTMLs generados con primefaces, estos se comunican con los BackEndBeans, quienes realizan el
llamado al delegado de negocio, usado para ocultar la implementación de los servicios del negocio,
usado principalmente en servicios web para exponer solo lo necesario del sistema y reducir el
acoplamiento ente la capa de presentación y los servicios.
Estos servicios ocultos por el delegado de negocio tienen la lógica del negocio y es donde tenemos
los métodos construidos del sistema, lo que quiere decir es, donde se encuentran los algoritmos del
diccionario, los llamados a AlchemyAPI y demás que serán descritos en la sección 7.3 de este
documento.
Finalmente para la persistencia se usa el patrón de diseño DAO tal como se describió en la sección
8.1.2 de este documento, encapsulando el acceso a la base de datos.
8.3 MODELO DE BASE DE DATOS
Ilustración 10. Modelo físico de base de datos.
8.4 DESCRIPCIÓN DEL PROCESO DE NEGOCIO
Con el fin de dar a conocer el proceso que se realiza al momento de caracterizar un documento
nuevo por parte del sistema, a continuación se describe el proceso y la interacción entre las clases
usadas.
Ilustración 11. Diagrama de comunicación del sistema
Inicialmente el proceso empieza cuando un documento en formato PDF ingresa en la carpeta raíz
del repositorio, esta carpeta se monitorea con función WatchService de la librería nio de Java, esta
librería se encarga de vigilar la carpeta a la espera de algún cambio o evento. Al encontrar un
documento nuevo, La función file de la librería nio se encarga de mover el documento a la carpeta
en proceso. Una vez el documento se encuentra en la capeta en proceso, se verifica si el documento
ha sido procesado anteriormente, si es así entonces finaliza el proceso, de caso contrario continúa
con el proceso.
Ilustración 12. Diagrama de flujo del proceso inicial del sistema
Una vez el documento se mueve a la carpeta en proceso, el WatchService en esta carpeta activa la
función del Apache PDFBox, que intenta realizar la extracción del texto del documento en formato
PDF, para obtener la cadena de caracteres del contenido del documento. Si el Apache PDFBox no
puede realizar la conversión del documento, esto quiere decir que el contenido del documento no
es texto, lo cual registra una excepción en los archivos logs del sistema y da por terminado el
proceso de extracción por parte del sistema.
Ilustración 13. Diagrama de flujo del segundo proceso del sistema
Si el Apache PDFBox logra extraer la cadena de caracteres, esta cadena de caracteres pasa por los
siguientes dos procesos realizados en paralelo:
1. Con la librería lang de Java se eliminan las stopwords, luego con componentes de la librería
util de Java se convierte la lista de términos traídos de la base de datos en un Hasmap para
ser comparados con la cadena de caracteres y obtener los resultados de la comparación. La
cadena de caracteres es procesada por el algoritmo basado en estructuras de datos tales
como son los arboles AVL, b, b+, B*, que se encarga de comparar los términos encontrados
en la cadena de caracteres, con los términos que se encuentran almacenados en el
diccionario construido.
2. La cadena de caracteres es procesada por AlchemyAPI que realiza la extracción de entidades
y palabras claves del texto. Esta información es entregada al sistema en formato XML, el
cual debe ser decodificado en cadena de caracteres por medio de la librería JDOM Parser,
para poder realizar la comparación de texto contra el diccionario
Ilustración 14. Diagrama del proceso realizado por AlchemyAPI
Finalmente los resultados obtenidos en estos dos procesos son comparados para eliminar los
términos repetidos y obtener así un solo resultado producto de la unión de estos procesos, logrando
así una mejor caracterización de los documentos, guardando los resultados en la base de datos y
dando por finalizado el proceso por parte del sistema.
Luego de la caracterización de los documentos, el sistema puede generar reportes como:
Reporte de palabras claves de un documento, en donde se mostraran todas las palabras
clave que han sido extraídas por el sistema de un documento seleccionado.
Ilustración 15. Reporte palabras clave de un documento
Reporte de logs de la aplicación, en donde se muestra la fecha y la descripción de los logs
de la aplicación.
Ilustración 16. Reporte logs del sistema de caracterización
Reporte de palabras sugeridas, en donde se muestran palabras que han sido buscadas en
las consultas pero con las cuales no se han obtenido resultados, ya sea porque el sistema
no las ha encontrado por limitaciones propias o porque no existen documentos con estas
palabras, permitiendo con estas palabras evaluar la pertinencia de su inclusión en el
diccionario de términos y expandir así su alcance.
Ilustración 17. Reporte palabras sugeridas
Este sistema es parte del proyecto, observatorio de convocatorias y se pensó siempre en que debe
tener integración con otros sistemas que pueden utilizarlo. Por medio de la dirección URL nuestro
sistema puede ser incluido en portales web ya existentes y nuestra base de datos está debidamente
normalizada, lo cual permite poder utilizarla para realizar recomendaciones a los estudiantes con el
fin de enviarle información al usuario, también se encuentra contemplado realizar a través de un
procedimiento almacenado, la consulta de los títulos de las convocatorias ya que este dato se debe
consultar de la página en la cual se extrae el documento de la convocatoria.
9. PRUEBAS CON EL EXTRACTOR
El extractor seleccionado para el desarrollo del sistema es AlchemyAPI, el cual utiliza la tecnología
de procesamiento de lenguaje natural y algoritmos de aprendizaje automático para extraer
metadatos semánticos de contenido, tales como información sobre personas, lugares, empresas,
temas, hechos, relaciones, autores y lenguas.
De las funcionalidades nombradas en la sección 3.8.6, ofrecidas por AlchemyAPI, solo están
soportadas en el idioma español las siguientes:
Sentiment analysis
Entity Extraction
Keyword Extraction
Adicionalmente las funcionalidades que no dependen del idioma como son:
Text Extraction
Author and Authors Extraction
Language Detection
Publication Date
Para realizar la caracterización de convocatorias se utilizaron las extracción de entidades y la
extracción de palabras clave ya que son pertinentes para el proyecto y se pueden aplicar sobre una
cadena de caracteres.
Posteriormente decidimos evaluar el desempeño del extractor seleccionado en lo que respecta a la
extracción de palabras claves y entidades. Esto lo realizamos al aplicar estas dos funcionalidades en
documentos en inglés y documentos en español para saber las posibles falencias del extractor en el
idioma español, porque los documentos objetivos a caracterizar por la herramienta inicialmente son
las convocatorias provenientes de Colciencias.
Caso 1: Artículos en ingles
Caso 2: Artículos en español
Caso 3: Artículos de periódico en inglés y español
Métricas utilizadas:
Precisión (P) y Cobertura (C) en donde:
𝑃 =# 𝑅𝑒𝑠𝑝𝑢𝑒𝑠𝑡𝑎𝑠 𝐶𝑜𝑟𝑟𝑒𝑐𝑡𝑎𝑠
# 𝑅𝑒𝑠𝑝𝑢𝑒𝑠𝑡𝑎𝑠 𝑃𝑟𝑜𝑑𝑢𝑐𝑖𝑑𝑎𝑠
𝐶 =# 𝑅𝑒𝑠𝑝𝑢𝑒𝑠𝑡𝑎𝑠 𝐶𝑜𝑟𝑟𝑒𝑐𝑡𝑎𝑠
# 𝑇𝑜𝑡𝑎𝑙 𝑃𝑜𝑠𝑖𝑏𝑙𝑒 𝑑𝑒 𝑅𝑒𝑠𝑝𝑢𝑒𝑠𝑡𝑎𝑠 𝐶𝑜𝑟𝑟𝑒𝑐𝑡𝑎𝑠
Para todos los casos se realizó de forma manual la extracción palabras claves y entidades de los
documentos, para poder determinar cuál era el número total posible de respuestas correctas y
saber también el número de respuestas correctas de cada documento y con esto poder determinar
la precisión y cobertura de los resultados obtenidos con el extractor.
Caso 1: Artículos en inglés Se analizaron 5 artículos en inglés de acceso abierto obtenidos de ScienceDirect.
Tabla 2. Precisión y Cobertura en artículos en inglés.
Documento Idioma Palabras Clave Entidades
Precisión Cobertura Precisión Cobertura Artículo 1 Inglés 0.92 0.92 0.97 0.84 Artículo 2 Inglés 0.86 0.89 0.8 0.7 Artículo 3 Inglés 0.82 0.79 0.7 0.7 Artículo 4 Inglés 0.89 0.81 0.74 0.88 Artículo 5 Inglés 0.88 0.86 0.85 0.79 Promedio 0.87 0.854 0.812 0.782
Como se puede observar en la Tabla 2. En cuanto a palabras claves se obtuvo una precisión del 87%
en promedio y una cobertura promedio del 85,4%. Esta cobertura nos permite decir que se
extrajeron casi todas las palabras consideradas como clave de los documentos analizados y la
precisión permite decir que de las palabras claves que se obtuvieron la mayoría eran palabras claves
de los documentos estudiados.
Con respecto a las entidades se obtuvo una cobertura promedio del 78,2% lo que quiere decir que
se obtuvo la mayoría de las entidades de los artículos, además de una precisión promedio del 81,2%
lo que quiere decir que la mayoría de las entidades obtenidas eran las correctas para los artículos
estudiados.
Caso 2: Artículos en español Se analizaron 5 artículos en español de acceso abierto.
Tabla 3. Precisión y Cobertura en artículos en español.
Documento Idioma Palabras Clave Entidades
Precisión Cobertura Precisión Cobertura Artículo 1 Español 0.4 0.17 0.69 0.39 Artículo 2 Español 0.62 0.48 0.56 0.56 Artículo 3 Español 0.3 0.36 0.58 0.78 Artículo 4 Español 0.46 0.5 0.4 0.5 Artículo 5 Español 0.48 0.56 0.54 0.68 Promedio 0.452 0.414 0.554 0.582
Como se puede observar en la Tabla 3. Se obtuvo una cobertura promedio del 41.4% de palabras
claves, lo que quiere decir que se extrajeron menos de la mitad de palabras clave posibles de los
artículos estudiados y la precisión promedio de las palabras clave fue de 45,2%, lo que quiere decir
que de las palabras extraídas, menos de la mitad son realmente palabras clave de los artículos de la
prueba.
En lo que respecta a las entidades se obtuvo una cobertura del 58,2%, lo que indica que se extrajeron
un poco más de la mitad de las entidades posibles de los artículos y la precisión promedio fue del
55,4%; lo que quiere decir que de las entidades que se extrajeron sólo la mitad eran correctas.
Caso 3. Artículos de periódico en inglés-español Se analizaron 5 artículos de periódicos en inglés y 5 en español para comparar los resultados con
textos que fueran exactamente iguales.
Tabla 4. Precisión y Cobertura en artículos de periódico en inglés-español.
Documento Idioma Palabras Clave Entidades
Precisión Cobertura Precisión Cobertura Artículo 1 Español 0.2 0.058 0.5 0.15 Artículo 1 Inglés 0.28 0.59 0.86 0.46 Artículo 2 Español 1 0.11 0.71 0.35 Artículo 2 Inglés 0.36 1 1 0.642 Artículo 3 Español 1 0.08 0.6 0.23 Artículo 3 Inglés 0.26 1 1 0.85 Artículo 4 Español 0.4 0.18 0.71 0.22 Artículo 4 Inglés 0.18 0.81 1 0.91 Artículo 5 Español 0.29 0.13 0.75 0.19 Artículo 5 Inglés 0.31 1 1 0.81 Promedio Español 0.57 0.11 0.654 0.228 Promedio Inglés 0.278 0.88 0.972 0.734
En la Tabla 4. Se observa una disminución en la precisión y la cobertura obtenida por el extractor
frente a los procesos realizados sobre artículos científicos en inglés y en español. Sin embargo se
mantiene la tendencia observada previamente, con la que se puede asegurar que los mejores
resultados de los procesos llevados por AlchemyAPI son sobre documentos en inglés.
10. RESULTADOS
En las pruebas hechas con AlchemyAPI sobre los artículos científicos en inglés, se obtiene un valor
promedio en la precisión de la extracción de palabras clave del 87% frente al 45.2% al realizar este
mismo proceso sobre artículos científicos en español. El valor promedio de cobertura de la
extracción de palabras claves de los artículos científicos en inglés es del 85.4% frente a un 41.4% de
este proceso realizado sobre artículos científicos en español.
En cuanto al valor de la precisión al realizar la extracción de entidades de los artículos científicos en
inglés, se obtiene un promedio del 81.2% frente a un 55.4% de la extracción de entidades de
artículos científicos en español. La cobertura promedio de la extracción de entidades de los artículos
científicos en español es del 58.2% frente a un 78.2% de la extracción de entidades de los artículos
científicos en inglés.
Finalmente en las pruebas realizadas sobre artículos de periódico, muestran una disminución de la
precisión y la cobertura de los resultados obtenidos tanto en el idioma inglés, como en español,
frente a los resultados obtenidos al realizar el proceso sobre artículos científicos en estos idiomas;
sin embargo se sigue manteniendo la tendencia de obtener mejores resultados al realizar la
extracción de entidades y palabras claves en los artículos de periódico en inglés con respecto a los
mismos artículos en español como se puede apreciar en la tabla 5.
Tabla 5. Resultados promedio de la experimentación con AlchemyAPI.
Tipo Idioma Palabras Clave Entidades
Precisión Promedio
Cobertura Promedio
Precisión Promedio
Cobertura Promedio
Artículo científico Inglés 87% 85.4% 81.2% 78.2% Artículo científico Español 45.2% 41.4% 55.4% 58.2%
Artículo de periódico
Inglés 27.8% 88% 97.2% 73.4%
Artículo de periódico
Español 57% 11% 65.4% 22.8%
Podemos observar que los resultados de la extracción de palabras claves y entidades son muchos
mejores en los textos en inglés, razón por la cual, para reforzar los resultados obtenidos de este
proceso se realizó un diccionario de términos que brinde un apoyo al extractor y obtener mejores
resultados a la hora de realizar la caracterización de las convocatorias.
La aplicación la cual se desarrolló a través de las investigaciones realizadas en este documento,
Contiene todo el conocimiento adquirido en este proceso académico, encontrando la solución más
adecuada a la necesidad solicitada para lograr la extracion de datos pertinente a la necesidad
presente en la Universidad San Buenaventura Cali.
Con esto la aplicación tiene 2 perfiles de usuario:
Administrador
Usuario
El administrador podrá realizar la gestión de correos, parámetros y detalles de la aplicación por
medio de un usuario y contraseña.
Ilustración 18. login de administración.
Los usuarios de la aplicación no tienen un usuario y una contraseña, ya que solo con acceder al link
podran realizar consultas a través de la plataforma web.
Ilustración 19. Pantalla del prototipo
11. PROYECTOS FUTUROS
El siguiente paso es la integración de esta herramienta desarrollada con los otros 2 proyectos que
hacen parte del “Observatorio de convocatorias”, el primero es el “Portal web para presentación de
convocatorias y becas para investigadores” y el otro es el “Desarrollo de un sistema de
recomendaciones basado en el histórico de consulta y perfiles de usuario para convocatorias y becas
de proyectos de investigación”.
Implementar las demás herramientas que hacen parte de la plataforma de colaboración para
investigación científica basada en e-Science 3.0 propuesta por Barraza (et al)[Barraza et al., 2014].
12. CONCLUSIONES
Se ha desarrollado una herramienta para la caracterización de convocatorias y becas mediante la
recuperación de la información, usando para ello, una herramienta para la extracción de metadatos,
que fue seleccionada de las muchas que existen en el mercado; la herramienta que mejor se adaptó
a los requerimientos del proyecto es AlchemyAPI.
Para mejorar el rendimiento de AlchemyAPI con los documentos procesados por el sistema, los
cuales están en el idioma español, se utilizó un diccionario de términos para apoyar la labor; este
diccionario de términos, permite añadir más palabras por parte del administrador del sistema y
lograr una mejor caracterización.
Es indispensable para mejorar el proceso de caracterización por parte del sistema, que se revisen
los informes de las palabras sugeridas, las cuales pueden ser tenidas en cuenta para ser agregadas
al diccionario de términos.
Los reportes de palabras claves, permiten tener conocimiento de las palabras encontradas en cada
documento, estas palabras se usan en el cálculo de la precisión y la cobertura obtenida sobre cada
documento, permitiendo evaluar el desempeño del sistema.
Se espera que el sistema ayude a la comunidad de estudiantes y docentes investigadores de la
Universidad San Buenaventura Cali al apoyar el análisis de este tipo de documentos y buscar de
manera más eficiente las convocatorias de acuerdo a los temas expresados mediante una consulta
por parte de los usuarios, aumentando el aprovechamiento de las oportunidades ofertadas y
mejorando así la formación integral de estos.
13. REFERENCIAS
ALUR, D., CRUPI, J. Y MALKS, D. Core J2EE Patterns Best Practices and Design Strategies. SUN Microsystems, 2006. ANGOSS. Angoss KnowledgeREADER Data Sheet 2015. BARRAZA, F., ORDOÑEZ, H. Y SEGOVIA, E. Diseño de una Plataforma de Colaboración para investigación Científica basada en e-Science 3.0. En: Procedings V Jornadas Internacionales de Campus Virtuales. Panamá: Ed. Universidad Tecnologica De Panama 2014, vol. 1, p. 10-19. BELL, J.G., B. LANGER, S. GENZMEHR, M. WILDE, E. PITMAN, J. Introducing Mr. DLib, a Machine-readable Digital Library. En: Proceedings of the 11th annual international ACM/IEEE joint conference on Digital libraries, Ottawa, Ontario, Canada ACM, 1998187, 2011. p. 463-464. Documanía 2.0 [online]. 2013 [cited 20/12/2015 2015]. Disponible en: <https://documania20.wordpress.com/2013/09/16/cuanta-informacion-se-genera-y-almacena-en-el-mundo/>. BUTLER-ANALYTICS. A Review of Text Analitics Suppliers 01/2014 2014. CASALI, A. Y DECO, C. Sistemas de Información Inteligentes. En.: Facultad de Ciencias Exactas, Ingeniería y Agrimensura. Universidad Nacional de Rosario –UNR. Universidad Católica Argentina CIFASIS (CONICET –UNR -AMU), 2015. CASALI, A., DECO, C., BENDER, C. Y KANTOR, R. Herramientas para potenciar el uso de Repositorios de Objetos de Aprendizaje. WICC 2014 XVI Workshop de Investigadores en Ciencias de la Computación, 2014, vol. 1. GÓMEZ, D. Presentación de Zathuracode 5.0.1. zathuracode.org, 2015, [Fecha de consulta: 20/03/2016]. Disponible en: <http://zathuracode.org/2015/03/06/presentacion-de-zathuracode-5-0-1/>. JAMON. JAMon (Java Application Monitor). A Java Monitoring API. [Fecha de consulta: 22/01/2016]. Disponible en: <http://jamonapi.sourceforge.net/>. JASPERSOFT, C. Introduction to Jaspersoft Studio. [Fecha de consulta: 22/01/2016]. Disponible en: <http://community.jaspersoft.com/documentation/tibco-jaspersoft-studio-user-guide/v62/introduction-jaspersoft-studio>. MINTIC, M.D.T.D.L.I.Y.L.C. Experiencias Internacionales en la Masificación de Internet. 2014, [Fecha de consulta: 20/12/2015]. Disponible en: <http://www.mintic.gov.co/portal/vivedigital/612/w3-article-1514.html>. MOORE, R.J. ¿Cuándo datos se crean al día en Internet? En: El Mundo es. Madrid: Unidad Editorial Internet, S.L., 2011. ORACLE. Mojarra JavaServer Faces. 2014. Disponible en: <https://javaserverfaces.java.net/>. PIVOTAL-SOFTWARE. Spring Frmaework. 2016a. Disponible en: <https://projects.spring.io/spring-framework/>. PIVOTAL-SOFTWARE. Spring Security. 2016b. Disponible en: <http://projects.spring.io/spring-security/>. PSI-PROBE, C. PSI-Probe. 2015, [Fecha de consulta: 22/01/2016]. Disponible en: <https://github.com/psi-probe/psi-probe/wiki>. REDHAT. Hibernate ORM. Disponible en: <http://hibernate.org/orm/>. SINGHAL, A. Modern Information Retrieval: A Brief Overview. Bulletin of the IEEE Computer Society Technical Committee on Data Engineering 24, 2001, p. 35–43. THE-APACHE-SOFTWARE-FOUNDATION. Apache PDFBox Overview. 2009, [Fecha de consulta: 05/02/2016]. Disponible en: <https://pdfbox.apache.org/>.
TOLOSA, G.B., FERNANDO. Introducción a la Recuperación de Información. Conceptos, modelos y algoritmos básicos. 2008. 149 p. TUTORIALSPOINT. Java JDOM Parser - Overview. [Fecha de consulta: 07/03/2016]. Disponible en: <http://www.tutorialspoint.com/java_xml/java_jdom_parser.htm>. VORTEXBIRD. Zathuracode. [Fecha de consulta: 21/03/2016]. Disponible en: <http://zathuracode.org/>.
ANEXOS
ANEXO 1. DIAGRAMA BPM DEL SISTEMA
14. DOCUMENTO DE ESPECIFICACIÓN DE REQUISITOS DEL
SOFTWARE
DOCUMENTO DE ESPECIFICACIÓN DE REQUISITOS DE
SOFTWARE
CARACTERIZACIÓN DE INFORMACIÓN DE CONVOCATORIAS Y
BECAS MEDIANTE A RECUPERACIÓN DE INFORMACIÓN
Versión 2.0
UNIVERSIDAD SAN BUENAVENTURA CALI
_______________________________________________________
Mauricio Muñoz Guzmán 1116255
Andrey Mauricio Fernández Franco 1110048
Revisiones
Versión Descripción Autor y Fecha Fecha
1.0 Especificación de requisitos de software para el SICS (Sistema Integrado de Caracterización Semántica)
Mauricio Muñoz Andrey Fernández
01/11/2015
2.0 Especificación de requisitos de software para el SICS (Sistema Integrado de Caracterización Semántica)
Mauricio Muñoz Andrey Fernández
20/03/2016
Contenido 1. Introducción ................................................................................. ¡Error! Marcador no definido.
1.1 Propósito .................................................................................... ¡Error! Marcador no definido.
1.2 Alcance ....................................................................................... ¡Error! Marcador no definido.
1.3 Descripción del Producto ........................................................... ¡Error! Marcador no definido.
1.3.1 Perspectiva del Producto .................................................... ¡Error! Marcador no definido.
1.3.2 Funciones del Producto ....................................................... ¡Error! Marcador no definido.
1.3.3 Características de los usuarios ............................................ ¡Error! Marcador no definido.
1.3.4 Limitaciones ........................................................................ ¡Error! Marcador no definido.
1.4 Definiciones ................................................................................ ¡Error! Marcador no definido.
2. Referencias ....................................................................................... ¡Error! Marcador no definido.
3. Requisitos Específicos ...................................................................... ¡Error! Marcador no definido.
3.1 Interfaces .................................................................................... ¡Error! Marcador no definido.
3.2 Funciones ................................................................................... ¡Error! Marcador no definido.
3.3 Requisitos de usabilidad ............................................................. ¡Error! Marcador no definido.
3.4 Requisitos de desempeño .......................................................... ¡Error! Marcador no definido.
3.5 Requisitos lógicos de base de datos ........................................... ¡Error! Marcador no definido.
3.6 Restricciones de diseño .............................................................. ¡Error! Marcador no definido.
3.7 Información de soporte .............................................................. ¡Error! Marcador no definido.
4. Verificación ....................................................................................... ¡Error! Marcador no definido.
5. Apéndices ......................................................................................... ¡Error! Marcador no definido.
5.1 Acrónimos y abreviaturas........................................................... ¡Error! Marcador no definido.
1. Introducción
Este documento es el documento de Especificación de Requisitos de Software (SRS) del SICS
(Sistema Integrado de Caracterización Semántica), realizado a partir de la información obtenida por
medio de reuniones con la responsable del grupo de investigación LIDIS y directora de este proyecto
de grado Emilia Rocío Segovia Jiménez.
La elaboración de este documento estará sujeta a revisiones periódicas que generarán diferentes
versiones de esta especificación hasta alcanzar el desarrollo del software deseado para realizar la
Caracterización de la información de convocatorias y becas mediante la recuperación de
información.
Este documento se realiza de acuerdo al estándar “ISO/IEC/IEEE 29148-2011 Systems and software
engineering - Life cycle processes - Requirements engineering”.
1.1 Propósito El propósito del documento de Especificación de Requisitos es reunir los requisitos de todo el
sistema de software, con el fin de definir cuál es el sistema y su alcance.
1.2 Alcance El Sistema Integrado de Caracterización Semántica permitirá realizar la caracterización de las
convocatorias y becas mediante la recuperación de información almacenando los resultados de la
caracterización de los documentos procesados en un repositorio local, al cual el usuario puede
acceder para ver los resultados actualizados de la caracterización para obtener el mayor provecho
de la información resultante.
1.3 Descripción del Producto El SICS busca ser una herramienta que facilite el procesamiento de la información de los documentos
de un repositorio mediante la extracción de metadatos para que la información de estos
documentos sean consultados por los usuarios y estos encuentren los documentos que son
verdaderamente relevantes para ellos.
1.3.1 Perspectiva del Producto El SICS cumplirá con los requisitos mencionados en este documento; estos pueden variar en etapas
del desarrollo según el criterio de las partes interesadas, pero estos cambios deberán ser
controlados, es decir, serán analizados, aprobados o rechazados para finalmente ser implementados
o descartados; este control se realizará por medio de reuniones de las partes interesadas.
1.3.2 Funciones del Producto
Recuperación de información de Convocatorias y Becas presentes en el repositorio
local.
Acceso a los resultados de la caracterización por medio de una interfaz mediante
consultas hechas por los usuarios.
Generación de reportes con información relevante del sistema y de la caracterización
realizada.
Obtención de sugerencias implícitas hechas por parte de los usuarios para fortalecer la
caracterización.
Modificación de parámetros por parte de los administradores del sistema (expansión
del diccionario, etc.).
1.3.3 Características de los usuarios Usuarios del grupo LIDIS o administrador: son usuarios con permisos a la administración de
parámetros y generación de reportes del sistema.
Usuarios finales: estos usuarios pueden realizar consultas para obtener documentos de acuerdo a
estas.
1.3.4 Limitaciones
Licencias:
o Las licencias de la herramienta para ser usada de forma académica solo permite
realizar 30000 llamadas API, si se va a utilizar de forma comercial se limitaría a 1000
llamadas.
o Primefaces centinel solo podrá ser usado con motivos académicos para este
desarrollo, ya que la licencia fue cedida solo con este propósito por Vortexbird SAS
1.4 Definiciones Tipo convocatoria: A nivel general, es un llamado público que se realiza para algo.
Línea de investigación: Son enfoques interdisciplinarios de actividades de investigación realizadas
por uno o más grupos con resultados visibles.
Área de interés: en un enfoque al desarrollo personal o profesional, que facilita los avances que se
producen en el conocimiento o la tecnología, dentro del ámbito de disciplinas concretas.
Servidor LIDIS: Es una maquina dedicada con capacidad de atender diferentes peticiones.
Links: son enlaces o vínculos de un documento electrónico que hace referencia a otro recurso,
dentro de una Página Web.
Servidor web: Es un programa que gestiona cualquier aplicación en el lado del servidor realizando
conexiones síncronas o asíncronas con el cliente generando una respuesta en cualquier lenguaje o
aplicación en el lado del cliente.
Filtrar búsqueda: Es personalizar los resultados de búsqueda para encontrar exactamente lo que
estás buscando.
Fallas de conexión: Mensajes de error que se generan debido a que el servidor donde se almacenan
los archivos de dicho sitio no esté disponible temporalmente.
Servicio Web: Un servicio web es una tecnología que utiliza un conjunto de protocolos y estándares
que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software
desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma,
pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet.
La interoperabilidad se consigue mediante la adopción de estándares abiertos.
2. Referencias - ISO/IEC/IEEE 29148-2011 Systems and Software engineering – Life cycle processes –
Requirements engineering
-AlchemyAPI []
-Primefaces centinel []
3. Requisitos Específicos
3.1 Interfaces La herramienta SICS contará con una interfaz de conexión para los usuarios y administradores de la
aplicación para la cual se manejaran 2 roles
1. Administrador del sistema
2. Usuario de consultas
Para el administrador, a través de un usuario y contraseña podrá realizar acciones como:
Cambio de parámetros de la aplicación
Generación de reportes
Realizar consultas de convocatorias
El usuario de consultas no necesita una contraseña y tendrá derecho a realizar consultas y descargas
de convocatorias.
EL SiCS contará con un algoritmo el cual permite la caracterización y extracción de palabras claves
en archivos PDF, el cual contengan información de tipo texto.
El SICS en sus apartados de parámetros podrá ingresar datos como:
Correo electrónico en caso de un error en el proceso de extracción
Rutas en las cuales estarán ubicados los repositorios donde se encontraran las
convocatorias y los archivos ya caracterizados
El SICS en su apartado de generación de reportes permite:
Generación de reportes de errores en el proceso
Generación de reporte de palabras claves encontradas
Generación de reporte de palabras sugeridas
En el SICS, los usuarios pueden consultar por medio de palabras claves las convocatorias de su
interés y descargar el documento si ellos lo desean.
3.2 Funciones El sistema debe revisar si hay documentos sin procesar
El sistema debe extraer las palabras claves del documento y almacenarlas en la base de
datos
El sistema debe extraer la línea de investigación del documento y almacenarlo en la base de
datos
El sistema debe generar etiquetas de los temas tratados en el documento de forma
automática y almacenar estas etiquetas en la base de datos
El sistema debe estructurar un reporte de la caracterización realizada
El sistema debe exponer su funcionalidad por medio de un servicio web
El sistema debe enviar un reporte de las carpetas que no existan al iniciar
3.3 Requisitos de usabilidad El Software será usado por estudiantes, docentes e investigadores de la Universidad san
Buenaventura, los cuales al estar en este medio poseen conocimiento medio o alto de los sistemas
de información.
De esta manera el Sistema se ha desarrollado de la forma más intuitiva posible para que los
estudiantes no necesiten un conocimiento por fuera del básico para realizar consultas en la
aplicación
3.4 Requisitos de desempeño Los tiempos de respuesta estimada en la generación del informe deben ser de aproximadamente 2
segundos.
Efectividad en la caracterización de los documentos
3.5 Requisitos lógicos de base de datos Los accesos a la base de datos estarán restringidos por roles
3.6 Restricciones de diseño Se realizará con en lenguaje JAVA EE8, XHTML.
Se utilizará el generador de código Zathura Code v 5.1.0
Base de datos Postgresql 9.3
Se contará con servicios web.
Se utilizará para la creación de reportes el software JasperReports de Jaspersoft
3.7 Información de soporte
La aplicación contara con soporte por parte de los usuarios que diseñaron la aplicación, 2 medidas
Configuración del entorno
Resolver errores que sean hallados en el proceso después de la implementación del
Sistema
Esto se realizara con el fin de retroalimentar el Sistema para poder realizar ajustes y mejoras al
producto y que los usuarios puedan contar con un excelente servicio.
4. Verificación El proceso de pruebas y verificación del SICS estará especificado en el documento llamado “Plan
de Pruebas de Software SICS”
Este aplicara por efectos de términos antes durante y después del desarrollo de la aplicación
5. Apéndices
5.1 Acrónimos y abreviaturas SICS: Sistema Integrado de Caracterización Semántica
BD: Base de datos
LIDIS: Laboratorio de Investigación para el Desarrollo de la Ingeniería de Software
ANEXO 2. HISTORIAS DE USUARIO
Historias de usuario
Nombre del Proyecto: Sics-UsbCali
Id Historia de Usuario 001
Fecha De realización 22 marzo de 2016
Rol de Historia Usuario Final y administrador
Funcionalidad
Se requiere que el usuario final logre buscar documentos acerca de
convocatorias por medio de palabras claves
Descripción de la historia
1. Ingresar en el enlace http://www.xxxxx/Sics_v/login.xhtml
Como un administrador o http://www.xxxxx/Sics Con usuarios
2. En la parte izquierda de la pantalla encontraremos un menú en
el cual observaremos una lupa, al presionarla nos cargara en
pantalla las opciones de consultas.
3. Escribimos en la caja de texto donde dice “Palabra clave”,
escribimos la palabra que deseamos buscar
4. Presionamos en el botón Buscar
5. El sistema entregara sugerencias de convocatorias las cuales
cuenten con el tema relacionado.
6. En la parte derecha encontrara el botón de detalle el cual
mostrara en pantalla todas las palabras relacionadas, con el
tema y la opción de descargar el documento.
Excepciones del sistema 1. Si el sistema no encuentra búsquedas relacionadas con esa palabra
clave enviara un mensaje en pantalla explicando que no hay
convocatorias para la palabra clave seleccionada
Historias de usuario
Nombre del Proyecto: Sics-UsbCali
Id Historia de Usuario 002
Fecha De realización 22 marzo de 2016
Rol de Historia administrador
Funcionalidad
Se requiere la funcion de generar informes en la aplicacion
Descripción de la historia
1. Ingresar en el enlace http://www.xxxxx/Sics_v/login.xhtml
Como un administrador
2. En la parte izquierda de la pantalla encontraremos un menú en
el cual observaremos una imagen de documento con el nombre
reportes , al presionarla nos cargara en pantalla las opciones
de reportes.
3. Seleccionamos el reporte el cual necesitamos
4. Seleccionamos a partir de que fecha
5. Presionamos en generar 6. El sistema descarga un archivo pdf con el reporte solicitado
Excepciones del sistema 1 . el sistema no pudo generar e reporte por no haber conexión a
internet
Historias de usuario
Nombre del Proyecto: Sics-UsbCali
Id Historia de Usuario 003
Fecha De realización 22 marzo de 2016
Rol de Historia administrador
Funcionalidad
Se requiere la funcion de cambiar parametros de la aplicación
Descripción de la historia
1. Ingresar en el enlace http://www.xxxxx/Sics_v/login.xhtml
como administrador
2. En la parte izquierda de la pantalla encontraremos un menú
en el cual observaremos una llave, al presionarla nos
cargara en pantalla las opciones de parametros.
3. El sistema cargara una tabla de parametros los cuales
tienen su respectiva reseña
4. Presionamos en el botón editar
5. Saldra un mensaje del parametro a sido guardado
exitosamente
Excepciones del sistema 1. Si el sistema no tiene conexión envia un mensaje de que no se
pudo guardar la conexión