127
Sistema de recomendación para mejorar la indexación de páginas web en el motor de búsqueda de Google. Juan Camilo Duque Delgado, [email protected] Christian David Hoyos Palma, [email protected] Proyecto de grado para optar al título de Ingeniera Multimedia de la Universidad de San Buenaventura Cali. Asesor: Andrés Felipe Barco, Doctor en informática e ingeniería industrial. Universidad de San Buenaventura Colombia Facultad de ingeniería Ingeniería multimedia Cali 2019

Sistema de recomendación para mejorar la indexación de

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistema de recomendación para mejorar la indexación de

Sistema de recomendación para mejorar la indexación de páginas web en el motor de búsqueda

de Google.

Juan Camilo Duque Delgado, [email protected]

Christian David Hoyos Palma, [email protected]

Proyecto de grado para optar al título de Ingeniera Multimedia de la Universidad de San

Buenaventura Cali.

Asesor: Andrés Felipe Barco, Doctor en informática e ingeniería industrial.

Universidad de San Buenaventura Colombia

Facultad de ingeniería

Ingeniería multimedia

Cali

2019

Page 2: Sistema de recomendación para mejorar la indexación de

Referencia/Reference

Estilo/Style:

IEEE (2014)

[1] Juan Camilo Duque Delgado, Christian David Hoyos Palma, “Sistema de

recomendación para mejorar la indexación de páginas web en el motor de

búsqueda de Google.”, trabajo de grado de Ingeniería Multimedia, Universidad

San Buenaventura, Cali, facultad de ingeniería, 2018.

Grupo de Investigación (LIDIS).

Línea de investigación en optimización de páginas web para motores de búsqueda.

Bibliotecas Universidad de San Buenaventura

Biblioteca Fray Alberto Montealegre OFM - Bogotá.

Biblioteca Fray Arturo Calle Restrepo OFM - Medellín, Bello, Armenia, Ibagué.

Departamento de Biblioteca - Cali.

Biblioteca Central Fray Antonio de Marchena – Cartagena.

Universidad de San Buenaventura Colombia

Universidad de San Buenaventura Colombia - http://www.usb.edu.co/

Bogotá - http://www.usbbog.edu.co

Medellín - http://www.usbmed.edu.co

Cali - http://www.usbcali.edu.co

Cartagena - http://www.usbctg.edu.co

Editorial Bonaventuriana - http://www.editorialbonaventuriana.usb.edu.co/

Revistas - http://revistas.usb.edu.co/

Biblioteca Digital (Repositorio)

http://bibliotecadigital.usb.edu.co

Page 3: Sistema de recomendación para mejorar la indexación de

Dedicatoria

Dedicamos este proyecto que culmina nuestra primera etapa profesional,

a nuestra familia,

por ser partícipe de nuestros objetivos y metas

y especialmente a nuestros padres,

por la paciencia y por siempre estar ahí en esos momentos clave.

Agradecimientos

Agradecemos a nuestra universidad,

Ha sido un lugar especial, de conocimientos y muchas otras experiencias

a todos nuestros compañeros,

porque en estos últimos años hemos aprendido mucho de ellos;

muchísimas gracias a nuestro asesor de tesis,

el Ingeniero Andrés Felipe Barco,

por su tiempo, su dedicación y sus conocimientos;

también, a uno de los mejores Ingenieros Multimedia que hemos podido conocer,

alguien que se ha convertido en un hermano,

sin duda hoy somos quien somos profesionalmente gracias a esta persona,

el Ingeniero Pablo Bejarano de la Hoz;

además agradecemos a todas las personas que han tenido buenas intenciones hacia nosotros,

creemos firmemente que aprendemos a ser quien somos por las personas que nos rodean.

Page 4: Sistema de recomendación para mejorar la indexación de

TABLA DE CONTENIDO

RESUMEN ............................................................................................................................... 10

I. INTRODUCCIÓN ................................................................................................................... 11

II. PLANTEAMIENTO DEL PROBLEMA ...................................................................................... 13 A. Antecedentes ........................................................................................................................... 14 B. Justificación ............................................................................................................................. 17

III. OBJETIVOS ........................................................................................................................ 19

A. Objetivo general....................................................................................................................... 19 B. Objetivos específicos ................................................................................................................ 19

IV. MARCO TEÓRICO .............................................................................................................. 20 A. TIC (tecnologías de la información y la comunicación) .............................................................. 20 B. Search engine optimization (SEO) ............................................................................................. 20

1. Black Hat SEO .................................................................................................................................21 2. White Hat SEO ...............................................................................................................................21

C. Optimización en motores de búsqueda y el marketing. ............................................................. 21 D. Page Rank (PR) ........................................................................................................................ 22 E. Ponderación relativa ................................................................................................................ 23 F. Hipertexto, indexación y recuperación ...................................................................................... 25 G. Análisis del texto. .................................................................................................................... 27 H. Macrodatos ............................................................................................................................. 28 I. Sistema de filtrado de información. ........................................................................................... 28 J. Sistema de recomendación ....................................................................................................... 29 K. Aprendizaje de máquina .......................................................................................................... 29

1. RNN ................................................................................................................................................30 2. SVM ...............................................................................................................................................30

L. Estudios relacionados con inteligencia artificial. ........................................................................ 31 M. IBM Watson ........................................................................................................................... 31 N. Categorización e intención del texto. ....................................................................................... 32

V. METODOLOGÍA .................................................................................................................. 33

VI. DISEÑO ............................................................................................................................. 35 A. Preparación de los requisitos .................................................................................................... 35 B. Diseño del sistema.................................................................................................................... 35

1. Módulos de análisis del contenido y la intención .........................................................................37 2. Módulo de análisis de las etiquetas HTML ....................................................................................42 3. Sistema de puntaje .......................................................................................................................43 4. Módulo de extracción de las recomendaciones ............................................................................56 5. Modelado Clase-Responsabilidad-Colaboración ............................................................................56 6. Arquitectura general .....................................................................................................................59 7. Diagrama de secuencia del sistema ..............................................................................................59

VII. IMPLEMENTACIÓN ........................................................................................................... 61

A. Especificación de la arquitectura y tecnologías .......................................................................... 61 B. Implementación de los módulos de análisis. .............................................................................. 63

1. Módulo del análisis del contenido y de la intención .....................................................................64 2. Módulo del análisis del formato HTML .........................................................................................69

Page 5: Sistema de recomendación para mejorar la indexación de

C. Implementación de los módulos de respuesta al usuario ........................................................... 70 1. Sistema de puntaje .......................................................................................................................70 2. Módulo de extracción de recomendaciones .................................................................................71

D. Desarrollo de interfaces ........................................................................................................... 72

VIII. RESULTADOS ................................................................................................................... 75

IX. CONCLUSIONES ................................................................................................................. 87

X. RECOMENDACIONES .......................................................................................................... 89

GLOSARIO .............................................................................................................................. 90

REFERENCIAS ......................................................................................................................... 95

ANEXOS ................................................................................................................................. 98

Introducción ......................................................................................................................... 101 Propósito ................................................................................................................................... 101 Alcance ...................................................................................................................................... 101 Contexto del sistema .................................................................................................................. 101

Sujetos .............................................................................................................................................102 Usos .................................................................................................................................................102 Sistemas ...........................................................................................................................................103 Desarrollo ........................................................................................................................................103

Stakeholders primarios ............................................................................................................... 104 Acrónimos y abreviaciones ......................................................................................................... 104 Procesos de cambio .................................................................................................................... 105 Referencias ................................................................................................................................ 106

Restricciones y asunciones ................................................................................................... 107

Proceso de desarrollo y restricciones de equipo de trabajo .......................................................... 107 Restricciones tecnológicas y del entorno ..................................................................................... 107

Restricciones de software ................................................................................................................107 Restricciones mínimas de hardware ................................................................................................107

Restricciones de entrega y despliegue ......................................................................................... 108 Entrega: ...........................................................................................................................................108 Despliegue: ......................................................................................................................................108

Mitigación de riesgos ........................................................................................................... 108

Riesgos tecnológicos ................................................................................................................... 108 Riesgos de recursos y habilidades ............................................................................................... 108

Recursos: .........................................................................................................................................108 Habilidades: .....................................................................................................................................108

Riesgos de requerimientos ......................................................................................................... 108 Riesgos políticos ......................................................................................................................... 109

Requisitos funcionales ......................................................................................................... 109 Tabla de requisitos (priorizada) ................................................................................................... 116 Criterios de calificación ............................................................................................................... 117 Actores ...................................................................................................................................... 118 Casos de uso .............................................................................................................................. 118

Diagrama de caso de uso .................................................................................................................118

Page 6: Sistema de recomendación para mejorar la indexación de

Tarjetas de casos de uso ..................................................................................................................119

Glosario ............................................................................................................................... 126

Page 7: Sistema de recomendación para mejorar la indexación de

LISTA DE TABLAS

Tabla 1. Matriz de priorización de características [21] .................................................................. 24

Tabla 2. Tabla de valores y categorías para la intención de un documento HTML ....................... 40

Tabla 3. Matriz de prioridades de los criterios de evaluación para el análisis del HTML ............. 55

Tabla 4. Especificación del cliente ................................................................................................. 62

Tabla 5. Especificación del servidor .............................................................................................. 62

Tabla 6 Pruebas del sistema ........................................................................................................... 78

Tabla 7. Resumen resultados del análisis de las tres etapas de la página "La caida de jQuery". ... 86

Page 8: Sistema de recomendación para mejorar la indexación de

LISTA DE FIGURAS

Fig 1. Porcentaje del tráfico de Google en las primeros resultados de la búsqueda [14]. .............. 17

Fig 2. Ejemplo de PageRank entre cuatro páginas (Adaptado de [20]) ......................................... 23

Fig 3. Ejemplo básico de página renderizada en un navegador. .................................................... 27

Fig 4. Búsqueda de artículos por palabras clave en la plataforma de Google Académico [27]. .... 27

Fig 5. MarI/O, machine learning aplicado en super mario world. ................................................. 30

Fig 6. Gráfico de filtrado colaborativo simple basado en usuarios ................................................ 38

Fig 7. Filtrado colaborativo basado en páginas web ...................................................................... 39

Fig 8. Búsqueda en Google que contengan el texto “No se ha encontrado ningún resultado para la

búsqueda. ........................................................................................................................................ 46

Fig 9. Vista del navegador Lynx mostrando la página principal de Twitter. ................................. 48

Fig 10. Ejemplo de búsqueda con las palabras clave de “International Space Station”. ............... 49

Fig 11. Descripción de la página web de la nasa en la que habla sobre la “International Space

Station” ........................................................................................................................................... 49

Fig 12. Palabras clave del sitio web esa.int para la búsqueda con google haciendo uso de las

palabras clave de “International Space Station”............................................................................. 50

Fig 13. Tarjeta CRC de clase Página Web ..................................................................................... 57

Fig 14. Tarjeta CRC de clase Condicion ........................................................................................ 58

Fig 15. Tarjeta CRC de clase Recomendación ............................................................................... 58

Fig 16. Arquitectura general del sistema ........................................................................................ 59

Fig 17. Diagrama de secuencia del sistema .................................................................................... 60

Fig 18. Arquitectura específica ...................................................................................................... 63

Fig 19 Resultado general del análisis una la página web ............................................................... 70

Fig 20 Puntuacion de cada factor en una página web .................................................................... 71

Fig 21 Recomendaciones de una página web ................................................................................. 72

Fig 22 Cabecera del sistema de recomendación ............................................................................. 73

Fig 23 Analisis de una página web terminado ............................................................................... 73

Fig 24 Detalle del puntaje .............................................................................................................. 74

Fig 25 Notificaciones del navegador .............................................................................................. 74

Fig 26. Página "La caida de jQuery", en su primera etapa. ............................................................ 80

Fig 27. Recomendaciones de la página "La caida de jQuery" en su primera etapa. ...................... 81

Fig 28. Puntaje específico de la página "La caida de jQuery" en su primera etapa. ...................... 81

Fig 29. Página "La caida de jQuery", en su segunda etapa. ........................................................... 82

Fig 30. Recomendaciones de la página "La caida de jQuery" en su segunda etapa. ..................... 83

Fig 31. Puntaje específico de la página "La caida de jQuery" en su segunda etapa. ..................... 83

Fig 32. Página "La caida de jQuery", en su tercera etapa. ............................................................. 84

Fig 33. Recomendaciones de la página "La caida de jQuery" en su tercera etapa. ........................ 85

Fig 34. Puntaje específico de la página "La caida de jQuery" en su tercera etapa. ........................ 85

Page 9: Sistema de recomendación para mejorar la indexación de
Page 10: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 10

RESUMEN

El hipertexto es el sistema de organización más importante en la web. Este permite presentar

datos y vincular fragmentos de texto, permitiendo al usuario relacionar contenido y encontrar los

elementos más relevantes. Además, el hipertexto ayuda (por medio de etiquetas) a los motores de

búsqueda, indexar y clasificar contenido (pequeños fragmentos de texto). Dado que muchos de

los usuarios que crean contenido en la web no son expertos en optimización para motores de

búsqueda, el proceso de indexación y clasificación no se ejecuta de la manera adecuada. Dichos

usuarios desean que el contenido que crean sea visto por la mayor cantidad de personas posibles,

y de ahí la importancia de tener una buena indexación de sus páginas web.

Esta investigación ayuda mediante una aplicación web a los creadores de páginas web a mejorar

la indexación de sus páginas web en el motor de búsqueda de Google. Para ayudar a mejorar la

indexación de este contenido publicado, en esta tesis se diseñó y desarrolló un sistema de

recomendación. Este sistema de recomendación analiza el documento HTML (sus etiquetas, el

contenido y la intención), utiliza la inteligencia artificial en conjunto con la minería de datos para

así de identificar algunos patrones que tienen las páginas web mejor indexadas relacionando el

tema principal y la intención del contenido. Además, se analiza la correcta implementación de las

reglas que brinda Google para la optimización. Así generando recomendaciones expresadas con

lenguaje natural para el usuario final.

Palabras clave: Sistema de recomendación, filtrado de información, IBM Watson, Inteligencia

artificial, minería de datos, SEO, indexación, motores de búsqueda, aplicaciones web.

ABSTRACT

Hypertext manages the way the web is organized. It allows the webpages to know how must be

the elements organized visually and hierarchically. And mainly it defines the way the search

engines classify and indexes the content.

That process is called search engine optimization (SEO), and it’s often being not properly

implemented, due to the inexperience in the area of web content creators. This project is focused

on help these creators to improve its SEO in the Google’s search engine.

To accomplish this it was designed and developed a recommender system that analyses the plain

HTML (Its content, intention and tags) and helped out by artificial intelligence and data mining

identifies patterns in the best indexed web pages by Google. This patterns are related with the

main topic of the web page and its intention. The patterns and the correct implementation of

Google’s SEO rules are considered to give user friendly recommendations in natural language to

the user.

Keywords: Recommender system, information filtering, IBM Watson, artificial intelligence, data

mining, SEO, indexing, search engine, web apps.

Page 11: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 11

I. INTRODUCCIÓN

El presente documento es el proyecto de grado para optar por el título de ingeniero multimedia de

la Universidad de San Buenaventura Cali. El proyecto se enmarca en el área de la ingeniería

multimedia, ingeniería de software, y específicamente en desarrollo web.

Se tiene como contexto una sociedad en la que las tecnologías de la información y la

comunicación han sido una causante de un cambio radical a nivel global, el surgimiento de los

ordenadores personales, la web y puntualmente la web 2.0. Estos adelantos trajeron grandes

cambios, el usuario común (usuario que sólo consumía información producida por un creador de

contenido) obtuvo la posibilidad de crear contenido para la web a través de un cliente, es decir,

sin dejar de ser un usuario, este fenómeno hace surgir plataformas como los blogs, las redes

sociales, foros, etcétera. Además, empezamos a encontrar proyectos de software como los

gestores de contenido y plataformas como YouTube, en donde un desarrollador posiblemente no

tan experimentado encontró la manera de aprender fácilmente lo básico y de ingresar a la

industria del desarrollo web sin mucho esfuerzo.

Además, la continua evolución de la web ha promovido la evolución de los motores de búsqueda,

siendo los más importantes Google, Yahoo y Bing. Estos cambiaron la manera de indexar sus

resultados evolucionando sus métodos, programas como las arañas de google, que rastrean toda la

web constantemente mediante algoritmos especializados; estos permiten que todo el contenido de

la web sea fácilmente recuperable por los usuarios, desde los más hasta los menos

experimentados, ya que todos ellos (casi cualquier usuario que suba contenido a la web) desean

que su contenido sea visto por la mayor cantidad de personas posibles. En paralelo las empresas

de estos motores de búsqueda definieron sus reglas y metodologías para que los desarrolladores

sigan, logrando así que sus desarrollos puedan funcionar correctamente en sus buscadores y

logrando más fácilmente sus objetivos, esto se llamó search engine optimization (SEO, por sus

siglas en inglés).

Los productos del desarrollador sin mucha experiencia y el contenido dinámico creado por el

usuario suelen no ser lo suficientemente óptimos en motores de búsqueda, ya que muchos

desarrolladores tienen un perfil más creativo que técnico e investigativo, cosa que puede hacer

generar problemas en sus proyectos y no permitirles los resultados deseados al momento de su

indexación en motores de búsqueda.

En este proyecto se realizó una investigación para identificar posibles soluciones frente a este

problema, soluciones que deben ser sencillas, asequibles, útiles, además de amigables para

cualquier desarrollador o creador de contenido. Adicionalmente se desea una solución que no sea

basada solamente en las típicas reglas de SEO y las típicas metodologías al momento de

optimizar una página web, si no que podamos brindarle al usuario una experiencia totalmente

personalizada y basada también en el sentido, el sentimiento y el tópico de la página web.

La propuesta se basa en un sistema de recomendación que busca brindar una ayuda eficiente,

inteligente y con una presentación lo más humana posible para que el usuario sepa en palabras

coloquiales qué cambios puede hacer tanto para que su página cumpla las reglas básicas del SEO

Page 12: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 12

como también para que tenga una acogida aceptable en la comunidad a la cual va dirigido el

tema. Para esto se desarrolló un sistema con módulos inteligentes y así analizar grandes

cantidades de datos, filtrarlos y mostrar al usuario los mensajes pertinentes. Todo análisis de los

datos se hace a partir de ejemplos similares de otras páginas web, en donde coincidan los temas y

las intenciones, así como de patrones que muestren resultados al momento del éxito de una

página web en un motor de búsqueda.

Para realizar el trabajo y dadas las reglas que usa el motor de búsqueda de Google para la

indexación, utilizamos el análisis de la intención del texto por medio del aprendizaje de maquina

y la minería de datos para poder ofrecer un análisis y así mismo unas recomendaciones más fieles

a lo que es el contenido de la página web del usuario. Como tal, nuestra contribución se enfoca

en:

1- Un sistema de puntaje basado en el cumplimiento de las reglas del SEO.

2- Método de análisis y recomendación basado en filtrado colaborativo.

3- Prototipo de sistema de recomendación.

El resto del documento está dividido como sigue: en el capítulo dos, se presentan el

planteamiento del problema, algunos antecedentes sobre investigaciones que se han realizado en

los ultimos cinco años y la justificación. En el capítulo tres se definen los objetivos generales y

especificos. En el capítulo cuatro se detallan investigaciones relacionadas con la tesis y conceptos

necesarios para desarrollar el proyecto. En el capítulo cinco se describe la metodología usada

para el desarrollo del proyecto. En el capítulo seis se detalla todo lo referente al diseño del

sistema, especificamente todos los pasos que se tomaron desde la preparación de requisitos, hasta

el diagrama de secuencia del sistema. En el capítulo siete, se presenta el desarrollo de todos los

modulos y partes del proyecto planeadas con anterioridad. En el capítulo ocho y nueve se

establecen los resultados y conclusiones respectivamente después de haber terminado el

desarrollo del proyecto. Por último, en el capitulo diez se nombran algúnas recomendaciones

basadas en la experiencia obtenida de hacer el proyecto para quienes quieran continuar con la

investigación o usarla en sus proyectos.

Page 13: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 13

II. PLANTEAMIENTO DEL PROBLEMA

La evolución de las tecnologías de la información y la comunicación ha tenido momentos muy

significativos, los cuales han traído consigo diferentes necesidades. Uno de estos momentos fue

el surgimiento de la web, quizá el detonante más importante para la globalización y crecimiento

de las tecnologías de la información y la comunicación, convirtiéndonos en habitantes de un

planeta totalmente globalizado, en donde podemos comunicarnos con el otro lado del mundo con

solo un clic. Pero la web en sí también evolucionó de ser una red en la que webmasters o

administradores de contenido eran los únicos capacitados y posibilitados para crear contenido en

páginas estáticas conocida como la web 1.0, hasta la web 2.0, en donde no solamente los

webmasters suben contenido a internet, si no que los usuarios consumen y también crean

contenido. Mucha gente se adaptó a este cambio y empezó a subir contenido de manera muy

frecuente llegando a niveles en donde la web tiene un gran contenido producido por usuarios. Así

mismo, las barreras del conocimiento se disminuyeron en cantidades gigantes, es decir, el

esfuerzo que antes debía utilizar un desarrollador o ingeniero para hacer una página web o

cualquier desarrollo tecnológico y casi en cualquier ámbito, disminuyó. Plataformas como las de

cursos en línea, tales como Udemy, tutoriales, como los encontrados en YouTube, los foros y

revistas de desarrollo tales como Medium, Smashing Magazine, etcétera, brindan herramientas de

gran utilidad a todo el mundo, el conocimiento nunca había sido tan accesible.

Así mismo, con la web 2.0, se desmitifica que la creación de páginas web y demás productos del

desarrollo de software estaba sólo al alcance de técnicos y profesionales muy experimentados y

con habilidades muy específicas. Nacieron los gestores de contenido, cada vez los frameworks de

desarrollo daban más facilidades mejorando la distribución de los archivos, la conexión entre

ellos y la inyección de dependencias que ahorran mucho código (y por ende, tiempo) al momento

de realizar un producto, así los desarrolladores que antes se preocupaban por muchos problemas y

los resolvían con conceptos técnicos adquiridos en sus estudios, empezaron a delegar todos esos

problemas a los gestores de contenido y a los frameworks. Surgió el perfil de desarrollador más

enfocado al diseño y el de desarrollador novato o inexperimentado, perfiles que pueden lograr

buenos resultados mediante todos los facilitadores que la web ofrece. Aumentó el desarrollo en

esta área en gran cantidad, así como la competencia.

En el contexto de la web 2.0 el contenido creado por desarrolladores inexpertos suele ser

contenido de diversos intereses enmarcados en proyectos importantes. Dicho contenido tiene en

muchas ocasiones gran relevancia y valor, de hecho, se puede llegar a convertir en contenido

altamente indexado en motores de búsqueda y que sea muy solicitado. Sin embargo, al reconocer

su importancia debemos entender también que la mayoría de desarrolladores web inexpertos no

son personas con conocimientos técnicos avanzados de lenguaje HTML (por sus siglas en ingles

de HyperText Markup Language) en materia de optimización en motores de búsqueda.

Adicionalmente, los procesos o métodos para darle claridad al texto sobre su semántica, su

intención y su clasificación pueden llegar a ser complejos y variar en cada caso, esto hace que el

impacto potencial del contenido no se alcance en su totalidad o no en el tiempo esperado ya que

no tendrá un formato correcto y no utiliza buenas prácticas al momento de ser formateado

pensando en su indexación en motores de búsqueda. El formateo del hipertexto es la práctica vital

en el funcionamiento de los motores de búsqueda [1] ya que les permite saber cómo está

estructurado el contenido, cuáles son las intenciones del autor y así mismo cómo va a ser

mostrado al usuario.

Page 14: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 14

La optimización en motores de búsqueda o search engine optimization (SEO) en inglés, que se

encarga de mejorar el posicionamiento de páginas web en los motores de búsqueda y es vital para

que una página web sea correctamente indexada en los motores de búsqueda como lo son Google,

Yahoo, Bing, etcétera, en este proyecto nos enfocaremos en Google, ya que siendo el más

importante los demás motores de búsqueda utilizan modelos muy similares en todos los aspectos,

tanto con los algoritmos de rastreo de la información, como al momento de presentar los

resultados al usuario. La indexación en los motores de búsqueda puede depender de muchos

aspectos, varios de ellos están bien definidos y se pueden encontrar en guías a través de la web,

pero el manejo de estos puede requerir conocimientos adicionales y puede llegar a variar

dependiendo del tipo de página; por ello, los desarrolladores podremos encontrar casos en los

cuales mejorar el posicionamiento orgánico de una página en un motor de búsqueda puede ser

más complejo y demorar más tiempo que en otra página diferente, habiendo utilizado la misma

metodología y el mismo tiempo de trabajo. Este problema puede verse aún más marcado cuando

no se desarrolla con rigurosidad y, se aplican conceptos que se obtienen solamente a través de la

experiencia.

Siendo este el contexto del problema de el proyecto, proponemos una solución para esos

desarrolladores que no tienen la capacidad o el enfoque para resolver este problema del SEO, o

que simplemente buscan una solución más eficaz y rápida, la solución debe ser amigable para el

usuario, así, que la pueda entender cualquier persona con conocimientos básicos de desarrollo

web, interpretarla e implementarla, en consecuencia nos planteamos, ¿Cómo brindar una

solución fácilmente entendible y usable por la gran mayoría de desarrolladores web, que les

permita mejorar la calidad y tiempos de indexación de su página web en motores de búsqueda

mediante acciones precisas teniendo en cuenta la intención y la temática del contenido presente

en su página web?

A. Antecedentes

En los últimos cinco años, se han llevado a cabo diversas investigaciones sobre la clasificación de

textos mediante el uso del aprendizaje automático; una rama de inteligencia artificial que tiene

como objetivo permitirle a la máquina la capacidad de aprender en un contexto dado. Con el uso

del aprendizaje de máquina (ML, por sus siglas en inglés de Machine Learning), la máquina

aprende a tomar decisiones (por ejemplo, clasificación) en un contexto definido y de manera

automática sin que un humano deba entrar a reprogramar el sistema, estas investigaciones antes

del año 2000 no eran muy relevantes, así como el análisis del texto para su clasificación. En

