Enviar búsqueda
Cargar
PHPで全文検索エンジンをつくるまで
•
8 recomendaciones
•
9,664 vistas
優之 田中
Seguir
PHPで全文検索エンジンをつくるまで
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 36
Descargar ahora
Descargar para leer sin conexión
Recomendados
AWS Resource Access Manager 触ってみた
AWS Resource Access Manager 触ってみた
shibataka000
20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvert
20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvert
Amazon Web Services Japan
20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune
Amazon Web Services Japan
AWS CLIでAssumeRole
AWS CLIでAssumeRole
Tetsunori Nishizawa
디지털 해적들로부터 영상 콘텐츠 보호하기 – 황윤상 AWS 솔루션즈 아키텍트, 김준호 잉카엔트웍스 매니저:: AWS Cloud Week ...
디지털 해적들로부터 영상 콘텐츠 보호하기 – 황윤상 AWS 솔루션즈 아키텍트, 김준호 잉카엔트웍스 매니저:: AWS Cloud Week ...
Amazon Web Services Korea
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
Amazon Web Services Japan
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
Recomendados
AWS Resource Access Manager 触ってみた
AWS Resource Access Manager 触ってみた
shibataka000
20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvert
20200331 AWS Black Belt Online Seminar AWS Elemental MediaConvert
Amazon Web Services Japan
20200714 AWS Black Belt Online Seminar Amazon Neptune
20200714 AWS Black Belt Online Seminar Amazon Neptune
Amazon Web Services Japan
AWS CLIでAssumeRole
AWS CLIでAssumeRole
Tetsunori Nishizawa
디지털 해적들로부터 영상 콘텐츠 보호하기 – 황윤상 AWS 솔루션즈 아키텍트, 김준호 잉카엔트웍스 매니저:: AWS Cloud Week ...
디지털 해적들로부터 영상 콘텐츠 보호하기 – 황윤상 AWS 솔루션즈 아키텍트, 김준호 잉카엔트웍스 매니저:: AWS Cloud Week ...
Amazon Web Services Korea
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
Amazon Web Services Japan
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
Azure App Service 運用体験談 ~コスト節約しようとしてダウンした App Service~
Azure App Service 運用体験談 ~コスト節約しようとしてダウンした App Service~
Tomotaka Suzuki(御成門プログラマー)
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Amazon Web Services Japan
おひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
Makio Tsukamoto
CodeBuildを身近にするためのはじめの一歩
CodeBuildを身近にするためのはじめの一歩
淳 千葉
Black Belt Online Seminar Amazon CloudWatch
Black Belt Online Seminar Amazon CloudWatch
Amazon Web Services Japan
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
Amazon Web Services
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
Trainocate Japan, Ltd.
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS Cognito
AWS Black Belt Online Seminar 2017 AWS Cognito
Amazon Web Services Japan
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
Takeshi Mikami
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Amazon Web Services Japan
Krugle Short 202309v30.pdf
Krugle Short 202309v30.pdf
JunKawakita1
Introduction to Amazon Relational Database Service
Introduction to Amazon Relational Database Service
Amazon Web Services
SAP on Azure インフラ設計解説:HA/DR、Backupからパフォーマンス最適化まで
SAP on Azure インフラ設計解説:HA/DR、Backupからパフォーマンス最適化まで
Hitoshi Ikemoto
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
Amazon Web Services Japan
20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon Athena
Amazon Web Services Japan
セキュリティ設計の頻出論点
セキュリティ設計の頻出論点
Tomohiro Nakashima
Amazon Pinpoint × グロースハック活用事例集
Amazon Pinpoint × グロースハック活用事例集
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS X-Ray
AWS Black Belt Online Seminar 2017 AWS X-Ray
Amazon Web Services Japan
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
Kouhei Sutou
自分をチューニングするために今年やってみたこと
自分をチューニングするために今年やってみたこと
優之 田中
Más contenido relacionado
La actualidad más candente
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
Azure App Service 運用体験談 ~コスト節約しようとしてダウンした App Service~
Azure App Service 運用体験談 ~コスト節約しようとしてダウンした App Service~
Tomotaka Suzuki(御成門プログラマー)
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Amazon Web Services Japan
おひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
Makio Tsukamoto
CodeBuildを身近にするためのはじめの一歩
CodeBuildを身近にするためのはじめの一歩
淳 千葉
Black Belt Online Seminar Amazon CloudWatch
Black Belt Online Seminar Amazon CloudWatch
Amazon Web Services Japan
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
Amazon Web Services
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
Trainocate Japan, Ltd.
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS Cognito
AWS Black Belt Online Seminar 2017 AWS Cognito
Amazon Web Services Japan
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
Takeshi Mikami
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Amazon Web Services Japan
Krugle Short 202309v30.pdf
Krugle Short 202309v30.pdf
JunKawakita1
Introduction to Amazon Relational Database Service
Introduction to Amazon Relational Database Service
Amazon Web Services
SAP on Azure インフラ設計解説:HA/DR、Backupからパフォーマンス最適化まで
SAP on Azure インフラ設計解説:HA/DR、Backupからパフォーマンス最適化まで
Hitoshi Ikemoto
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
Amazon Web Services Japan
20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon Athena
Amazon Web Services Japan
セキュリティ設計の頻出論点
セキュリティ設計の頻出論点
Tomohiro Nakashima
Amazon Pinpoint × グロースハック活用事例集
Amazon Pinpoint × グロースハック活用事例集
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS X-Ray
AWS Black Belt Online Seminar 2017 AWS X-Ray
Amazon Web Services Japan
La actualidad más candente
(20)
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Azure App Service 運用体験談 ~コスト節約しようとしてダウンした App Service~
Azure App Service 運用体験談 ~コスト節約しようとしてダウンした App Service~
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
おひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
CodeBuildを身近にするためのはじめの一歩
CodeBuildを身近にするためのはじめの一歩
Black Belt Online Seminar Amazon CloudWatch
Black Belt Online Seminar Amazon CloudWatch
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
AWS Black Belt Online Seminar 2017 AWS Cognito
AWS Black Belt Online Seminar 2017 AWS Cognito
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Krugle Short 202309v30.pdf
Krugle Short 202309v30.pdf
Introduction to Amazon Relational Database Service
Introduction to Amazon Relational Database Service
SAP on Azure インフラ設計解説:HA/DR、Backupからパフォーマンス最適化まで
SAP on Azure インフラ設計解説:HA/DR、Backupからパフォーマンス最適化まで
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon Athena
セキュリティ設計の頻出論点
セキュリティ設計の頻出論点
Amazon Pinpoint × グロースハック活用事例集
Amazon Pinpoint × グロースハック活用事例集
AWS Black Belt Online Seminar 2017 AWS X-Ray
AWS Black Belt Online Seminar 2017 AWS X-Ray
Destacado
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
Kouhei Sutou
自分をチューニングするために今年やってみたこと
自分をチューニングするために今年やってみたこと
優之 田中
Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ Fess
Shinsuke Sugaya
機械学習で名古屋っぽいを判定する
機械学習で名古屋っぽいを判定する
優之 田中
JMeter基礎
JMeter基礎
優之 田中
普通のWebエンジニアに学ぶ テーブル設計指南書
普通のWebエンジニアに学ぶ テーブル設計指南書
優之 田中
【読書会】プロになるためなるためのWeb技術入門
【読書会】プロになるためなるためのWeb技術入門
優之 田中
NGUIでスクロールビュー
NGUIでスクロールビュー
優之 田中
サーバ構築実践入門
サーバ構築実践入門
優之 田中
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
ひとし あまの
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Shinsuke Sugaya
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
Kentaro Yoshida
ナレッジを共有する文化をつくるために
ナレッジを共有する文化をつくるために
Recruit Lifestyle Co., Ltd.
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
Takuya Akiba
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Recruit Technologies
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
Yuji Nojima
0からわかるAlfresco
0からわかるAlfresco
MoritakaSoma
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
yoyamasaki
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説
Livesense Inc.
Destacado
(20)
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
自分をチューニングするために今年やってみたこと
自分をチューニングするために今年やってみたこと
Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ Fess
機械学習で名古屋っぽいを判定する
機械学習で名古屋っぽいを判定する
JMeter基礎
JMeter基礎
普通のWebエンジニアに学ぶ テーブル設計指南書
普通のWebエンジニアに学ぶ テーブル設計指南書
【読書会】プロになるためなるためのWeb技術入門
【読書会】プロになるためなるためのWeb技術入門
NGUIでスクロールビュー
NGUIでスクロールビュー
サーバ構築実践入門
サーバ構築実践入門
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
ナレッジを共有する文化をつくるために
ナレッジを共有する文化をつくるために
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
0からわかるAlfresco
0からわかるAlfresco
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説
Más de 優之 田中
CloudFormationを活用したリソース管理と環境構築の自動化
CloudFormationを活用したリソース管理と環境構築の自動化
優之 田中
NGUI基礎
NGUI基礎
優之 田中
Unity2Dを使ったミニゲーム開発のすすめ
Unity2Dを使ったミニゲーム開発のすすめ
優之 田中
【名古屋】2014/2/8 Unity勉強会2
【名古屋】2014/2/8 Unity勉強会2
優之 田中
【名古屋】2014/2/8 Unity勉強会1
【名古屋】2014/2/8 Unity勉強会1
優之 田中
NGUIでimage button
NGUIでimage button
優之 田中
NGUIとUnity2Dをつかってみた
NGUIとUnity2Dをつかってみた
優之 田中
Linux基礎2回目
Linux基礎2回目
優之 田中
Linuxの基礎勉強会
Linuxの基礎勉強会
優之 田中
ネットワーク基礎勉強会2回目
ネットワーク基礎勉強会2回目
優之 田中
【読書会】ネットワークのきそ
【読書会】ネットワークのきそ
優之 田中
Más de 優之 田中
(11)
CloudFormationを活用したリソース管理と環境構築の自動化
CloudFormationを活用したリソース管理と環境構築の自動化
NGUI基礎
NGUI基礎
Unity2Dを使ったミニゲーム開発のすすめ
Unity2Dを使ったミニゲーム開発のすすめ
【名古屋】2014/2/8 Unity勉強会2
【名古屋】2014/2/8 Unity勉強会2
【名古屋】2014/2/8 Unity勉強会1
【名古屋】2014/2/8 Unity勉強会1
NGUIでimage button
NGUIでimage button
NGUIとUnity2Dをつかってみた
NGUIとUnity2Dをつかってみた
Linux基礎2回目
Linux基礎2回目
Linuxの基礎勉強会
Linuxの基礎勉強会
ネットワーク基礎勉強会2回目
ネットワーク基礎勉強会2回目
【読書会】ネットワークのきそ
【読書会】ネットワークのきそ
PHPで全文検索エンジンをつくるまで
1.
PHPで全文検索エンジンをつくるまで @masayuki5160 14年12月3日水曜日
2.
はじめに 以前から検索エンジンをつくってみたいなーと思ってい て、やっとつくれました。やはり面白い分野だったんで
すが、かなり広範な知識が必要でした。でも大学でちゃ んと習ったことばかりだったという、、先生方すいませ んw そんな話をつらつらまとめます。難しい話ではないで す。今まで縁がなかった人向けに少しだけまとめます。 PHPを選択しているのはPHPならわかる人多いよね、とい う理由です。 14年12月3日水曜日
3.
本資料の対象者 こんな人に向けて話します。 •
全文検索エンジンなにそれ? • PHPしかわからんけど、興味ある! • 独学したけど、挫折しちゃった。。 詳しい方はぜひ間違ってる点など指摘頂けると助かりま す! 14年12月3日水曜日
4.
アジェンダ 1. 全文検索エンジンを作ってみるまで
(1) 自然言語処理 (2) クローラー 2. 全文検索エンジンの開発(Mecabを使用) (1) 概要 (2) 実際のソース 3. 全文検索エンジンをつくってみて 14年12月3日水曜日
5.
アジェンダ 検索エンジン 自然言語処理
クローラ それぞれ検索エンジンをつくるために必要な知識。でも、異なる分野 だったりするのでややこい。さらに人工知能の話もここに絡んできた りすることもあるのでさらにとっつきにくく見えます。 14年12月3日水曜日
6.
んじゃはじめます。 まずは自然言語処理のお話から。 14年12月3日水曜日
7.
1-(1) 自然言語処理 ヒトが日常話している言葉をコンピュータに認識させる
処理、技術のこと。ちょっと考えればわかるけど、これ ってすごい大変。たとえば、 • 英語、日本語... など言語はいっぱい • それぞれの言語で文法違うよね 検索エンジンを作るときにはこれをクリアする必要があ る。まずは基本から、ということで"わかち書き"のお話 し。 14年12月3日水曜日
8.
1-(1) 自然言語処理 •
わかち書き 語の区切りに空白をはさんで記述することをわかち書き といいます。つまり 日本語はわかち書き、英語は違いま すね。英語はわかち書きではないので、空白をつかえば 語を区切っていくことが容易にできそうですね。 でも日本語は、、うまく語を区切ると難しいですよね。 というわけで形態素解析のお話しにいきましょう。 14年12月3日水曜日
9.
1-(1) 自然言語処理 •
形態素解析 さあ困った、ということで日本語の文法の知識(文法の ルールの集まり)や辞書(品詞等の情報付きの単語リス ト)を情報源として用い形態素(日本語で意味を持つ最小 単位)に分割することを"形態素解析"といいます。 形態素解析をするとどうなるか、こんな感じです。 ※Mecabを使用したサンプルです. Mecabについては後述. 14年12月3日水曜日
10.
1-(1) 自然言語処理 形態素解析する文章
Mecabのテストです 14年12月3日水曜日
11.
1-(1) 自然言語処理 これを形態素解析してみると、、
14年12月3日水曜日
12.
1-(1) 自然言語処理 Mecab
=> 名詞,固有名詞,組織,,,, の => 助詞,連体化,,,,,の,ノ,ノ テスト => 名詞,サ変接続,,,,,テスト,テスト,テスト です => 助動詞,,,*,特殊・デス,基本形,です,デス, デス 14年12月3日水曜日
13.
1-(1) 自然言語処理 形態素に分割されてますね!
14年12月3日水曜日
14.
1-(1) 自然言語処理 ということで形態素解析をすることで日常話している言
葉をコンピュータに認識させることできそうですね。 でも形態素解析のプログラムなんてつくってたら大変 だ~、、ということで先ほどでてきた"Mecab"の紹介。 14年12月3日水曜日
15.
1-(1) 自然言語処理 •
Mecab オープンソースの日本語形態素解析エンジンで品詞情報 を利用した解析・推定を行うことができます。MeCabは Googleが公開した大規模日本語n-gramデータの作成にも 使用されています。 セットアップもけっこう簡単。インストール手順につい ては下記を参照。 MecabをEC2上にインストールする 14年12月3日水曜日
16.
1-(1) 自然言語処理 •
まとめ 自然言語処理のざっくり基本的なお話しはこの程度で。 今回はMecabを使用した全文検索エンジンを実装する前提 でしたので形態素解析のお話しのみ駆け足でしました が、もちろん分かち書きの言語を分割するのは別の方法 もあります(n-gram解析など)。 奥が深い分野ですのでぼくもまだまだ勉強中。。 14年12月3日水曜日
17.
んで次はクローラーのお話! 14年12月3日水曜日
18.
1-(2) クローラー クローラーとは、Webページから自動で情報収集するプ
ログラムのこと。たとえば、 • Googleの検索エンジン • マーケティング分析で使用するためにSNSの書き込み を収集するプログラム • 特定のサイトをチェックにいくプログラム など。意外に身近でお世話になってるものばかりですよ ね。 14年12月3日水曜日
19.
1-(2) クローラー んじゃどう実装してるの、てなりますが実際にみてみる
のが早いと思いますので今回は下記2例を紹介します。 • Wgetでクローラー • Twitterのクローリング(API経由) というわけでお話をしていきますが、 クローラーは設定 次第で短時間に大量のリクエストを任意のサービス、サ ーバにおくることになります。そのあたりをしっかり理 解して実装していってください。 14年12月3日水曜日
20.
1-(2) クローラー •
Wgetでクローラー Wgetはなにかしらのサーバセットアップするときに使用 したことあるかと思います。有名なダウンローダーです ね。 $ wget http://hogehoge/test.txt て感じで気軽にダウンロードできますよね。このWgetが なんでクローラーかというと、再帰ダウンロード機能が あるから! 14年12月3日水曜日
21.
1-(2) クローラー •
Wgetでクローラー “再帰ダウンロード”とは任意のページ内のURLリンク先も ダウンロードするよ、てこと。使い方はこんな感じ。 $ wget -r -l2 http://hogehoge/test.html “-r”が再帰ダウンロードすることを指定し、-l(数字)で最 初のページからリンク先を辿る回数を指定します。(幅優 先探索ですね) 14年12月3日水曜日
22.
1-(2) クローラー •
Wgetでクローラー というわけで、“再帰ダウンロード”のおかげで、Wgetは ダウンロードしたHTMLを解析してリンク抽出まで可能な のでWgetは立派なクローラーとして機能しそうですね。 ぜひ試しにWgetでクローリングしてみてください! さて次はTwitterのクローリングのお話。 14年12月3日水曜日
23.
1-(2) クローラー •
Twitterのクローリング Wgetを使ったクローリングで気づいたと思いますが、ク ローラーを作るときに必要なのがHTMLの解析処理。でも 今回は下記理由からAPI経由でのクローリングを行いま す。 • HTML解析はやっぱり手間 • サイトがかわったら解析処理の修正もいる • HTMLだと収集可能なデータが限定(Twitterの場合) 14年12月3日水曜日
24.
1-(2) クローラー •
Twitterのクローリング というわけでTwitter APIを使用したクローラーを作るので すが、 Twitter APIを使用したドキュメントは数多くあるの で詳細は割愛します。 ソースはこんな感じでできますのでぜひお試しください. 14年12月3日水曜日
25.
1-(2) クローラー •
まとめ なんとなく感じたと思いますが、クローラーはクローラ ーでまた別の分野、てくらい掘り下げるといろいろでて くる奥深いもの。 ・どうクロールする? ・負荷は? ・ログイン画面とかあったらどないする? とかね。いろいろ調べてみるとこれまたおもしろい。 14年12月3日水曜日
26.
さて、やっと本題の全文検索エンジ ンのお話ですw 14年12月3日水曜日
27.
2 全文検索エンジンの開発 やっとここまできましたw
でもいままでの自然言語処 理、クローラーの部分て全文検索エンジンを作りはじめ るのに実は必要な知識だったりします。 で今回作ってみる全文検索エンジンですが、 • PHP • MySQL • Mecab て環境でいきます。この方がイメージつく方多いのでい いかと思います。 14年12月3日水曜日
28.
2-(1) 概要 •
概要図(検索するとき) PHPサーバMySQL 検索ワードをGET送信 転置インデックスから検索 14年12月3日水曜日
29.
2-(1) 概要 •
概要図(インデックスを作るとき) PHPサーバ (Mecabでの形態素解析) MySQL ・解析対象ドキュメントを格納 ・転置インデックスを格納 ポイントは”転置インデックス” 14年12月3日水曜日
30.
2-(1) 概要 •
転置インデックス ざっくりいうと"本の索引"みたいなもの。はてなキーワ ード"転置インデックス"の説明がわかりやすい。例えば 下記のようなものが転置インデックス。 単語ドキュメントID Pearl 1, 2, 304 ... Perl 1, 5, 10, 12, 15 ... Python 5, 10, 32 ... 14年12月3日水曜日
31.
2-(1) 概要 •
転置インデックス 転置インデックスのテーブルを作成しておくことで検索 したいワードがきまればそれに紐づくドキュメントはす ぐわかるよね、ということです。 で、このテーブル"転置インデックス"をつくるために前述 の形態素解析(Mecab)を使用していく、ということ。 14年12月3日水曜日
32.
2-(2) 実際のソース というわけで実際のソースはこんな感じでできます。
今回は前述のTwitterよりクローリングして取得したデー タを全文検索できるよう転置インデックスを作成してい ます。下記のような感じで動作します。 14年12月3日水曜日
33.
3 全文検索エンジンをつくってみて もちろんここから改善するポイントもありますが、こ
こまでやったから興味がでてくることってけっこうあり ます。たとえば、 • OSSの全文検索エンジンてどうなってんの? • 形態素解析してあつめたトークンをもとにテキスト マイニングしてみたいよね • もうひと踏ん張りすれば機械学習もいけるね 突っ込んで調べてみるとおもしろいと思います、ぜひ。 14年12月3日水曜日
34.
おわりに ざっくりの説明でしたが、それぞれ奥深い分野ですので 突っ込んで調べてみると面白いと思います。
参考文献にも記載していますが、最近なぜか関連の良書 がどんどんできてますのでそちらを読むとさらに理解も 深まっていいかと思いますのでぜひー 14年12月3日水曜日
35.
おわり! 14年12月3日水曜日
36.
参考文献 • PHPによる機械学習(PHPで、ていうのがとっつきやすくいい本でした。
Mecabについても詳しいです。) • 検索エンジン自作入門~手を動かしながら見渡す検索の舞台裏(非常に難 解ですが良書ですね。) • Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例(ク ローラーのお話が詳しいかつRubyなのでよみやすいですね。あと実例が 豊富なのもうれしい。) • [Web開発者のための]大規模サービス技術入門(Perlでの全文検索エンジ ン開発の章があります。) 14年12月3日水曜日
Descargar ahora