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