contraste, encontramos hoy en día que la necesidad de analizar y clasificar un texto va

incrementando, debido a la cantidad de información que circula en la web [2].

Uno de los trabajos más relacionados con nuestra investigación, fue publicado en el International

journal of computers communications & control por Changshun y Lei llamado “Text

Classification Research with Attention-based Recurrent Neural Networks” [3]. En este artículo se

explica claramente su método para la clasificación de texto uniendo dos métodos de clasificación

de palabras claves y clasificación por síntesis semántica usando redes neuronales, o como lo dice

él en su artículo (traducido del inglés):

Page 15: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 15

“El primero [método] destaca el papel de palabras clave, mientras que el segundo se

centra en la combinación de palabras entre papeles. El método propuesto en este

documento considera las ventajas de ambos métodos. Se utiliza un mecanismo de

atención para aprender la ponderación para cada palabra…”

De esta manera, Changshun y Lei proponen mejorar los algoritmos ya existentes, usando las

palabras clave, donde estas tendrán un mayor peso que las palabras comunes. Es decir, ya no es

solamente analizar todo el texto si no que presta más atención a los fragmentos de texto que

contengan dichas palabras claves identificadas con el primer método.

Lo primero que realizaron los investigadores para lograr su objetivo, fue recurrir a una técnica de

pre-procesamiento de texto para eliminar palabras de baja frecuencia y luego usar una red

neuronal recurrente [4] para extraer el vector de características del texto según lo define el

algoritmo de Máquina de Vectores de Soporte (SVM, por sus siglas en inglés de supporting

vector machine) [5]. Este vector resultante contiene las palabras clave y frases más importantes

del texto (características del texto). Finalmente, este vector se pasa al clasificador softmax

(función exponencial normalizada) [6], el cual se encarga de comprimir el vector de

características y obtener una distribución categórica del texto analizado.

Como conclusión de este antecedente, los investigadores nos explican que:

“Los métodos anteriores, ya sea sobre la base de palabras clave, o el uso de redes

neuronales, cada uno tiene sus propias deficiencias. El primero es demasiado preocupado

por la palabra clave e ignora el papel de las otras palabras. Este último trata todas las

palabras por igual, independientemente de la particularidad y la importancia de la palabra

clave. El mecanismo de atención descrito en este documento puede ser una buena

combinación de las ventajas de ambos.”.

Así mismo, el modelo propuesto en el documento alcanza valores estadísticos de prueba por

88.5% y 51.8% en los dos conjuntos de datos que se usaron basados en las publicaciones de

NLPCC2014 [7] y Reuters [8], respectivamente. Dejándonos claro que la unión de ambos

métodos de clasificación es un gran acierto para la clasificación de texto.

Por otro lado, el artículo “Applying Machine Learning to Text Segmentation for Information

Retrieval” [9], de la investigación desarrollada por Xiangji et al., se relaciona con el proyecto por

el mejoramiento de la segmentación de palabras por medio de ML. Técnica que es útil al

momento de la indexación y recuperación del contenido en la web.

Este proyecto muestra en primera instancia, tres maneras de hacer la segmentación de palabras

que se suelen utilizar. Estas maneras tienen ventajas y a su vez desventajas. La primera y más

ampliamente utilizada que es la técnica basada en diccionarios, en la cual se necesita tener un

léxico predefinido por cada idioma en forma de diccionario, este léxico hay que crearlo y

definirlo y teniendo en cuenta el tamaño de los lenguajes y que son cambiantes, puede tomar un

largo tiempo. La segunda son las técnicas basadas en caracteres, las cuales tienen ciertas ventajas

como la no necesidad de un léxico predefinido, pero desventajas como el gran tamaño de sus

índices y la lentitud de su procesamiento. La tercera es la basada en información mutua, la cual

no es muy eficaz en ciertos idiomas como los asiáticos, ya que toma al menos palabras con más

Page 16: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 16

de dos caracteres, y en los lenguajes asiáticos tales como Chino mandarín, Japonés, Tailandés hay

ciertas palabras con alta importancia con incluso un carácter. Cabe resaltar que el proyecto va

enfocado hacia lenguajes asiáticos, pero su investigación se adapta a cualquier idioma ya que es

independiente del lenguaje.

Los investigadores proponen que la segmentación de palabras se haga por medio del ML, y lo

llaman “segmentación auto-supervisada”, esta la logran por medio de 2 procesos:

1. Se construye un léxico de manera automática mediante un cuerpo de entrenamiento

logrado por el algoritmo esperanza-maximización [10].

2. Se segmenta mediante el algoritmo Viterbi.

En sus conclusiones los investigadores argumentan que el método propuesto por ellos mediante

ML, tiene las ventajas de los métodos mencionados al principio, los basados en diccionarios, en

caracteres y en información mutua, y que aunque no tiene una precisión perfecta funciona de

manera suficientemente precisa para el lenguaje Chino, lenguaje el cual tiene muchas

complicaciones, y que este método, incluso en ocasiones puede llegar a tener niveles de acierto

mayores a los métodos anteriormente usados por investigadores.

Otro artículo analizado que tiene un enfoque muy parecido al anteriormente definido, es el

artículo “Segmentación de palabras en español mediante modelos del lenguaje basados en redes

neuronales” [11] de Yerai Doval et al. como su título lo dice este artículo se enfoca de lleno al

tema de la segmentación de palabras.

Doval et al. proponen un método de segmentación de palabras utilizando redes neuronales [12],

en donde este se entrena y tiene la posibilidad de aprender, con tiempos de aprendizaje de dos

días aproximadamente.

En su artículo señalan que utilizaron un modelo de lenguaje basado en ML en el que crearon una

red neuronal recurrente (RNN, por sus siglas en inglés de Recurrent Neural Network) de tipo

Long Short-Term Memory (LSTM, por sus siglas en inglés). Esta red parametrizada tuvo que ser

sometida a pruebas en donde variaban parámetros tales como el threeshold, prun y stop hasta

obtener los mejores resultados.

Este método lo comparan con métodos basados en n-gramas y otro método al que llaman Word

Breaker, concluyendo que su método es superior y destaca ante los otros dos mencionados, en

criterios evaluados como el tiempo de ejecución y su rendimiento en efectividad.

A partir del artículo, “An Improved Collaborative Filtering Recommendation Algorithm for Big

Data”, desarrollado por Hafed Zarzour et al. [13] podemos notar la influencia de los macrodatos

en los sistemas de filtrado y de recomendación. Los macrodatos son cada vez más grandes, esto

hace menester que se piense en el continuo crecimiento y en el mejoramiento de los sistemas.

Debido a esto Hafed Zarzour et al. proponen la utilización de algoritmos diferentes a los más

comunes al momento de hacer filtrado colaborativo en un sistema de recomendación. Proponen

dos procedimientos distintos, el primero es el algoritmo k-means y el segundo es el mismo

algoritmo k-means precedido por un ACP (análisis de componentes principales). Además,

muestran resultados claros a partir de un banco de datos obtenido por Netflix con más de 17,770

Page 17: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 17

películas calificadas por 480,000 usuarios, estos resultados mostraron que el error medio absoluto

y el error medio cuadrático se redujeron de aproximadamente 0.93 a 0.89 con el algoritmo k-

means junto al ACP y de 0.93 a 0.91 solo con el algoritmo k-means. Lo que significa que el error

al momento de deducir las películas relacionadas con los gustos de una persona, disminuyeron, es

decir, las deducciones del programa fueron exitosas en más ocasiones. En un conjunto de datos

tan grande, este cambio en el error es significativo.

B. Justificación

El proyecto busca mejorar la indexación de un sitio web en el motor de búsqueda de Google,

haciendo uso de técnicas de análisis de texto con la ayuda de Inteligencia Artificial (AI, por sus

siglas en inglés de Artificial Intelligence) y más específicamente sus ramas de ML. Esta idea es

motivada por las características de contenido en la web 2.0 y el hecho de que la mayoría de las

personas no saben cómo realmente funciona un motor de búsqueda al momento de indexar las

páginas web. Adicionalmente las plataformas existentes que se encargan de analizar un

documento HTML, se quedan en decir cuáles etiquetas has usado y las que comúnmente irían en

un documento HTML, pero no lo analiza precisamente para mejorar su indexación en un motor

de búsqueda.

Este objetivo surge en vista de que los usuarios en la web suelen subir mucho contenido HTML,

sin un formateo apropiado para una buena indexación. Este contenido puede tener gran

relevancia, incluso en algunos sitios web que no están bien indexados, la información valiosa

sobre un tema en específico, prácticamente se está perdiendo. Esto es debido a la manera en

cómo interaccionan los usuarios del motor de búsqueda al momento de dar clic en uno de los

resultados expuestos. Se puede observar en la Fig 1 que la mayoría de los usuarios que utilizan

las SERP1 no pasan de la primera página al momento de hacer sus búsquedas, esto quiere decir,

de los primeros 10 resultados.

Fig 1. Porcentaje del tráfico de Google en las primeros resultados de la búsqueda [14].

1 Search Engine results Page: es la página en dónde los resultados de una búsqueda mediante un motor de búsqueda

son presentados al usuario.

Page 18: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 18

La anterior gráfica muestra que, si la página web del usuario no sale entre las primeras diez

páginas indexadas, es poco probable que la visiten, por esta razón es recomendable mejorar la

indexación de las páginas web mediante modificaciones de contenido y etiquetas HTML antes

que el motor de búsqueda de Google realice la fase de rastreo para agregar esta página a su índice

de búsqueda. Así, los sitios web y su contenido tienen la capacidad de llegar a su máximo

potencial, potencial de impacto en otros usuarios, potencial de difusión, y de funcionar

correctamente con todo lo que significa la web 3.0, la web semántica [15].

Con base en la necesidad de una buena optimización en motores de búsqueda, el proyecto busca

lograr mejorarlo de una manera distinta a lo que se ve típicamente: técnicas como el marketing

para motores de búsqueda, y la optimización mediante el estudio de los motores de búsqueda; se

busca mejorar la optimización en motores de búsqueda mediante técnicas de inteligencia artificial

y minería de datos para que esta sea una solución que pueda responder a las distintas

características de las páginas web, tales como el tema del contenido y la intención del mismo.

Con el proyecto se lograría que el usuario cree contenido en la web (páginas web) y pueda

identificar mediante recomendaciones que le da la plataforma, posibles temas y metadatos que no

haya incluido y que actualmente son los que más se encuentran en páginas web que están bien

indexadas y mediante estas recomendaciones puedan, además de enriquecer la página web,

ayudar en el indexado de la misma.

Page 19: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 19

III. OBJETIVOS

A. Objetivo general

Diseñar un sistema que brinde recomendaciones para la indexación de una página web en el

motor de búsqueda de Google.

B. Objetivos específicos

Seleccionar técnicas y tecnologías a usar en el desarrollo del sistema.

Diseñar un módulo para análisis de la intención comunicativa de una página.

Diseñar un módulo para análisis de contenido de una página.

Diseñar un módulo para análisis del hipertexto en formato HTML de una página.

Diseñar un módulo para generación de recomendaciones.

Realizar pruebas al sistema.

Page 20: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 20

IV. MARCO TEÓRICO

A lo largo de la historia y cada vez han habido estudios en mayor cantidad que brindan muchos

aportes a la optimización en motores de búsqueda. Este es un tema muy importante que está en

alza, ya que no es secreto que para todas las empresas que apuestan por la tecnología y tienen una

página web, la optimización para motores de búsqueda es vital. Esta es la ventana que tiene la

página web hacia el mundo, y si esta ventana no está abierta, la página y por consiguiente la

empresa no obtienen su máximo potencial.

El proyecto se enmarca en distintas áreas, que van desde lo más general e importante que es la

optimización en motores de búsqueda, que es el tema principal del problema, luego, la manera

en que se afronta el problema, que es mediante técnicas de inteligencia artificial, la minería de

datos en su rama de minería de texto y finalmente, la solución que se le brinda al usuario, el

concepto de sistema de recomendación, que se lleva a cabo en el proyecto bajo el concepto de

filtrado colaborativo.

A continuación, se explicará y evidenciará el contexto de las investigaciones que abarcan

problemas similares a las de este proyecto y conceptos clave para el proyecto:

A. TIC (tecnologías de la información y la comunicación)

Suele ser referido también como TI (tecnologías de la información) y eventualmente estos dos

términos tienen la misma connotación. Las TIC son tecnologías que recolectan, procesan y

transfieren información con objetivos muy diversos. Estas tecnologías tienen un gran impacto en

la globalización, ya que permiten que la información se pueda transmitir a través de distancias

amplias y de manera efectiva, cumpliendo así los objetivos que se proponen las entidades que

utilizan las TIC. Se relacionan directamente con computación, redes, desarrollo de software y

demás términos relacionados con los sistemas informáticos.

B. Search engine optimization (SEO)

Para entrar a definir a lo que hace referencia el SEO, hay que tener presente que en la comunidad

de usuarios de internet, utilizan en gran medida los motores de búsqueda para ingresar a los sitios

web en donde encuentren las respuestas a lo que buscan [16]. De esta manera el marketing se

hizo presente [16], ya que vieron que se podía ganar dinero con esto, y la publicidad es bien paga

cuando hay un buen tráfico de personas. Es así como los desarrolladores y poseedores de las

páginas web, empezaron a idearse la manera de mejorar su posicionamiento en el motor de

búsqueda, para lograr aparecer en la primera página de resultados.

La importancia del SEO es debida a la utilidad que genera la página web, para usuarios y motores

de búsqueda, ya que de esta manera los usuarios pueden encontrar más fácil lo que en verdad

están buscando. Además, el SEO también es útil para los motores de búsqueda, ya que, gracias a

esto, el motor puede entender de qué trata la página y si es importante o no para lo que está

buscando el usuario. Por esto, hacer uso de buenas prácticas de SEO beneficia a todas las partes,

al dueño de la página web, al motor de búsqueda y al usuario que usa el motor de búsqueda.

Page 21: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 21

Debido al mismo tema de mejorar el posicionamiento en motores de búsqueda haciendo uso del

SEO se diferencian dos tipos de SEO:

1. Black Hat SEO: Se le llama Black Hat SEO a todas las técnicas poco éticas para

mejorar el posicionamiento web en motores de búsqueda que rompen las reglas de los

buscadores, como lo dice [17]:

“... Tales técnicas de Black Hat SEO rompen las reglas y reglamentos del motor de

búsqueda y colocan el sitio de poco mérito en la parte superior de la lista de resultados.

Dicha técnica no solo engaña a los algoritmos del motor de búsqueda, si no que también

reduce la calidad de los resultados de la búsqueda y aumenta el tráfico”

Es decir, que este tipo de SEO utiliza técnicas como el cloaking, spinning, spam o

keyword stuffing. Técnicas peligrosas que a corto plazo pueden funcionar, pero a largo

plazo pueden generar que el sitio web se bloquee del índice del motor de búsqueda.

2. White Hat SEO: A diferencia del Black Hat SEO, el White Hat SEO implementa

técnicas éticas que cumplen las reglas de los motores de búsqueda para mejorar el

posicionamiento de una página web en los resultados de la búsqueda. Es así como el

motor de búsqueda no castiga debido a que:

“Usando técnicas de White Hat SEO, el motor de búsqueda devuelve contenido de

calidad. Estas técnicas son benéficas para ambos, usuarios y motores de búsqueda” [17]

C. Optimización en motores de búsqueda y el marketing.

El SEO y el SEM2 desde lo típico, la optimización en motores de búsqueda y la manera de

afrontar este reto como siempre se ha hecho, mejorando el posicionamiento orgánico de la página

ya sea mediante las reglas de la optimización, o mediante el marketing en motores de búsqueda.

Esta es una técnica típica al momento de optimizar una página web para motores de búsqueda. En

Competitive Analysis of Retail Websites through Search Engine Marketing [18], se hace una

comparativa muy interesante entre obtener un buen posicionamiento en un motor de búsqueda

mediante mejorar la página para su posicionamiento natural y el posicionamiento mediante el

marketing. El marketing para motores de búsqueda es una técnica para mejorar el tráfico de una

página web, en la cual se debe pagar un dinero por ser pautada en el motor de búsqueda en el

momento en que un usuario busque un tema relacionado con la página. Este es una solución

rápida para mejorar el tráfico de una pagina. En cambio, las técnicas normales permiten el

mejoramiento del tráfico de una página, mediante un trabajo largo, el cual demanda experiencia

en el tema, y en donde los resultados se hacen esperar.

Añadiendo observaciones al artículo de Terrance et.al, no existe una buena estrategia de

marketing para páginas web sin una buena optimización de la página. Esto debido a que no es

2 Search Engine Marketing, o mercadeo en motores de búsqueda, técnica con la cual mediante una inversión

económica se pauta una página web en un motor de búsqueda mediante anuncios.

Page 22: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 22

sostenible y económico, utilizar el marketing para aumentar el tráfico, cuando Google, en el caso

de este proyecto, no indexa la página de una manera deseable, es decir, la página no está en las

primeras posiciones al buscar mediante palabras relacionadas, el marketing se vuelve en solución

temporal que lejos de ayudarle a obtener todo el potencial a la página se convierte en un gasto.

Esto se puede evidenciar en el artículo citado anteriormente, en las conclusiones, en donde se

menciona, “… el desarrollador del sitio web de una empresa de ventas debe ser consciente de

varias técnicas amigables para optimización en motores de búsqueda que pueden ser incluido en

la fase de la programación del sitio web que aumenta gradualmente la visibilidad del sitio web.”

[18]. En conclusión, la optimización en motores de búsqueda es un proceso vital para la salud de

la misma página y que opciones como el marketing para los motores de búsqueda no opacan la

importancia del SEO.

D. Page Rank (PR)

El Page Rank (PR) es un algoritmo que se encarga de calcular un número que hace referencia al

peso que tiene una página web dependiendo de su importancia relativa, es decir, es el método

para que el motor de búsqueda de Google mida la “importancia” de una página. Obtener un buen

número de PR para el sitio web es uno de los factores clave para mejorar el posicionamiento del

sitio web, tal como lo dice [17]:

“... Las páginas que tienen un rango más alto, son las más importantes y tienen más chances de

estar listadas al principio de los resultados del motor de búsqueda.”

El PR se divide en niveles de uno a diez, donde diez representa un mayor PR, indicando esto que

es una página web más popular, y un nivel de uno representa que la página web no es popular. Se

puede explicar de una manera más técnica como lo dice [19]:

“La puntuación PageRank de una página A, denotada como PR(A) , es la probabilidad de visitar

A en un camino aleatorio que implique a toda la Web, donde el conjunto de estados del camino

aleatorio es el conjunto de páginas, y cada paso aleatorio es de uno de estos tipos: Elegir una

página Web aleatoriamente, y saltar a ella o desde un estado s dado, elegir aleatoriamente un

enlace saliente de s y seguir ese enlace hasta la página de destino.”

Para estar entre los primeros 25 resultados del motor de búsqueda, el PR debería ser de 6 o más.

Para poder obtener el valor del PR, se sigue la siguiente fórmula:

PR(A) = (1-d) + d ( PR(t1)/C(t1) + PR(t2)/C(t2) +...+ PR(tn)/C(tn) )

Como lo explica [19], la fórmula, establece que una página web “A” tiene otras páginas web

“t1”… “tn” que apuntan a ella, C(tn) significa la cantidad de links que van hacia la página “tn”, y

“d” es una constante entre 0 y 1 que define la probabilidad que un usuario entre a un link,

generalmente se establece en 0,85.

Page 23: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 23

Por ejemplo, se puede observar en la Fig 2 cómo todas las páginas redireccionan a la Página C, es

por esta razón que entre todas están dando su voto de confianza y es así como consigue un

PageRank bastante alto en comparación a las demás. De igual manera se ve que a la Página D no

la referencia nadie y es por esto que tiene un valor de PageRank tan bajo. Así mismo vemos

cómo la Página A obtiene un valor un poco alto debido a que es referenciada por una página

(Página C) con un PageRank alto.

Fig 2. Ejemplo de PageRank entre cuatro páginas (Adaptado de [20])

En otras palabras, el PR es un voto de confianza que dan varias páginas web a la página web que

se le calcula el PR, es decir, si muchas páginas web se referencian hacia una página web “A”,

quiere decir que esta página web “A” muy probablemente sea de confianza y además aporte

contenido que enriquece las búsquedas de los usuarios en el motor de búsqueda.

E. Ponderación relativa

La ponderación relativa, es un método de asignación de prioridades, realizado por Karl Wiegers

en 1999 y en el cual nos hemos basado para poder hacer la matriz del sistema de puntuación. El

método hace uso de dos actores, los usuarios y el equipo de desarrollo, quienes son los

encargados de definir los pesos arbitrarios a cada una de las características a priorizar.

Originalmente el uso del método de ponderación relativa, es orientado a priorizar características

de un proyecto realizado y este mismo, dice en qué orden deben irse desarrollando estas

características.

La ponderación relativa propuesta por Karl Wiegers, se ve reflejada en una matriz tal como se

puede ver en la Tabla 1 :

Page 24: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 24

Tabla 1. Matriz de priorización de características [21]

La matriz de priorización, se compone de ocho pasos (para completar la matriz de priorización de

características) descritos en el artículo “First things first: Prioritizing Requirements” de Karl E.

Wiegers [22] y siete factores importantes a tener en cuenta para realizar la ponderación relativa

que se explican brevemente a continuación:

Características: es la columna en donde se colocan todas las características que se

desean priorizar.

Peso relativo: para las columnas de beneficio relativo, penalidad relativa, costo relativo y

riesgo relativo, se le da un valor arbitrario, dependiendo de la valoración que de la

empresa a cada factor y la importancia del mismo.

Beneficio relativo: se refiere a la utilidad que tendría el usuario al ser desarrollada esta

característica en el producto final.

Penalidad relativa: se refiere a la desventaja que tendría el usuario al ser una

característica que no esté presente en el producto final.

Costo relativo: se refiere al costo en tiempo y dinero que implicaría realizar esta

característica para el producto final.

Riesgo relativo: se refiere al riesgo que hay de no poderse terminar o implementar dicha

característica en el producto final, debido a su dificultad.

Prioridad: es el resultado final donde se establece el valor de la prioridad de la

característica y de esta manera poder hacerlas y centrarse en ellas dependiendo de la

prioridad que tengan.

La escala de números usada para realizar la votación de cada característica puede ser cualquiera,

aunque Karl Wiegers recomienda que sean números de 1 a 9. Para las columnas del beneficio y

penalidad relativa, se hace con ayuda de los usuarios, y las columnas del costo y riesgo relativo

con el equipo de desarrollo. Las demás columnas son cálculos que se hacen basados en las cuatro

que llenan entre los usuarios y desarrolladores.

Page 25: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 25

Por ejemplo, si se tiene la característica de “Poder visualizar correctamente el sitio web desde el

navegador de un televisor inteligente”, el beneficio relativo puede representar un valor medio al

ser una característica que estaría aceptable de estar en el producto final, pero la penalidad relativa

es nula, porque no representa realmente una desventaja para el usuario al poder ver el sitio web

desde otros dispositivos.

A continuación, se describen las fórmulas utilizadas según la columna:

Valor total: es la suma del beneficio relativo y la penalidad relativa, multiplicado cada

uno por su peso relativo.

Valor total = (beneficio * peso) + (penalidad * peso)

Valor %: se refiere al porcentaje que representa el valor total entre el total de todos los

valores totales.

Valor % = (Valor *100) / Valor1+Valor2+...+ValorN

Costo %: se refiere al porcentaje que representa el costo entre el total de todos los costos.

Costo % = (Costo *100) / Costo1+Costo2+...+CostoN

Riesgo %: se refiere al porcentaje que representa el riesgo entre el total de todos los

riesgos.

Riesgo % = (Riesgo *100) / Riesgo1+Riesgo2+...+RiesgoN

Prioridad: es el cálculo final de la prioridad que tiene dicha característica y se obtiene

dividiendo el porcentaje del valor total entre la suma de el porcentaje del costo por el peso

del costo y el porcentaje del riesgo por el peso del riesgo, es decir:

Prioridad = Valor% / (Costo% * peso) + (Riesgo% * peso)

F. Hipertexto, indexación y recuperación

El hipertexto es un sistema de organización basado en la vinculación de elementos de texto y

gráficos, por tal motivo, permite acceder al contenido de una manera dinámica y no

necesariamente de manera secuencial como se haría con texto sin formato [23].

Page 26: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 26

Para la web, uno de los lenguajes más usados para la indexación y recuperación de contenido es

el HTML [24] donde permite separar el texto por etiquetas y así tener una mejor indexación del

contenido para ser indexado correctamente por un motor de búsqueda.

Por ejemplo, Matt Cutts, ingeniero de google, nos cuenta cómo funciona la indexación [25]. En

su descripción explica que Google usa unos algoritmos llamados Spiders que son los que buscan

en miles de sitios web y va de link en link sacando los datos más relevantes de la página web,

para ello se vale de las etiquetas HTML que facilitan este trabajo a la hora de centrarse en títulos,

links, palabras en negrilla, palabras clave, entre otros, ya una vez identificados todos estos

parámetros, los algoritmos de Google guardan esos datos claves y el link a la página web donde

se encuentran en su base de datos. Así que cuando uno está buscando en Google, no se busca en

las páginas web existentes, si no, en las páginas que los algoritmos Spider de Google haya

indexado en su base de datos.

Un ejemplo muy básico del uso de las etiquetas con HTML sería el siguiente. Imaginemos que

tenemos el siguiente hipertexto [26]:

<h1>Sega AGES llega oficialmente a Nintendo Switch en el oeste</h1>

<h2>Con cinco títulos clásicos para arrancar</h2>

<img

src="http://images.nintendolife.com/news/2018/04/sega_ages_is_officially_coming_to_nintendo

_switch_in_the_west/attachment/0/900x.jpg" alt="news6.jpg" />

<p>

Con su versión japonesa oficial la semana pasada y la confirmación de que Alex Kidd y Ground

Gain se unen a la alineación, Sega ha confirmado oficialmente que Sega AGES (la colección

retro revivida) se dirigirá a Nintendo Switch en el Oeste en algún momento del verano de

2018.</p>

De esta manera, cada etiqueta define un bloque o caja donde se encuentra el contenido definido,

