![Page 1: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/1.jpg)
文字情報の分析基盤Mroonga
株式会社インサイトテクノロジー
2016年10月4日 data analytics showcase
1
![Page 2: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/2.jpg)
今までの全文検索の課題
•リアルタイム性の壁
•性能問題
•検索ノイズや検索漏れの問題
•辞書を必要とする形態素解析
2
![Page 3: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/3.jpg)
徹底検証、Mroonga!!
3
![Page 4: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/4.jpg)
全文検索のしくみ ~転置インデックス作成~
4
![Page 5: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/5.jpg)
全文検索のしくみ ~検索時の動作~
5
![Page 6: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/6.jpg)
転置インデックス ~2種類の方式による違い~
6
![Page 7: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/7.jpg)
検索ノイズの例
7
意図せずヒットする ヒットしない
![Page 8: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/8.jpg)
検索漏れの例(ヒットして欲しい)
8
意図せずヒットしないヒットする
![Page 9: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/9.jpg)
転置インデックスの方式の違いの例例:192.10.9.26: IF-MIB/ifHCInOctets_psec(1)=400...
Mecab(InnoDB)N-Gram(InnoDB)
9
![Page 10: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/10.jpg)
実際のインデックスサイズ
10
![Page 11: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/11.jpg)
検索性能
11
![Page 12: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/12.jpg)
検索性能
12
![Page 13: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/13.jpg)
N-Gramの検索ノイズの比較
13
InnoDB N-Gram:意図しない結果が返ってきた例 Mroonga(Bigram)の場合
![Page 14: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/14.jpg)
形態素解析 Mecabの検索漏れの比較
14
Mroonga mecab:’tcpAttemptFails’でも’tcpAttemptFail’でもヒットInnoDB mecab:’tcpAttemptFails’ではヒット
InnoDB mecab:’tcpAttemptFail’ではヒットしない
![Page 15: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/15.jpg)
Mroongaの優れている点(1)
安定して速いカラムストアであるため、I/Oが少ないN-Gram(TokenBigram)、Mecabでも速い
15
![Page 16: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/16.jpg)
Mroongaの優れている点(2)
検索結果が安定している再現率/適合率のバランスが良く利用者にとって扱いやすい
16
![Page 17: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/17.jpg)
Mroonga(Groonga)が解決したこと
•リアルタイム性の壁カラム型データストアを採用しリアルタイムに検索結果を反映
データを追加しながらでも検索の性能が落ちない
•性能問題N-gramでも形態素解析(Mecab)でも安定して速い
•検索ノイズや検索漏れの問題(再現率/適合率の問題)N-gramでもMecabでも安定した検索結果
•辞書を必要とする形態素解析デフォルトのN-Gram(TokenBigram)でも安定した速さ
17
![Page 18: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/18.jpg)
結論
文字列分析基盤としてMroongaは使える!!
18
![Page 19: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/19.jpg)
DemoMroonga使ってTweet感情分析アプリを作成!!
19
![Page 20: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/20.jpg)
システム構成
20
Tweet Collector
StreamingAPI
insert
![Page 21: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/21.jpg)
ネガポジ判定の仕組み
21
MeCabによる形態素解析
p = positive(+1) e = even(±0)n = negative(-1) o = 該当なし
0+1+1
(助詞を省いた分かち書きの例)
極性辞書を用いてネガポジ判定
= 0.666667辞書に登録されている単語の平均を計算 :3
![Page 22: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/22.jpg)
StreamingAPIでとれるデータの中身
22
![Page 23: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/23.jpg)
Demo
23
![Page 24: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎](https://reader033.vdocuments.site/reader033/viewer/2022051521/586fdf521a28ab18428b6f79/html5/thumbnails/24.jpg)
このデモを通して伝えたいこと
•データ分析には可視化が重要•活用形を検索対象に含めるには、きちんとした日本語形態素解析が重要
•リアルタイムで処理できてるのはMroongaのおかげ(たぶん)
24