Predicción de palabras nicho con Weka
Transcription
Predicción de palabras nicho con Weka
Predicción de palabras nicho con Weka Análisis de la viabilidad de un sistema de predicción de palabras nicho con Weka Álvaro Agea Herradón Jorge Fonseca Mesonero Universidad Carlos III de Madrid 28942 Fuenlabrada Madrid, España Universidad Carlos III de Madrid 28915 Leganés Madrid, España [email protected] [email protected] ABSTRACT Vamos a intentar describir que es el posicionamiento en buscadores y cuales son sus complicaciones, además vamos a intentar resolver el problema de las palabras nicho, las cuales supone un gasto de tiempo y recursos debido a que son palabras muy difı́ciles y en donde alcanzar los primeros puestos es algo complicado. Para ello vamos a utilizar Weka un programa de minerı́a de datos que nos permitirá analizar diferentes algoritmos de clasificación. Categories and Subject Descriptors Mineria de datos [Clasificadores]: Algoritmos ; SEO [Posicionamiento web]: Palabras nicho General Terms Minerı́a de datos, buscadores Keywords SEO, palabras nicho, buscadores, google, posicionamiento web, weka, mineria de datos 1. INTRODUCIÓN En un pais como España donde Google copa el 99% de las búsquedas que se realizan en Internet, estar en las primeras posiciones de una búsqueda en este motor es importante. Pero si lo que queremos hacer es una campaña de promoción en buscadores debemos pensar muy bien que palabras vamos a elegir. Esto es importante, porque puede dar al traste con nuestra campaña una mala elección de palabras. Para ello vamos a intentar analizar la problemática de las palabras nicho, palabras en donde es muy difı́cil colocarse en los primeros puestos. Para ello vamos a utilizar un recurso de fácil acceso como son el número de resultados de las búsquedas. Todo esto lo analizaremos en Weka un programa de minerı́a de datos open source que nos permitirá experimentar con diferentes algoritmos. Tienes permiso para hacer copias, modificar y ampliar el contenido siempre bajo reconocimiento. UC3M 2008 Inteligencia en redes de comunicación Licencia Reconocimiento 3.0 Spain. License de Creative Commons 2008. Figure 1: Ejemplo de vision en F que se produce en una página de resultados de Google Por último analizaremos los resultado que nos devuelva esta herramienta y nos plantearemos si tenemos que añadir algún tipo de información en lı́neas futuras para conseguir que las predicciones sean muchos más exactas o para mejorar el sı́stema. También comprobaremos en que deducciones nos hemos equivocado y que conclusiones sacamos. 2. ¿QUÉ SON LAS PALABRAS NICHO? 2.1 El top 10 de Google El SEO1 consiste en optimizar los sitios web para que estos sean muchos más visibles en los motores de búsqueda. Es decir, conseguir salir en la primeras posiciones en lo buscadores como google para las palabras clave que el cliente cree que atraeran más visitas. Salir en las primera posiciones es muy importante ya que el usuario lee los resultado siguiendo el patrón F[2, 3] (vease la figura 1). Este afirma que el usuario centra su atencion en la linea superior de la pantalla y segun va descendiendo su mirada su atencion decrece. Debido a este efecto el primer resultado de una página acapara el 50% de los clics que se realizan en esa búsqueda, mientras el segundo resultado no alcanza el 15% de los clicks. Es más, solamente un 50% de los usuarios ven más allá del 1 Search Engine Optimization Figure 4: Ejemplo de una distribución de Larga Cola metido a cumplir, para ello solo deja que halla un número determinado de palabras dificiles de posicionar. El técnico SEO intenta evitar las palabras donde hay mucha competencia, es decir, donde los primeros resutados ya han sido optimizados o donde estos tiene una fama que les hace dificil de superar, esta palabras donde la competencia es muy grande se denominan palabras nicho. Figure 2: Porcentajes de distribucion de los clicks, en una página de resultados de Google quinto resultado[4]. Todo esto hace que los primeros tres resultados sean fundamentales si quieres optar por promocionarte a través de buscadores. El problema es que conseguir aparacer en esos primeros resultados es complicado en muchos casos ya que la popularidad de las páginas principales puede ser tan superior que no se las puede desbancar de los primeros puestos. Por ejemplo, un problema que se encuentran los especialista en SEO para posicionar a webs para ciertas palabras clave es superar a los articulos de la Wikipedia. Estos articulos consiguen las primeras posiciones y debido a su popularidad son muy difı́ciles de retrasar en este ranking. 2.2 La importancia de la competencia Cuando un cliente analiza que palabras va a seleccionar debe fijarse en cuantas veces es buscado ese termino a lo largo del tiempo, de esta manera estimará cuantas visitas puede recibir de usuarios interesados en su servicios, o también llamados clientes potenciales. Para hacer este análisis utiliza herramientas como Google Trends que le permite conocer cuantas veces es buscada una palabra en Google. También herramientas como Google Suggest sugieren al cliente nuevas palabras relacionadas con la búsqueda que desea realizar. Con estas herramientas el cliente que precisa de los servicios SEO podrá disponer de una lista amplia de palabras relacionadas con su sector y que tengan un gran número de visitas. Pero el profesional SEO no aceptará todas las propuestas de palabras ya que no todas son igual de faciles de posicionar, dependerá del presupuesto cuantas palabras escogerá. Pongamos un ejemplo, una agencia de viajes desea aumentar el número de su visitas, para ello contrata un servicio SEO, los especialistas SEO le pidén al cliente una lista con las palabras por las cuales quiere aparecer en los primeros resultado. El servicio SEO no garantiza que al finalizar el contrato se consiga estar entre las diez primeras posiciones pero si garantiza que un porcentaje de estas estaran en esas posiciones de privilegio. Para ello estudia cada una de la palabras que el cliente ha seleccionado y juega con el margen que se ha compro- 2.3 Las palabras nicho y la teoría de la Larga Cola Las palabras nichos son búsquedas muy dificiles de posicionar debido a que hay muchas páginas que intentan estar entre los primeros puestos lo que complica la entrada de nueva competencia. Por ejemplo, la palabra viajes es una palabra nicho debido a que es una búsqueda que se realiza muchas veces, y a las páginas de viajes como a las compañias aéreas tienen intereses en captar este tipo de visitas. Esto no quiere decir que no se pueda conseguir posicionar a una página en el top 10 de esa búsqueda, pero no podemos asegurar que vayamos a conseguirlo en un plazo de tiempo corto. Además aunque estas páginas reportan mucho tráfico, estas ,a veces, no son muy precisas lo cual hace que ese tráfico abandone la página defraudado. Por ejemplo, si vendemos coches podemos intentar poscionarmos por “venta de coches” la cual es una palabra nicho, sin embargo tal vez sea más interesante posicionarse por la palabra “venta de coche Madrid” ya que está palabra no es una palabra nicho y en caso de producirse una visita el usuario esta más enfocado a la búsqueda. Aunque las palabras nichos tiene muchas más búsquedas, el otro tipo de palabra permite encontrar más clientes potenciales de un servicio o producto, además de ser mucho más sencillo el posicionamiento de este tipo de palabras. El único incoveniente es la diferencia entre el número de búsquedas, esto se puede solucionar haciendo caso a la teorı́a de la Larga Cola[1]2 . Las palabras que se encuentran en la parte de la izquierda de la figura 4 son las que más frecuencia de búsqueda tienen, pero son muy pocas las que están situadas a ese lado de la gráfica y normalmente son palabras nicho. Sin embargo las palabras que tienen menos frecuenciason son más númerosas, es decir, en vez de posicionarnos en una 2 La larga cola es el nombre coloquial para una bien conocida caracterı́stica de las distribuciones estadı́sticas (Zipf, Ley de potencias, distribuciones de Pareto o/y en general distribuciones de Lévy). La caracterı́stica es también conocida como heavy tails, power-law tails, o las colas de Pareto.En estas distribuciones una amplia frecuencia o gran frecuencia de población es seguida por una baja frecuencia o baja amplitud de la población que disminuye gradualmente. En muchos casos, los acontecimientos de baja frecuencia o escasa amplitud pueden abarcar la mayor parte del gráfico. Figure 3: Ejemplo de uso de Google Trends para las palabras viaje,vuelo,vacaciones y turismo. palabra con númerosas búsquedas, es mejor, posicionarse en muchas palabras que tiene menor número de búsquedas y aprovechar para que sean palabras clave más especificas y que representen al producto o servicio que queremos promocionar. Por eso el profesional SEO debe intentar descubrir cuales son estas e intentar de evitarlas, y aprovechando la Larga Cola escoger otras palabras con menor frecuencia de búsquedas que juntas alcancen aproximadamente el volumen de la palabra nicho. 3. PREDICCIÓN DE PALABRAS NICHO Para poder saber si una palabra es nicho el especialista SEO debe fijarse en varias variables desde el número de búsquedas, el número de resultado y la variedad que existe en los primero resultados de diferentes buscadores. Con este estudio vamos a intentar demostrar que no hace falta esto, ya que si hacemos unas búsquedas más avanzadas podemos saber cual son la palabras nicho conociendo únicamente el número de resultados. Realizaremos un análisis de diferentes algoritmos de clasificacion viendo cual es con el que obtenemos mejores resultados. 3.1 Desarrollo Para realizar el análisis de la eficacia de los algoritmos de clasicficación tenemos que encontrar un banco de palabras que nos permita comprobar si es posible resolver el problema sólo con el número de resultados de búsqueda. Para ello crearemos una aplicación PHP3 que nos permita escribir una palabra y este se encargara en buscar en la página de resultados mediante expresiones regulares4 el número de páginas que Google ha encontrado. Después de obtener un banco de palabras vamos a utilizar varios algoritmos de clasificación para comprobar cual es la eficacia de ellos. Por último discutiremos que datos podrı́amos añadir para mejorar la calidad del decisor. 3.1.1 Creacion del banco de palabras Utilizamos dos bancos de palabras uno de ellos lo vamos a utilizar para el etrenamiento del algoritmo y otro para realizar el test. De esta manera se puede comprobar como generalizan los algoritmos que utilizamos. El banco de palabras se compondrá de un vector con el número de resultados de cada una de la palabra junto con una etiqueta que indica si es una palabra nicho. El vector de número de resultados no sólo contendrá los resultados de la búsqueda, además añadiremos búsquedas con etiquetas especiales que nos sirven para buscar información de manera más avanzada. key Es la llamada búsqueda amplia o búsqueda normal. El resultado que almacenamos es el que se genera al buscar las palabras clave en bruto si introducir ningun tipo de etiqueta. Strict Es la búsqueda estricta. Obtenemos el número de resultados pero añadiendo a la palabra clave comillas. Con este tipo de búsqueda el buscador devuelve las páginas que contiene la palabras exactas. inthetitle Buscamos que las palabras esten contenidas en el tı́tulo. El buscador devuelve las pagina que contiene alguna de la palabras buscada en el titulo, no contando las palabras enlace(en, a, de...). Una técnica común que siguen las estrategias SEO es incluir las palabras clave en el titulo de la página, por tanto el número de resultados es importante. 3 PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. 4 Una expresión regular, a menudo llamada también patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos. intitlestrict La palabras están contenidas en el tı́tulo de manera estricta. Al igual que en la anterior las palabras claves tienen que estar en el contenido del tı́tulo pero esta vez deben estar juntas, sin contar palabras enlace. allinthetitle Todas las palabras estan contenidas en el tı́tulo. El buscador sólo va a devolver las buscqueas que contengan todas las palabras que buscamos en el titulo de la página, estas no deben respetar ningún orden solo deben aparecer la etiqueta de tı́tulo. allinthetitlestrict Todas las palabra contenidas en el titulo de manera estricta. Google sólo nos devolvera páginas donde todas las palbras incluida los elementos conectores estén en la etiqueta tı́tulo. inurl La palabras deben estar contenidas en la url. Google filtra los resultado buscando las pagina que contengan en su url algunas de estas palabra sin contar los conectores. Otro método par conseguir encontrarse en las primeras posciones es utilizar url que contengan palabras clave, por lo que muchos técnicos SEO optán por crear subdominios o carpetas que contengan palabras clave, para esto es muy útil el mod rewrite5 de apache. inurlstrict Las palabras deben estar contenidas en la url de manera estricta. Deben contener todas las claves, al igual que en el anterior, de manera ordenada en la url exceptuando los conectores. allinurl Todas las palabras deben estar contenidas en la url. La búsqueda esta restringida a las página que contengan en su url todas las palabras por las que se ha realizado la consulta. Estas pueden esta desordenadas y no incluyen a los conectores. allinurlstrict Todas las palabras deben estar contenidas en la url de manera estricta. La consulta esta limitada a los sitios que tengan todas las palabras de manera ordenada y también que incluya los elementos conectores. Para introducir las palabras al banco de palabras hemos realizado una pagina web en PHP. Esta permite introducir una palabra clave y decirle si es una palabra nicho. 3.1.2 Extracion de resultados La página que extráe los resultados realiza una consulta a la web de Google que se descarga toda la informacion de la página y mediante una expresion regular extrae el número de resultados. Para realizar la consulta abrimos un socket al puerto 80 de Google y hacemos una petición get. $page=""; $da = fsockopen("www.google.es", 80, $errno, $errstr, 30); if (!$da) { echo "$errstr ($errno)<br />\n"; } else { $salida = "GET /search?hl=es&q=".$key." HTTP/1.1\r\n"; $salida .= "Host: 192.168.123.1\r\nUser-Agent: Mozilla/4.0\r\n"; $salida .= "Connection: Close\r\n\r\n"; fwrite($da, $salida); 5 El mod rewrite es una herramienta que ayuda a reescribir las direcciones webs para que séan más amigables para el usuario. while (!feof($da)) { $page.= fgets($da, 128); } fclose($da); } Despues de esto utilizamos una sencilla expresión regular que extra los números que se encuentran entre <b></b>. $patron="|<b>([\d]*)</b>|U"; $page=str_replace(",", "", $page); $p=preg_match_all("|<b>([\d,]*)</b>|U",$page, $matches); $result=0; if($p>0){ return $matches[1][2]; } return -1; De está manera podemos encontrar el número de resultado, y creamos la función getResult($ key) que con sólo indicarle la palabra haga todo el proceso. Otra funcion se encargará de hacer las peticiones para rellenar el vector de datos getVectorGoogle($ basicKey). $key=get_result($basicKey); $strict=get_result(’"’.$basicKey.’"’); $intitle=get_result("intitle:".$basicKey); $intitlestrict=get_result(’intitle:"’.$basicKey.’"’); $allintitle=get_result("allintitle:".$basicKey); $allintitlestrict=get_result(’allintitle:"’.$basicKey.’"’); $inurl=get_result("inurl:".$basicKey); $inurltrict=get_result(’inurl:"’.$basicKey.’"’); $allinurl=get_result("allinurl:".$basicKey); $allinurlstrict=get_result(’allinurl:"’.$basicKey.’"’); Este vector se almacena en un fichero arff que nos permita hacer el análisis en Weka. 3.2 Análisis en Weka Cuando ya hemos obtenido el banco de palabras realizamos el análisis de los resultado en Weka. Vamos a utilizar varios algoritmos que representen a las formas más tipicas de clasificadores. 1. Red bayesiana 2. Clasificador por regresión 3. Arbol 4. IBk con k=3 Vamos a entrenar a nuestro algoritmo con el 75% de las muestras y comprobar el resultado con el 25% restante. 3.2.1 Red Bayesiana Una red bayesiana, o red de creencia, es un modelo probabilı́stico multivariado que relaciona un conjunto de variables aleatorias mediante un grafo dirigido que indica explı́citamente influencia causal. Gracias a su motor de actualización de probabilidades, el Teorema de Bayes, las redes bayesianas son una herramienta extremadamente útil en la estimación de probabilidades ante nuevas evidencias. Como se puede ver en la tabla 1 el nos hemos equivocado un 20% y siempre de manera positiva, es decir, hemos dicho que no es una palabra nicho y el clasficador ha decidico que si. Table 2: Clasificación realizada por un clasificador por regresión. Clasificadas como: No Si No 8 5 Si 0 12 Figure 7: Resultado de aplicar el clasificador por regresión Figure 5: Detalle de los datos que vamos a utilizar para el análisis. Table 1: bayesiana. Clasificación realiada Clasificadas como: No Si No 8 0 por una red Si 5 12 3.2.2 Clasificador por regresión Este clasificador se basa en un modelo de regresión para variables dependientes o de respuesta binomialmente distribuidas. Es útil para modelar la probabilidad de un evento ocurriendo como función de otros factores, a este modelo se le conoce como regresión logistica. Como se puede ver en la tabla 2 el nos hemos vuelto a equivocar un 20% y en las mismas muestras. Lo cual nos hace pensar que tal vez nos hagan falta más datos. 3.2.3 Arbol Es un modelo de predicción utilizado en el ámbito de la inteligencia artificial, dada una base de datos se construyen diagramas de construcciones lógicas, muy similares a los sistemas de predicción basados en reglas, que sirven para representar y categorizar una serie de condiciones que ocurren de forma sucesiva, para la resolución de un problema. Como se puede ver en la tabla 3 nos hemos vuelto a equivocar un 20% pero en diferentes muestrar, las probabilidad de error es igual a la probabilidad de falsa alarma. Como podemos el arbol no ha cogido todas las variables del vector, esto significa,que nos sobrán variables ya que no aportan más información, por lo tanto, no conseguimos mayor precisión. 3.2.4 IBk con k=3 Es un modelo de prediccion muy utilizado ya que es muy sencillo es bastante preciso. Consiste en comprobar a cuanta distancia nos encontramos y del resto de elementos y coger el valor de los k mas cercanos. En nuestro caso hemos utilizado k=3 porque es el que mejor resultado nos ha dado. En este caso el error esta en el 12% lo cual es una reduccion considerable seguimos diciendo que hay más elemento nicho que los que hemos señalado. Figure 6: Resultado de aplicar el clasificador de red bayesiana. Table 3: Clasificación realizada por un arbol. Clasificadas como: No Si No 8 5 Si 0 12 Figure 8: Arbol generado para realizar la clasificación Table 4: IBK. Clasificación realizada por el algoritmo Clasificadas como: No Si No 10 0 Si 3 12 anza. 5. AGRADECIMIENTOS Quisieramos darle las gracias a Alex Vega especialista SEO que nos ha facilitado mucha información y nos ha ayudado a clasificar las palabras del banco de pruebas. 6. REFERENCES [1] Babalum. La larga estela - el fin de pareto. [2] Charlie. Diseño de un sitio: Seo, usabilidad y rentabilidad. [3] Charlie. Top 10: Tan efectivo como el primer lugar., Agosto 2008. [4] Duque. Tráfico estimádo. Figure 9: Resultado de aplicar el clasificador IBK. 4. CONCLUSIONES Los porcentajes de error conseguidos por los clasificadores no son altos, pero tampoco podemos considerarlos como buenos. Ademas el error positivo que hemos tenido en todos los casos indica que algún tipos de error sitemático que no hemos tenido en cuenta durante el proceso.Tal vez un número mayor de muestra podrı́an haber corregido el problemas y haber conseguido unos resultados más precisos. Tambien podemos darnos cuenta que algunos valores que damos como información son irrelevantes ya que no aportan nada ni mejoran la precisión En lineas futuras podrı́amos probar a incluir otros datos, como por ejemplo, el número de enlaces que tienen las urls que aparecen en los primeros puestos. Esto darı́a un dato sobre la popularidad que tiene el sitio, es decir lo difici que es quitarlo de los primero puesto solamente porque tienen muchos enlaces dirigido hacia él. En definitica, aunque los porcentajes de error son asumibles y nos permite dar prediciones con un margen de confi-