cada etiqueta se define con un “<” al inicio y un “>” al final; algunas etiquetas es necesario

colocarlas dos veces, una para cuando abren y otra vez para cuando cierran, como la etiqueta h1,

la particularidad, es que cuando se cierra se coloca un “/” justo antes de cerrar la etiqueta de

cierre con el símbolo “>”. Existen otras etiquetas como la etiqueta img que no hay que indicar

donde abre y donde cierra, esta misma es solo una etiqueta, lo que define su contenido son los

atributos, cada uno de esos atributos se definen dentro de la etiqueta de la manera

nombreDelAtributo=“contenido”. Los navegadores utilizan estas etiquetas para saber cómo se

debe mostrar el contenido de la página, en qué posición y con qué estilos, es así como el

navegador al abrir el archivo en formato HTML del ejemplo anteriormente descrito, lo

interpretaría y lo renderizaría de la siguiente manera (ver Fig 3):

Page 27: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 27

Fig 3. Ejemplo básico de página renderizada en un navegador.

G. Análisis del texto.

La investigación plantea una solución que va dirigida a la clasificación de texto y la

identificación de patrones en un texto haciendo uso de técnicas de inteligencia artificial como el

aprendizaje de máquina. Podemos ver en la Fig 4 que desde octubre del 2014 a octubre del 2018

se han realizado bastantes investigaciones en los temas relacionados con el texto y aprendizaje de

máquina, sin embargo, la cantidad de artículos sobre estos temas han disminuido constantemente.

Fig 4. Búsqueda de artículos por palabras clave en la plataforma de Google Académico [27].

Page 28: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 28

La clasificación de texto es un área en una fase de desarrollo avanzada, y aunque el HTML en

2014 ha tenido una importancia mucho mayor, ambos han venido adquiriendo la misma

importancia debido a los motores de búsqueda, ya que los motores de búsqueda utilizan el

aprendizaje de maquina para clasificar e indexar el texto de una página HTML, es por esta razón

que vemos a estos tres conceptos cómo tienden a tener una misma importancia, y lo más curioso

es que sin duda son temas que van recuperando importancia debido a la necesidad de realizar una

buena optimización para motores de búsqueda y organizar la gran cantidad de información y

datos que hay en la web.

Para la clasificación de texto, recientemente se están usando diversos métodos, por ejemplo en el

“Text Classification Research with Attention-based Recurrent Neural Networks” [3] reúnen dos

métodos de clasificación, uno por palabras clave y otro combina las palabras según su rol en el

texto. Para el primer método de clasificación que utilizan en [3], el modelo se centra en dos

partes. Primero se divide el texto en un vector de características y posteriormente se introduce en

una red neuronal recurrente (RNN) para luego describir detalladamente ese vector basado en un

modelo dado y así aumentar la estructura del mecanismo de atención.

H. Macrodatos

El término macrodatos (big data en inglés) surgió recientemente debido al incesante aumento de

datos que se almacenan y se transmiten a través de la web, y es esta misma cantidad de datos que

tienen que manejar los motores de búsqueda al momento de indexar páginas web.

Macrodatos son cantidades de datos muy grandes, que se convierten en información muy difícil

de almacenar, procesar y así sacar un provecho mayor de ellas. El concepto de macrodatos

también abarca todo lo relacionado con este tipo de datos, es decir, todo sistema que utilice

grandes cantidades de datos y la manera de relacionarse con ellos.

Es importante aclarar que los macrodatos requieren una arquitectura lo suficientemente robusta y

compleja, por ello se suelen vincular con los macrodatos a empresas muy grandes, tales como

Google, Facebook, etcétera. Las utilidades de los macrodatos pueden ser muchas, las más

destacadas son en política, en medicina, marketing, procesos empresariales y de negocios e

investigación. En general los macrodatos permiten entender tendencias de grandes cantidades de

personas y así tomar decisiones más pertinentes según lo que necesite la entidad que lo utiliza, así

cambiar la percepción de estas poblaciones o llevar el producto propio hacia las percepciones

actuales de la población.

I. Sistema de filtrado de información.

Para crear un sistema de recomendación se debe tener muy claro lo que es un sistema de filtrado

de información. Estos sistemas se encargan de procesar grandes cantidades de información cruda

y remover información redundante, innecesaria o indeseada. Tienen como objetivo obtener

bancos de información lo suficientemente relevantes para el usuario y así utilizarla en diferentes

fines.

Page 29: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 29

Los sistemas de filtrado de información han sido utilizados históricamente gran parte en las TIC,

se empezó a utilizar al momento de hacer censuras en el contenido de televisión e internet en

distintos países, estos sistemas permiten filtrar las señales entrantes y emitir solo lo que el

gobierno del país permitiera.

El filtrado de información además de la depuración de la información también incluye su

estructuración y organización, así la información pasa de ser información cruda la cual no puede

ser utilizada eficientemente a ser información útil, ordenada, fácil de entender y fácil de

manipular. Los sistemas de filtrado tienen la importante tarea de simplificar uno de los problemas

que existen en las TIC que es el manejo de grandes cantidades de datos o macrodatos. Muchas de

las técnicas relacionadas al filtrado de información son técnicas de inteligencia artificial y

aprendizaje automático como las redes neuronales o las máquinas de vectores de soporte.

J. Sistema de recomendación

Un sistema de recomendación tiene el objetivo principal de facilitarle la toma de decisiones al

usuario, toma de decisiones que puede estar en cualquier contexto, ya sea en redes sociales,

blogs, reproductores de música, en la compra de un libro, etcétera.

Los sistemas de recomendación típicos son: basados en contenido, filtrado colaborativo o híbrido.

Los basados en contenido, relacionan preferencias de un usuario con las características

del contenido a ser recomendado, así se debe pasar por un proceso de conocimiento del

usuario y a la vez de conocimiento del contenido.

Los sistemas de recomendación de filtrado colaborativo, relacionan a usuarios con

ciertas características a un tipo de contenido, así se asume que en un futuro usuarios con

estas mismas características tendrán interés en el mismo tipo de contenido.

Los sistemas de recomendación híbridos utilizan los dos sistemas de recomendación

anteriormente mencionados.

K. Aprendizaje de máquina

El aprendizaje de máquina o ML (por sus siglas en inglés de Machine Learning) es el término al

que se refiere que una máquina aprende a hacer una tarea específica. El objetivo principal del ML

es “dar una respuesta satisfactoria cuando se introduce información al mismo. En función de la

realimentación que reciba el sistema se distinguen varios paradigmas...” [28], es decir, se usa un

algoritmo para resolver una tarea y este trata de dar una respuesta satisfactoria, pero, cuando no

lo hace, él mismo modifica ciertos valores para en la próxima iteración dar una respuesta más

acertada.

Un ejemplo muy popular sobre ML es el MarI/O [29] donde el autor diseña una serie de neuronas

(módulos) para los cuales, cada uno se encarga de una tarea en específico en el videojuego de

Super Mario World. En la Fig 5 se observa que el algoritmo ya se ha ejecutado 34 veces y cada

una de esas veces, ha aprendido algo, por ende, ha modificado valores y el orden en el que se

ejecuta cada neurona para poder avanzar en el juego.

Page 30: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 30

Fig 5. MarI/O, machine learning aplicado en super mario world.

El ML se divide en dos partes, el aprendizaje supervisado y el no supervisado. El primero

identifica patrones en los datos relacionándolos con un campo objetivo, es decir, es una

predicción a futuro con un resultado esperado. Para el aprendizaje no supervisado utiliza datos

históricos que no están etiquetados y lo que hace es explorarlos para encontrar alguna estructura o

forma de organizarlos.

Como parte del aprendizaje supervisado, se encuentran todos los sistemas de clasificación.

Algunos de los más usados son el RNN y el SVM. Sistemas de gran ayuda al momento de

realizar la clasificación de texto e identificación de palabras clave utilizando el aprendizaje de

máquina.

1. RNN: Las recurrent neural networks o en español, redes neuronales recurrentes son

diseñadas para aprender patrones secuenciales o variables en el tiempo. Una red

recurrente, es una red neuronal pero con retroalimentación, es decir, un ciclo cerrado.

Un ejemplo de RNN es la máquina de Boltzmann [30]. La máquina de Boltzmann fue de

los primeros tipos de redes neuronales capaces de aprender mediante representaciones

internas, son capaces de representar y resolver complicados problemas combinatorios.

2. SVM: El support vector machine, o en español, máquina de vectores de soporte,

“...aprende la superficie decisión de dos clases distintas de los puntos de entrada. Como

un clasificador de una sola clase, la descripción dada por los datos de los vectores de

soporte es capaz de formar una frontera de decisión alrededor del dominio de los datos de

aprendizaje con muy poco o ningún conocimiento de los datos fuera de esta frontera.” [5],

es decir, están relacionados con problemas de clasificación y regresión. Siendo estos unos

algoritmos supervisados, se le ingresan valores de muestras y así aprende a clasificar.

Page 31: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 31

L. Estudios relacionados con inteligencia artificial.

No hay muchos artículos o publicaciones que abarquen el problema de la optimización en

motores de búsqueda mediante la minería de texto y la inteligencia artificial. Esto fue un

obstáculo en la investigación ya que se arrancó con muy pocos referentes en ciertas áreas del

proyecto. Los referentes y estudios relacionados que se encontraron en la investigación se

acotaron a una de las áreas de estudio de este proyecto, pero no hay investigaciones que incluyan

dos o más de las áreas de estudio y las relacionen de maneras similares a las propuestas por la

investigación presente. Sin embargo, se encontraron sistemas para resaltar o corregir errores de

HTML como lo es el sistema de W3Schools.

M. IBM Watson

Las técnicas de la inteligencia artificial como son el análisis del texto o el entendimiento del

lenguaje natural, se han normalizado en servicios de terceros, servicios que suelen ser muy

completos y que ofrecen desde planes gratuitos hasta planes muy especializados para empresas.

Estos servicios se prestan ya sea mediante servicios REST3 o mediante SDK4. En esta categoría

entra IBM Watson [31] [32], un servicio en la nube de inteligencia artificial que se encarga de

emular el pensamiento humano a través de técnicas de computación, realizando diversas tareas de

lenguaje natural, reconocimiento visual y reconocimiento de audio. IBM Watson entra en los

servicios de mejor rendimiento en esta área, existen artículos que colocan a IBM Watson de

manera muy favorable al ser comparado con otros servicios similares, tales como el de Google

Cloud o Microsoft Azure [33].

IBM Watson se compone de varias áreas del conocimiento, de esta manera es capaz de ofrecer

varios servicios, cada servicio está realizado para cumplir con una tarea en especifico según lo

que necesita el usuario; los siguientes son algunos de los servicios que ofrece:

- Habla a texto: se encarga de transcribir audio a texto.

- Asistente de Watson: el asistente puede entender el lenguaje natural en una

conversación y utiliza aprendizaje de máquina para encontrar una respuesta

- Analizador de tono: con este servicio se puede detectar los tonos emocionales y

de lenguaje en el texto seleccionado para comprender cómo se perciben las

comunicaciones escritas.

- Traductor de lenguaje: el servicio a parte de permitir traducir texto de un

lenguaje a otro, también identifica en qué lenguaje está escrito un texto.

- Comprensión de lenguaje natural: con este servicio, se puede analizar las

características semánticas de un texto, incluyendo conceptos, emociones, palabras

clave, metadatos, entre otros.

- Reconocimiento visual: se usa para analizar imágenes en busca de escenas,

objetos, caras y otros contenidos.

3 Representational State Transfer: Es un conjunto de restricciones para la creación de una arquitectura. Este se utiliza

mucho al crear servicios http. 4 Software Developement Kit: Son un conjunto de herramientas de programación que facilita al desarrollador

implementar aplicaciones informáticas en sistemas específicos.

Page 32: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 32

N. Categorización e intención del texto.

La categorización se refiere más que todo a ¿qué tipo de texto es?, ¿es una reseña?, ¿es una

crítica?, dado esto se puede identificar cuál es la intención del autor, quizá, ¿hacer un elogio?

Un ejemplo claro de este tema es lo que utiliza el algoritmo IBM Watson para hacer este proceso

de la intención del texto y así mismo poder categorizar el contenido mediante el uso de técnicas

de ML [34].

Para contextualizar, IBM Watson [31], es un sistema informático que ofrece una serie de

servicios que funcionan mediante inteligencia artificial, este fue desarrollado y es sostenido por la

compañía estadounidense IBM, Watson empezó siendo un proyecto con el objetivo de crear un

sistema autónomo con la capacidad de entender lenguaje natural y responder de manera fluida a

preguntas que se le planten. IBM creó un sistema propio con este objetivo, el cual llamaron

deepQA (deep question and answer). Watson se dio a conocer de gran manera y se evaluó de

manera pública en el año 2011, cuando participó en el programa Jeopardy y se enfrentó a dos de

las personas que más ganaron históricamente en el programa, saliendo ganador [32].

Watson creó su propio sistema deepQA, el cuál tiene un funcionamiento complejo compuesto por

múltiples módulos y gran cantidad de algoritmos, los cuales permiten analizar la pregunta,

determinar la respuesta más acertada y también un grado de confianza en esa pregunta, es decir,

qué probabilidad estimada hay de que la respuesta sea la correcta. Watson se basa en un banco de

datos que maneja IBM, de enciclopedias, bases de datos, y otras fuentes.

Posteriormente IBM creó módulos con servicios que harían parte de Watson, los cuales se

ofrecerían a desarrolladores a través de la nube. Entre los servicios que ofrece, Speech to Text

(convierte voz a texto), Watson Assistant (asistente virtual), Tone Analyzer (analizador del tono

de voz), Language Translator (traductor de idiomas), Natural Language Understanding

(obtención de sentimientos mediante texto), Personality Insights (estadísticas sobre personalidad

a partir de un banco de datos), Text to Speech (Convertidor de texto a voz), Visual recognition

(Reconocimiento de objetos o tipos de objetos en imágenes o vídeos), Natural Language

Classifier (clasificador de texto), Machine learning module (utilización general de ML, mediante

un modelo de entrenamiento y puntuación). La mayoría de los servicios se ofrecen a través de

IBM Cloud, el servicio en la nube de IBM.

De los anteriores servicios de Watson, se relacionan muy directamente con el proyecto los

servicios, Language Translator, Natural Language Understanding, Natural Language Classifier y

Machine Learning.

Page 33: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 33

V. METODOLOGÍA

Dado que este proyecto busca desarrollar un software de complejidad alta, queremos que los

tiempos sean los mejores, además que cada fase quede bien definida e implementada, para esto se

utilizó la metodología SCRUM para el desarrollo de software, que hace parte de las metodologías

ágiles5. A continuación, se explicará a fondo, la metodología que se va a utilizar.

La metodología se basó en SCRUM principalmente, una metodología ágil, de carácter iterativo e

incremental.

Se separó el desarrollo en las siguientes etapas:

1. Determinar la viabilidad del proyecto.

2. Planeamiento y validación de requisitos.

3. Diseño del sistema.

4. Implementación del sistema.

Estas etapas se repartieron en dos fases, el diseño y la implementación, las cuales serán los

capítulos 6 y 7 de este documento, el planeamiento de requisitos y diseño del sistema se

consignan en el capítulo de diseño (capítulo 6) y la implementación del sistema se consigna en el

capítulo de implementación (capítulo 7).

La fase del planeamiento y validación de requisitos se ejecuta una única vez al hacer el análisis

del proyecto. Para esta nos basamos en el marco de referencia de ingeniería de requisitos, en

donde se hace un proceso de abstracción, según sean las necesidades y las características del

proyecto, cabe aclarar que la ingeniería de requisitos está enfocada hacia el desarrollo de

software. La etapa se llevó a cabo mediante el diseño de un documento de especificación de

requisitos ERS (ver anexo 1), en este documento se especifican los objetivos del proyecto, en

contexto, las personas interesadas en él, y a partir de aquí se especifican los requisitos funcionales

del proyecto, los actores principales del mismo y casos de uso. Todas estas especificaciones

permiten que el análisis se efectúe de una manera precisa y de la manera más cercana a la

realidad.

La fase de diseño e implementación están inmersas en las iteraciones de SCRUM llamadas

sprints. Se definen roles para la pareja de trabajo (son 3 roles en SCRUM), y en cada sprint de 1 o

2 semanas, se desglosan los requisitos a trabajar que se definen en un documento de

especificación de requisitos (ERS)(anexo 1), estos también se consignan como historias de

usuario. Estas historias de usuario se escribirán en una lista de tareas por hacer con su respectiva

prioridad y fecha final.

Se definieron dos productos principales que fueron la investigación y el desarrollo, cada uno de

estos tendría su propio product owner, rol en SCRUM que define el principal encargado de un

producto o área de un proyecto. Este se asegura de que la calidad y los procesos se cumplan, así

5 Metodologías ágiles de desarrollo: son metodologías de desarrollo iterativas a incrementales, estas se rigen por un

manifestó y son muy utilizadas a nivel global por sus ventajas en costos, velocidad y facilidad de implementación.

Page 34: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 34

mismo, que se respete le fase de análisis y que si hay cambios estos se efectúen correctamente.

En cada iteración o sprint, los product owners deben mostrar resultados y el estado del progreso

en cada producto, así, ambos productos se van desarrollando a la par y de manera sincronizada.

Cabe aclarar que ser product owner de un área no implica ser el único trabajando en esa área.

En cada iteración se hacen pruebas experimentales para validar los resultados de la misma. Todos

los ciclos cumplen con una estructura en la cual se traza uno o más hitos, se investiga sobre lo

que concierne a estos hitos y su estado actual de desarrollo; con base en esto, se desarrolla o

implementa la solución para lograr este hito. Después de desarrollar la posible solución se hacen

pruebas y validaciones de la misma, intentando evaluar su viabilidad y ventajas, comparándolas

con otras soluciones o con desarrollos anteriores al propuesto. Por ejemplo, en el módulo de

formateo, se hacen pruebas con sitios web ya formateados y si acierta, se decide si sigue

entrenando o no. Por último, cada que se evalúan los resultados de un ciclo, dependiendo del

grado de satisfacción del mismo, se decide si se pasa a otro objetivo a desarrollar y otra solución,

o si por el contrario los resultados no son lo suficientemente gratificantes y así repetir el ciclo,

utilizando una opción diferente al momento de desarrollar.

Se hace uso de la metodología SCRUM debido a la eficacia de la estrategia y que su modalidad

iterativa, facilita y optimiza el trabajo en equipo, en esta estrategia se tienen requisitos para cada

iteración, los cuales serían los objetivos que queremos atacar. Se planean tareas, definidas por el

grupo y cada día o con cierta frecuencia se programan reuniones rápidas donde se busca

sincronizar el trabajo y entender el estado del mismo. Cada que se termina una iteración se hace

una reunión más larga para reunir y acoplar todo lo que se trabajó en el ciclo, así como para sacar

las conclusiones y definir el paso a seguir.

Page 35: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 35

VI. DISEÑO

En este proyecto se propuso una metodología en el cual el desarrollo se enmarca en tres fases

principales que son: la preparación de los requisitos, el diseño del sistema y la implementación

del sistema. La fase de la preparación de los requisitos se tratará como parte del diseño del

sistema.

A. Preparación de los requisitos

La primera fase, la preparación de requisitos, se ejecutó con base el marco de referencia de

ingeniería de requisitos [35] [36] [37]. A partir de aquí se desarrolló un documento de

especificación de requisitos de software (ERS)(ver anexo 1).

Este documento que hace parte de la fase de análisis en los proyectos de software contiene

detalladamente el comportamiento del sistema que se va a desarrollar. Aquí se especifican los

requerimientos funcionales y no funcionales del software, los cuales se extraen dependiendo de

varios factores que hacen parte del proyecto como: los objetivos, el contexto y las personas

involucradas en este. También se definen restricciones6, asunciones7 y riesgos8.

Este documento se puede encontrar en el apartado de anexos como: Anexo 1. Documento:

Especificación de requisitos de software (ERS).

B. Diseño del sistema

El diseño del sistema se basó en el levantamiento de los requerimientos. Especificado en el

documento nombrado en el capítulo anterior (ERS).

El sistema diseñado será conformado por un servicio en la web y soportado por una aplicación

web en el que un usuario tendrá la posibilidad de ingresar una página web estática y analizarla

posteriormente mediante el sistema.

Con base en el objetivo general y los objetivos específicos, en el análisis del proyecto y la

especificación de los requisitos, se planteó un sistema conformado por tres módulos de análisis,

que se encargarán de analizar la página y dos módulos de respuesta al usuario, que se encargarán

de convertir los datos crudos obtenidos en información útil para el usuario.

Los módulos de análisis son:

Módulo de análisis del contenido de una página web.

Módulo de análisis de la intención de una página web.

Módulo de análisis de la estructura HTML.

6 Son limitaciones que se especifican para la utilización del producto de software. 7 Condiciones que se asumen al momento de utilizar el producto de software. 8 Los riesgos son posibles escenarios desfavorables en el producto de software.

Page 36: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 36

Los módulos de respuesta al usuario son:

Módulo de extracción de recomendaciones.

Sistema de puntaje.

Datos de entrada del sistema. La manera de interactuar con el sistema puede darse de diversas

maneras, mediante un servicio http o mediante la página web diseñada, tanto en el servicio como

en la página web el usuario podrá ingresar los datos de maneras diversas, esto será a través un

formulario (en la página) o de los parámetros y el cuerpo de la solicitud (en el servicio), en

cualquiera de los dos métodos, las siguientes serán las opciones de entradas.

Link de la pagina. El usuario podrá ingresar la URL pública en la que se encuentra su página, así

el sistema descargarla y analizarla. La URL debe estar pública y tener una salud aceptable para

que el sistema pueda descargarla de manera apropiada.

Archivo HTML de la pagina. si la página no está siendo servida tendría la opción de subir el

archivo de su página en formato HTML (extensiones .html y .htm). No es necesario que la página

contenga estilos (CSS9), ni scripts (JS10), ya que estos no serán analizados, los demás contenidos

de la página sí serán analizados, sin embargo, si la página contiene estilos y/o scripts el sistema

simplemente los va a ignorar.

Tema principal de la página. El usuario podrá determinar cuál es el tema principal de la página

que se va a analizar, si esta explicación llega a ser confusa, en este campo el usuario deberá

preguntarse, ¿Cómo me gustaría que mi página fuese buscada en Google?, ¿Con qué frase?, cabe

aclarar que el tema al dejarse en blanco es inferido por el propio sistema. La utilización del tema

principal de la página se explicará más a fondo en el diseño del módulo del análisis del

contenido, que es en donde cobra relevancia el tema de la página

Intención principal de la página. La intención comunicativa principal de la página podrá ser

elegida entre 6 opciones, automática, muy positiva, positiva, neutral, negativa y muy negativa,

que en el sistema representarán números decimales desde -1 hasta 1, esta representa la intención

del mensaje que se quiere transmitir con la página, por ejemplo, si es una crítica, tiene un

mensaje con intención negativa, por el contrario, si se trata de un elogio, se tiene un mensaje con

intención positiva. La intención de la página y su utilización se explicará a fondo en el diseño del

módulo del análisis de la intención.

Preparación de la página. En cuanto los datos de entrada del usuario ingresan al sistema, el

sistema se encarga de si la página ingresó con un archivo HTML revisar si el formato es correcto

y si no es un archivo vacío. Si la página es ingresada mediante URL el sistema debe descargarla y

a su vez si el estado del recurso es exitoso, revisar el correcto formato de la página descargada. Si

9 Cascade Style Sheets: u hojas de estilo en cascada, son documento que sirven para definir características visuales

de una página web. 10 JavaScript: lenguaje de programación que es utilizado tanto para programación del lado del servidor o del cliente,

en este caso se refiere al JavaScript del lado del cliente que tiene la función de definir el comportamiento de la

página en el navegador.

Page 37: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 37

en cualquiera de estos procesos hay un error el sistema le informará al usuario el mal estado del

recurso.

Habiendo pasado el proceso inicial del sistema, que es la entrada general de los datos por parte

del usuario, y la preparación de la página a continuación veremos los distintos procesos y pasos

que cumple la página web y demás datos ingresados para obtener los resultados que cumplan con

los objetivos de este proyecto. Estos pasos fueron divididos en los módulos anteriormente

nombrados, los cuales a continuación se explicarán a fondo.

1. Módulos de análisis del contenido y la intención

Comenzamos con uno de los núcleos y factores más distintivos de el proyecto, tanto en estos

módulo como en todos los demás, debemos tener en cuenta el objetivo del sistema con respecto a

una página web analizada, este objetivo es el de ofrecer soluciones para optimizar la página

web en el motor de búsqueda de Google, este objetivo se logrará mediante el concepto de

filtrado colaborativo el cual se explica en el marco teórico (ver capítulo 4), y nos ayuda a predecir

comportamientos y características, al relacionar objetos con otros.

Estos módulos se basan en los factores G2 y FP9 que se consignan posteriormente en el sistema

de puntaje (ver capítulo 6, sección B.3).

Debido a que el módulo del análisis de contenido y el del análisis de la intención tienen la misma

heurística, ambos módulos se explicarán en la misma sección.

Los sistemas de recomendación tienen gran efectividad al momento de hacer predicciones con

base en información pasada [38]; llevados a la necesidad del proyecto, se decidió diseñar un

sistema de recomendación que brindara soluciones fáciles y amigables para los usuarios

objetivos. Con esto se busca que no sea necesario un nivel avanzado de conocimientos en HTML

y optimización en motores de búsqueda para utilizar el sistema.

Como se explica en la teoría, estos sistemas pueden ser basados en contenido, de filtrado

colaborativo e híbridos. En este caso se escogió un sistema de recomendación de filtrado

colaborativo debido a que estos utilizan casos similares a los propios y correlacionan sus éxitos y

fracasos para así poder hacer predicciones.

Y ¿por qué filtrado colaborativo? Porque en el basado en contenido se relacionan preferencias

indicadas con anterioridad y a partir de estas preferencias se agrupa, por ejemplo, en un sistema

de recomendación basado en usuarios, los usuarios especificarían las características de con qué

quieren ser relacionados, ya sea un tipo de comida, el género de una película, etcétera. Por ende,

no tendría cabida implementar un sistema de recomendación basado en contenido para este

