rabbit-slide-myokoym-sapporoonga-20150614-2 2015.6.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b1064195128069f34502414bb50e7ba54433d14b
4
+ data.tar.gz: 9fa81db57746a2a34a019114576a2a608dc0be21
5
+ SHA512:
6
+ metadata.gz: 5a174f5f4681168e6de91d8ab462e1b9d1da6ed11968260b50bc2463939ee9d17ee156fa0074ce9581100c0c511d2ab49643bb93703c2a35badad5ee133c8830
7
+ data.tar.gz: 954a06eb1fe9372306446427078e3d345805cac7ce4959fe4e75b11044354d32a08fb6630a7ff1f3ea585d7931f3138f0c8fd32aee09a09802dfddd66ed5259e
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ basic-mechanism-of-full-text-search.rab
data/README.rd ADDED
@@ -0,0 +1,24 @@
1
+ = 全文検索の基本的なしくみ
2
+
3
+ 全文検索の基本的なしくみ(ノーマライズ、トークナイズ、転置インデックス)について
4
+
5
+ == 作者向け
6
+
7
+ === 表示
8
+
9
+ rake
10
+
11
+ === 公開
12
+
13
+ rake publish
14
+
15
+ == 閲覧者向け
16
+
17
+ === インストール
18
+
19
+ gem install rabbit-slide-myokoym-sapporoonga-20150614-2
20
+
21
+ === 表示
22
+
23
+ rabbit rabbit-slide-myokoym-sapporoonga-20150614-2.gem
24
+
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ spec.add_runtime_dependency("rabbit-theme-nyankosakana")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
@@ -0,0 +1,198 @@
1
+ = 全文検索の\n基本的なしくみ
2
+
3
+ # : subtitle
4
+ # サブタイトル
5
+ : author
6
+ @myokoym
7
+ # : institution
8
+ # 株式会社クリアコード
9
+ : content-source
10
+ 全文検索エンジンGroonga勉強会@札幌
11
+ : date
12
+ 2015-06-14
13
+ : allotted-time
14
+ 18m
15
+ : theme
16
+ nyankosakana
17
+
18
+ = 全文検索の流れ
19
+
20
+ * 文書を登録
21
+ * キーワードで検索
22
+
23
+ = 登録の流れ
24
+
25
+ * ノーマライズ
26
+ * トークナイズ
27
+ * トークンをキーとして文書IDをインデックスに登録
28
+
29
+ = 検索の流れ
30
+
31
+ * ノーマライズ
32
+ * トークナイズ
33
+ * トークンでインデックスを検索
34
+ * 文書IDを取得
35
+
36
+ = 用語
37
+
38
+ * ノーマライズ
39
+ * トークナイズ
40
+ * トークン
41
+
42
+ = ノーマライズ
43
+
44
+ * 正規化
45
+ * 大文字小文字、全角半角などを揃える
46
+ * ノーマライザーによって挙動が変わる
47
+
48
+ = トークナイズ
49
+
50
+ * 文書やキーワードをトークンに分割する
51
+ * トークナイザーによって分け方が異なる
52
+ * 大きく分けるとN-gramと形態素解析の2種類
53
+
54
+ = N-gram
55
+
56
+ * 文字数で分割する
57
+ * bi-gramは2文字ごと
58
+ * tri-gramは3文字ごと
59
+
60
+ = 形態素解析
61
+
62
+ * 品詞を判別して分割する
63
+ * 別途辞書が必要
64
+
65
+ = トークン
66
+
67
+ * インデックスのキー
68
+ * Groongaで採用している転置インデックス方式では、トークンごとに文書リストが作成される
69
+
70
+ = トークナイズの例
71
+
72
+ (('tag:center'))
73
+ 東京都府中市
74
+
75
+ = bi-gram
76
+
77
+ (('tag:center'))
78
+ 東京/京都/都府/府中/中市/市
79
+
80
+ = tri-gram
81
+
82
+ (('tag:center'))
83
+ 東京都/京都府/都府中/府中市/中市/市
84
+
85
+ = 形態素解析
86
+
87
+ (('tag:center'))
88
+ 東京/都/府中/市
89
+
90
+ = 全文検索の流れ
91
+
92
+ * 文書を登録
93
+ * キーワードで検索
94
+
95
+ = 全文検索の流れ
96
+
97
+ * ((*文書を登録*))
98
+ * キーワードで検索
99
+
100
+ = 登録の流れ
101
+
102
+ * ノーマライズ
103
+ * トークナイズ
104
+ * トークンをキーとして文書IDをインデックスに登録
105
+
106
+ = サンプル文書
107
+
108
+ # RT
109
+
110
+ 文書ID, 内容
111
+
112
+ 1, カレー食べた
113
+ 2, カレ-食べたい
114
+ 3, カレー好き
115
+
116
+ = ノーマライズ
117
+
118
+ * 1. カレー食べた
119
+ * 2. カレー食べたい
120
+ * 3. カレー好き
121
+
122
+ = トークナイズ
123
+
124
+ * MeCabの例
125
+ * 1. カレー/食べ/た
126
+ * 2. カレー/食べ/たい
127
+ * 3. カレー/好き
128
+
129
+ = インデックスに登録
130
+
131
+ # RT
132
+
133
+ キー, 文書IDリスト
134
+
135
+ カレー, [1 2 3]
136
+ 食べ, [1 2]
137
+ た, [1]
138
+ たい, [2]
139
+ 好き, [3]
140
+
141
+ = 全文検索の流れ
142
+
143
+ * 文書を登録
144
+ * ((*キーワードで検索*))
145
+
146
+ = 検索の流れ
147
+
148
+ * ノーマライズ
149
+ * トークナイズ
150
+ * トークンでインデックスを検索
151
+ * 文書IDを取得
152
+
153
+ = サンプルキーワード
154
+
155
+ * 食べた
156
+
157
+ = ノーマライズ
158
+
159
+ * 食べた
160
+ * ノーマライズ対象なし
161
+
162
+ = トークナイズ
163
+
164
+ * 食べ/た
165
+
166
+ = インデックス(再掲)
167
+
168
+ # RT
169
+
170
+ キー, 文書IDリスト
171
+
172
+ カレー, [1 2 3]
173
+ 食べ, [1 2]
174
+ た, [1]
175
+ たい, [2]
176
+ 好き, [3]
177
+
178
+ = トークンでインデックスを検索
179
+
180
+ * 食べ -> [1 2]
181
+ * た -> [1]
182
+
183
+ = 文書IDを取得
184
+
185
+ * [1]
186
+ * 両方含まれるもの
187
+ * 設定によって出現位置も調べる
188
+ * 隣り合っているかどうかなど
189
+
190
+ = ヒット1件
191
+
192
+ (('tag:center'))
193
+ カレー食べた
194
+
195
+ = ポイント
196
+
197
+ * 登録と検索で同じノーマライザーとトークナイザーを使う必要がある
198
+ * それはなぜか?
data/config.yaml ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: sapporoonga-20150614-2
3
+ base_name: basic-mechanism-of-full-text-search
4
+ tags:
5
+ - rabbit
6
+ - full-text-search
7
+ - groonga
8
+ presentation_date: 2015-06-14
9
+ version: 2015.6.14.0
10
+ licenses:
11
+ - CC BY-SA 4.0
12
+ slideshare_id:
13
+ speaker_deck_id:
14
+ ustream_id:
15
+ vimeo_id:
16
+ youtube_id:
17
+ author:
18
+ markup_language: :rd
19
+ name: Masafumi Yokoyama
20
+ email: myokoym@gmail.com
21
+ rubygems_user: myokoym
22
+ slideshare_user: myokoym
23
+ speaker_deck_user: myokoym
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-myokoym-sapporoonga-20150614-2
3
+ version: !ruby/object:Gem::Version
4
+ version: 2015.6.14.0
5
+ platform: ruby
6
+ authors:
7
+ - Masafumi Yokoyama
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rabbit-theme-nyankosakana
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: "全文検索の基本的なしくみ(ノーマライズ、トークナイズ、転置インデックス)について"
42
+ email:
43
+ - myokoym@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".rabbit"
49
+ - README.rd
50
+ - Rakefile
51
+ - basic-mechanism-of-full-text-search.rab
52
+ - config.yaml
53
+ - pdf/sapporoonga-20150614-2-basic-mechanism-of-full-text-search.pdf
54
+ homepage: http://slide.rabbit-shocker.org/authors/myokoym/sapporoonga-20150614-2/
55
+ licenses:
56
+ - CC BY-SA 4.0
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.2.2
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: "全文検索の基本的なしくみ"
78
+ test_files: []