[data analytics showcase] B14: 文字情報の分析基盤 Mroonga by...

24
文字情報の分析基盤 Mroonga 株式会社インサイトテクノロジー 2016104data analytics showcase 1

Transcript of [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by...

Page 1: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

文字情報の分析基盤Mroonga

株式会社インサイトテクノロジー

2016年10月4日 data analytics showcase

1

Page 2: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

今までの全文検索の課題

•リアルタイム性の壁

•性能問題

•検索ノイズや検索漏れの問題

•辞書を必要とする形態素解析

2

Page 3: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

徹底検証、Mroonga!!

3

Page 4: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

全文検索のしくみ ~転置インデックス作成~

4

Page 5: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

全文検索のしくみ ~検索時の動作~

5

Page 6: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

転置インデックス ~2種類の方式による違い~

6

Page 7: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

検索ノイズの例

7

意図せずヒットする ヒットしない

Page 8: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

検索漏れの例(ヒットして欲しい)

8

意図せずヒットしないヒットする

Page 9: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

転置インデックスの方式の違いの例例:192.10.9.26: IF-MIB/ifHCInOctets_psec(1)=400...

Mecab(InnoDB)N-Gram(InnoDB)

9

Page 10: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

実際のインデックスサイズ

10

Page 11: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

検索性能

11

Page 12: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

検索性能

12

Page 13: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

N-Gramの検索ノイズの比較

13

InnoDB N-Gram:意図しない結果が返ってきた例 Mroonga(Bigram)の場合

Page 14: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

形態素解析 Mecabの検索漏れの比較

14

Mroonga mecab:’tcpAttemptFails’でも’tcpAttemptFail’でもヒットInnoDB mecab:’tcpAttemptFails’ではヒット

InnoDB mecab:’tcpAttemptFail’ではヒットしない

Page 15: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

Mroongaの優れている点(1)

安定して速いカラムストアであるため、I/Oが少ないN-Gram(TokenBigram)、Mecabでも速い

15

Page 16: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

Mroongaの優れている点(2)

検索結果が安定している再現率/適合率のバランスが良く利用者にとって扱いやすい

16

Page 17: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

Mroonga(Groonga)が解決したこと

•リアルタイム性の壁カラム型データストアを採用しリアルタイムに検索結果を反映

データを追加しながらでも検索の性能が落ちない

•性能問題N-gramでも形態素解析(Mecab)でも安定して速い

•検索ノイズや検索漏れの問題(再現率/適合率の問題)N-gramでもMecabでも安定した検索結果

•辞書を必要とする形態素解析デフォルトのN-Gram(TokenBigram)でも安定した速さ

17

Page 18: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

結論

文字列分析基盤としてMroongaは使える!!

18

Page 19: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

DemoMroonga使ってTweet感情分析アプリを作成!!

19

Page 20: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

システム構成

20

Tweet Collector

StreamingAPI

insert

Page 21: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

ネガポジ判定の仕組み

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 株式会社インサイトテクノロジー 小幡 一郎

StreamingAPIでとれるデータの中身

22

Page 23: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

Demo

23

Page 24: [data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎

このデモを通して伝えたいこと

•データ分析には可視化が重要•活用形を検索対象に含めるには、きちんとした日本語形態素解析が重要

•リアルタイムで処理できてるのはMroongaのおかげ(たぶん)

24