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

Post on 21-Jan-2018

118 Views

Category:

Data & Analytics

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Apache SparkとApache Cassandraで行うテキスト解析

株式会社 INTHEFOERST冨田 和孝

自己紹介

冨田 和孝

肩書き: 株式会社INTHEFOREST 代表取締役社長Cassandraコンサルティング

Cassandra Conference in Tokyo / Cassandra Summit JPNOrganizerCassandra勉強会主宰2か月に一度程度開催。第38回まで開催しています。

職種:DB・インフラ屋以前、某レストランサーチのDBA高負荷・大容量・大規模のOracleRACとPostgreSQLとMySQLに苦しめられ続けた経験あり。元々は社会言語学(日本語)専攻(言語認知)

自己紹介

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

Agenda

自然言語解析とは

日本語の特徴

Apache Spark ML + Apache Cassandra

自然言語解析とは

自然言語とは人間がお互いにコミュニケーションを行うための自然発生的な言語を指します。

自然言語処理とは、人間が日常的に使っている自然言語をコンピューターに処理させる為の一連の技術です。

自然言語解析とは

ネガポジ判定等(回帰分析)

ラベリング(クラス分類)

傾向分析(クラスタリング)

ネガポジ判定等(回帰分析)

特定の単語をポジティブ(プラス値)、ネガティブ(マイナス値)に設定し、その単語を持つ文章のポジションを計算し、ある一定の閾値の上下に座標が配置されることにより文章としてのネガティブポジティブを判定

嬉しい: +1笑顔:+1泣く:0怒った:0

ラベリング(クラス分類)

どのようにラベル付けするかのデータを用意し、入力された文章がどのラベルの文章に近いか判断しラベルの付けを行う

今日の朝は寒かった:「天気」私は元気です。:「あいさつ」おはよう。:「あいさつ」明日の午後3時に会いましょう:「約束」

傾向分析(クラスタリング)

文章に含まれる要語を基準に似た要語を含む文章を集約し含まれる用語の特徴などから傾向を分析する

昨日楽しいお話をした。合コンをしたい。女子会の予定は明日です。こ汚いおっさんが隣に座って辛い。さえない日々を送ってる。徹夜明けでラーメンを食べに行こう。尾行をしていたら凄い場面に出会った。拳銃の取引の現場を抑えた。

日本語の特徴

日本語のように単語間に空白文字が無い言語の場合、単語と単語の区切りを判定し、文字を分割する特別な前処理が必要となる。この処理を「形態素解析」という。

私 は 朝 ご飯 を 食べ た。

形態素を座標点に文章のベクトル化を行うのが一般的

日本語の特徴

助詞・助動詞によって、文章の意味が異なってしまう。

以下の三つの文章を比較した場合

私は朝ご飯を食べた。

私は朝ご飯を食べない。

私は朝ご飯を食べなかった。

日本語の特徴

形態素で切り分けた場合、、助詞・助動詞の中でも膨大な数の言葉が存在し、座標点が多くなりすぎる。

私 は ご飯 を 食べ た 。

私 は ご飯 を 食べ なかっ た 。

私はご飯を食べた。

私はご飯を食べなかった。

日本語の特徴

私は ご飯を 食べた。

私はご飯を食べた。

私 は ご飯 を 食べ た。

私は ご飯を 食べなかった。

私はご飯を食べなかった。

私 は ご飯 を 食べ なかっ た。

一歩進めて文節を座標にしてみた。

Sparkとは

2009年のUC Berkeleyでの研究プロジェクト

高速かつ汎用のクラスタコンピューティングシステム

API:Scala、Java、Python、およびR

200社以上の企業の1,000人以上の開発者が開発

Cassandraとは

オープンソース 単一障害点(SPOF)がない リニアなスケーラビリティ性能 すべてがアクティブな設計 透過的にエラーを検出、回復 マルチデータセンター レプリケーション CQL (Cassandra Query Language)

Amazon Dynamoの分散ハッシュテーブル(DHT)とGoogle Big TableのKVSの2つの特徴を併せ持つビッグデータ用分散データベース

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では,タスクの割り当ての際にデータアクセスの局所性(ローカリティ)が考慮される

機械学習実行方法

Fulldataset

トレーニングデータ

テストデータ

features ラベル

モデル

精度 予測

新規入力

機械学習実行方法

私は ご飯を 食べた

私は

お肉を

食べた

食べなかった

私は ご飯を 食べなかった

S1:

S2:

あなたは お肉を 食べなかったS3:

座標点

:P1

:P4:P3

:P5

あなたは :P2ご飯を

:P6

座標

S1:{P1,P3,P5}

S2:{P1,P3,P6}

S3:{P2,P4,P6}

言語解析と機械学習

ロジスティック回帰

二項分類

ロジスティック関数

ナイーブベイズ分類器

多項分類

ベイズの定理

ゼロ頻度問題

ロジスティック回帰

ロジスティック関数

2値ロジスティック回帰

ある前提に対応する状態を特定など

「ポジティブ=1」と「ネガティブ=0」

xの値が大きくなると値が1に近づく(分母が1に近づくので)xの値が小さくなると値が0に近づく(分母が∞に近づくので)xが0の時に値は1/2になる。

ナイーブベイズ分類器

ベイズの定理

ある事象Bが起こる条件下で、別の事象Aが起こる確率のこと。

ゼロ頻度問題

ある単語の生起する確率を、学習データに利用したコーパス全体の中で

その単語が出現した相対頻度によって推定すると、学習データ中に出現

しなかった単語(組)の出現確率が0になってしまう問題のことである。

テキストビジュアライゼーション

類型分類したラベル毎に強い言葉を抽出

ワードクラウド

まとめ

自然言語解析

ネガポジ判定等(回帰分析)

ラベリング(クラス分類)

傾向分析(クラスタリング)

Spark と Cassandra

機械学習

データビジュアライゼーション

top related