proyecto, porque entonces el usuario debería definir las características con las cuales una página

sería bien indexada en Google. Sin embargo el filtrado colaborativo permite relacionar elementos

de la misma jerarquía con características similares para predecir otras características y/o

comportamientos esperados, en el caso, tenemos disponibles elementos de la misma jerarquía

(páginas web) del elemento que se va a analizar, que tienen y/o pueden llegar a tener

Page 38: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 38

características similares (tema principal e intención comunicativa) y que poseen características o

comportamientos que son a los que queremos llegar (una buena indexación en Google).

En la Fig 6 podemos ver cómo funciona el filtrado colaborativo en un ejemplo basado en

usuarios, en el ejemplo se vincula un usuario con otros similares y se le agrupa dependiendo de la

cantidad de usuarios similares en dicho grupo, es decir, si el usuario A tiene similitudes con una

gran parte de usuarios del grupo X, y en cambio tiene menos similitudes con usuarios del grupo

Y, entonces el usuario A tiene más probabilidades de ser relacionado exitosamente con lo que se

relaciona el grupo X.

Fig 6. Gráfico de filtrado colaborativo simple basado en usuarios

En el filtrado colaborativo se da como supuesto que algo que ya ocurrió en un pasado, volverá a

pasar si se dan las mismas condiciones.

Llevado a el proyecto, si cambiamos los usuarios por páginas web, las características similares

por el tema principal de la página y la intención comunicativa de la misma y las relaciones las

colocamos como éxitos en el motor de búsqueda de Google; tenemos un sistema de

recomendación basado en filtrado colaborativo que se amolda a lo que necesitamos. Estos

sistemas generalmente son utilizados en aplicaciones como Netflix, en donde se debe dar una

recomendación de contenido al usuario, estas recomendaciones son dadas con un porcentaje de

coincidencia.

En este caso particular, utilizamos el mismo principio del filtrado colaborativo, pero la salida del

sistema entrega recomendaciones y un puntaje; además de que las características que relacionan a

las distintas páginas para hacer los análisis son el tema de la página y la intención de la misma.

En la Fig 7 se ve de manera sencilla el cómo sería la Fig 6 adaptada a páginas web, en esta la

agrupación por características similares se ejecutaría relacionando el tema principal y la intención

Page 39: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 39

comunicativa, y el éxito o fracaso serían la buena o mala indexación en el motor de búsqueda de

Google.

Fig 7. Filtrado colaborativo basado en páginas web

Análisis de la página web del usuario. Cuando la página web está preparada, descargada y se

han hecho las validaciones pertinentes, los módulos del análisis del contenido e intención se

encargarán de procesar la página para obtener los datos más relevantes del contenido de la

misma. Los datos que se obtendrán serán conceptos, temas, categorías, palabras clave del

contenido de la página. Así como para el análisis de la intención se obtendrá la intención

comunicativa general del documento y la intención comunicativa relacionada a cada categoría,

concepto, palabra clave, etcétera. Estos datos deben ser específicos y no ser frases largas, si no de

uno a cuatro palabras como máximo. Es importante que cada uno de los datos obtenidos tengan

una relevancia, es decir, la importancia dentro del texto, de esta manera estos datos serán

ordenados y clasificados por su relevancia y el sistema podrá comprender qué datos tienen más

importancia.

En estos módulos se analiza el contenido no HTML de la página web, es decir, todo contenido

interno de las etiquetas del cuerpo (body11) de la página, que sea texto y que no sea parte de los

atributos de las etiquetas HTML, con excepción del contenido de la etiqueta meta keywords que

sí es relevante en este análisis.

11 Etiqueta que contiene el cuerpo de la página, valiendo la redundancia, tiene todos los elementos que se pueden

visualizar en ella. Esta hace parte de la estructura general de cualquier página HTML y es necesaria para renderizar

contenido en un navegador.

Page 40: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 40

Al final de este proceso, se tendrán los datos de la página subida por el usuario obtenidos

mediante tecnologías de inteligencia artificial en el área del entendimiento del lenguaje natural

que hace parte del procesamiento del lenguaje, este se encarga de analizar el léxico de un texto y

así extraer datos importantes en el mismo, se explica en el marco teórico (ver capítulo 4). Este

banco de datos será denominado conjunto de datos A.

Preparación del tema e intención. Cuando la página del usuario ya ha sido analizada, con el fin

de ejercer el filtrado colaborativo, debemos conocer el tema principal de la página como también

la intención comunicativa de la misma, esto se puede conocer de dos maneras distintas. La

primera y la más recomendada, es que el usuario envíe el dato del tema de la página y de la

intención de la misma. La segunda es que el mismo sistema deduzca esta información por medio

del análisis efectuado anteriormente con el conjunto de datos A.

Importante: Hay que resaltar que es más recomendado que el usuario envíe los datos y que no

sean deducidos por el mismo sistema, ya que esta deducción puede llegar a ser ambigua, por

ejemplo, como el análisis se hace a la misma página del usuario y esta deducción se hace con

base en este análisis, entonces si la página está mal redactada, o tiene contenido ambiguo

(fluctuando entre varios temas distintos), el sistema va a deducir el tema y la intención de manera

incorrecta y esto haría el análisis impreciso. Sin embargo, si el usuario define el tema y la

intención de manera que no concuerde con las características de la página o las que espera tener

en su página también haría el análisis impreciso.

A partir de aquí si el usuario no ingresa ni el tema ni la intención o solo ingresa uno de los dos,

los datos faltantes van a ser deducidos por el conjunto de datos A, este conjunto de datos ya

contiene la intención general de la página; esta se define mediante un valor decimal que va en un

rango desde -1 hasta 1, y en cinco categorías, intención neutral, positiva, negativa, muy positiva y

muy negativa, cada categoría tiene su rango el cual se define en la Tabla 2. El tema principal de

la página si no es enviado por el usuario se deduce mediante el tema o categoría más relevante

del análisis así como la palabra clave más relevante, si hay dos temas, categorías o palabras clave

el sistema añadirá ambas al tema principal de la página. Hay que recordar que el motor de

búsqueda de Google no indexa la página mediante conectores (de, él, la), si no mediante palabras

clave, por ello, no importa que el tema de la página sea formado por dos palabras o frases cortas

sin conectores entre sí.

Categoría Valor mínimo Valor máximo

Muy positiva 0.6 1

Positiva 0.2 0.6

Neutral -0.2 0.2

Negativa -0.6 -0.2

Muy negativa -1 -0.6

Tabla 2. Tabla de valores y categorías para la intención de un documento HTML

Page 41: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 41

Obtención de páginas de Google. A partir de aquí se efectúa el filtrado colaborativo, ya que se

relacionan elementos de características similares para predecir la correcta indexación en motores

de búsqueda. Estas características en este caso son el tema principal de la página y la intención de

la misma ya sean deducidas por el sistema o enviadas por el usuario.

Así, se buscan en el motor de búsqueda de Google las diez páginas mejores indexadas, mediante

la frase que compone el tema de la página y que a su vez compartan el mismo rango de intención

comunicativa de la página, es decir, se simula una búsqueda normal en el motor de búsqueda de

Google colocando el tema de la página como frase de búsqueda, y de los diez primeros resultados

se tienen en cuenta los que están en el mismo rango de intención que la página a analizar.

Se decidió analizar las primeras diez páginas encontradas en el motor de búsqueda de Google

debido a que con los diez primeros resultados se obtiene información suficiente para comparar

los resultados, además está demostrado y divulgado en la literatura que los primeros diez

resultados son los realmente relevantes en una búsqueda de Google, e incluso en los primeros

diez resultados la eficacia de la posición va disminuyendo claramente a medida que la posición

va aumentando. Por ende, a partir de la décima posición el tráfico ganado mediante la exposición

en Google disminuye de manera muy considerable, probabilidad de interacción de un usuario en

una página que supera la posición diez es mínima, esta puede variar alrededor del 1% (véase Fig

1). Así, que una página web se encuentre en las primeras diez posiciones en el motor de búsqueda

es lo mínimo deseado por los desarrolladores en un buen SEO. A partir de este análisis,

concluimos que obtener una indexación en donde la posición en el motor de búsqueda de Google

sea mayor a la décima no se encuentra en el objetivo de este sistema, incluir páginas después de

la décima posición puede hacer que se analice páginas con malas prácticas de SEO.

Después de obtener la información de las principales páginas en el motor de búsqueda de Google

relacionadas con la página que se va a analizar, estas se descargan posteriormente mediante la

URL de la página, esta descarga solamente se tiene en cuenta si es exitosa y la respuesta del

servidor contiene un estado 200 (OK12).

Análisis de páginas relacionadas. Al obtener las páginas relacionadas, estas se analizan una a

una y se obtienen los mismos datos obtenidos en el proceso de análisis de la página web del

usuario, tanto las palabras clave, categorías, conceptos y temas se deben extraer de la página, así

como la intención comunicativa de cada una. Posteriormente, los datos obtenidos de cada una de

las páginas se unen, creando un solo conjunto de datos para el conjunto de páginas analizadas. En

el caso de que las palabras clave, categorías, temas o conceptos se repitan en varias páginas, la

relevancia de estos se suma para obtener un conjunto de datos. Estos datos son guardados y les

denominaremos conjunto de datos B.

Comparación de datos relacionados. Teniendo listos los conjuntos de datos A y B, se

proseguiría a comparar estos dos conjuntos de datos, esta fase simplemente compara cada

elemento del conjunto B y revisa si este está incluido en el conjunto A, así se revisa si el

concepto que tiene gran relevancia en las búsquedas de Google relacionadas también tiene

relevancia en la página subida por el usuario, si no es así, este concepto es guardado en un

conjunto de datos que se utilizará más adelante para presentar recomendaciones al usuario.

12 Las respuestas http pueden tener un código de estado, entre ellos se encuentra el código 200, que significa OK, es

decir, que el recurso que se solicitó está disponible, tiene una buena salud y fue recuperado con éxito.

Page 42: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 42

2. Módulo de análisis de las etiquetas HTML

Este módulo tiene la tarea de analizar las etiquetas HTML del documento bajo los criterios más

importantes para la optimización en el motor de búsqueda de Google. Es un módulo

complementario ya que como sistema de recomendación para la indexación en el motor de

búsqueda de Google se debía tener en cuenta las reglas básicas que toma en cuenta Google para

la indexación en motores de búsqueda. Con los módulos de la intención y el contenido

complementados con el del análisis del HTML se obtiene un sistema robusto que abarca todo lo

posible relacionado con la optimización en motores de búsqueda.

Este módulo analiza todas las etiquetas HTML, sus atributos y en algunas ocasiones el contenido

interno. En el ejemplo a continuación se va a explicar de manera sencilla en qué sectores del

documento es impactado cada uno de los módulos de análisis.

Código de colores

Módulos de análisis del contenido y de la intención.

Módulo de análisis de etiquetas HTML.

<html>

<head>

<title>Título de la página</title>

<meta name=”keywords” content=”algunas, palabras, clave, importantes, para, la,

página”/>

</head>

<body>

Este es el cuerpo del documento

<p>Este es un párrafo que está dentro del cuerpo del documento</p>

<img src=’www.link.com/imagen1’/>

</body>

</html>

Análisis de la página. Teniendo la página descargada, este módulo deberá interpretar el html,

simulando así un navegador común y corriente, solo que del lado del servidor. Al momento de

obtener los datos, el sistema pasa por 20 de los 22 factores determinados y explicados en la

sección del sistema de puntaje, en la Tabla 3, los dos factores que no se tienen en cuenta en este

módulo son el G2 y el FP9 ya que estos corresponden a los módulos del análisis de la intención y

el contenido, cada uno de estos factores permite crear los datos para la creación de la

recomendación que se le mostrará al usuario, además de que coopera con el sistema de puntaje para determinar qué tanto baja o sube tanto el puntaje general de la página y un puntaje específico

propio de cada factor, esto se explicará a fondo en la siguiente sección.

Page 43: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 43

3. Sistema de puntaje

En el sistema de puntaje se busca aterrizar de manera mesurable los resultados del análisis de una

página, este sistema es uno de los núcleos y mayores contribuciones de este proyecto de

investigación debido a que permite hacer un análisis de la efectividad del sistema y hacer

comparaciones entre páginas. Para el sistema de puntaje y el módulo de análisis de la estructura

HTML se utilizan distintos criterios extraídos desde la literatura que son relevantes para el motor

de búsqueda de Google. A continuación, se explicarán todos estos criterios.

Para que un documento HTML pueda ser correctamente indexado y encontrado por el usuario en

Google Search, se cumplen tres fases importantes:

Rastreo: Realizado por los algoritmos arañas de Google para encontrar nuevas páginas

web y poder proceder a la fase de indexación.

Indexación: El sistema de recuperación con las páginas que encontró, procesa su

contenido y crea un índice en el cual almacena los datos que le parecen más importantes y

la ubicación (la URL) donde se encuentra dicha página web.

Publicación: Se basa en más de 200 factores que determinan el ranking y clasificación de

la búsqueda que hace el usuario.

En las primeras dos fases, es donde el gestor del contenido y de la construcción del sitio web

puede intervenir para mejorar la indexación de su sitio web.

Entonces, ¿Cómo se puede ser rastreable e indexable?, con este objetivo se definieron una serie

de pautas:

Que a Google le guste el sitio [39], cumpliendo los siguientes factores.

Los siguientes son algunos de los más de 200 factores en los que se basa el motor de búsqueda de

Google para clasificar las búsquedas.

Nota: Los factores marcados con un * son los factores que implementan en el sistema de

recomendación.

* Aportando información valiosa

Día a día los algoritmos de Google que trabajan en conjunto mejorar su manera de indexar

páginas web y recuperación de las mismas, es decir, al momento de hacer una búsqueda en el

motor de Google, no es lo mismo que hacer una búsqueda en una base de datos, como bien lo

dice [19]:

“la información que gestiona un sistema de recuperación de información está en lenguaje

natural, sin estructurar, por lo que puede ser semánticamente ambigua.”

Es por esto que el motor de búsqueda de google antes de indexar nuestra página, analiza el

contenido, fuera de lo que es la estructura HTML, etiquetas, atributos y demás, porque trata de

presentarle los mejores resultados al usuario que realiza la búsqueda.

Page 44: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 44

Teniendo en cuenta lo anterior una de las mejores formas de mejorar la indexación de la página

es tener un contenido enriquecedor con información valiosa en el tema que se está tratando, que

pueda ser punto de referencia y que carezca de contenido basura y spam. De no ser así, al tener

contenido sin control ni estructura, se estaría incurriendo en el error de duplicidad de contenido y

páginas con contenido poco relevante, las cuales google no las califica bien.

* URLs de referencia

En lo posible que redirija a enlaces del mismo sitio o a páginas web externas que tengan un buen

PageRank.

Es mucho mejor utilizar enlaces de referencia hacia el mismo sitio, porque de esta manera se

eleva el PageRank de tu página; siendo este como un voto de confianza para los enlaces, entre

más páginas bien calificadas por el motor de búsqueda redirijan a un mismo sitio web, mejor será

el PageRank.

Para una correcta escritura de las URL, se debe evitar poner espacios, guion bajo u otro carácter

especial para hacer la separación de dos o tres palabras, en vez de usar los anteriores

mencionados, el uso de los guiones es una buena alternativa, pero con el uso de cuatro guiones o

más, podría llegar a catalogarse como una URL de spam.

No se debe exceder los 2048 caracteres en la URL.

* URL caídas

Las URL que aparecen con los códigos de estado como: 301, 302, 404, 500; no deben ser

indexados, ya que no aportan nada en la búsqueda del usuario.

* Palabras clave en el URL

El uso de las palabras clave en las URL se prioriza dependiendo del orden en el que aparezcan

aquellas palabras clave. Es decir, si la temática es “coches”, tendrá más valor una URL como

esta: “www.coches.com” que una URL como esta

“http://www.alquilerdevehiculos.com/coches.html”.

* Meta tags

El uso de meta tags es demasiado importante, ya que estas etiquetas son las que suministran

información y metadatos al motor de búsqueda para facilitar el análisis y la gestión del contenido

de la página HTML.

Algunos de los meta tags más importantes para usar son [40]:

Page 45: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 45

* <meta charset="utf-8"/>

Etiqueta meta para definir la codificación de caracteres y así evitar errores de caracteres.

* <meta name="description" content="Aquí se escribe la descripción de la página"/>

Breve descripción de la página web, haciendo uso de palabras clave. Máximo 200 caracteres.

* <meta name="keywords" content="palabra clave 1, palabra clave 2, palabra clave 3"/>

Definición de palabras clave, separadas por comas. Máximo 200 caracteres.

* <meta name="author" content="Nombre del autor" />

Etiqueta meta para definir el nombre del diseñador de la página web.

* <meta name="copyright" content="Propietario del copyright" />

Etiqueta meta para definir el nombre del propietario del copyright de la página web.

* <meta name="robots" content="noindex"/>

Mediante esta etiqueta se le indica al buscador si debe indexar la página o si se quiere que siga

los links que hay en ella. No es necesario decirle por medio de esta etiqueta que indexe el sitio o

que siga los links ya que este es el comportamiento habitual de los algoritmos, realmente se usa

en el caso que no se desee indexar (content=”noindex”) o que no se quiera que siga los links

(content=”nofollow”).

* <meta http-equiv="cache-control" content="no-cache"/>

Para páginas que se estén actualizando diariamente, se utiliza la etiqueta meta de cache-control

para indicar que no se guarde en caché la página. Esto ralentiza la navegación, pero ayuda a la

actualización correcta de la página web.

* Utilizar palabras clave del tema que se está hablando

Es una de las maneras más importantes de hacer que el contenido sea bien indexado y sobre todo

si las palabras clave hacen referencia a temas populares hoy en día. Pero, así como es una buena

práctica hacer uso de palabras clave, hacer uso excesivo de estas puede ser contraproducente,

siendo identificada la página web como spam.

Evitar tener contenido “poco relevante”

En el índice de Google no es adecuado que estén páginas que no aporten nada para lo que uno

busca y un ejemplo de estas son las típicas páginas de “no se ha encontrado ningún resultado”,

por ejemplo, ver Fig 8.

Estas páginas son beneficiosas dentro de un sitio web para dar a entender que no hay nada

relacionado con lo que buscó dentro del sitio web, pero no aportan nada en el índice de google.

Page 46: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 46

Fig 8. Búsqueda en Google que contengan el texto “No se ha encontrado ningún resultado para la búsqueda.

* Duplicidad de contenido

La duplicidad de contenido es penalizada por Google en los casos que existan varias URL que

hagan referencia a la misma página y que ambas se han indexado. Por esta razón es tan

importante hacer uso del atributo rel=”canonical” precisamente desarrollado para evitar

duplicidad de contenido.

Por ejemplo, si se tiene una misma página que responde a estas URL:

http://www.dominio.com/pagina.html

http://www.dominio.com/pagina.html?opcion=1

http://www.dominio.com/pagina.html?opcion=2

La manera de solucionar este caso de duplicidad es en el link de la página original colocar el

atributo rel=”canonical”, es decir:

<link rel=”canonical” href=”http://www.dominio.com/pagina.htm” />

Y de esta manera se le da a entender a Google cual es la página que debe indexar y cual no.

Enlaces internos sin enfoques definidos

Evitar enlaces que no tengan nada que ver a lo que relaciona, es decir, todo el contenido al que se

“redireccione” debe estar relacionado con el tema del que se está hablando, tal cual lo hace

Wikipedia.

Page 47: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 47

Evitar enlaces no rastreables

Evitar enlaces que redireccionan a páginas con contenido relevante del sitio web mediante

JavaScript, ya que los algoritmos arañas no realizan un buen seguimiento de enlaces que estén

dentro de código JavaScript, se especializan más en enlaces que estén directamente en el HTML.

Cuidar contenido que no se debe indexar

Existe contenido que no debería ser indexado, como plantillas, páginas enteras y demás que no

son relevantes para el contenido del proyecto ni para la búsqueda de google. Es importante que en

un sitio web, se haga uso de recursos que ayudan a que estas páginas que no son relevantes para

el usuario se bloqueen. Páginas como paneles administrativos, o secciones de la página que no

deberían ser leídas por el algoritmo de Google, son de las que se encargan estas herramientas.

La herramienta más usada es el fichero “robots.txt” el cual se encarga de restringir el rastreo de

numerosas páginas web o directorios completos. Un ejemplo en el caso del gestor de contenido

Wordpress, para restringir el acceso a estas arañas al área dedicada al administrador del sitio, en

el fichero se agregan estas líneas:

User-agent: *

Disallow: /wp-admin

Disallow: /wp-content/plugins

Disallow: /wp-content/themes

De esta manera evitamos que los algoritmos arañas de Google malgasten sus recursos y se

centren en el contenido verdaderamente relevante.

Factores positivos dentro de la página web:

Accesibilidad:

Una buena característica para implementar al momento de desarrollar una página web, es que sea

accesible para cualquier persona, de esta manera, la página web tiene un alcance al mayor

número de personas posibles; como lo explica David Grávalos Macho en “La calidad de una

página web como herramienta de comunicación” [41]:

“... las páginas web deben diseñarse para que se adapten de forma adecuada a las distintas

posibilidades de navegación que pueden presentarse, como, tipos de dispositivos, tipos de

navegadores, características de visualización, etc.”

De esta manera, haciendo uso de herramientas que permitan mejorar la accesibilidad en una

página web, es fácil entender que si una web legible por navegador para ciegos (Lynx, por

ejemplo, ver Fig 9) es legible por el robot de indexación.

Page 48: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 48

Fig 9. Vista del navegador Lynx mostrando la página principal de Twitter.

* Densidad de palabras clave en el cuerpo

Según la cantidad de palabras que hay en todo lo que comprende el cuerpo (<BODY>), es un

factor positivo si de ese total de palabras que hay, entre un 5% y 20% son palabras clave. Hacer

uso de más del 20% de la cantidad de palabras del cuerpo en palabras clave, podría llegar a

catalogar la página como spam.

* Etiquetas <H>

Es importante el uso de las etiquetas <H>, con palabras clave, sobre todo en las etiquetas <H1>,

<H2> y <H3> [42], ya que estas etiquetas le indican al motor de búsqueda la importancia del

texto que se encuentra dentro de ellas, siendo la etiqueta <H1> la que tiene más relevancia, es así

como nos menciona Lluís Codina y Mari Carmen Marcos en su artículo titulado

“Posicionamiento web: conceptos y herramientas” [43]

“En general, los motores de búsqueda interpretan como indicadores valiosos para sus inferencias

el contenido de las mencionadas etiquetas”

De igual manera, no se debe hacer uso excesivo de estas etiquetas, ya que no tendría sentido

indicarle al buscador que casi todo el contenido es tan importante como para ponerlo dentro de

una etiqueta <H1>; así que el uso de estas etiquetas debe ser un poco más estratégico y tratar de

no abusar mucho de su uso para de esta manera no restarle la importancia que tiene cada una.

Page 49: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 49

* Tamaños y tipo de fuente de la palabra

Es bueno en alguna ocasión resaltar las palabras clave, haciendo uso de las etiquetas

<STRONG>, <BOLD>, <ITALIC>, etcétera, ya que de esta manera es como se le da a entender

a los algoritmos del motor de búsqueda, la importancia del texto que se encuentra dentro de estas

etiquetas.

* Palabras clave en listas numeradas

Uso de palabras clave en listas es relevante en la medida que estas listas hagan referencia a otras

páginas web que estén tratando del mismo tema que se habla o sobre la palabra clave que se

encuentra explícita en la lista.

* Palabras clave en la etiqueta title

La etiqueta <TITLE> es el factor más importante de la optimización on-page básica de una Web.

Se coloca dentro del apartado <HEAD> del documento HTML, junto con las etiquetas META y

otras etiquetas importantes. Cuando se hace la búsqueda en google, el título que aparece

resultante de la búsqueda, es la etiqueta <TITLE>, por esta razón es tan importante tener palabras

clave relevantes en el título, pero sin exceder los 70 caracteres [44].

Fig 10. Ejemplo de búsqueda con las palabras clave de “International Space Station”.

* Palabras clave en el meta description

Es recomendable el uso de palabras clave en el metadata description, sin exceder los 200

caracteres.

Fig 11. Descripción de la página web de la nasa en la que habla sobre la “International Space Station”

Page 50: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 50

* Palabras clave en el meta keyword

Es recomendable el uso de palabras clave en el metadata keyword, sin exceder los 200 caracteres

y cada uno separado por comas, como se puede ver en la figura siguiente.

Fig 12. Palabras clave del sitio web esa.int para la búsqueda con google haciendo uso de las palabras clave de

“International Space Station”.

* Palabras clave en el atributo ALT

Es muy importante el uso del atributo ALT en etiquetas como <IMG>, <INPUT>, entre otras. Ya

que este atributo le indica al motor de búsqueda de qué trata la imagen, además como lo dice

[43]:

“Atributo alt en etiquetas de imágenes, que es un texto alternativo a una imagen en caso de que

ésta no se visualice, ya sea por un problema en el servidor de la página web o porque se utilice un

navegador no gráfico”

* Links a páginas internas

Es mejor si los links hacen referencia a otra página del mismo sitio web en el que se encuentra.

De esta manera el sitio web comienza a tener más apariciones en el índice de Google y más links

de referencia que apuntan hacia sus páginas web, elevando el PageRank y generando más

credibilidad sobre su contenido.

Links a páginas externas

Si el link hace referencia a una página fuera del dominio donde se está, dicha página debe ser

fiable, no sitios de spam o porno.

Page 51: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 51

* Contenido relacionado

A medida que el sitio web se actualiza con nuevo contenido y temáticas populares y actuales, es

mejor indexado, debido a la importancia de las búsquedas que hacen los usuarios del motor de

búsqueda de Google, al tratarse de un tema popular en el momento.

Uso de Stemming para palabras clave

De ser posible, es una buena estrategia utilizar variantes a partir de la raíz de las palabras clave

y/o la temática. Ejemplo: posicionamiento - posicionar, posicionado, posiciones.

Factores negativos dentro de la página web:

* Excesiva optimización

El spam es un elemento muy negativo, y hacer uso de excesivas palabras clave en el body, meta

etiquetas y atributos alt, es considerado spam.

