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