1 00:00:00,000 --> 00:00:02,000 [セバスチャン スラン]検索エンジンの構築方法についてどう考えますか? 2 00:00:02,000 --> 00:00:03,000 以前構築したんでしょう? 3 00:00:03,000 --> 00:00:06,000 [セルゲイ ・ ブリン - Google共同創設者]そうだよ。検索エンジンを構築する上で 4 00:00:06,000 --> 00:00:08,000 最も重要なのは 5 00:00:08,000 --> 00:00:12,000 始めに十分なコーパス(大量の言語データ)を用意することだと思う 6 00:00:12,000 --> 00:00:19,000 我々の場合 いまより遥かに小規模だった world wide web を使った 7 00:00:19,000 --> 00:00:21,000 でも当時は最先端で新鮮だった 8 00:00:21,000 --> 00:00:23,000 予想もしなかったことがいろいろあったよ 9 00:00:23,000 --> 00:00:26,000 [デビッド ・ エバンス]というわけで最初の3ユニットの目標はコーパスの構築です 10 00:00:27,000 --> 00:00:30,000 ウェブ上を漁って 検索エンジン用のコーパスを構築したいのです 11 00:00:30,000 --> 00:00:32,000 それをするのがウェブクローラです 12 00:00:32,000 --> 00:00:36,000 ウェブクローラとは ウェブ上のコンテンツを収集するプログラムです 13 00:00:36,000 --> 00:00:40,000 ブラウザーで閲覧するウェブページといえば、このようなものを思いつくでしょう 14 00:00:40,000 --> 00:00:43,000 ウェブページの例としてudacityのサイトをあげることにします 15 00:00:43,000 --> 00:00:47,000 サイトには画像・テキスト等 大量のコンテンツがあります 16 00:00:47,000 --> 00:00:51,000 これらは全て あなたがページを要求するとあなたのブラウザにやって来ます 17 00:00:51,000 --> 00:00:53,000 重要なのはリンクです 18 00:00:53,000 --> 00:00:57,000 リンクとは、他のページに移動するものです 19 00:00:57,000 --> 00:01:00,000 なので私達は よくある質問へのリンクや 20 00:01:00,000 --> 00:01:02,000 CS101のページへのリンクを設けています。 21 00:01:02,000 --> 00:01:04,000 ページには他にもいくつかリンクがあります。 22 00:01:04,000 --> 00:01:07,000 リンクは下線付きで表示されるかもしれないし 23 00:01:07,000 --> 00:01:09,000 ブラウザーの設定によってはされないかもしれません 24 00:01:09,000 --> 00:01:11,000 しかしリンクの重要な点は 25 00:01:11,000 --> 00:01:13,000 他のウェブページへのポインタとなるということです 26 00:01:13,000 --> 00:01:16,000 そしてその他のウェブページにもリンクがあるので 27 00:01:16,000 --> 00:01:19,000 このページにも別のリンクがあることになります 28 00:01:19,000 --> 00:01:23,000 私の名前があるので、多分私のホームページへ行けるでしょう 29 00:01:23,000 --> 00:01:26,000 私達のウェブクローラで見つけられるページは全て 30 00:01:26,000 --> 00:01:29,000 リンクを辿ることによって発見されます 31 00:01:29,000 --> 00:01:31,000 なのでクローラはウェブ上の全てのページを見つけるわけではないが 32 00:01:31,000 --> 00:01:33,000 開始地点(シード)となるページが良ければ 33 00:01:33,000 --> 00:01:35,000 多くのページを見つけられるでしょう。 34 00:01:35,000 --> 00:01:37,000 クローラが行うのは あるページから開始し 35 00:01:37,000 --> 00:01:41,000 そのページの全てのリンクを発見し 他のページへ辿ります 36 00:01:41,000 --> 00:01:45,000 その他のページ上でまたリンクを辿り 37 00:01:45,000 --> 00:01:48,000 更に別のページを見つけます。これらのページ上にはさらに多くのリンクがあるでしょう 38 00:01:48,000 --> 00:01:51,000 最終的にウェブ上にある大量のページを収集するのです 39 00:01:51,000 --> 00:01:54,000 これがウェブクローラを構築するにあたってしたいことです 40 00:01:54,000 --> 00:01:56,000 ある開始地点(シード)ページから 41 00:01:56,000 --> 00:01:59,000 ページ上のリンクを抽出し 42 00:01:59,000 --> 00:02:01,000 リンクを辿って他のページ群へ行き 43 00:02:01,000 --> 00:02:03,000 そのページ群のリンクを収集 44 00:02:03,000 --> 00:02:05,000 またリンクを辿って、全部集めたい。 45 00:02:05,000 --> 00:02:07,000 やることが多いように思えますが 46 00:02:07,000 --> 00:02:09,000 最初のクラスで全部やるつもりはありません 47 00:02:09,000 --> 00:02:12,000 この最初のユニットで扱うのは リンクの抽出だけです。 48 00:02:12,000 --> 00:02:14,000 まずはテキスト群に注目します 49 00:02:14,000 --> 00:02:17,000 その中にはURLを持ったリンクがあるでしょう 50 00:02:17,000 --> 00:02:19,000 そのURLを見つけたいのです 51 00:02:19,000 --> 00:02:21,000 そうすればの次のページを要求できます。 52 00:02:21,000 --> 00:02:23,000 第2ユニットでの目標は 53 00:02:23,000 --> 00:02:25,000 抽出を続行できるようにすることです 54 00:02:25,000 --> 00:02:28,000 あるページに大量のリンクがあったら、それらを全て見つけたいですよね 55 00:02:28,000 --> 00:02:30,000 これがユニット2でやることです 56 00:02:30,000 --> 00:02:32,000 全てのリンクを抽出するために、抽出作業を続ける方法を見つけるのです 57 00:02:32,000 --> 00:02:36,000 ユニット3では 1つのページから他のページへ飛びます 58 00:02:36,000 --> 00:02:40,000 なのでユニット2が終わる頃には、あるページ上の全てのリンクをプリント(表示)できるようになります 59 00:02:40,000 --> 00:02:44,000 ユニット3では、探索を続行するために、これら全てのリンクを収集し 60 00:02:44,000 --> 00:02:47,000 最終的にクローラの助けで大量のページを収集したいのです 61 00:02:47,000 --> 00:02:50,000 なのでユニット3の終わりまでに、私たちはウェブクローラを構築します 62 00:02:50,000 --> 00:02:52,000 コーパスを構築する方法もあります。 63 00:02:52,000 --> 00:02:57,000 残りの3つのユニットでは 実際にクエリに応答する方法を見ていきます。 64 00:02:57,000 --> 00:03:01,000 なのでユニット4 では 上手い応答のさせ方について理解します 65 00:03:01,000 --> 00:03:08,000 キーワードを検索した際に そのキーワードが現れるページのリストを 66 00:03:08,000 --> 00:03:10,000 応答として得たいのです。 67 00:03:10,000 --> 00:03:15,000 ユニット5でその方法を理解します。コーパスが大規模なら 合わせて大きくなります 68 00:03:15,000 --> 00:03:19,000 ユニット6でやりたいのは 単にリストを見つけることではありません 69 00:03:19,000 --> 00:03:21,000 最高のリストを見つけたいのです 70 00:03:21,000 --> 00:03:24,000 よってキーワードが出現する全てのページをランク付けする方法を考えます 71 00:03:24,000 --> 00:03:27,000 というわけで少し先の見通しを説明しました 72 00:03:27,000 --> 00:03:30,000 ただユニット1で行うのは 73 00:03:30,000 --> 00:03:32,000 ページからのリンク抽出方法を理解することだけです 74 00:03:32,000 --> 00:03:35,000 私達が最終的に組み立てる検索エンジンは 75 00:03:35,000 --> 00:03:37,000 実際に機能するものになるでしょう 76 00:03:37,000 --> 00:03:40,000 Googleのような検索エンジンと同様の主要要素を備えるでしょう 77 00:03:40,000 --> 00:03:43,000 たしかにGoogleほど強力にはならないでしょう 78 00:03:43,000 --> 00:03:44,000 シンプルにしたいからです 79 00:03:44,000 --> 00:03:46,000 コードを少し書くつもりです 80 00:03:46,000 --> 00:03:48,000 私達の本来の目的は 81 00:03:48,000 --> 00:03:50,000 検索エンジンの構築ではなく 82 00:03:50,000 --> 00:03:52,000 検索エンジン構築を目標に進む過程で 83 00:03:52,000 --> 00:03:55,000 コンピューター科学について学び 84 00:03:55,000 --> 00:03:56,000 プログラミングについて学んでいくことなのです 85 00:03:56,000 --> 00:03:58,000 そうすることで私達が学習することは 86 00:03:58,000 --> 99:59:59,999 多くの問題を解決することを可能にしてくれるでしょう