Robar imágenes o bloques de texto

Si google logra descubrir el robo de alguno de estos elementos, procede a borrar el sitio web (ya

listado) de su índice.

* Falta de densidad de palabras clave

Si se tienen muchas palabras clave que no estén relacionadas, hace que las palabras clave

reduzcan su importancia, es decir, no hay que pasarse poniendo muchas palabras clave.

Inconsistencia en el tema

No se debe cambiar mucho de tema en una misma página web. En lo posible manejar solo 1 tema

por página.

* Redirecciones con meta etiqueta refresh

Evitar usar la meta etiqueta refresh, ya que, al hacer redirecciones de esta manera, se está usando

una página web que en realidad no es necesaria y se está haciendo pasar por otra, a lo que se le

conocería como “cloaking”, siendo esta una muy mala práctica en el SEO.

Page 52: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 52

Después de la investigación sobre el sistema de puntaje y los criterios de evaluación de los

mismos, se determinó menester determinar un sistema de valores para cada uno de los criterios

nombrados anteriormente de SEO, esta cuantificación se llevó a cabo solamente con los criterios

a los que fueran viables analizarlos, ya que hay ciertos criterios de evaluación en el sistema de

puntaje que solamente se podrían analizar mediante procesos internos del motor de búsqueda de

Google.

Nos basamos completamente en la teoría de Wiegers [36]- [35] de ingeniería de requisitos, para

priorizar requisitos.

En la Tabla 3 (basada en la Ponderación relativa de Karl Wiegers [22]) se puede observar los

valores numéricos asignados (según su importancia) a 22 factores clave en el proceso de

indexación de una página web en el motor de búsqueda de Google. Estos 22 factores son los que

el sistema de recomendación analiza y puntúa para tener una referencia de la importancia de cada

factor, lo significativo que es en la página web y de esta manera, generar las recomendaciones

para mejorar ese puntaje cumpliendo con estos factores que ayudan en la indexación. Es de esta

forma, que al momento de realizar cambios (de ser necesario), se ve reflejado en la puntuación de

la página web analizada el correcto uso de los factores clave para la indexación según el peso que

tiene cada factor.

Por ejemplo, uno de los factores clave más importantes es el “Uso de palabras clave en la

etiqueta title”, este factor tiene una puntuación de 10, es decir que es muy significativo en el

proceso de indexación, al no hacer uso de este factor, la calificación de la página web será

significativamente más baja; es de esta manera como el uso de este sistema de puntuación cobra

sentido, ya que, al igual que el motor de búsqueda de Google, el sistema de recomendación le da

un peso a cada factor analizado y así mismo le asigna una puntuación total a la página web.

La Tabla 3 se compone de 8 columnas:

ID: Es el identificador que se le da a cada factor clave.

Nombre: Es el nombre de cada factor clave.

Descripción: Es una descripción breve, explicando en qué consiste el factor clave.

Beneficio: Es un número entre 1 y 10 que describe cuantitativamente el beneficio que

representaría usar ese factor, donde 1 es poco beneficio y 10 significa que la página web

obtendría un alto beneficio (refiriéndose al posicionamiento) haciendo uso de este factor.

Penalidad: Es un número entre 1 y 10 que describe cuantitativamente la penalidad que

representaría no hacer uso de ese factor clave, es decir, la penalidad mide qué tan grave

(en términos de posicionamiento) sería no hacer uso de ese factor, donde 1 es no tan

grave, y 10 muy grave.

Valor total: Es el valor resultante de la suma del beneficio y la penalidad, multiplicados

por 2 y 3 respectivamente. La razón por la cual el beneficio y la penalidad se multiplican

por valores distintos, es porque es más importante no tener una penalidad, ya que, en un

motor de búsqueda, por ejemplo, es mejor no tener muchas palabras clave, que tener

demasiadas y ser penalizado por ser considerado como spam. La fórmula utilizada para

calcular el valor total es la siguiente:

2b + 3p = vt

Page 53: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 53

Valor %: Es el valor relativo del valor total de cada factor con base en la suma de todos

los valores totales. La suma de los valores % debe ser igual a 100.

𝑣𝑡 ∗ 100

∑ 𝑣𝑡𝑖𝑛𝑖=1

= 𝑣%

Peso positivo: Es el valor que se le va a sumar al puntaje si cumple con el factor

correspondiente.

Peso negativo: Es el valor que se le va a restar al puntaje si no cumple con el factor

correspondiente.

1,5 2,1

ID Nombre Descripcion corta Beneficio Penalidad Valor Total

Valor %

Peso positivo

Peso negativo

FP5

Uso de palabras

clave en la etiqueta title

Hacer uso de palabras clave en la etiqueta <title> sobre el tema que se está

hablando. No utilizar muchas palabras clave, solo las más importantes

9 8 30,3 7 13,5 -16,8

G2

Uso de palabras

clave relacionadas

Las palabras clave de la página deben ser

relacionadas entre ellas y con el tema central de la

página. Es una de las maneras más importantes de hacer que el contenido sea bien indexado y sobre todo si las palabras clave hacen referencia a temas

populares hoy en dia.

9 8 30,3 7 13,5 -16,8

FN2

Poca densidad de

palabras clave

Usar pocas palabras clave, es lo ideal, ya que si se

usan demasiadas queriendo abarcar mucho,

la importancia de cada palabra clave baja. Es

mejor utilizar el Stemming, es decir, variantes de la

palabra clave raiz.

7 8 27,3 6,3 10,5 -16,8

M2 Meta

description

Breve descripción de la página web, haciendo uso de palabras clave. Maximo

200 caracteres

7 8 27,3 6,3 10,5 -16,8

Page 54: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 54

1,5 2,1

ID Nombre Descripcion corta Beneficio Penalidad Valor Total

Valor %

Peso positivo

Peso negativo

FN1 No tener excesiva

optimizacion

Evitar el uso excesivo de palabras clave en el body, etiquetas meta y atributos

alt. El uso excesivo de palabras clave, se puede

catalogar como spam

6 8 25,8 5,9 9 -16,8

M1 Meta charset

Etiqueta meta para definir la codificación de

caracteres y así evitar errores de caracteres

9 6 26,1 6 13,5 -12,6

FN4

Redirecciones con meta etiqueta refresh

Evitar usar la meta etiqueta refresh

5 8 24,3 5,6 7,5 -16,8

FP7 Utilización de atributo ALT

Es muy importante el uso del atributo ALT en

etiquetas como <IMG>, <INPUT>, entre otras.

8 6 24,6 5,7 12 -12,6

G4 Sin URLs

caidas

Las URL que redireccionan a páginas web con códigos de estado como: 301, 302,

404; no deben ser indexados.

9 5 24 5,5 13,5 -10,5

FP2 Uso de

etiquetas H

Es importante el uso de las etiquetas <H>, con

palabras clave, sobre todo en las etiquetas <H1>,

<H2> y <H3>

7 6 23,1 5,3 10,5 -12,6

FP6

No exceder el maximo de

caracteres en la etiqueta

title

La cantidad máxima (recomendada) de

caracteres en la etiqueta <title> son 70.

4 7 20,7 4,8 6 -14,7

M3 Meta

keywords

Definición de palabras clave, separadas por comas. Maximo 200

caracteres

8 4 20,4 4,7 12 -8,4

FP1 Densidad de

palabras clave

Segun la cantidad de palabras que hay en todo lo que comprende el cuerpo (<BODY>), es un factor

positivo si de ese total de palabras que hay, entre un

5% y 20% son palabras clave.

7 4 18,9 4,4 10,5 -8,4

G1 URLs de

referencia

Tener URLs de referencia a páginas dentro del mismo

sitio web 9 2 17,7 4,1 13,5 -4,2

FP9 Contenido

relacionado

Es un factor positivo tener el contenido de la página relacionado con el tema

7 3 16,8 3,9 10,5 -6,3

Page 55: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 55

1,5 2,1

ID Nombre Descripcion corta Beneficio Penalidad Valor Total

Valor %

Peso positivo

Peso negativo

principal, actualizado y hablando sobre temas

populares actuales.

G3 Duplicidad de

contenido

La duplicidad de contenido es penalizada por Google en los casos que existan varias URL que hagan referencia a la misma

página y que ambas se han indexado. La manera de

solucionarlo, es al momento de poner un link hacia la página original, utilizar el atributo rel="canonical"

7 3 16,8 3,9 10,5 -6,3

FP3

Uso de etiquetas para

tamaños y tipo de fuente

Implementación de etiquetas <strong> <bold>

<italic> 8 2 16,2 3,7 12 -4,2

M7 Meta cache-

control

Para páginas que se estén actualizando diariamente, se utiliza la etiqueta meta

de cache-control para indicar que no se guarde en

caché la página. Esto ralentiza la navegación

pero ayuda a la actualización correcta de la

página web

6 0 9 2,1 9 0

FP8 Palabras clave en

URLs

El uso de las palabras clave en las URL se prioriza

dependiendo del orden en el que aparezcan aquellas

palabras clave.

4 3 12,3 2,8 6 -6,3

FP4

Uso de palabras

clave en listas numeradas

Uso de palabras clave en listas

5 2 11,7 2,7 7,5 -4,2

M4 Meta author Etiqueta meta para definir

el nombre del diseñador de la página web

2 1 5,1 1,2 3 -2,1

M5 Meta

copyright

Etiqueta meta para definir el nombre del propietario del copyright de la página

web

2 1 5,1 1,2 3 -2,1

Tabla 3. Matriz de prioridades de los criterios de evaluación para el análisis del HTML

Page 56: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 56

Esta tabla permite definir en las columnas del peso negativo y positivo, cada factor qué tanto

resta al puntaje general de la página y qué tanto suma, y dependen tanto del beneficio de cada

factor y de la penalidad de cada factor, así, cada factor puede ser cumplido o no por la página y

este cumplimiento puede ser completo o parcial. Para explicarlo con un ejemplo, si un factor

tiene como peso positivo 1 y peso negativo -1, lo máximo que puede sumar va a ser 1 y lo

máximo que puede restar será 1 (-1), de esta manera hay factores que no tienen una penalidad, ya

que no hay problema si la página no lo cumple, entonces el peso negativo va a ser de cero.

Se decidió que al usuario se le va a mostrar un puntaje general de la página, acompañado de un

mensaje que contextualice de manera simple al usuario sobre qué tan bien o mal está su página.

También se va a mostrar al usuario un puntaje específico que será el desglosamiento de cada uno

de los factores qué tanto le suman o restan a la página analizada en el puntaje global.

4. Módulo de extracción de las recomendaciones

Aquí se generan recomendaciones con lenguaje natural a partir de los datos obtenidos en los

módulos de análisis. Estas recomendaciones se generan con base en los criterios definidos en el

sistema de puntaje. En cada uno de los módulos de análisis se obtienen unos datos que sirven

para generar las recomendaciones con base en un modelo que se definirá posteriormente en el

modelado de clases (ver sección 5).

Estos datos se mapean programáticamente y permiten generar las recomendaciones en lenguaje

natural que tienen la misma estructura de una frase, van a poseer un sustantivo, una acción, una

razón y un ejemplo (véase Fig 15). Esto para que el sistema pueda crear las recomendaciones

dinámicamente de manera óptima y el usuario pueda entender la recomendación fácilmente, si el

sistema se utiliza mediante servicio http, se obtendrá de manera cruda el objeto de

recomendación, así el usuario podrá manipularlo y utilizarlo según la necesidad.

5. Modelado Clase-Responsabilidad-Colaboración

Habiendo explicado los distintos módulos del proyecto, entramos en una fase de abstracción,

definiendo así las entidades que vamos a utilizar a lo largo del proyecto, a partir del ERS,

utilizamos la metodología de modelado de clases CRC13 (Clase-Responsabilidad-Colaboración).

Los resultados fueron los siguientes:

La clase Página Web (ver Fig 13) es la más importante de el sistema y donde va a ocurrir la

mayoría del procesamiento, esta es la encargada de organizar su HTML, dependiendo de cómo se

cree, si con una URL o con el archivo de HTML. Esta clase colabora con la clase Condición y

Recomendación, debido a que estas se generan al momento de analizarse.

13 Son una manera de modelar clases, estas se abstraen como clases cuando tienen responsabilidades, y a su vez las

clases tienen colaboraciones cuando dependen de otra entidad.

Page 57: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 57

Fig 13. Tarjeta CRC de clase Página Web

La clase Condición (ver Fig 14) indica lo que debe cumplir la página web para estar bien

indexada, estas condiciones se crean a partir de los módulos de análisis (contenido, intención y

formato HTML), esta colabora con la recomendación, ya que a partir de las condiciones es que

las recomendaciones se crean.

La clase recomendación (ver Fig 15) también es muy importante ya que esta es la que va a estar

en contacto con el usuario, las recomendaciones deben estar correctamente redactadas para que

los creadores de contenido puedan interpretarlas fácilmente.

A partir de los modelos de clases extraídos anteriormente, se diseñó el núcleo del proyecto, que

son los módulos tanto de análisis como los de interacción con el usuario. Son en total 5 módulos

los que se proponen, a continuación, se explicarán en brevedad, se mostrará un diagrama de

secuencia para conocer la interacción del usuario, el sistema y los distintos módulos, y finalmente

se explicarán más a fondo los distintos módulos.

Page 58: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 58

Fig 14. Tarjeta CRC de clase Condicion

Fig 15. Tarjeta CRC de clase Recomendación

Page 59: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 59

6. Arquitectura general

Se diseñó una arquitectura general para el sistema de cliente-servidor básica, en dónde todo el

procesamiento propio de la investigación, debido a la complejidad del mismo se hace en el

servidor, mediante los distintos módulos. En el cliente se busca mantener al mínimo la

complejidad de las interfaces y el procesamiento en ellas para brindarle al usuario una mejor

experiencia. En la siguiente imagen se puede ver la arquitectura general del sistema completa

(véase Fig 16).

Fig 16. Arquitectura general del sistema

7. Diagrama de secuencia del sistema

Para representar de manera clara el flujo del sistema desde el momento en el que el usuario

brinda los datos para el análisis de su página y cuando obtiene el puntaje y las recomendaciones

relacionadas al análisis, se planteó un diagrama de secuencia14 que involucra el actor15 principal

de este proyecto que en este caso sería el creador de contenido con pocos conocimientos de SEO,

con los distintos módulos del sistema planteados en las anteriores secciones de este capítulo (ver

Fig 17).

14 Son diagramas de UML que tienen como objetivo representar la interacción de los diferentes objetos o

componentes de un sistema, representado en una línea de tiempo. 15 En los diagramas de secuencia los actores son aquellos sujetos que ejecutan una acción en el sistema.

Page 60: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 60

Fig 17. Diagrama de secuencia del sistema

Page 61: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 61

VII. IMPLEMENTACIÓN

La fase de implementación se dividió en tres etapas: escoger las tecnologías y la especificación

de la arquitectura, implementar los módulos de análisis en su respectivo orden y los módulos de

respuesta al usuario (el sistema de puntaje y la extracción de recomendaciones). Para la primera

etapa, la escogencia de las tecnologías a utilizar y la especificación de la arquitectura se intentó

cumplir varios criterios importantes:

En el servidor:

-Tiempos de respuesta y procesamiento cortos.

-Flexibilidad de desarrollo.

-Optimización en entornos de servicios web.

-Tamaño de la comunidad.

-Documentación.

-Cantidad de módulos de terceros.

-Funcionamiento independiente.

En el cliente:

-Velocidad de la interfaz en navegadores.

-Tamaño de la comunidad.

-Documentación.

A. Especificación de la arquitectura y tecnologías

Se diseñó un patrón de arquitectura de software orientado a servicios y de dos capas, que contiene

la capa de presentación y la capa de lógica de negocios, esta capa se orienta a servicios ya que la

capa de la lógica que equivaldría al servidor que propaga servicios REST16. Por consiguiente, el

cliente del sistema se encarga de hacer peticiones a estos servicios REST.

Aunque la plataforma web en el cliente se integra perfectamente con los servicios para brindarle

la información de manera amigable a los usuarios, la API REST del sistema se puede acceder

mediante cualquier cliente de peticiones, esto permite a usuarios algo más experimentados

utilizar la API y así tener la posibilidad de desarrollar con base en el sistema de recomendaciones.

Cliente:

Al momento de escoger las tecnologías por parte del cliente de la aplicación web, y teniendo en

cuenta los criterios anteriormente establecidos para el cliente se definió como tecnología para el

desarrollo de las interfaces React [45], esta biblioteca es una de las más utilizadas a nivel global

para el desarrollo de interfaces, entre sus ventajas ante otras bibliotecas y marcos de referencia

están su simplicidad, su curva de aprendizaje, tiempos de desarrollo, su velocidad y

compatibilidad en los principales navegadores [46]. La simplicidad es una de las características

16 REST son las siglas en inglés de “REpresentational State Transfer” es un tipo de llamado entre cliente y servidor

que no tiene estado, es decir, el cliente siempre se tiene que autenticar ante el servidor ya sea por medio de un token

o un usuario y contraseña para poder utilizar el servicio web ya que no se guarda el estado de la llamada.

Page 62: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 62

del nodo de cliente, evidentemente el cliente no es lo más relevante del proyecto, pero debe

cumplir con las características esperadas.

Como sistema de diseño se escogió el Material Design [47] debido a su simplicidad, ya que el

sistema de recomendación tiene muchos factores y variables, y de esta manera el usuario puede

interactuar con una interfaz más amigable, minimalista y fácil de entender. Para facilitar el

desarrollo se escogió el marco de referencia para React [45], Material UI [48].

La Tabla 4 a continuación soporta lo anteriormente explicado:

Especificación del cliente

Tecnologías React [45]

Navegadores soportados Google Chrome, Mozilla Firefox, Safari

Sistema de diseño Material design [47]

Módulos de terceros Material UI [48]

Tabla 4. Especificación del cliente

Servidor

En este nodo se escogió una tecnología que cumpliera los criterios que se necesitaban, esta

tecnología es Node JS [49], en su versión LTS más reciente (8.12.0) a la fecha de esta

investigación, es un entorno de aplicación de JavaScript. Esta tecnología es una de las más

utilizadas en entornos web debido a su inmensa comunidad y gran cantidad de paquetes de

terceros, teniendo el registro más grande de software del mundo, como lo es Node Package

Manager (NPM) [50], que es el gestor de dependencias por defecto en Node JS.

En cuestión de arquitectura, soportamos el servidor temporalmente mediante servicios de

Amazon Web Services (AWS) [51], mediante el servicio de Elastic Cloud Computing (EC2), un

servicio en la nube que permite crear y administrar instancias de servidores flexiblemente y con

una capacidad de personalización muy alta.

Especificación del servidor

Tecnología principal Node JS (8.12.0)

Lenguajes de programación JavaScript

Hosting AWS EC2

Gestor de dependencias NPM (6.4.1)

Tabla 5. Especificación del servidor

Page 63: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 63

Nota: en el proceso de la implementación del sistema, nos topamos con un problema que no

previmos, el sistema dependiendo de las páginas y el número de URLs que contenían se podría

demorar mucho tiempo. Con la arquitectura inicial, mediante solicitudes http REST normales no

se permitía un procesamiento tan largo, ya que estas tecnologías no están pensadas de esta

manera, y tanto los servidores como los navegadores cortan la conexión después de un tiempo.

Debido a esto decidimos implementar mediante Socket.Io para NodeJS la tecnología de Sockets,

así al momento de hacer la solicitud si los datos de entrada están bien conformados, el servidor

devuelve inmediatamente un ID de un evento el cual la página mediante sockets debe escuchar, y

cuando el análisis termine, en ese evento de ese socket llegan los resultados del análisis.

En la Fig 18 se muestra la arquitectura específica con las respectivas tecnologías utilizadas hasta

esta etapa de la implementación.

Fig 18. Arquitectura específica

B. Implementación de los módulos de análisis.

En los módulos de análisis se realizan dos tareas, extraer el tema y la intención automáticamente

para así lograr el filtrado colaborativo correctamente. Para esto y para los módulos de análisis del

contenido y de análisis de la intención se decidió la utilización de IBM Watson [31]- [32]

mediante su servicio de entendimiento del lenguaje natural. Este servicio nos permite todo lo

esperado para este módulo, como IBM lo define en su página “Lleve su comprensión de los datos

Page 64: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 64

no estructurados a un nivel completamente nuevo con un conjunto completo de funciones

avanzadas de análisis de texto para extraer entidades, relaciones, palabras clave, roles semánticos

y más” [52].

1. Módulo del análisis del contenido y de la intención

Los requerimientos nos indican que para estos módulos se deben obtener a partir del contenido

del documento que sube el usuario, las palabras clave con su respectivo peso dentro de la página

y la categoría del texto, esto último se refiere a la temática principal, por ejemplo, “medicina

neurológica”, “programación orientada a objetos”. Para esto, como se menciona anteriormente, se

utiliza IBM Watson [31]- [32]. Además de la intención comunicativa mediante el mismo servicio.

Estos módulos se basan en los factores G2 y FP9 que se consignan posteriormente en el sistema

de puntaje (ver capítulo VI, sección B.3).

IBM Watson mediante su servicio de entendimiento del lenguaje natural nos permite obtener

datos sobre palabras clave y categorías relevantes sobre el texto, además de la intención

comunicativa del mismo, este puede ser utilizado enviando un texto o una URL de una página

web.

Análisis de la página del usuario. El sistema hace una solicitud mediante el SDK de NodeJS

para IBM Watson con los siguientes parámetros.

{

"url": "www.ibm.com",

"features": {

"categories": {},

"keywords": {

"sentiment": true,

"limit": 100

},

"sentiment": {}

}

}

Entre los parámetros están la url de la página del usuario, o si el usuario subió la página mediante

un archivo HTML entonces se pasa el parámetro text. Los demás parámetros son las

características que se busca que devuelva la respuesta del SDK, es decir qué datos se necesitan,

en este caso , el sistema solicita las categorías, las palabras clave y el sentimiento del texto que

en el proyecto le denominamos intención comunicativa.

A esta solicitud, IBM Watson responde con los datos necesarios para hacer el filtrado

colaborativo. La respuesta de IBM Watson es la siguiente.

Page 65: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 65

{

"usage": {

"text_units": 1,

"text_characters": 1188,

"features": 1

},

"sentiment": {

"document": {

"score": 0.127034,

"label": "positive"

}

},

"keywords": [

{

"text": "curated online courses",

"sentiment": {

"score": 0.792454

}

},

{

"text": "free virtual server",

"sentiment": {

"score": 0.664726

}

}

],

"categories": [

{

"score": 0.594296,

"label": "/technology and computing/software"

},

{

"score": 0.448495,

"label": "/science/mathematics/statistics"

}

],

"retrieved_url": "https://www.wsj.com/news/markets",

"language": "es"

}

Esta respuesta contiene las palabras clave más importantes del texto, y cada palabra clave

contiene su relevancia dentro del mismo. Además del sentimiento general del documento y una

etiqueta que puede ser positiva, negativa o neutral, esta etiqueta en el sistema se extiende hasta

muy positiva y muy negativa.

Preparación de las características de la página. En este punto solamente si el usuario no envió

los datos de la intención comunicativa y el tema principal al sistema, se deduce la intención

Page 66: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 66

mediante la respuesta anteriormente nombrada de IBM Watson con la intención general del

documento. Y el tema se deduce mediante la palabra clave con la relevancia más alta y la

categoría con el puntaje más alto, ya que esto ayuda a encontrar el tema principal de la página y

el área en el que se enmarca, así se logra una buena precisión en la deducción de la información

de la página.

Obtención de páginas de Google. Paralelamente se obtienen las 10 primeras páginas indexadas

en el motor de búsqueda de Google al buscar en este la temática principal de la página (ya sea la

provista por el usuario o la deducida por el sistema) mediante la API de búsqueda personalizada

[53] de Google. Esta API permite crear motores de búsqueda personalizados, con configuraciones

desde los lenguajes hasta el tipo de contenido a indexar, y a partir de aquí este motor de búsqueda

se puede utilizar tanto mediante un servicio REST como mediante una aplicación web que ofrece

Google. Un ejemplo de la solicitud que se le hace a la API de Google custom search sería.

https://www.googleapis.com/customsearch/v1?key=LLAVE_API&cx=ID_MOTOR&q=Medicin

a+Neurologica

En esta solicitud iría información de autenticación como sería la llave y el cx, además de el query

de búsqueda que como ya se mencionó anteriormente sería el tema principal de la página.

La respuesta a esta solicitud sería parecida a la siguiente.

{

"kind": "customsearch#search",

"url": {

"type": "application/json",

"template": "https://www.googleapis.com/customsearch/v1?q={searchTerms}"

},

"queries": {

(key): [

{

"title": string,

"totalResults": long,

"searchTerms": string,

"count": integer,

}

]

},

"promotions": [

{

"title": string,

"htmlTitle": string,

"link": string,

"displayLink": string,

"bodyLines": [

{

"title": string,

Page 67: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 67

"htmlTitle": string,

"url": string,

"link": string

}

],

"image": {

"source": string,

"width": integer,

"height": integer

}

}

],

"context": {

"title": string,

"facets": [

[

{

"label": string,

"anchor": string,

"label_with_op": string

}

]

]

},

"searchInformation": {

"searchTime": double,

"formattedSearchTime": string,

"totalResults": long,

"formattedTotalResults": string

},

"spelling": {

"correctedQuery": string,

"htmlCorrectedQuery": string

},

"items": [

{

"kind": "customsearch#result",

"title": string,

"htmlTitle": string,

"link": string,

"displayLink": string,

"snippet": string,

"htmlSnippet": string,

"cacheId": string,

"mime": string,

"fileFormat": string,

"formattedUrl": string,

"htmlFormattedUrl": string,

Page 68: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 68

"pagemap": {

(key): [

{

(key): (value)

}

]

},

"labels": [

{

"name": string,

"displayName": string,

"label_with_op": string

}

],

"image": {

"contextLink": string,

"height": integer,

"width": integer,

"byteSize": integer,

"thumbnailLink": string,

"thumbnailHeight": integer,

"thumbnailWidth": integer

}

}

]

}

Lo realmente relevante para el sistema en esta respuesta es la lista de elementos llamados ítems,

