Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

457 views

Published on

今後取り扱いがますます重要となっている非構造データ。非構造データの代表的なデータの一つに、メールや報告書、プレゼンなどの人間が生み出すデータ、文章があります。文章データを有効活用するには全文検索が可能なデータ分析基盤が欠かせませんが、高速な日本語全文検索エンジンとして、カラムナーDBであるMroongaが注目されています。モチベーション診断、トレンド分析など様々な用途が期待できる基盤としてのMroongaを、独自に行った性能評価やデモを通して展望します。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

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

×