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-

Documents pareils