en esta lista se encuentran las 10 páginas web que necesita el sistema para efectuar el filtrado

colaborativo ya que en este servicio de Google el número de páginas recuperadas en una solicitud

es por defecto de 10. Para completar el filtrado colaborativo con la intención se filtran las

primeras páginas que cumplan el requisito de estar en el mismo rango de intención comunicativa

que la página subida por el usuario. Cada uno de estos elementos tiene un atributo link que es el

que se utilizará en la siguiente sección para analizar los resultados brindados por Google.

Análisis de páginas relacionadas. Cuando se obtienen estas páginas se analizan de igual manera

el contenido, obteniendo las palabras clave y su respectivo peso haciendo uso del servicio de

“Natural Language Understanding” ofrecido por IBM Watson explicado anteriormente, este se

puede hacer directamente mediante el link obtenido en la anterior sección.

Los datos de análisis recibidos de IBM Watson (ver ejemplos anteriores) de cada página se unen

y forman un banco de datos en general de la búsqueda relacionada.

Comparación de datos relacionados. Al obtener los datos tanto del contenido de las 10 páginas

mejores indexadas relacionadas con la página del usuario y los datos del contenido de la página

del usuario, estas se comparan, y se toman los temas o palabras clave que no se tienen utilizan en

la página, las cuales tengan un mínimo de relevancia; se decidió que la relevancia mínima deberá

Page 69: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 69

ser de 1.1 para que se tenga en cuenta (con base en los rangos que utiliza IBM Watson,

consignados en su documentación para la API).

Nota: A nivel lógico el módulo de análisis del contenido y el módulo de análisis de la intención

se desarrollaron como dos módulos hermanos que funcionan como una tubería17, debido a su

similitud en contenido analizado y criterios a analizar, en el módulo del análisis de la intención se

toman las palabras clave anteriormente analizadas y se extrae la intención, así como la del

documento en general.

2. Módulo del análisis del formato HTML

Para la ejecución de este modulo es necesario el archivo HTML de la página web a analizar; hay

dos posibles maneras de agregar la página HTML:

- Por medio de una URL a la página web

- Subiendo el archivo .html

En el caso de agregar la URL es necesario consultar la página web y obtener el cuerpo del

documento. En el caso de realizarse subiendo el archivo, no hay necesidad de hacer este paso. Ya

una vez con el HTML, se pueden obtener cada una de las etiquetas y sus atributos

correspondientes para su posterior análisis.

El análisis consta de realizar la verificación del cumplimento de los factores descritos en la Tabla

3. Matriz de prioridades de los criterios de evaluación para el análisis del HTML, es decir, cada

factor es analizado haciendo uso de las etiquetas HTML extraidas del documento de la página

web y también, el uso de las palabras clave extraidas en el módulo de analisis del contenido.

Estas palabras clave son de gran ayuda, ya que si no se tiene definido las palabras clave de la

página con un meta keywords, estas palabras identificadas se le sugieren para que las coloque en

el meta keywords y además se realice el análisis de los factores que necesitan las palabras clave.

Cada uno de los factores tiene sus recomendaciones y es calificado según el sistema de puntaje,

por ejemplo, si se analiza la página del usuario y tiene correctamente la etiqueta meta charset (la

cual define la codificación de caracteres de la página web), el sistema de puntale le suma 13.5

puntos (ver Tabla 3), de no tenerla, el sistema de puntuación le resta 12.6 puntos y además el

modulo de recomendaciones añade una recomendación más para indicarle al usuario que debe

tener en su página web una etiqueta meta charset especificando la codificación de caracteres. Este

módulo es uno de los más pesados, ya que, además de realizar el analisis de todos los factores, el

sistema debe validar que las URL de referencia que tiene la página web, funcionen

correctamente, y de no ser así sugerirle la posibilidad de que ese link no funcione bien, y para

esto en un principio se realizó la conexión entre el cliente y el servidor por medio de servicios

17 Las tuberías en software son distintos procesos encadenados en donde la salida de un proceso es la entrada del

proceso siguiente.

Page 70: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 70

REST, pero en vista de la demora en las respuestas, se decidió usar una conexión entre cliente y

servidor por medio de sockets18.

C. Implementación de los módulos de respuesta al usuario

En esta sección se explican los módulos finales del análisis de la página web. Estos módulos se

encargan de establecer el puntaje de cada uno de los factores analizados y las recomendaciones

para mejorar su indexación en el motor de búsqueda.

Tanto el sistema de puntaje como el módulo de extracción de recomendaciones se implementaron

dentro de cada uno de los módulos descritos anteriormente, ya que, aunque en el diseño se hayan

planteado por separado, lógicamente deben aplicarse a cada uno de los factores analizados.

1. Sistema de puntaje

Para el módulo del sistema de puntaje se tuvo en cuenta cada uno de los factores necesarios a

analizar, y haciendo uso de lo descrito en la Tabla 3. Matriz de prioridades de los criterios de

evaluación para el análisis del HTML, por cada factor se obtiene un valor positivo que le suma al

puntaje final de la página web si cumple con dicho factor, o en su defecto, un valor negativo que

le resta a ese puntaje final.

El modulo de puntaje siempre se encuentra presente al momento de obtener el análisis de cada

factor, ya que, basado en este puntaje, al no cumplirse o al tener un error en el factor, es necesario

realizar una recomendación para el usuario.

En la Fig 19 se puede observar un ejemplo del resultado general de una página HTML al realizar

todo el proceso de análisis y aplicar el módulo del sistema de puntaje

Fig 19 Resultado general del análisis una la página web

Así como se explicó anteriormente, el resultado general que entrega el sistema de puntaje, es

dado por la calificación individual de cada uno de los factores analizados, pero ¿Qué pasa si se

desea saber cuánto se sacó en cada factor? El usuario puede observar detalladamente cual fue la

calificación de su página web en cada factor por individual, tal como se muestra en la Fig 20.

18 Es un método de comunicación entre el cliente y servidor donde se establece una conexión entre ambos para

intercambiar información constantemente mediante peticiones o llamados a función en ambas direcciones.

Page 71: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 71

Fig 20 Puntuacion de cada factor en una página web

2. Módulo de extracción de recomendaciones

En este módulo es necesario tener todo el análisis realizado y los datos listos, el objetivo de este

módulo es abstraer la información recolectada y llevarla a lenguaje natural, es decir, a partir de

los datos que se obtienen, se crean las recomendaciones haciendo uso de un modelo de datos

definido (véase Fig 15).

La manera en como son presentadas las recomendaciones al usuario es tal como se muestra en la

Fig 21 donde cada recomendación es representada como una carta que cuando se despliega

muestra más información sobre la recomendación.

Cabe resaltar que cada recomendación tiene un color que es alusivo a la importancia que tiene

modificar ese factor en la página, a continuación, se explica qué significa cada color:

- Negro: Es extremadamente necesario realizar lo que indica la recomendación para poder

tener una básica indexación.

- Rojo: Si no se realiza lo que dice la recomendación, puede afectar significativamente a la

indexación de la página web.

- Amarillo: Es posible que, de no realizar esta recomendación, la página web se vea

afectada de manera moderada al momento de la indexación.

- Azul: Realizar lo que dice la recomendación, traerá beneficios, pero de no hacerlo, puede

existir la posibilidad de que la página web se vea afectada en menor medida.

Page 72: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 72

Fig 21 Recomendaciones de una página web

D. Desarrollo de interfaces

En la Fig 22 se puede observar a la parte principal del sistema de recomendación, es lo primero

con lo que el usuario se encuentra y desde aquí es donde puede preparar la página web para

realzar el análisis de la misma; a continuación, se explican cada una de las secciones:

- Tema: En esta sección es donde el usuario escribe el tema que está tratando en su página

web. Se puede dejar en blanco para que el sistema de recomendación realice la tarea de

identificar la temática.

- Intención: La intención es un selector donde hay cuatro tipos de opciones, Intención

positiva, neutra, negativa o automática. De esta manera el usuario le indica al sistema la

intención que tiene la página web que va a analizar; si la intención es automática, el

sistema de recomendación se encargará de encontrar la intención del texto que hay en la

página web.

- URL: Esta es una de las dos maneras de establecer la página web que se desea analizar,

simplemente se coloca el link de la página y el sistema ya se encargará de descargar su

documento HTML

- Sube tu html: Esta es la otra manera de establecer la página web que desea analizar, dando

click en el botón se abre el gestor de archivos y desde allí el usuario elige el documento

HTML que desea analizar.

- Modo avanzado: Con el modo avanzado se activa la posibilidad de observar las palabras

clave que ha identificado el sistema de recomendación con su reelevancia en la página

web repreentado con un numero

Page 73: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 73

Fig 22 Cabecera del sistema de recomendación

En la Fig 23 se muestra la interfaz del sistema de recomendación que se divide en dos partes,

primero se puede observar la sección del puntaje que es la que indica cual fue el puntaje general

de la página web, luego se encuenta la sección de recomendaciones donde cada recomendación es

una carta que se puede abrir. Si se le da click a “Ver detalles” en la sección del puntaje, se

muestra el puntaje que sacó en cada factor, tal como se puede ver en la Fig 24.

Debido a que el análisis de una página puede tomar unos minutos, se implementó las

notificaciones del navegador para avisarle al usuario cuando el análisis termina, véase Fig 25.

Fig 23 Analisis de una página web terminado

Page 74: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 74

Fig 24 Detalle del puntaje

Fig 25 Notificaciones del navegador

Page 75: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 75

VIII. RESULTADOS

La implementación del sistema explicada en el capítulo 7 se evaluó en dos aspectos

principalmente:

El rendimiento frente a distintas circunstancias del sistema se evaluó mediante una tabla

en donde se definieron los resultados de varias de las mejores páginas indexadas por

Google en diversos temas e intenciones.

Una evaluación de seguimiento a una página web sencilla y propia con el tema “La caída

de jQuery”.

A continuación, se explicarán los resultados de las dos evaluaciones anteriormente nombradas.

Evaluación de rendimiento general.

En la tabla se consignaron las 3 páginas mejor indexadas en google de 5 temas definidos al azar,

estos temas varían en su intención (positiva y negativa). Las búsquedas se hicieron en Google con

la frase de la columna tema y sin utilizar cookies ya que estas pueden cambiar la búsqueda de

manera leve. Además, cada ejecución del sistema se hizo con varios parámetros de entrada,

llegando a 6 combinaciones distintas por cada página evaluada (con el tema e intención

automáticos, con el tema automático e intención positiva, con el tema automático e intención

negativa, definiendo el tema y la intención automática, definiendo el tema y la intención positiva,

definiendo el tema y la intención negativa).

Este análisis se hizo en dos ocasiones en la etapa de implementación ya que se determinó como

un método útil para conocer el rendimiento general del sistema en distintos escenarios, así que a

estas dos tablas se les denominó, tablas del rendimiento del sistema, en su versión 1 y 2.

Mediante ellas se logró optimizar el sistema, descubrir varios errores de desarrollo y se logró

pulir el sistema de puntaje que es uno de los módulos principales de este proyecto. En este

capítulo no se explicará a fondo los beneficios que nos trajo evaluar el sistema de esta manera en

la etapa de desarrollo, por ende, nos enfocaremos en la versión 2 de esta tabla, es la siguiente.

Tema Intención del tema

Título de la página

Posición en

Google Tema Intención

Número de recomendaciones

Puntaje

Crítica al futbol Negativa Fútbol

profesional: una crítica necesaria

1

Automático

Automática 43 191.46

Negativa 50 183.06

Positiva 49 142,95

Definido

Automática 47 180.33

Negativa 46 178.23

Positiva

46 195.03

Page 76: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 76

Tema Intención del tema

Título de la página

Posición en

Google Tema Intención

Número de recomendaciones

Puntaje

Crítica al futbol 2

Automático

Automática 18 215.58

Negativa 18 226.08

Positiva 19 209.28

Definido

Automática 27 157.2

Negativa 26 207.06

Positiva 27 190.8

Fútbol... ¿negocio o deporte? -

Opinión

3

Automático

Automática 63 292.05

Negativa 63 302.55

Positiva 64 288.9

Definido

Automática 66 285.12

Negativa 66 295.62

Positiva 67 281.97

Comida mediterranea

Neutral

Gastronomía mediterránea - Wikipedia, la enciclopedia

libre

1

Automático

Automática 32 494.16

Negativa 33 487.86

Positiva 31 506.76

Definido

Automática 32 493.95

Negativa 30 494.79

Positiva 28 513.69

Neutral

Los 5 platos de comida

mediterránea más pedidos a

domicilio en Barcelona - El

Blog de Just Eat

2

Automático

Automática 14 111.33

Negativa 10 116.37

Positiva 9 133.38

Definido

Automática 13 113.64

Negativa 9 118.68

Positiva 9 131.28

Neutral

7 platos de comida

Mediterránea | Mesa 24/7

3

Automático

Automática 33 114.87

Negativa 34 106.47

Positiva 33 127.47

Definido

Automática 30 121.8

Negativa 29 122.22

Positiva 28 128.52

Vacunas para Neutral Vacunas para 1 Automático Automática 25 306.6

Page 77: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 77

Tema Intención del tema

Título de la página

Posición en

Google Tema Intención

Número de recomendaciones

Puntaje

gatos gatos: cuáles y cuándo ponerlas

- Tiendanimal

Negativa 24 315.21

Positiva 25 303.66

Definido

Automática 29 292.74

Negativa 31 303.24

Positiva 32 291.69

Neutral

VACUNAS PARA GATOS Y

GATITOS. Cuales son

obligatorias y cuando ponerlas

2

Automático

Automática 16 439.11

Negativa 15 449.82

Positiva 16 423.57

Definido

Automática 24 420.63

Negativa 24 432.13

Positiva 17 417.48

Neutral

Vacunas gatos: calendario

vacunación, cada cúanto

vacunarlo y de qué

3

Automático

Automática 23 171.12

Negativa 23 169.02

Positiva 24 172.17

Definido

Automática 35 143.40

Negativa 23 173.22

Positiva 36 142.35

Contaminación del mar

Negativa

La contaminación

del mar. Basuras marinas y

plásticos en el océano

1

Automático

Automática 36 222.6

Negativa 36 233.10

Positiva 37 219.45

Definido

Automática 48 194.88

Negativa 41 221.55

Positiva 42 207.9

Negativa

La contaminación

marina | National Geographic

2

Automático

Automática 17 67.05

Negativa 17 77.55

Positiva 18 63.9

Definido

Automática 9 85.53

Negativa 9 96.03

Positiva 10 82.38

Negativa Contaminación

de mares: Cuando el mar

3 Automático Automática 48 50.97

Negativa 41 77.64

Page 78: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 78

Tema Intención del tema

Título de la página

Posición en

Google Tema Intención

Número de recomendaciones

Puntaje

se contamina Positiva 42 63.99

Definido

Automática 25 104.1

Negativa 25 114.6

Positiva 26 100.95

Energías renovables

Positiva

Energía renovable -

Wikipedia, la enciclopedia

libre

1

Automático

Automática 66 600.17

Negativa 66 606.47

Positiva 66 555.17

Definido

Automática 65 593.08

Negativa 66 592.88

Positiva 65 599.98

Positiva

¿Qué son las energías

renovables? - Twenergy

2

Automático

Automática 65 223.25

Negativa 66 220.10

Positiva 65 233.75

Definido

Automática 62 230.18

Negativa 63 227.03

Positiva 62 240.68

Positiva

La importancia de las energías

renovables | ACCIONA

3

Automático

Automática 10 90.63

Negativa 10 101.13

Positiva 10 101.13

Definido

Automática 15 79.08

Negativa 13 94.2

Positiva 13 94.2

Tabla 6 Pruebas del sistema

De la anterior tabla se logró analizar y agrupar los siguientes datos:

- No hay una relación precisa entre el puntaje de la página en el sistema diseñado y el

número de recomendaciones entregadas por el mismo, aunque tiende a ser inversamente

proporcional, en ciertas ocasiones puede ser directamente proporcional. Esto debido a que

hay ciertos factores que suman o restan al puntaje dependiendo del número de ocurrencias

de los mismos, así puede llegar a haber una página con más factores negativos que

positivos (es decir, con más recomendaciones) pero donde uno de los factores negativos

ocurre muchas veces.

Page 79: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 79

- De los 5 temas buscados en el motor de búsqueda de Google y analizados con el sistema,

3 mostraron una tendencia a disminuir el puntaje a medida que la posición en el motor de

búsqueda aumentaba, esto muestra un balance positivo en donde en la mayoría de casos se

encuentra el comportamiento esperado. Sin embargo, esta relación en ningún caso es

mucho mayor, siendo aproximadamente en el 60% de las veces, esto se debe a que hay

factores que por fuera del propio motor de búsqueda son imposibles de analizar, tales

como la frecuencia de actualización de la página, el tráfico estimado o el Page Rank.

- El análisis por el sistema tiende a ser más preciso si el usuario indica el tema, ya que

generalmente si se define el tema correcto, cuando la intención también es la correcta para

la página a analizar, los puntajes suben si la página está bien indexada en Google, esto

debido a que, si el tema se define, es más preciso el filtrado colaborativo que ejerce el

sistema, al momento de escoger el contenido relacionado en Google.

- Cuando se escoge la intención correcta en relación al tema escogido y a la intención

comunicativa de la página a analizar, la precisión del análisis aumenta, esto se ve, ya que

en los casos en los que la intención se definió de manera correcta dependiendo de la

página, esta obtuvo un análisis mayor que con elecciones de intención equivocada.

- En la tabla se evidencia claramente la ventaja que tienen páginas de sitios web como lo es

Wikipedia en el posicionamiento orgánico en motores de búsqueda, ya que en los

resultados del segundo análisis del rendimiento del sistema hubo dos páginas de

Wikipedia, estas obtuvieron los puntajes más altos de todos los análisis, con puntajes

alrededor de 600 una página y de 490 la otra. Esto se debe a que Wikipedia es la líder

mundial en optimización en motores de búsqueda por sus URL de referencia a su propia

página web, factor que el sistema beneficia enormemente.

Evaluación de seguimiento a página La caída de jQuery

Para esta evaluación se hizo un seguimiento a una página web creada por nosotros mismos, una

página web muy sencilla, sin estilos ni scripts, solamente se desarrolló un archivo HTML para

seguir y mostrar distintas fases de la página, analizándola con el sistema de recomendación,

siguiendo las recomendaciones y analizando su evolución con respecto a las recomendaciones, su

puntaje general y sus puntajes específicos.

Se propuso un tema que puede llegar a ser contemporáneo como es la caída de jQuery. En una

primera instancia la página se desarrolló con muy poco contenido, la primera fase del documento

HTML de la página fue el siguiente (ver Fig 26).

Page 80: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 80

Fig 26. Página "La caida de jQuery", en su primera etapa.

Page 81: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 81

Esta página fue analizada en el sistema, se obtuvieron los resultados. A continuación, en la Fig 27

se pueden ver las recomendaciones y el puntaje general y en la Fig 28 se puede ver el puntaje

específico.

Fig 27. Recomendaciones de la página "La caida de jQuery" en su primera etapa.

Fig 28. Puntaje específico de la página "La caida de jQuery" en su primera etapa.

Page 82: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 82

Se siguieron las recomendaciones brindadas por el sistema, y se obtuvo el documento HTML de

la Fig 29.

Fig 29. Página "La caida de jQuery", en su segunda etapa.

Para esta segunda etapa de la página de nuevo se envió al sistema de recomendación, las

recomendaciones y puntaje general se ven en la Fig 30, y el puntaje específico se puede observar

en la Fig 31.

Page 83: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 83

Fig 30. Recomendaciones de la página "La caida de jQuery" en su segunda etapa.

Fig 31. Puntaje específico de la página "La caida de jQuery" en su segunda etapa.

Page 84: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 84

De nuevo se tuvieron en cuenta las recomendaciones dadas y se cambió la página, el resultado

fue el siguiente.

Fig 32. Página "La caida de jQuery", en su tercera etapa.

Después de esto la página se analizó por tercera vez, las recomendaciones y puntaje general se

ven en la Fig 33 y el puntaje específico se puede ver en la Fig 34.

Page 85: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 85

Fig 33. Recomendaciones de la página "La caida de jQuery" en su tercera etapa.

Fig 34. Puntaje específico de la página "La caida de jQuery" en su tercera etapa.

Page 86: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 86

En las tres etapas de la página “La caída de jQuery” se vio el progreso de la página en cuanto a

puntaje y en cuando a números de recomendaciones encontradas. Los resultados de las tres etapas

se simplificaron en la Tabla 7.

Al igual que se determina en las conclusiones y los resultados de la sección anterior, cuando una

página es más grande y tiene más material para el análisis, esta obtiene mayor número de

recomendaciones del sistema, aunque este número no tenga ninguna relación con la puntuación.

Etapa Puntuación Numero de recomendaciones

1 -116.73 13

2 100.08 5

3 167.10 0

Tabla 7. Resumen resultados del análisis de las tres etapas de la página "La caida de jQuery".

A través de las tres etapas de la página se evidenció el progreso en cuando al análisis de la página

en el sistema, tanto las recomendaciones disminuyeron como el puntaje aumentó. Se puede

analizar que hay factores que dependen de otros factores que los contienen, por ejemplo, en “La

caída de jQuery” en la primer etapa la página no tenía la etiqueta meta keywords y en este primer

análisis se siguieron todas las recomendaciones dadas por el sistema, sin embargo, en el segundo

análisis aparecieron 5 recomendaciones más, esto se da porque la no existencia de meta

keywords, invalidaba y penalizaba el resto de factores que dependían de este, haciendo que el

puntaje se resintiera mucho y que en la segunda etapa hubieran 5 recomendaciones.

Debido a que es una página corta, sin mucho contenido, el sistema no arrojó un gran número de

recomendaciones, y en el tercer análisis no arrojó ninguna.

Page 87: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 87

IX. CONCLUSIONES

El sistema de recomendación diseñado e implementado en este proyecto de investigación se

evaluó desde el contexto de la optimización en motores de búsqueda, su utilidad final y desde la

Ingeniería Multimedia, el rendimiento del sistema, la usabilidad, y la percepción general de los

usuarios a los que va dirigido el proyecto.

Existen diversos motores de búsqueda y cada uno tiene su propia manera de indexar los sitios

web que encuentra por medio de algoritmos araña, aunque su funcionamiento es realmente

parecido, en lo que marca la diferencia es en los factores que tienen en cuenta dichos buscadores

al momento de analizar una página web.

La identificación y selección de los factores que el motor de búsqueda de google analiza al

momento de hacer la indexación de una página web fue clave para lograr comprender cómo

funciona en realidad este proceso por el que pasa una página web desde que es encontrada por el

motor de búsqueda, hasta que es clasificada en los resultados de una búsqueda. Sin embargo, se

puede concluir que aún sabiendo cuales son todos los factores que toma en cuenta el motor de

búsqueda, existen algunos que no son posibles de analizar debido a que utilizan datos que son

calculados directamente dentro del mismo motor de búsqueda, factores como el Page Rank que se

calcula dependiendo de la cantidad de páginas que se referencian a una página X, cosa que no es

posible saberla analizando simplemente dicha página X.

El sistema de recomendación haciendo uso de 24 factores que tiene en cuenta el motor de

búsqueda de google en la indexación, representa una positiva mejora al momento de ser indexada

la página web, ya que:

- Se manejan factores básicos y primordiales para que el motor de búsqueda pueda

identificar bien el contenido y la estructura de la página web

- Cada recomendación explica detalladamente en lenguaje natural cómo se puede mejorar

el sitio web en determinado factor.

- Un usuario sin mucha experiencia en SEO puede hacer uso del sistema de recomendación

gracias a la facilidad en como este muestra las recomendaciones, de tal manera que puede

ser entendida por personas inexpertas.

- Dependiendo del factor a analizar, es distinta la recomendación, e incluso en algunos

factores hay tres recomendaciones distintas dependiendo de lo que necesite el usuario en

dicho punto.

- El análisis de la página web se realiza en conjunto con una comparación entre los

primeros diez sitios mejor indexados en Google que tratan la misma temática del usuario

que desea analizar su página. De esta manera se sabe de qué están hablando y qué están

utilizando en su contenido estos sitios para tener una muy buena indexación.

Page 88: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 88

Después de realizar pruebas con páginas web que están bien indexadas en el motor de búsqueda

de google, se puede concluir con el sistema que, una página web puede tener muchas falencias en

algunos factores, pero si cumple con los más importantes y es muy bueno en ellos (como por

ejemplo teniendo un buen PageRank), eso compensa y hace que esta página esté bien indexada.

Debido a los algoritmos araña que utilizan los motores de búsqueda (para encontrar páginas web

para indexar) podemos ser agregados de manera correcta al índice del motor de búsqueda, sin

embargo, esto no se ve reflejado instantáneamente al subir la página a la web, ya que Google no

visita todas las páginas web con la misma frecuencia; las páginas a las que Google le da más

importancia son las que se visitan con más frecuencia porque es mas probable que encuentre

contenido actualizado en ellas. Esto se da debido al procesamiento tan pesado que deben hacer

los algoritmos del motor de búsqueda para analizar todos los factores, y esto lo vimos reflejado

también al momento de realizar el análisis con el sistema de recomendación; factores como el de

saber si una URL responde bien o el análisis del contenido con técnicas de aprendizaje de

máquina, son procesos que toman su tiempo en completarse y hay que hacer todo eso para cada

página web que se desee analizar.

Page 89: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 89

X. RECOMENDACIONES

Esta investigación tiene un gran margen de expansión, y en futuros proyectos podría llevarse a

cabo, para ello, a los futuros investigadores, les brindamos una serie de recomendaciones:

Diseñar e implementar un sistema que soporte no solo una página web estática, si no toda

una aplicación web.

Los sistemas que ayuden a mejorar la indexación en motores de búsqueda deben apostar

por la inteligencia artificial y la minería de datos ya que brindan soluciones que

evolucionan a la par de motores de búsqueda como el de Google, el cual está

constantemente cambiando y ajustando sus criterios.

Diseñar un sistema de puntaje auto-ajustable que se transforme de acuerdo a los cambios

de Google en su motor de búsqueda, actualmente el sistema está diseñado con pesos a sus

criterios, estos pesos podrían cambiar mediante la inteligencia artificial.

