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.

Apache sparkとapache cassandraで行うテキスト解析

260 views

Published on

Cassandra Summit Tokyo 2017

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Apache sparkとapache cassandraで行うテキスト解析

  1. 1. Apache SparkとApache Cassandraで行うテキスト解析 株式会社 INTHEFOERST 冨田 和孝
  2. 2. 自己紹介 冨田 和孝 肩書き: 株式会社INTHEFOREST 代表取締役社長 Cassandraコンサルティング Cassandra Conference in Tokyo / Cassandra Summit JPN Organizer Cassandra勉強会主宰 2か月に一度程度開催。第38回まで開催しています。 職種:DB・インフラ屋 以前、某レストランサーチのDBA 高負荷・大容量・大規模のOracleRACとPostgreSQLと MySQLに苦しめられ続けた経験あり。 元々は社会言語学(日本語)専攻(言語認知)
  3. 3. 自己紹介 Tim Berglund Global Director of Training COMPLETED HAS COMPLETED Kazutaka Tomita as a part of the: DataStax Certific a t ion Pr ogram. Apache CassandraTM Professional Certifica t ion SEPTEMBER 8 2016 Tim Berglund Global Director of Training
  4. 4. Agenda  自然言語解析とは  日本語の特徴  Apache Spark ML + Apache Cassandra
  5. 5. 自然言語解析とは 自然言語とは 人間がお互いにコミュニケー ションを行うための自然発生的 な言語を指します。 自然言語処理とは、 人間が日常的に使っている自 然言語をコンピューターに処 理させる為の一連の技術です。
  6. 6. 自然言語解析とは  ネガポジ判定等(回帰分析)  ラベリング(クラス分類)  傾向分析(クラスタリング)
  7. 7. ネガポジ判定等(回帰分析)  特定の単語をポジティブ(プラス値)、ネガティブ(マ イナス値)に設定し、その単語を持つ文章のポジション を計算し、ある一定の閾値の上下に座標が配置されるこ とにより文章としてのネガティブポジティブを判定 嬉しい: +1 笑顔:+1 泣く:0 怒った:0
  8. 8. ラベリング(クラス分類)  どのようにラベル付けするかのデータを用意し、入 力された文章がどのラベルの文章に近いか判断しラ ベルの付けを行う 今日の朝は寒かった:「天気」 私は元気です。:「あいさつ」 おはよう。:「あいさつ」 明日の午後3時に会いましょう:「約束」
  9. 9. 傾向分析(クラスタリング)  文章に含まれる要語を基準に似た要語を含む文章 を集約し含まれる用語の特徴などから傾向を分析 する 昨日楽しいお話をした。 合コンをしたい。 女子会の予定は明日です。 こ汚いおっさんが隣に座って辛い。 さえない日々を送ってる。 徹夜明けでラーメンを食べに行こう。 尾行をしていたら凄い場面に出会った。 拳銃の取引の現場を抑えた。
  10. 10. 日本語の特徴 日本語のように単語間に空白文字が無い言語の場 合、単語と単語の区切りを判定し、文字を分割す る特別な前処理が必要となる。この処理を「形態 素解析」という。 私 は 朝 ご飯 を 食べ た。 形態素を座標点に文章のベクトル化を行うのが一般的
  11. 11. 日本語の特徴 助詞・助動詞によって、文章の意味が 異なってしまう。 以下の三つの文章を 比較した場合 私は朝ご飯を食べた。 私は朝ご飯を食べない。 私は朝ご飯を食べなかった。
  12. 12. 日本語の特徴 形態素で切り分けた場合、、助詞・助動詞の中でも膨 大な数の言葉が存在し、座標点が多くなりすぎる。 私 は ご飯 を 食べ た 。 私 は ご飯 を 食べ なかっ た 。 私はご飯を食べた。 私はご飯を食べなかった。
  13. 13. 日本語の特徴 私は ご飯を 食べた。 私はご飯を食べた。 私 は ご飯 を 食べ た。 私は ご飯を 食べなかった。 私はご飯を食べなかった。 私 は ご飯 を 食べ なかっ た。 一歩進めて文節を座標にしてみた。
  14. 14. Sparkとは  2009年のUC Berkeleyでの研究プロジェクト  高速かつ汎用のクラスタコンピューティングシステム  API:Scala、Java、Python、およびR  200社以上の企業の1,000人以上の開発者が開発
  15. 15. Cassandraとは  オープンソース  単一障害点(SPOF)がない  リニアなスケーラビリティ性能  すべてがアクティブな設計  透過的にエラーを検出、回復  マルチデータセンター レプリケーション  CQL (Cassandra Query Language) Amazon Dynamoの分散ハッシュテーブル(DHT)とGoogle Big Tableの KVSの2つの特徴を併せ持つビッグデータ用分散データベース
  16. 16. SparkとCassandra Spark Cluster Cassandra Cluster Driver Executor task slot task task task slot Executor task slot task task task slot Executor task slot task task task slot Node Node Node Sparkでは,タスクの割り当ての際にデータアクセスの局所性(ローカリティ)が考慮される
  17. 17. 機械学習実行方法 Full dataset ト レ ー ニ ン グ デ ー タ テ ス ト デ ー タ features ラベル モデル 精度 予測 新規入力
  18. 18. 機械学習実行方法 私は ご飯を 食べた 私は お肉を 食べた 食べなかった 私は ご飯を 食べなかった S1: S2: あなたは お肉を 食べなかったS3: 座標点 :P1 :P4 :P3 :P5 あなたは :P2 ご飯を :P6 座標 S1:{P1,P3,P5} S2:{P1,P3,P6} S3:{P2,P4,P6}
  19. 19. 言語解析と機械学習  ロジスティック回帰  二項分類  ロジスティック関数  ナイーブベイズ分類器  多項分類  ベイズの定理  ゼロ頻度問題
  20. 20. ロジスティック回帰 ロジスティック関数 2値ロジスティック回帰 ある前提に対応する状態を特定など 「ポジティブ=1」と「ネガティブ=0」 xの値が大きくなると値が1に近づく(分母が1に近づくので) xの値が小さくなると値が0に近づく(分母が∞に近づくので) xが0の時に値は1/2になる。
  21. 21. ナイーブベイズ分類器 ベイズの定理 ある事象Bが起こる条件下で、別の事象Aが起こる確率のこと。 ゼロ頻度問題 ある単語の生起する確率を、学習データに利用したコーパス全体の中で その単語が出現した相対頻度によって推定すると、学習データ中に出現 しなかった単語(組)の出現確率が0になってしまう問題のことである。
  22. 22. テキストビジュアライゼーション 類型分類したラベル毎に強い言葉を抽出 ワードクラウド
  23. 23. まとめ  自然言語解析  ネガポジ判定等(回帰分析)  ラベリング(クラス分類)  傾向分析(クラスタリング)  Spark と Cassandra  機械学習  データビジュアライゼーション

×