Sakuteki02 yokkuns

46
1 R 言語による はじめてのテキストマイニング @yokkuns : 洋平 第2回さくさくテキストマイニング

Transcript of Sakuteki02 yokkuns

Page 1: Sakuteki02 yokkuns

1

R 言語によるはじめてのテキストマイニング

@yokkuns : 里 洋平第2回さくさくテキストマイニング

Page 2: Sakuteki02 yokkuns

2

AGENDA

● 自己紹介● テキストマイニングと R 言語● YjdnJlp パッケージの紹介

– 形態素解析

– 係り受け解析

– 特徴語抽出● コレスポンデンス分析をしてみる● まとめ● 最後に

Page 3: Sakuteki02 yokkuns

3

AGENDA

● 自己紹介● テキストマイニングと R 言語● YjdnJlp パッケージの紹介

– 形態素解析

– 係り受け解析

– 特徴語抽出● コレスポンデンス分析をしてみる● まとめ● 最後に

Page 4: Sakuteki02 yokkuns

4

@yokkuns : 里 洋平● ID : yokkuns

● 名前 : 里 洋平● 職業 : Web エンジニア

● 統計解析や機械学習、データマイニングなどに興味がある

Page 5: Sakuteki02 yokkuns

5

Tokyo.R の主催者

Page 6: Sakuteki02 yokkuns

6

slideshare に資料を公開

Page 7: Sakuteki02 yokkuns

7

ボーカルやってます

バンドメンバーを募集しています!

Page 8: Sakuteki02 yokkuns

8

Amazon で " 里洋平 " を検索

Page 9: Sakuteki02 yokkuns

9

Page 10: Sakuteki02 yokkuns

10

執筆しました!

Page 11: Sakuteki02 yokkuns

11

AGENDA

● 自己紹介● テキストマイニングと R 言語● YjdnJlp パッケージの紹介

– 形態素解析

– 係り受け解析

– 特徴語抽出● コレスポンデンス分析をしてみる● まとめ● 最後に

Page 12: Sakuteki02 yokkuns

12

テキストマイニングとは

テキストマイニング( text mining )は、テキストを対象としたデータマイニングのことである。

by Wikipedia

Page 13: Sakuteki02 yokkuns

13

データマイニングとは

データマイニングとは、統計学、パターン認識、人工知能等のデータ解析の技法を大量のデータに網羅的に適用することで知識を取り出す技術。

by Wikipedia

Page 14: Sakuteki02 yokkuns

14

データ解析と言えば

Page 15: Sakuteki02 yokkuns

15

データ解析と言えば

Page 16: Sakuteki02 yokkuns

16

R 言語

● 統計解析向けプログラミング言語及● 統計•機械学習などの手法が揃っている

– 主成分分析– クラスター分析– コレスポンデンス分析– SVM– Random Forest– ...

Page 17: Sakuteki02 yokkuns

17

統計•機械学習の手法を使う● 統計や機械学習の手法の対象は数値データ● テキストデータをそのまま用いることは出来ない● テキストを数値化する必要がある● テキスト解析

– 形態素解析– 係り受け解析– ...

Page 18: Sakuteki02 yokkuns

18

AGENDA

● 自己紹介● テキストマイニングと R 言語● YjdnJlp パッケージの紹介

– 形態素解析

– 係り受け解析

– 特徴語抽出● コレスポンデンス分析をしてみる● まとめ● 最後に

Page 19: Sakuteki02 yokkuns

19

RMeCab と RCaBoCha

● RMeCab

– MeCab を R から使うパッケージ– 形態素解析

● RCaBoCha

– CaBoCha を R から使うパッケージ– 係り受け解析

Page 20: Sakuteki02 yokkuns

20

RMeCab と RCaBoCha

● RMeCab

– MeCab のインストールが必要

● RCaBoCha

– CaBoCha のインストールが必要

Page 21: Sakuteki02 yokkuns

21

RMeCab と RCaBoCha

初心者には敷居が高い!

Page 22: Sakuteki02 yokkuns

22

そこで

Page 23: Sakuteki02 yokkuns

23

YjdnJlp パッケージ

Page 24: Sakuteki02 yokkuns

24

YjdnJlp パッケージ

● Yahoo! Japan Developer Network のテキスト解析 API を使うパッケージ

● R だけで、テキスト解析が出来る– MeCab や CaBoCha などの外部ライブラリの

インストールが不要!

Page 25: Sakuteki02 yokkuns

25

皆大好き Yahoo! Japan

Page 26: Sakuteki02 yokkuns

26

皆持ってるアプリケーション ID

Page 27: Sakuteki02 yokkuns

27

万が一持ってなければ登録

Page 28: Sakuteki02 yokkuns