Diseñar soluciones que soporten los diferentes lenguajes más utilizados en el mundo.

Page 90: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 90

GLOSARIO

SEO:

Es un conjunto de técnicas que intentan facilitar la indexación de los buscadores de una página

web para conseguir un puesto lo más arriba posible en los resultados obtenidos ante una pregunta

o sentencia de búsqueda.

Motores de Búsqueda:

Los buscadores o motores de búsqueda son sistemas de recuperación de información que indexan

los documentos de la Web sin seguir una estructura jerárquica como hacen los directorios.

Indexación:

Es el proceso que hace un sistema de recuperación de información, donde crea un índice que

contiene los términos que el sistema considera importantes (después de un preprocesado de cada

documento) y su ubicación en los documentos.

Metodologías ágiles:

Las metodologías ágiles dan mayor valor al individuo, a la colaboración con el cliente y al

desarrollo incremental del software con iteraciones muy cortas. Este enfoque está mostrando su

efectividad en proyectos con requisitos muy cambiantes y cuando se exige reducir drásticamente

los tiempos de desarrollo pero manteniendo una alta calidad. Las metodologías ágiles están

revolucionando la manera de producir software, y a la vez generando un amplio debate entre sus

seguidores y quienes por escepticismo o convencimiento no las ven como alternativa para las

metodologías tradicionales

REST:

REST son las siglas en inglés de “REpresentational State Transfer” es un tipo de llamado entre

cliente y servidor que no tiene estado, es decir, el cliente siempre se tiene que autenticar ante el

servidor ya sea por medio de un token o un usuario y contraseña para poder utilizar el servicio

web ya que no se guarda el estado de la llamada. La ventaja de no tener estado, es que no hay

necesidad de guardar en memoria del servidor el estado de una llamada, generando así una mayor

escalabilidad al no estar ocupando un espacio de memoria en el servidor por cada cliente que se

conecte a el.

Page 91: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 91

Inteligencia Artificial:

Uno de los pilares de la IA es el análisis de cómo los seres humanos resuelven o buscan

soluciones a cada uno de los innumerables problemas con los que se encuentran continuamente.

Cuando se conoce cuál es la mejor sucesión de acciones necesarias para resolver un problema, se

dice que se dispone de un “algoritmo” o procedimiento determinista de resolución. Este es el tipo

de situaciones que abordan los programas informáticos tradicionales. Por contra, los sistemas

desarrollados con técnicas de inteligencia artificial, deben enfrentarse con problemas para los que

no se conoce “a priori” la secuencia exacta de acciones que deben realizarse para encontrar su

solución.

Machine Learning:

El machine learning o aprendizaje automático es un campo que se deriva de la inteligencia

artificial. Básicamente, consiste en desarrollar procesos que permitan a las máquinas aprender por

sí solas a partir de un conjunto de datos que un instructor va introduciendo trabajosamente

primero y corrigiendo manualmente después. En este proceso, el ordenador extrae conocimiento

a través de experiencia supervisada.

Navegador:

Los navegadores o Web Browsers son programas dedicados a la búsqueda de páginas web, de

esta manera un usuario puede encontrar la página web que busca y tener acceso a ella. Además

también permite el acceso a otro tipo de contenido que esté en lenguajes HTML o XML.

HTML:

HTML son las siglas en inglés de Hypertext Markup Language, que traduce “Lenguaje de

Marcado de Hipertexto”, es un estándar para la creación de páginas web que utiliza etiquetas para

definir la estructura del texto que contiene una página web. Los navegadores no muestran las

etiquetas HTML, solo las usan para identificar el contenido que hay dentro de ellas y cómo se

muestran.

CSS:

CSS son las siglas en inglés de Cascading Style Sheets, que traduce “Hojas de Estilo en

Cascada”, y como su nombre lo dice, son documentos que describen los estilos de una página

web, con las hojas de estilo se le especifica al navegador cómo debe mostrarse en la pantalla un

elemento HTML. Una hoja de estilo puede servir para distintas páginas web.

Page 92: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 92

JavaScript:

Es un lenguaje de programación con el que se pueden hacer actividades complejas en una página

web, haciendo uso de eventos, es uno de los tres estándares de tecnologías para la web (los otros

dos son HTML y CSS). Con JavaScript se pueden controlar elementos multimedia como videos,

imágenes, audios, etcétera; además se encarga también de la interacción del usuario al usar una

página web, actualización de contenido, botones, animaciones, entre otros.

ECMAScript:

ECMA significa en inglés “European Computer Manufacturer’s Association” y es el estándar que

utilizan los lenguajes de script como JavaScript, ActionScript, JScript, etcétera. Es decir que, por

ejemplo, ECMAScript es el núcleo de JavaScript y es por eso que no se ven versiones de

JavaScript, si no, versiones de ECMAScript.

React:

React es una biblioteca para el desarrollo de aplicaciones web del lado del cliente (Frontend)

basada en JavaScript y creada por Facebook. La razón de ser de esta biblioteca, es debido a la

ralentización de las aplicaciones web al momento de conectar los datos con las vistas usando el

llamado “binding” y “double binding”, y es así como React propuso una manera distinta de

conectar las vistas con los datos, generando una mayor optimización de tiempo de render.

Responsive:

El diseño web responsivo es el enfoque que se le da al diseño y desarrollo de una página o

aplicación web para que se pueda ver correctamente desde cualquier dispositivo según la

resolución de pantalla que este tenga. Consiste en el uso de cuadrículas, imágenes y media

queries con CSS para que cada elemento de la vista, se acomode correctamente a la pantalla con

el tamaño deseado. De esta manera el texto, las imágenes y el contenido en general acomoda sus

tamaños y distribución automáticamente para una mejor visualización de la vista en distintas

resoluciones y tamaños de pantallas.

NodeJS:

Según como se explica en la página oficial, Node.Js es:

“Concebido como un entorno de ejecución de JavaScript orientado a eventos asíncronos,

Node está diseñado para construir aplicaciones en red escalables.”

Es decir, es una plataforma del lado del servidor con un alto desempeño en el manejo de grandes

cantidades de datos, aplicaciones en tiempo real y aplicaciones de red escalables.

Page 93: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 93

Framework:

Un framework es, en términos generales, un conjunto de reglas, estructuras y código que ayuda a

desarrollar una aplicación de manera más rápida y sencilla. El framework se tiene que aprender a

utilizar, ya que es el código propio quien se tiene que adaptar a la forma en el que el framework

trabaja, con sus reglas, para tener un efectivo uso de las ventajas que ofrece el framework.

Biblioteca (Library):

Una biblioteca (o en inglés library), es una serie de módulos y funciones almacenados en forma

de objetos, que se crean por programadores para que otros lo usen y así se pueda ahorrar tiempo y

líneas de código al momento de desarrollar una aplicación, haciendo tareas que la biblioteca ya

hace dentro de sus módulos.

GIT:

GIT es un sistema de control de versionamiento, el cual se está volviendo un estándar para el

control de versiones de un software. GIT se encarga de administrar las versiones en las que se

encuentra un código, esto quiere decir que el desarrollador, tiene una copia del código que está en

un repositorio centralizado, y es así como el desarrollador puede trabajar remotamente y entre

varios integrantes, cada uno con una copia. Al momento de querer generar una nueva versión del

software (es decir, cuando se agrega una característica o se soluciona un problema), haciendo uso

de GIT el desarrollador podrá subir los cambios que realizó y sincronizar todo con el código que

está en el repositorio a una nueva versión.

Visual Studio Code:

Es un editor de código fuente liviano, pero poderoso. Integra una consola, el control de versiones

de GIT, depuración y un gran número de extensiones que añaden funcionalidades de gran utilidad

para el desarrollador (por ejemplo, un selector de color). Está disponible para los sistemas

operativos Windows, Linux y macOS como aplicación de escritorio.

Open Source:

Open source (en español, código abierto), es un término que se refiere comúnmente a un código

que cualquier persona puede modificar, mejorar y compartir, ya que es un código públicamente

accesible. Inicialmente Open Source solamente hacía referencia a proyectos de programas

informáticos. Actualmente se ha convertido en un tema que abarca más cosas, con el fin de estar

orientado a un desarrollo en comunidad, con participación colaborativo e intercambio abierto de

funcionalidades.

Page 94: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 94

API:

API es el acrónimo de Application Programming Interface (en español, interfaz de programación

de aplicaciones). Se entiende como un intermediario que ayuda a comunicar dos aplicaciones

entre sí. El API se encarga de llevar de una aplicación a otra la petición que requiere dicha

aplicación y de esta manera procesar los datos y dar una respuesta a la aplicación que pidió la

información.

Macrodatos (Big Data):

Macrodatos es un término utilizado para referirse a una gran cantidad de datos organizados o

desorganizados. Lo que realmente importa en los macrodatos no es la cantidad de datos que hay,

sino qué se puede hacer con los datos que son importantes para el negocio al que pertenecen

dichos datos y cómo se van a utilizar dichos datos para sacar provecho de ellos.

Page 95: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 95

REFERENCIAS

[1] J. Fernández, V. Gil-Costa, V. Ludueña, N. Reyes, P. Roggero y E. Chávez, «Indexación y

Recuperación de Información Multimedia».

[2] C. Sáes, 2012. [En línea]. Available: http://www.lavanguardia.com/estilos-de-

vida/20120719/54326650737/donde-estan-mis-datos.html.

[3] C. Du y L. Huang, «Text classification research with attention-based recurrent neural

networks,» International J. of computers communications & control, Febrero 2018.

[4] L. Medsker y L. Jain, «Recurrent neural networks design and applications,» 2001.

[5] G. A. Betancourt, «Las máquinas de soporte vectorial (SVMs),» Scientia et Technica Año

XI, vol. 27, Abril 2005.

[6] R. Salakhutdinov y G. Hinton, «Replicated Softmax: an Undirected Topic Model».

[7] [En línea]. Available: http://tcci.ccf.org.cn/conference/2014/.

[8] [En línea]. Available: https://www.reuters.com/.

[9] X. Huang, F. Peng, D. Schuurmans y N. Cercone, «Applying Machine Learning to Text

Segmentation for Information Retrieval,» 2003.

[10] F. Dellaert, «The Expectation Maximization Algorithm,» College of Computing, Febrero

2002.

[11] Y. Doval, C. Gómez-Rodríguez y J. Vilares, «Segmentación de palabras en español

mediante modelos del lenguaje basados en redes neuronales,» Procesamiento del Lenguaje

Natural, vol. 57, 2016.

[12] D. J. Matich, «Redes Neuronales: Conceptos Básicos y Aplicaciones,» Marzo 2001.

[13] H. Zarzour, F. Maazouzi, M. Soltani y C. Chemam, «An Improved Collaborative Filtering

Recommendation Algorithm for Big Data,» University of Souk Ahras.

[14] C. Insights, «The Value of Google Result Positioning,» 7 June 2013.

[15] D. P. Valcarce, «De Internet 0 a Web 3.0: un reto epistemológico para la comunidad

universitaria,» Universidad Complutense de Madrid, 2008.

[16] N. Y. y. U. Köse, What is search engine optimization: SEO?, vol. 9, Procedia Social and

Behavioral Sciences, 2010.

[17] P. Swati, P. B. y P. Ajay, «Search Engine Optimization: A Study,» Research Journal of

Computer and Information Technology Sciences, vol. 1, Febrero 2013.

[18] A. R. Terrance, S. Shrivastava, A. Kumari y L. Sivanandam, «Competitive Analysis of

Retail Websites through Search Engine Marketing,» 2018.

[19] J. Á. O. Varela, «Búsqueda eficaz de información en la web,» Universidad Nacional de La

Plata, 2011.

[20] C. Ridings, «Everything you’ve always wanted to know about PageRank,» 2001.

[21] [En línea]. Available: https://msdn.microsoft.com/es-es/library/hh765981(v=vs.120).aspx .

[22] K. E. Wiegers, «First Things First: Prioritizing Requirements,» Software Development

magazine, Septiembre 1999.

[23] [En línea]. Available: https://www.w3.org/TR/html52/.

Page 96: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 96

[24] D. S. Naveiras, «Técnicas de indexación y recuperación de documentos utilizando

referencias geográficas y textuales,» Septiembre 2009.

[25] M. Cutts. [En línea]. Available:

https://www.youtube.com/watch?time_continue=103&v=BNHR6IQJGZs.

[26] [En línea]. Available:

http://www.nintendolife.com/news/2018/04/sega_ages_is_officially_coming_to_nintendo_

switch_in_the_west.

[27] [En línea]. Available: https://scholar.google.es/.

[28] J. D. D. Sampedro, «Estudio y aplicación de técnicas de aprendizaje automático orientadas

al ámbito médico: estimación y explicación de predicciones individuales,» Junio 2012.

[29] [En línea]. Available: https://www.youtube.com/watch?v=qv6UVOQ0F44.

[30] G. E. Hinton, «Boltzmann machine,» Scholarpedia, 2007.

[31] [En línea]. Available: https://www.ibm.com/watson/.

[32] IBM, [En línea]. Available: https://www.techrepublic.com/article/ibm-watson-the-inside-

story-of-how-the-jeopardy-winning-supercomputer-was-born-and-what-it-wants-to-do-

next/.

[33] C. Todd, R. V. Pena y R. Srinivas, Evaluation of Artificial Intelligence Frameworks, SMU

Scholar, 2018.

[34] R. High, «The Era of Cognitive Systems: An Inside Look at IBM Watson and How it

Works,» 2012.

[35] K. Weigers y J. Beatty, «Software Requirements,» Microsoft Press, vol. 3, 2013.

[36] S. Cueva y M. Sucunuta, «Ingeniería de Requisitos,» 2014.

[37] K. Pohl, «Requirements Engineering,» Springer-Verlag Berlin Heidelberg, 2010.

[38] J. L. HERLOCKER, «Evaluating Collaborative Filtering Recommender Systems,» Oregon

State University; University of Minnesota.

[39] R. Martínez, «Cómo mejorar la indexación de una web en Google,» Human Level, 16

Octubre 2017.

[40] [En línea]. Available: https://www.1and1.es/digitalguide/paginas-web/desarrollo-web/los-

meta-tags-mas-importantes-y-su-funcion/.

[41] D. G. Macho, «La calidad de una página web como herramienta de comunicación,»

Universidad Europea de Madrid, 23 Enero 2013.

[42] I. A. Larreina, «Posicionamiento en buscadores: una metodología práctica de optimización

de sitios web,» El profesional de la información, Vols. %1 de %2v. 14-2, Marzo 2005.

[43] L. Codina y M. C. Marcos, «Posicionamiento web: conceptos y herramientas,» vol. 14,

Marzo 2005.

[44] A. Diaz, «¿Qué es la etiqueta TITLE?,» metricspot, 15 Marzo 2013.

[45] Facebook, [En línea]. Available: https://reactjs.org/.

[46] A. Kumar y R. K. Singh, «COMPARATIVE ANALYSIS OF ANGULARJS AND

REACTJS,» International Journal of Latest Trends in Engineering and Technology, vol. 7.

[47] Google, [En línea]. Available: https://material.io/.

[48] [En línea]. Available: https://material-ui.com/.

Page 97: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 97

[49] [En línea]. Available: https://nodejs.org/es/.

[50] [En línea]. Available: https://www.npmjs.com/.

[51] [En línea]. Available: https://aws.amazon.com/es/.

[52] IBM, [En línea]. Available: https://www.ibm.com/watson/services/natural-language-

understanding/.

[53] [En línea]. Available: https://developers.google.com/custom-search/.

[54] P. Beynon-Davies1, C. Carne1, H. Mackay2 y D. Tudhope1, «Rapid application

development (RAD): An empirical review,» European Journal of Information Systems,

1999.

[55] J. M. G. Zea, «Implementando scrum + rad para la gestión y desarrollo de proyectos de

software en equipos de trabajo con personal limitado y eventual,» Programación

Matemática y Software, 2016.

Page 98: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 98

ANEXOS

Anexo 1. Documento: Especificación de requisitos de software (ERS)

Sistema de recomendación para mejorar la indexación

de sitios web en el motor de búsqueda de Google.

Especificación Requerimientos del Sistema

Preparado por: Juan Camilo Duque Delgado

Christian David Hoyos Palma

Presentado a: Universidad San Buenaventura Cali

Versión 1.0

Fecha 29-08-2018

Historia de Revisión Fecha de revisión Versión Autor Descripción

Revisión del documento Fecha de revisión Versión Revisor Información de

contacto

Aprobación del documento Fecha de revisión Versión Aprobado por Descripción

Page 99: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 99

Tabla de contenidos Introducción 101

Propósito 101

Alcance 101

Contexto del sistema 101

Sujetos 102

Usos 102

Sistemas 103

Desarrollo 103

Stakeholders primarios 104

Acrónimos y abreviaciones 104

Procesos de cambio 105

Referencias 106

Restricciones y asunciones 107

Proceso de desarrollo y restricciones de equipo de trabajo 107

Restricciones tecnológicas y del entorno 107

Restricciones de software 107

Restricciones mínimas de hardware 107

Restricciones de entrega y despliegue 108

Entrega: 108

Despliegue: 108

Mitigación de riesgos 108

Riesgos tecnológicos 108

Riesgos de recursos y habilidades 108

Recursos: 108

Habilidades: 108

Riesgos de requerimientos 108

Riesgos políticos 109

Requisitos funcionales 109

Tabla de requisitos (priorizada) 116

Criterios de calificación 117

Actores 118

Casos de uso 118

Escenarios de caso de uso ¡Error! Marcador no definido.

Diagrama de caso de uso 118

Tarjetas de casos de uso 118

Page 100: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 100

Glosario 126

SEO: 126

Motores de Búsqueda: 126

Indexación: 127

Metodologías ágiles: 127

eXtreme Programming (XP): 127

Inteligencia Artificial: 127

Machine Learning: 127

Page 101: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 101

Introducción

En el presente documento de Especificación Requerimientos del Sistema (ERS), se definirán y

especificarán los requerimientos implicados en el desarrollo del proyecto de grado de Ingeniería

Multimedia para la Universidad San Buenaventura Cali: “Sistema de recomendación para

mejorar la indexación de sitios web en el motor de búsqueda de Google”, que consiste en un

sistema de recomendación híbrido para que los desarrolladores puedan mejorar la indexación de

sus páginas web en el motor de búsqueda de Google mediante la comparación de las actuales

páginas mejores indexadas en el índice de Google con la página a la que se le desea mejorar la

indexación.

Propósito

El propósito de este proyecto busca que los creadores de páginas web con pocos conocimientos

técnicos en materia de Search Engine Optimization (SEO) puedan obtener recomendaciones de

las actividades a ejecutar y cómo ejecutarlas sobre el contenido y las etiquetas presentes en la

página web analizada, para mejorar su indexación en el motor de búsqueda de Google. Así

mismo ofrecer un análisis del contexto, características, y atributos críticos; de este modo se busca

alcanzar los requisitos para un óptimo rendimiento del proyecto.

Cabe resaltar que este documento no especifica de manera detallada quién o quiénes serán

responsables de cada una de las actividades a realizarse.

Alcance

El proyecto tiene como objetivo desarrollar un sistema de recomendación el cual le permitirá a

los diferentes usuarios que desean mejorar la indexación de su página web, cumplir con los

criterios en los cuales se basa Google para posicionar una página web al momento de hacer una

búsqueda.

El alcance que tendrá el proyecto es el desarrollo de los siguientes módulos los cuales cumplen

los objetivos del proyecto:

- Sistema para el análisis de páginas web.

- Análisis del sentido de la página (sentido positivo, neutro o negativo).

- Análisis del formato HTML de la página que cumpla con los estándares para la

indexación del motor de búsqueda de Google.

- Análisis mediante filtrado colaborativo de los temas concernientes a la página.

Contexto del sistema

La plataforma web será visualizada a través de navegadores web de última generación como

Google Chrome en su última versión estable 67.0.3396.99 publicada el 25 de Junio del 2018,

Mozilla Firefox en su última versión estable 61.0.2 publicada el 8 de agosto de 2018 y Safari en

su última versión estable 11.0 publicada el 19 de Septiembre 2017 (no soportará Internet

Explorer). La plataforma web está alojada en una instancia EC2 (por sus siglas en inglés de

Elastic Cloud Computing) de Amazon Web Services (AWS). Los usuarios podrán acceder

mediante sus computadores para hacer uso de la plataforma siempre y cuando sus navegadores

sean compatibles con las versiones mencionadas anteriormente. La plataforma usará la base de

datos MySQL en el servicio RDS (por sus siglas en inglés de Relational Database Service). El

Page 102: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 102

sistema estará apoyado por stakeholders implicados en el ámbito del desarrollo web y la

inteligencia artificial.

La plataforma usa servicios de aprendizaje de máquina (ML por sus siglas en inglés de Machine

Learning) proporcionados por IBM con su sistema informático de inteligencia artificial llamado

Watson.

La plataforma es de libre acceso, así que cada usuario común puede subir su página web para ser

analizada y de esta manera obtener las recomendaciones.

Sujetos

Fuentes de requisitos:

● Asesor de la tesis.

● Desarrolladores web

Objetos del contexto: ● Motor de búsqueda de Google

● IBM Watson

Propiedades y relaciones

● Watson indica la intención comunicativa de una página de tres posibles maneras,

positivo, neutro o negativo.

● El sistema de recomendación usa el clasificador del lenguaje natural de Watson,

para analizar el contenido de la página.

● El motor de búsqueda de google, con el uso de su api, obtiene las diez mejores

páginas indexadas según el tema que se le de.

● El sistema de recomendación usa al motor de búsqueda de google y Watson para

identificar patrones en el contenido que ayuden a mejorar la indexación.

● El motor de búsqueda de google, le provee las urls de las páginas a Watson para

que directamente él pueda analizarlas.

Usos

Fuentes de requisitos

● Personas:

○ Desarrollador web

● Documentación

○ Guia de la normativa Material Design

Objetos del contexto

● Interfaz de selección de la página web a procesar.

● Pantalla de verificación de lo que se desea analizar.

● Formulario web.

● Pantalla de resultados.

Propiedades y relaciones

● El diseño de las interfaces debe estar basado en las tendencias de Material Design

para la web

● En la interfaz de selección de la página, existe la posibilidad de subir una página

html, o colocar la URL de una página web que se desee analizar.

● En la pantalla de verificación se hace la validación sobre el tema que quiere tratar

en la página.

Page 103: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 103

● El formulario se usa en la pantalla de verificación para dar detalles adicionales

sobre la página a analizar como el tema del que trata.

● En la pantalla de resultados es donde se muestra organizada la información,

después de pasar por todo el sistema de recomendación.

Sistemas

Fuentes de requisitos:

● Equipo de desarrollo del sistema:

○ Christian David Hoyos Palma

○ Juan Camilo Duque Delgado

● Asesor Andrés Felipe Barco Santa

● Documentación:

○ Documentación del api de IBM Watson

○ Documentación de AWS

Objetos del contextos

● Api IBM

● EC2 AWS

● RDS AWS

● Google APIs

Propiedades y relaciones

● El sistema de recomendación corre sobre el EC2 con node js

● El API de google se llama por medio del protocolo HTTP desde node js haciendo

uso del método GET.

● Mediante CURL en JS se utiliza el API de IBM Watson

● La instancia del RDS y EC2 están dentro de una misma VPC para una mejor y

óptima comunicación entre las instancias.

Desarrollo

Fuentes de requisitos:

● Personas:

○ Christian David Hoyos Palma

○ Juan Camilo Duque Delgado

● Documentación:

○ Metodologías de desarrollo XP

○ Manual Node JS

○ Manual Javascript

○ Guia de Google Custom Search

○ Guia de AWS

○ Documentación de IBM Watson

Objetos del contexto: ● HTML

● CSS

● ReactJS

Page 104: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 104

● Javascript

● Node JS

● Google Custom Search

● AWS

● IBM Watson

Stakeholders primarios

A continuación, se muestra una lista detallada de los Stakeholders.

Área Stakeholders Primarios Stakeholders de

referencia

Inteligencia Artificial y

Minería de Datos

Andrés Felipe Barco, PhD

Desarrollo web Pablo Anibal Bejarano De La Hoz,

Magister

Acrónimos y abreviaciones

A continuación, se presenta una lista detallada de los diferentes acrónimos y abreviaciones usadas

en el proyecto.

Acrónimo/ Abreviación Término expandido

ML Machine learning (aprendizaje de máquina)

AI Inteligencia artificial

HTML HyperText Markup Language (Lenguaje de marcas de hipertexto)

JS JavaScript (Lenguaje de programación)

PDF Portable Document Format (Formato de documento

portable)

URL Localizador Uniforme de Recursos (Link de un recurso)

API Application Programming Interface (conjunto de reglas que

siguen las aplicaciones para comunicarse entre ellas)

Page 105: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 105

XP Metodología de desarrollo (eXtreme Programming). Es el

más destacado de los procesos ágiles de desarrollo de

software.

AWS Amazon Web Services (es una colección de servicios que en

conjunto forman una plataforma de computación en la nube)

EC2 Elastic Cloud Computing (permite a los usuarios alquilar computadores virtuales en AWS en los cuales poder ejecutar

sus propias aplicaciones)

RDS Relational Database Service

VPC Virtual Private Cloud (una sección aislada de forma lógica

de la nube de AWS donde se puede lanzar recursos de AWS

en una red virtual que se defina)

IBM International Business Machines Corporation

IBM Watson Sistema informático de inteligencia artificial proporcionado por IBM que es capaz de responder a preguntas formuladas en lenguaje natural mediante ML

Material Design Normativa de diseño, enfocado y basado en los objetos materiales, para el desarrollo de interfaces móviles, web, y prácticamente de cualquier plataforma.

Procesos de cambio

Todo cambio que sea solicitado para la plataforma, será llevado a cabo a partir de la

diligenciación del formato Figura 1 de cambios adjunto y se seguirá el siguiente proceso.

● Primero se procede a llenar el formato por parte del interesado/autor de la petición y

enviarlo digitalmente al correo electrónico [email protected]

● Posteriormente será revisado por una persona designada que calificará o descartará la

solicitud de cambio, enviando una respuesta y justificación vía correo electrónico al autor

de la petición.

● En caso de ser clasificado, lo revisará el encargado del equipo de desarrollo del sistema de

