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
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
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.
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
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
Tarjetas de casos de uso ..................................................................................................................119
Glosario ............................................................................................................................... 126
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
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
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.
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
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.
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.
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):
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
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
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.
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.
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.
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.
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.
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.
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 :
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.
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].
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):
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].
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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
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.
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.
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.
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]:
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.
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.
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.
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.
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”
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.
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.
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
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
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
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
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.
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.
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
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.
SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 60
Fig 17. Diagrama de secuencia del sistema
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.
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
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
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.
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
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,
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,
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á
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.
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.
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.
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
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
SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 74
Fig 24 Detalle del puntaje
Fig 25 Notificaciones del navegador
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
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
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
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.
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).
SISTEMA DE RECOMENDACIÓN PARA MEJORAR LA INDEXACIÓN... 80
Fig 26. Página "La caida de jQuery", en su primera etapa.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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/.
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/.
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.
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
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
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
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
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.
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
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)
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.
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
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)
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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.
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
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]
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]