Spanish subtitles

← 22-36 Urank

Get Embed Code
4 Languages

Showing Revision 1 created 06/07/2014 by Arturo Sanz.

  1. El objetivo para el resto de este unidad
  2. es modificar nuestro código del motor de búsqueda para implementar
  3. el algoritmo PageRank. Tenemos solo un pequeño problema. PageRank
  4. es una marca registrada de Google. Así que no vamos
  5. a llamar a nuestro algoritmo PageRank, incluso aunque haga
  6. lo mismo. Lo llamaremos URank. Lo primero
  7. que tenemos que ser capaces de hacer, para implementar
  8. este algoritmo de clasificación, es realizar un seguimiento del grafo de enlaces.
  9. de manera que el grado de popularidad de nuestras páginas dependa de la estructura del enlace. Esto significa que necesitamos
  10. realizar el seguimiento de qué páginas enlazan a qué páginas. Así que, por cada enlace, hay
  11. una conexión entre páginas y podemos imaginar
  12. eso como un grafo. En abstracto, un grafo
  13. es justo un conjunto de nodos, los cuales representaremos
  14. como círculos, con conexiones entre los nodos.
  15. Y como nuestras conexiones van en una dirección, como
  16. los enlaces de una página, lo llamaremos un grafo dirigido.
  17. Así que para representar nuestra estructura de enlace web
  18. necesitamos construir el grafo dirigido. Las páginas
  19. en el grafo son los nodos. Por cada página,
  20. necesitamos realizar el seguimiento de las conexiones que unen
  21. ese nodo con los otros nodos. Y así, la forma
  22. en la que lo vamos a hacer es manteniendo un diccionario.
  23. Así que vamos a tener un diccionario donde las entradas
  24. en el diccionario son los nodos, que son las URLs,
  25. es decir, las páginas. Y por cada URL, tendremos una
  26. lista de todas las páginas con las que esta enlaza. Así que
  27. si se trata de decir el nodo A, y estos fueran los nodos
  28. B, C, y D, nuestra entrada para el nodo A contendría
  29. la lista B, C, D. Y nuestra entrada para
  30. el nodo B, bien, no hay conexiones saliendo de B,
  31. así que sería una lista vacía. Y para terminar el ejemplo, C tiene un enlace de salida a
  32. un nodo, y D no tiene enlaces de salida. Así
  33. que ese es nuestro objetivo. Queremos construir una estructura
  34. como esta que muestra la estructura de las
  35. páginas web que procesamos, y vemos esa estructura
  36. porque estamos siguiendo los enlaces en nuestro proceso. Así
  37. que nuestro objetivo es modificar el procedimiento del proceso de seguimiento
  38. que definimos al final de la Unidad Cinco. Y para
  39. modificarlo de manera que en vez de generar solamente un índice,
  40. también genera un grafo. Así que vamos a modificar el proceso.
  41. Va a seguir tomando una página inicial para comenzar. Pero lo que
  42. va a generar ahora son dos cosas, un índice y un
  43. grafo. Y el grafo es una estructura que nos proporciona un esquema
  44. de cada nodo con las páginas con las que enlaza.
  45. vamos a mirar el código que teníamos al final de
  46. la Unidad Cinco y veamos como cambiarlo. Así que
  47. aquí está el código, que teníamos al final de la Unidad Cinco,
  48. para procesar la web. Y como recordatorio, vamos a realizar el seguimiento de
  49. las páginas pendientes de procesar en la lista empezando con
  50. la página inicial, y vamos a ir construyendo el índice como un
  51. diccionario. Y mientras haya páginas pendientes de procesar,
  52. iremos por el bucle Y, que encuentra la página a procesar,
  53. extrayendo la lista de páginas a procesar. Siempre que
  54. no la hayamos procesado antes, se extrae el contenido de esa
  55. página. La añade al índice. Encuentra todos los
  56. enlaces, utilizando "getalllinks", pasando el contenido de la página y
  57. agrupando aquellas con "tocrawl" para actualizar la lista "tocrawl" y luego
  58. añade esta página a la lista de páginas que
  59. ya han sido procesadas. Así que para cambiar esto para crear el grafo,
  60. vamos a mantener intacto la mayor parte del código. Además de
  61. generar solo el índice, vamos a generar la gráfica. Y el
  62. grafo va a ser también un diccionario. Y la razón de que el
  63. grafo sea un diccionario es que el esquema de los nodos, que
  64. son URLs a la lista de conexiones que salen de
  65. ese nodo. Así que crearemos el grafo como un diccionario vacío.
  66. Y a medida que encontramos nuevas páginas, vamos a añadirlas
  67. al grafo. Y vamos a cambiar la devolución para devolver
  68. ambos, el índice y el grafo. Voy a hacer un cambio
  69. más antes de poner el "quiz". Y el cambio que
  70. voy a hacer es, en vez de llamar a "getalllinks" aquí,
  71. ya que ambos, la construcción del grafo y la lista "tocrawl" dependen
  72. de conocer todos los enlaces, vamos a crear una
  73. nueva variable. Y asignaremos el resultado de "getalllinks" a
  74. esa variable. Eso significa que podemos usar esos enlaces
  75. como parámetro de entrada. Pero podemos usarlos
  76. para construir el grafo. Y voy a dejar
  77. la línea que necesito para construir el grafo para
  78. que tu la completes. Así que vamos a hacer que ese sea el "quiz" para terminar
  79. este código. Escribe la línea que necesitamos para actualizar el grafo.