28

テキスト解析 API

Page 29: Sakuteki02 yokkuns

29

YjdnJlp パッケージ

● 形態素解析– MAService 関数

● 係り受け解析– DAService 関数

● 特徴語抽出– Keyphrase 関数

Page 30: Sakuteki02 yokkuns

30

準備

Page 31: Sakuteki02 yokkuns

31

インストールと読み込み

> install.packages("YjdnJlp")> library(YjdnJlp)

Page 32: Sakuteki02 yokkuns

32

初期化

> con <- initYjdnJlp("********")

アプリケーション ID

Page 33: Sakuteki02 yokkuns

33

解析する文書

テキストマイニング( text mining )は、テキストを対象としたデータマイニングのことである。通常の文章からなるデータを単語や文節で区切り、それらの出現の頻度や共出現の相関、出現傾向、時系列などを解析することで有用な情報を取り出す、テキストデータの分析方法である。テキストデータの多くは形式が定まっておらず、また日本語は英語などと比べて単語の境界判別の必要性(→わかち書き)や文法ゆらぎが大きい点において形態素解析が困難であったが、自然言語処理の発展により実用的な水準の分析が可能となった。テキストマイニングの対象としては、顧客からのアンケートの回答やコールセンターに寄せられる質問や意見、電子掲示板やメーリングリストに蓄積されたテキストデータなどがある。

Page 34: Sakuteki02 yokkuns

34

形態素解析> res <- MAService(con, str)> res.df <- toDataFrame(res)> head(res.df[res.df$pos == " 名詞 " | + res.df$pos == "動詞 ", c("surface", "pos", "count")])

surface pos count5 テキスト 名詞 66 データ 名詞 516 マイニング 名詞 317 出現 名詞 320 こと 名詞 221 し 動詞 2

Page 35: Sakuteki02 yokkuns

35

係り受け解析> res <- DAService(con, str)> res.df <- toDataFrame(res)> res.df[, -7] chunk.id dependency surface reading baseform pos1 1 63 テキスト てきすと テキスト 名詞2 1 63 マイニング まいにんぐ マイニング 名詞3 1 63 ( ( ( 特殊4 1 63 text text text 名詞5 1 63 特殊6 1 63 mining mining mining 名詞7 1 63 ) ) ) 特殊8 1 63 は は は 助詞9 1 63 、 、 、 特殊10 2 4 テキスト てきすと テキスト 名詞...

Page 36: Sakuteki02 yokkuns

36

特徴語抽出> res <- Keyphrase(con, str)> res.df <- toDataFrame(res)> res.df keyphrase score1 テキストマイニング 1002 テキストデータ 833 形態素解析 554 text mining 535 データマイニング 536 メーリングリスト 527 単語 458 文節 449 分析 4310 境界判別 43

Page 37: Sakuteki02 yokkuns

37

AGENDA

● 自己紹介● テキストマイニングと R 言語● YjdnJlp パッケージの紹介

– 形態素解析

– 係り受け解析

– 特徴語抽出● コレスポンデンス分析をしてみる● まとめ● 最後に

Page 38: Sakuteki02 yokkuns

38

コレスポンデンス分析

● 東京都知事選挙の選挙公報の文書をもとにコレスポンデンス分析をやってみる

– 時間がないので形態素解析でのみ

Page 39: Sakuteki02 yokkuns

39

コレスポンデンス分析

Page 40: Sakuteki02 yokkuns

40

コレスポンデンス分析

Page 41: Sakuteki02 yokkuns

41

コレスポンデンス分析

> library(ca)> ma.ca <- ca(ma.df)> plot(ma.ca, arrows=c(F,T))

Page 42: Sakuteki02 yokkuns

42

Page 43: Sakuteki02 yokkuns

43

AGENDA

● 自己紹介● テキストマイニングと R 言語● YjdnJlp パッケージの紹介

– 形態素解析

– 係り受け解析

– 特徴語抽出● コレスポンデンス分析をしてみる● まとめ● 最後に

Page 44: Sakuteki02 yokkuns

44

まとめ

● R には統計•機械学習の手法が揃っている● YjdnJlp は、手軽にテキスト解析が出来る

– 形態素解析– 係り受け解析– 特徴語抽出

● 解析結果を使って、各手法を実行● R を使いたくなった方は Tokyo.Rへ!

Page 45: Sakuteki02 yokkuns

45

AGENDA

● 自己紹介● テキストマイニングと R 言語● YjdnJlp パッケージの紹介

– 形態素解析

– 係り受け解析

– 特徴語抽出● コレスポンデンス分析をしてみる● まとめ● 最後に

Page 46: Sakuteki02 yokkuns

46

最後に

Tokyo.R では発表者を募集しています