recomendación, quién lo re-asignará, en base a la primer clasificación, la prioridad,

dificultad y riesgo de dicho cambio que finalmente será incorporado al backlog (grupo de

tareas pendiente) de issues del proyecto y será desarrollado en el tiempo que sea asignado

en clasificación o según prioridad.

● Cuando el desarrollo sea finalizado y desplegado correctamente en producción se

notificará vía correo electrónico al autor de la petición con su respectiva

retroalimentación.

Page 106: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 106

Fecha Fecha de la petición de cambio

Fuentes ● Persona que ha identificado la necesidad del cambio

Autores ● Persona que formaliza la petición de cambio

Descripción El cambio solicitado consiste en: “descripción del problema”

Impacto directo Los elementos directamente afectados por el cambio son:

- Elementos afectados directamente organizados por

categorías

Justificación El cambio solicitado se considera necesario por: “ descripción que

justifica el cambio”.

Alternativas Otras posibles alternativas para abordar la situación descrita son:

- Descripción de alternativa

Consecuencias de

rechazo

En caso de rechazar el cambio, las posibles consecuencias son:

- descripción de las consecuencias de rechazar el cambio

Plazo de resolución Fecha en la que se espera a la resolución de la petición de cambio

Comentarios Comentarios adicionales sobre la petición de cambio

Figura 1. Formato de solicitud de cambios

Referencias

[1] Documentación de AWS: https://aws.amazon.com/es/documentation/

[2] Google Custom Search API: https://developers.google.com/custom-search/docs/xml_results

[3] ReactJS documentation: https://reactjs.org/docs/getting-started.html

[4] Metodología Ágil de Desarrollo de Software – XP:

http://www.runayupay.org/publicaciones/2244_555_COD_18_290814203015.pdf

[5] Amazon VPC: https://aws.amazon.com/es/vpc/

[6] Amazon EC2: https://aws.amazon.com/es/ec2/

[7] Comunicación EC2 con RDS de AWS:

https://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/USER_VPC.Scenarios.html

[8] Material Design: https://material.io/

[9] IBM Watson: https://www.ibm.com/watson/

[10] Natural Language Classifier (IBM Watson): https://www.ibm.com/watson/services/natural-

language-classifier/

[11] Iñigo Arbildi Larreina, “Posicionamiento en buscadores: una metodología práctica de

optimización de sitios web”, marzo, 2005.

[12] José Angel Olivas Varela, ”Búsqueda eficaz de información en la Web”, Universidad

Nacional de La Plata, 2011.

[13] Patricio Letelier y Mª Carmen Penadés, ”Métodologías ágiles para el desarrollo de software:

eXtreme Programming (XP) “,Universidad Politécnica de Valencia

Page 107: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 107

[14] Raul Pino Diez; Alberto Gómez Gómez; Nicolás de Abajo Martinez, “Introducción a la

inteligencia artificial”, Universidad de Oviedo.

[15] Olivia L. Bueno, “Inteligencia artificial ¿Quñe es y para qué puede servir el ‘machine

learning’?“, El País Retina, 19 de Octubre 2017

Restricciones y asunciones

Proceso de desarrollo y restricciones de equipo de trabajo

● El equipo de trabajo estará compuesto por dos desarrolladores web full stack.

● El equipo contará con un asesor de desarrollo

● El editor de código fuente para el desarrollo será Visual Studio Code.

● El sistema de recomendación hará uso de ReactJS como biblioteca de JavaScript para el

frontend y Node JS en el Backend

● El sistema de recomendación junto con su aplicación web, estará en una instancia EC2 de

AWS y tendrá su conexión con una base de datos relacional en una instancia de RDS de

AWS dentro del mismo VPC

Restricciones tecnológicas y del entorno

Restricciones de software

● El sistema de recomendación será desarrollada bajo HTML5, CSS y JS para su estructura

front-end

● El sistema hará uso de ReactJS como biblioteca para el frontend.

● El back-end del sistema estará desarrollado con Node JS 8.11.4, con su versión de soporte

a largo plazo.

● La plataforma será soportada bajo navegador como Google Chrome en su última versión

estable 67.0.3396.99 publicada el 25 de Junio del 2018, Mozilla Firefox en su última

versión estable 61.0.2 publicada el 8 de agosto de 2018 y Safari en su última versión

estable 11.0 publicada el 19 de Septiembre 2017 (no soportará Internet Explorer)

● Se utiliza la api de IBM Watson en su versión gratuita para el análisis de los datos

● Google Custom Search API será necesario para el uso del sistema de recomendación.

● AWS será la plataforma donde se almacenarán la colección de servicios necesarios para la

implementación del sistema de recomendación.

Restricciones mínimas de hardware

● Una conexión a internet (Necesaria para ingresar al sistema de recomendación)

● Procesador a 233 Mhz (Linux y Windows)

● 64 MB de RAM (Linux y Windows, 128 MB de RAM para MAC)

● 50 MB de espacio libre en disco (Linux y Windows, 70 MB de espacio libre en disco para

MAC)

● Microsoft Windows 98 o superior (Windows)

● Kernel Linux 2.2.14 (con glibc 2.3.2, XFree86-3.3.6, gtk+2.0, fontconfig/xft y

libstdc++5) (Linux)

● Procesador X86 de Intel (MAC)

Page 108: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 108

Restricciones de entrega y despliegue

Entrega:

- El sistema de recomendación deberá estar listo para el día Octubre 12 del 2018

Despliegue:

- El despliegue del sistema se hará en los servidores de AWS.

- El sistema será de libre acceso para cualquier usuario que desee usarlo

- Las pruebas se realizarán una vez esté listo el sistema, es decir, en Octubre 13 del

2018

Mitigación de riesgos

Riesgos tecnológicos

● Las bibliotecas sobre las que está construido el sistema, podrían dejar de actualizarse o

perder soporte, para esto se implementarán bibliotecas recientes y bajo desarrollo y/o

supervisión de grandes compañías como Google o IBM.

● Para evitar problemas de soporte o vulnerabilidad de las tecnologías implementadas se

desarrollará front-end y back-end bajo la colección de servicios ofrecida por AWS.

● Se hará uso de backups para el respaldo de la información almacenada en la base de datos.

● El uso exhaustivo del API de IBM Watson podría llegar al límite permitido por IBM en la

versión gratuita, y en este caso sería necesario pagar para poder seguir utilizando el

servicio.

● Google puede dejar de dar soporte a su Google Custom Search API. De ser así, habría que

crear un algoritmo que pueda ir al buscador de Google, escribir en la barra de búsqueda y

traer los resultados.

Riesgos de recursos y habilidades

Recursos:

● Dado el uso de tecnologías de desarrollo e implementación reciente, podría estar sujeto a

grandes cambios, que se aplicarán en el desarrollo con la constante preparación y

documentación del equipo.

Habilidades:

● En caso de identificar problemas externos al desarrollo, es decir, por parte de las librerías,

framework o utilidades que presenten una incapacidad o limitaciones se recurrirá al

soporte que presten los desarrolladores directos en dicha plataforma.

Riesgos de requerimientos

● Debido al manejo de una metodología XP, es posible que con los requerimientos durante

el desarrollo, se llegue a un conflicto entre ellos, para esto se revisan prioridades en estos

Page 109: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 109

requerimientos, para encontrar la manera más rápida y lógica de solucionar un conflicto

de estos.

● Es posible que con los requerimientos, al momento de hacer el desarrollo se pueda perder

el enfoque principal del proyecto, es por esto que semanalmente se realiza una reunión

con el asesor, para evaluar y verificar que se estén cumpliendo con los objetivos

propuestos para el desarrollo.

Riesgos políticos

● El uso de sistemas orientados a la inteligencia artificial, podría empezar a ser regulado, y

de esta manera generar restricciones para el uso de estas tecnologías. Al ser un sistema

alojado en AWS y no en un servidor Colombiano, es probable que no adquiera estas

restricciones, sin embargo, de no ser así, es necesario sacar licencias de uso para la

plataforma que cumplan con los acuerdos para el uso de estas tecnologías que se puedan

dar.

● El Estado y en general todos los agentes del sector de Tecnologías de la Información y

Comunicaciones deberán colaborar, dentro del marco de sus obligaciones, para priorizar

el acceso y uso de las Tecnologías de la Información y las Comunicaciones en la

producción de bienes y servicios, en condiciones no discriminatorias en la conectividad,

la educación, los contenidos y la competitividad.

● El estado velará por la adecuada protección de los derechos de los usuarios de las

tecnologías de la información y de las comunicaciones, así como por el cumplimiento de

los derechos y deberes derivados del Hábeas Data, asociados a la presentación del

servicio. Para tal efecto, los proveedores y/u operadores directos deberán prestar sus

servicios a precios de mercado y utilidad razonable, en los niveles de calidad establecidos

en los títulos habilitantes o, en su defecto, dentro de los rangos que certifiquen las

entidades competentes e idóneas en la materia y con la información clara, transparente,

necesaria, veraz y anterior, simultánea y de todas maneras oportuna para que los usuarios

tomen sus decisiones.

● El estado garantizará la libre adopción de tecnologías, teniendo en cuenta

recomendaciones, conceptos y normativas de los organismos internacionales competentes

e idóneos en la materia, que permitan fomentar la eficiente prestación de servicios,

contenidos y aplicaciones que usen tecnologías de la información y las comunicaciones y

garantizar la libre y leal competencia, y que su adopción sea armónica con el desarrollo

ambiental sostenible.

Requisitos funcionales

ID RF1

Nombre Selección de página web a analizar

Descripción El sistema debe permitir al usuario seleccionar la página web que

desea analizar, ya sea pasando la URL donde se encuentra la página

web o subiendo el documento HTML de la misma.

Notas ● La selección de la página web se hará en la interfaz principal

Page 110: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 110

● Solo se puede seleccionar una página web para analizar

● Solamente se puede elegir una de las dos maneras de

seleccionar la página web

○ Mediante una URL que se ingresa dentro de un

campo de texto

○ Subiendo un documento HTML haciendo uso de un

selector de archivos

Nivel de Prioridad

Alta

Versión 1.0

ID RF2

Nombre Detallado opcional del documento HTML

Descripción El usuario después de seleccionar la página web que desea analizar,

está en la posibilidad de dar detalles adicionales sobre el contenido

de su documento HTML para una mejor respuesta del sistema de

recomendación

Notas ● Los detalles adicionales que puede dar son:

○ Tema del que trata la página web (solamente un

tema)

○ Elegir la intención del contenido de la página web

(positivo, neutro o negativo), es decir, si se va a

hablar de ladrones de un banco, podría ponerse una

intención negativa, pero si se habla de disfraces de

ladrones, la intención puede ser positiva o neutra,

dependiendo del usuario

● Si no desea dar estos detalles, puede elegir continuar con el

análisis sin dar más detalles

Nivel de Prioridad

Alta

Versión 1.0

ID RF3

Nombre Identificación de la temática

Descripción Si el usuario en el detallado opcional, no especificó el tema del que

Page 111: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 111

trata la página web que desea analizar, el sistema debe pasarle el

contenido de la página web a Watson para que él mediante su

clasificador de lenguaje natural, pueda identificar el tema del que

trata el documento seleccionado.

Notas ● Watson dará como resultado una serie de temas sobre los

que puede tratar el contenido de la página web, cada uno

con su porcentaje de afinidad, sin embargo, se escogerá el

que tenga el porcentaje más alto.

Nivel de Prioridad

Alta

Versión 1.0

ID RF4

Nombre Identificación de la intención del contenido

Descripción Si el usuario en el detallado opcional, no especificó la intención con

la que está escrito el contenido de la página web que desea analizar,

el sistema debe pasarle el contenido de la página web a Watson para

que él mediante su clasificador de lenguaje natural, pueda

identificar la intención del documento seleccionado.

Notas ● Watson entrega tres posibles resultados con respecto a la

intención del texto

○ Positivo

○ Negativo

○ Neutro

Nivel de Prioridad

Alta

Versión 1.0

ID RF5

Nombre Consulta de las páginas web mejor indexadas

Descripción El sistema, haciendo uso de Google Custom Search API, realiza una

búsqueda del tema tratado por el usuario en la página que desea

analizar, con el motor de búsqueda de Google y obtiene los

Page 112: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 112

documentos HTML con sus respectivas URLs de las diez primeras

páginas web indexadas.

Notas ● El sistema almacena temporalmente cada página resultante

con su respectiva URL

Nivel de Prioridad

Alta

Versión 1.0

ID RF6

Nombre Análisis del contenido de la página web del usuario

Descripción Para el análisis de la página web del usuario, el sistema enviará el

documento HTML que el usuario dió a IBM Watson para que se

puedan identificar, elementos del contenido (es decir, de lo que está

hablando en el texto) que sirvan para compararlo con las diez

páginas web mejor indexadas sobre el tema que trata la página web

del usuario.

Notas ● Los elementos del contenido a identificar son:

○ Categorías del tema que trata.

○ Conceptos

○ Palabras clave

Nivel de Prioridad

Alta

Versión 1.0

ID RF7

Nombre Análisis del formato HTML de la página web del usuario

Descripción El sistema debe extraer los elementos HTML de la página del

usuario de tal manera que se pueda comprobar que están

correctamente colocados, con sus atributos y referencias

funcionando.

Notas ● Los elementos del formato a identificar son:

○ URLs de referencia (en lo posible que redirija a

Page 113: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 113

enlaces del mismo sitio)

○ Títulos

○ Meta descripciones

○ Encabezados

○ Imágenes

Nivel de Prioridad

Alta

Versión 1.0

ID RF8

Nombre Análisis del contenido de las páginas web de referencia

Descripción Al igual que el análisis del contenido de la página web del usuario,

para las páginas web resultantes de la consulta con el Google

Custom Search API, el sistema enviará el documento HTML de

cada una de las páginas de la búsqueda a IBM Watson para que se

puedan identificar, elementos del contenido (es decir, de lo que está

hablando en el texto) que sirvan para compararlo con la página web

del usuario.

Notas ● Los elementos del contenido a identificar son:

○ Categorías del tema que trata.

○ Conceptos

○ Palabras clave

Nivel de Prioridad

Alta

Versión 1.0

ID RF9

Nombre Análisis del formato HTML de las páginas web de referencia

Descripción Al igual que el análisis del formato HTML de la página web del

usuario, para las páginas web resultantes de la consulta con el

Google Custom Search API, el sistema debe extraer los elementos

HTML de cada una de las páginas de la búsqueda para identificar

las secciones de las páginas y el contenido que tienen.

Page 114: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 114

Notas ● Los elementos del formato a identificar son:

○ URLs de referencia (en lo posible que redirija a

enlaces del mismo sitio)

○ Títulos

○ Meta descripciones

○ Encabezados

○ Imágenes

Nivel de Prioridad

Alta

Versión 1.0

ID RF10

Nombre Comparación del análisis de las páginas web

Descripción Una vez analizado el contenido y el formato HTML de la página del

usuario y de cada una de las páginas de referencia resultantes de la

búsqueda con Google; el sistema compara uno a uno los elementos

de las páginas de referencia, para identificar patrones que puedan

ser relevantes y si el usuario no lo tiene en su página web,

recomendarlos.

Notas ● Primero se compara el contenido y el formato HTML entre

las páginas de referencia para identificar patrones.

● Una vez identificado los patrones, estos se comparan con la

página web del usuario, y si este no tiene implementado este

contenido o formato HTML, se le recomienda

Nivel de Prioridad

Alta

Versión 1.0

ID RF11

Nombre Puntuación de cada elemento HTML

Descripción Para cada elemento HTML analizado en la página web del usuario y

también en los patrones identificados de las páginas de referencia,

se le dará una puntuación dependiendo si cumple o no con lo

definido en el sistema de puntaje.

Page 115: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 115

Notas ● Los elementos a los que se le da puntaje, son los mismos

que se analizan, como las URLs, meta descripciones,

Imágenes, etcétera.

● Para la página del usuario, se le da un puntaje total sumando

el de todos los elementos, para saber qué tantos puntos

aumentaría aplicando las recomendaciones dadas por el

sistema.

● Por ejemplo, si a una URL se le tiene determinado que son 2

puntos por cada una, si esta URL redirecciona a una página

web que está caída, en vez de sumar esos 2 puntos, se le

restan.

Nivel de Prioridad

Alta

Versión 1.0

ID RF12

Nombre Presentación de recomendaciones y resultados del análisis

Descripción El sistema de recomendación una vez realizado el análisis

completo, incluyendo el de las páginas web de referencia y la del

usuario, muestra en una interfaz los resultados obtenidos divididos

en dos categorías: Contenido y formato HTML.

Notas ● Para la categoría de contenido, muestra algunas palabras

clave y conceptos de los que actualmente las diez primeras

páginas web mejor indexadas están hablando y al ser algo

actual, es probable que los algoritmos de google las hayan

puesto con una buena puntuación en su índice por hablar

con estas palabras clave y conceptos.

● Para la categoría del formato HTML, se muestran los

elementos identificados que tiene el usuario en su página

web con su respectivo análisis y puntuación, así como

también los elementos identificados en los patrones de la

búsqueda de Google, y de esta manera el usuario observe los

elementos que desee agregar y cómo incrementarían su

puntuación.

Nivel de Prioridad

Alta

Versión 1.0

Page 116: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 116

Tabla de requisitos (priorizada)

Criterio

de pesos

2 1 1 0,5

Requisito Beneficio

Relativo Penalidad

Relativa Valor

Total Valor

% Costo

Relativo Costo

% Riesgo

Relativo Riesgo

% Prioridad

RF1 5 5 15 9,7 1 2,9 1 2,5 1,8

RF4 3 3 9 5,8 1 2,9 1 2,5 1,1

RF5 5 5 15 9,7 3 8,8 1 2,5 0,9

RF7 5 5 15 9,7 3 8,8 1 2,5 0,9

RF10 5 5 15 9,7 3 8,8 1 2,5 0,9

RF2 3 1 7 4,5 1 2,9 1 2,5 0,8

RF11 3 1 7 4,5 1 2,9 1 2,5 0,8

RF8 5 5 15 9,7 5 14,7 1 2,5 0,6

RF12 5 5 15 9,7 5 14,7 1 2,5 0,6

RF6 5 3 13 8,4 3 8,8 3 7,5 0,5

RF3 5 3 13 8,4 3 8,8 5 12,5 0,4

RF9 5 5 15 9,7 5 14,7 3 7,5 0,4

Page 117: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 117

Criterios de calificación

Beneficio Relativo

1 Los usuarios encontrarían esta característica poco útil

3 A los usuarios les es indiferente esta característica.

5 Los usuarios encontrarían esta característica muy útil.

Penalidad Relativo

1 Los usuarios no se molestarían si esta característica no estuviese presente.

3 Algunos usuarios se molestarían si esta característica no estuviese presente.

5 Los usuarios se molestarían mucho si esta característica no estuviese presente.

Costo relativo

1 Sería rápido, fácil y de bajo costo de tiempo implementar esta característica.

3 Sería moderadamente fácil y costoso en tiempo implementar esta característica.

5 Sería difícil y costoso en tiempo implementar esta característica.

Riesgo Relativo

1 Esta característica se podría implementar tal y como se solicitó sin casi ningún riesgo.

3 Existen preocupaciones menores de que esta característica se pueda implementar de manera

Page 118: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 118

viable según lo solicitado dentro del cronograma del proyecto.

5 Existen una gran preocupación de que esta característica se pueda implementar de manera viable según lo solicitado dentro del cronograma del proyecto.

Actores

Usuario general

Al ser una plataforma de libre acceso, solo existe un rol de usuario, y este es el “usuario general”

quien tiene la capacidad de utilizar (para esta versión del sistema) todas las características que

ofrece el sistema de recomendación, siendo capaz de subir su página web y obtener el análisis y

las recomendaciones que se le hacen para mejorar su indexación.

Casos de uso

Diagrama de caso de uso

Page 119: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 119

Tarjetas de casos de uso

Añadir documento HTML

Código: CU1

Actores Usuario

RF RF1

RNF

Riesgo Bajo

Prioridad Alto

Descripción El usuario selecciona el documento

html ya sea mediante un archivo en

un input tipo archivo o mediante

una URL en in unput tipo texto.

Añadir documento HTML

Código: CU2

Actores Usuario

RF RF1

RNF

Riesgo Bajo

Prioridad Alto

Page 120: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 120

Descripción El usuario selecciona el documento

html ya sea mediante un archivo en

un input tipo archivo o mediante

una URL en in unput tipo texto.

Establecer la intención de la página

Código: CU2

Actores Usuario

RF RF2

RNF

Riesgo Bajo

Prioridad Medio

Descripción El usuario selecciona mediante un

selector la intención comunicativa

que se le quiere dar a la página web.

Definir la temática de la página web

Código: CU3

Actores Usuario

RF RF2

RNF

Riesgo Bajo

Page 121: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 121

Prioridad Medio

Descripción El usuario escoge la el tema

principal de la página web (debe ser

el tema principal más no general, se

debe ser específico) que se le quiere

dar a la página web.

Establecer sistema de puntaje para la página

Código: CU4

Actores Usuario

RF

RNF

Riesgo

Prioridad

Descripción Se establece el comportamiento del

sistema de puntaje frente a los

distintos criterios de evaluación.

Generar recomendaciones para la página web

Código: CU5

Actores Usuario

RF RF3-12

RNF

Page 122: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 122

Riesgo Alto

Prioridad Alta

Descripción El usuario envía los datos

ingresados y genera las

recomendaciones a partir del

análisis de la página web.

Cargar documento HTML

Código: CU6

Actores

RF RF1

RNF

Riesgo Bajo

Prioridad Alta

Descripción El sistema carga la página, ya sea

haciendo una solicitud a la url

ingresada por el usuario o leyendo

el archivo ingresado por el usuario.

Modificar valores del sistema de puntaje

Código: CU7

Actores

RF

Page 123: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 123

RNF

Riesgo

Prioridad

Descripción Se escogen los pesos de los distintos

criterios al momento de evaluar la

página web.

Procesar la página web en cada módulo

Código: CU8

Actores

RF RF3-12

RNF

Riesgo Alto

Prioridad Alta

Descripción La página web pasa por cada uno de

los tres módulos de análisis.

Análisis del contenido de la página web

Código: CU9

Actores

Page 124: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 124

RF RF2, RF3, RF5, RF6, RF8, RF10

RNF

Riesgo Alto

Prioridad Alta

Descripción La página web pasa por el módulo

del análisis de contenido, este

analiza la página y extrae sus

palabras clave y temáticas

principales y las compara con las 10

páginas mejor indexadas por

Google.

Análisis de la intención de la página web

Código: CU10

Actores

RF RF2, RF4, RF5, RF8, RF10

RNF

Riesgo Alto

Prioridad Alta

Descripción La página web pasa por el módulo

del análisis de la intención

comunicativa, este analiza la página

y extrae su intención y las compara

con las 10 páginas mejor indexadas

por Google.

Page 125: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 125

Análisis del formato HTML

Código: CU11

Actores

RF RF2, RF4, RF5, RF7, RF9, RF10

RNF

Riesgo Alto

Prioridad Alta

Descripción La página web pasa por el módulo

del análisis del formato HTML, este

analiza la página y extrae sus

intención principales y las compara

con las 10 páginas mejor indexadas

por Google.

Generar puntaje con base en los factores analizados

Código: CU12

Actores

RF RF11

RNF

Riesgo Bajo

Prioridad Medio

Page 126: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 126

Descripción Los datos analizados por los

módulos de análisis pasan por el

sistema de puntaje. Se obtiene un

puntaje de la página el cual se le

muestra al usuario.

Extraer recomendaciones

Código: CU13

Actores

RF RF10, RF12

RNF

Riesgo Medio

Prioridad Alta

Descripción Los datos analizados por los

módulos de análisis pasan por el

sistema de puntaje. Se obtiene un

puntaje de la página el cual se le

muestra al usuario.

Glosario

SEO:

Es un conjunto de técnicas que intentan facilitar la indexación de los buscadores de una página

web para conseguir un puesto lo más arriba posible en los resultados obtenidos ante una pregunta

o sentencia de búsqueda.[11]

Motores de Búsqueda:

Los buscadores o motores de búsqueda son sistemas de recuperación de información que indexan

los documentos de la Web sin seguir una estructura jerárquica como hacen los directorios.[12]

Page 127: Sistema de recomendación para mejorar la indexación de

SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 127

Indexación:

Es el proceso que hace un sistema de recuperación de información, donde crea un índice que

contiene los términos que el sistema considera importantes (después de un preprocesado de cada

documento) y su ubicación en los documentos. [12]

Metodologías ágiles:

Las metodologías ágiles dan mayor valor al individuo, a la colaboración con el cliente y al

desarrollo incremental del software con iteraciones muy cortas. Este enfoque está mostrando su

efectividad en proyectos con requisitos muy cambiantes y cuando se exige reducir drásticamente

los tiempos de desarrollo pero manteniendo una alta calidad. Las metodologías ágiles están

revolucionando la manera de producir software, y a la vez generando un amplio debate entre sus

seguidores y quienes por escepticismo o convencimiento no las ven como alternativa para las

metodologías tradicionales. [13]

eXtreme Programming (XP):

Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el

éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el

aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo.

Inteligencia Artificial:

Uno de los pilares de la IA es el análisis de cómo los seres humanos resuelven o buscan

soluciones a cada uno de los innumerables problemas con los que se encuentran

continuamente.Cuando se conoce cuál es la mejor sucesión de acciones necesarias para resolver

un problema, se dice que se dispone de un “algoritmo” o procedimiento determinista de

resolución. Este es el tipo de situaciones que abordan los programas informáticos tradicionales.

Por contra, los sistemas desarrollados con técnicas de inteligencia artificial, deben enfrentarse

con problemas para los que no se conoce “a priori” la secuencia exacta de acciones que deben

realizarse para encontrar su solución.[14]

Machine Learning:

El machine learning o aprendizaje automático es un campo que se deriva de la inteligencia

artificial. Básicamente, consiste en desarrollar procesos que permitan a las máquinas aprender por

sí solas a partir de un conjunto de datos que un instructor va introduciendo trabajosamente

primero y corrigiendo manualmente después. En este proceso, el ordenador extrae conocimiento

a través de experiencia supervisada. [15]