0:00:00.000,0:00:02.018 [Sebastian Thrun] Donc, quel est ton point de vue sur la façon de construire un moteur de recherche, 0:00:02.018,0:00:03.077 tu en as déjà construit un, n'est-ce pas? 0:00:03.077,0:00:06.008 [Sergey Brin - Co-Fondateur, Google]Oui, je pense que la chose la plus importante 0:00:06.008,0:00:08.013 si tu es sur le point de construire un moteur de recherche 0:00:08.013,0:00:12.051 est d'avoir un très bon corpus comme base pour commencer. 0:00:12.051,0:00:19.020 Dans notre cas, nous avons utilisé Internet, lequel était certainement plus petit qu'il ne l'est aujourd'hui. 0:00:19.020,0:00:21.036 Mais il était également tout nouveau et excitant. 0:00:21.036,0:00:23.081 Il y avait toutes sortes de surprises. 0:00:23.081,0:00:26.099 [David Evans] Donc, le but des trois premières unités du cours est de construire ce corpus. 0:00:27.003,0:00:30.009 Et nous voulons construire ce corpus pour notre moteur de recherche 0:00:30.009,0:00:32.090 en analysant le web et c'est ce que fait un web crawler. 0:00:32.090,0:00:36.038 Un web crawler est un programme qui collecte du contenu depuis le web. 0:00:36.038,0:00:40.054 Si tu penses à une page web que tu affiches dans ton explorateur, tu as une page comme ceci. 0:00:40.054,0:00:43.099 Et nous utiliserons le site de Udacity comme exemple d'une page web. 0:00:43.099,0:00:47.097 Elle contient beaucoup de contenu, elle contient des images, du texte. 0:00:47.097,0:00:51.038 Tout cela arrive dans ton explorateur lorsque tu demandes à voir une page. 0:00:51.038,0:00:53.066 Elle contient une chose importante qui s'appelle "liens". 0:00:53.066,0:00:57.093 Un lien est quelque chose qui va vers une autre page. 0:00:57.093,0:01:00.050 Par exemple, nous avons un lien qui va vers les questions fréquemment posées (FAQ), 0:01:00.050,0:01:02.046 nous avons un lien vers la page CS 101. 0:01:02.046,0:01:04.043 Il y a d'autres liens sur la page. 0:01:04.043,0:01:07.054 Et ce lien pourrait être affiché souligné dans ton explorateur, 0:01:07.054,0:01:09.094 ou non, cela depend de comment ton explorateur est paramétré. 0:01:09.094,0:01:11.095 Mais la chose importante qu'il fait, 0:01:11.095,0:01:13.088 est que c'est un pointeur vers une autre page web. 0:01:13.088,0:01:16.043 Et ces autres pages web pourraient également contenir d'autres liens. 0:01:16.043,0:01:19.073 donc nous avons un autre lien sur cette page-ci. 0:01:19.073,0:01:23.052 Peut-être que c'est vers mon nom, et tu peux le suivre pour atteindre ma page principale. 0:01:23.052,0:01:26.091 Et toutes les pages que nous pouvons trouver avec notre web crawler 0:01:26.091,0:01:29.009 sont en fait trouvées en suivant les liens. 0:01:29.009,0:01:31.067 Il ne trouvera pas nécessairement toutes les pages présentes sur le web 0:01:31.067,0:01:33.059 Cependant, si nous commençons avec une bonne page comme base (seed page) 0:01:33.059,0:01:35.003 nous trouverons beaucoup d'autres pages. 0:01:35.003,0:01:37.050 Et ce que le web crawler va faire est de commencer avec une page, 0:01:37.050,0:01:41.056 trouver tous les liens sur cette page, suivre chaque lien pour trouver d'autres pages 0:01:41.056,0:01:45.013 et sur chacune de ces autres pages, il suivra les liens qu'elles contiennent 0:01:45.013,0:01:48.031 pour trouver d'autres pages et il y aura beaucoup plus de liens sur ces pages-là. 0:01:48.031,0:01:51.043 Finalement, nous obtiendrons une collection de beaucoup de pages du web. 0:01:51.043,0:01:54.007 Donc, ce que nous voulons faire est de construire un web crawler. 0:01:54.007,0:01:56.095 Nous voulons trouver un moyen de commencer avec une page de base, 0:01:56.095,0:01:59.056 extraire les liens de cette page, 0:01:59.056,0:02:01.078 suivre ces liens vers d'autres pages, 0:02:01.078,0:02:03.067 ensuite récupérer les liens présents sur ces autres pages, 0:02:03.067,0:02:05.024 les suivre, récupérer tout ça. 0:02:05.024,0:02:07.038 Cela semble énorme à faire. 0:02:07.038,0:02:09.014 Nous ne ferons pas tout cela dans ce premier cours. 0:02:09.014,0:02:12.072 Ce que nous allons faire durant cette première unité est uniquement d'extraire un lien. 0:02:12.072,0:02:14.058 Donc, nous allons commencer avec un [tas de] texte 0:02:14.058,0:02:17.033 Ce texte contiendra un lien avec une URL 0:02:17.033,0:02:19.064 Ce que nous voulons trouver est cette URL 0:02:19.064,0:02:21.089 afin de pouvoir demander la page suivante. 0:02:21.089,0:02:23.082 Le but de la seconde unité 0:02:23.082,0:02:25.016 est d'être capable de continuer. 0:02:25.016,0:02:28.049 S'il y a beaucoup de liens sur une page, tu veux être capable de tous les trouver. 0:02:28.049,0:02:30.014 Donc, ce que nous ferons durant l'unité 2 0:02:30.014,0:02:32.069 est de trouver un moyen de continuer à extraire touts ces liens-là. 0:02:32.069,0:02:36.061 Durant l'unité 3, nous irons au-délà d'une page. 0:02:36.061,0:02:40.033 Donc, à la fin de l'unité 2, nous pourrons afficher tous les liens d'une page. 0:02:40.033,0:02:44.002 Pour l'unité 3, nous voulons récupérer tous ces liens afin de pouvoir continuer, 0:02:44.002,0:02:47.018 et arriver à faire en sorte que notre crawler récupère beaucoup, beaucoup de pages. 0:02:47.018,0:02:50.013 Donc, a la fin de l'unité 3, nous aurons construit un web crawler. 0:02:50.013,0:02:52.033 Nous aurons un moyen pour construire notre corpus. 0:02:52.033,0:02:57.079 Ensuite, durant les trois unités restantes, nous regarderons comment répondre à des requêtes. 0:02:57.079,0:03:01.034 Donc, durant l'unité 4, nous trouverons un moyen de fournir une bonne réponse. 0:03:01.034,0:03:08.022 Par exemple, si tu cherches un mot-clé, tu veux obtenir une réponse qui soit une liste de toutes les pages 0:03:08.022,0:03:10.063 où ce mot-clé apparait. 0:03:10.063,0:03:15.090 Et, durant l'unité 5, nous trouverons un moyen de le faire de manière à ce que cela puisse évoluer même avec un large corpus. 0:03:15.090,0:03:19.083 Et ensuite, durant l'unité 6, ce que nous voulons faire, nous ne voulons pas simplement trouver une liste, 0:03:19.083,0:03:21.069 nous voulons trouver la meilleure. 0:03:21.069,0:03:24.084 Donc, nous trouverons un moyen de classer toutes les pages où le mot-clé apparait. 0:03:24.084,0:03:27.068 Nous sommes un peu en avance maintenant 0:03:27.068,0:03:30.035 parce que, tout ce que nous allons faire durant l'unité 1, 0:03:30.035,0:03:32.064 c'est de trouver un moyen d'extraire un lien d'une page. 0:03:32.064,0:03:35.073 Et le moteur de recherche que nous allons contruire à la fin de ceci 0:03:35.073,0:03:37.034 sera un moteur de recherche fonctionnel. 0:03:37.034,0:03:40.061 Il aura les fonctionnalités principales d'un moteur de recherche comme Google. 0:03:40.061,0:03:43.014 Il ne sera certainement pas aussi puissant que Google, 0:03:43.014,0:03:44.029 nous voulons garder les choses simple. 0:03:44.029,0:03:46.060 Nous voulons avoir une petite partie de code à écrire. 0:03:46.060,0:03:48.010 Et nous devrions nous souvenir que notre but réel 0:03:48.010,0:03:50.024 n'est pas tellement de construire un moteur de recherche, 0:03:50.024,0:03:52.078 mais plutôt d'utiliser le but de contruire un moteur de recherche comme véhicule 0:03:52.078,0:03:55.018 pour en apprendre plus sur le domaine de l'informatique 0:03:55.018,0:03:56.075 ainsi que sur la programmation 0:03:56.075,0:03:58.018 afin que ce que nous apprenons en faisant ceci 0:03:58.018,9:59:59.000 nous permette de résoudre beaucoup d'autres problèmes.