• Like
LET2012 ワークショップ「R による教育・言語データ処理のススメ」
Upcoming SlideShare
Loading in...5
×

LET2012 ワークショップ「R による教育・言語データ処理のススメ」

  • 1,194 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,194
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
16
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. による教育・言語データ処理のススメ 2012-08-07 LET2012@Konan Univ.Tuesday, August 7, 12 3
  • 2. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 11
  • 3. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 12
  • 4.  とは何か • 統計処理を目的とするプログラミング言語 • 無償+オープンソースのソフトウェア • 作者:Ross Ihaka & Robert Gentleman (R & R) • Ross Ihaka and Robert Gentleman. R: A language for data analysis and graphics. Journal of Computational and Graphical Statistics, 5(3):299-314, 1996. • http://biostat.mc.vanderbilt.edu/twiki/pub/Main/JeffreyHorner/JCGSR.pdfTuesday, August 7, 12 13
  • 5. 要するに 統計ソフトTuesday, August 7, 12 14
  • 6.   の何が良いのか • 無償 (IBM SPSS Statistics は約10万円で保守なし...) • 統計処理の種類が豊富 • グラフィックスが美しいTuesday, August 7, 12 15
  • 7.  の弱点 • 文字入力による操作 • プログラムを組む感覚を養成 • 確実に伝わるという利点も • 多方面の知識が必要 • 英語+統計+計算機 • 参考書籍がお高めTuesday, August 7, 12 16
  • 8. モウダメダーTuesday, August 7, 12 17
  • 9. Excel や SPSS は... • 高価(気軽に使えない) • 処理が信頼できず • Excel のひどい話(青木先生@群馬大) • 作図結果が美しくないTuesday, August 7, 12 18
  • 10.   の基本操作 -Install / Update / Uninstall-Tuesday, August 7, 12 20
  • 11.   のインストール 1. http://www.r-project.org/ にアクセス 2. “download R” をクリック 3. JAPAN の中から1つを選ぶ 4. OS に応じたリンクをクリックTuesday, August 7, 12 21
  • 12.   のインストール • Windows: : http://cran.md.tsukuba.ac.jp/bin/windows/base/ •「Download R 2.15.1 for Windows」をクリック • Mac OS X: http://cran.md.tsukuba.ac.jp/bin/macosx/ •「R-2.15.1.pkg (latest version)」をクリックTuesday, August 7, 12 22
  • 13. Tuesday, August 7, 12 23
  • 14. Tuesday, August 7, 12 24
  • 15. Tuesday, August 7, 12 25
  • 16. Tuesday, August 7, 12 26
  • 17. Tuesday, August 7, 12 27
  • 18. Tuesday, August 7, 12 28
  • 19.   のアップデート 1. http://www.r-project.org/ にアクセス 2. 自分が使っているバージョンより 新しいものが出ているか確認 3. 新規にインストール用ファイルを ダウンロードしてインストールTuesday, August 7, 12 29
  • 20.   のアップデート • セキュリティ上の問題がない限りは, むやみに更新しない • パッケージ(付加機能)の動作不良回避 • 新旧の共存は可能 • Windows/Mac: 別名でインストール • ただし何がどう共有されているかは不明Tuesday, August 7, 12 30
  • 21.  のアンインストール • Windows • [ Windows XP] コンパネ→プログラムの追加と削除 • [ Windows 7 ] コンパネ→プログラムのアンインストール • Mac OS X • /Applications にある    アイコンと /Library の中の Frameworks にある R. framework を削除(CleanApp 可)Tuesday, August 7, 12 31
  • 22.   の起動 • Windows • START → Program → R → R 2.15.1 • Mac OS X • /Applications 内の をクリックTuesday, August 7, 12 32
  • 23. 「コンソール」の表示を確認Tuesday, August 7, 12 33
  • 24.   の終了 • コンソールに「q()」と入力 • 今は「作業スペース」は保存しない • ウィンドウが消えれば終了Tuesday, August 7, 12 34
  • 25.   で困ったら... • まずは help(sth) を実行 • seekR: http://seekr.jp/ • R SEEK: http://www.rseek.org/ • RjpWiki: http://www.okada.jp.org/RWiki/ • R-Tips:http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html • R による統計処理: http://aoki2.si.gunma-u.ac.jp/R/Tuesday, August 7, 12 35
  • 26.   概論まとめ •    は統計ソフト • 無償+何でも統計+美しく作図 • 困ったら help(sth) !!Tuesday, August 7, 12 36
  • 27. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 38
  • 28. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 39
  • 29. 前置きが長くなりましたが どんどん実行しましょうTuesday, August 7, 12 40
  • 30. まずは四則演算 • 式を入力し [Enter] を押す • > 12345 + 56789 [Enter] • > 9753 - 1486 [Enter] • > 3571 * 2984 [Enter] • > 2234/5678 [Enter] • > (12 + 34 -56) * 78 / 90 [Enter]Tuesday, August 7, 12 41
  • 31. いまのは 単なる計算式でしたがTuesday, August 7, 12 42
  • 32.  といえば 関数 が命Tuesday, August 7, 12 43
  • 33. 関数とは 指定した値に対して 何らかの処理をして 結果を返すものTuesday, August 7, 12 44
  • 34. なにはともあれ 実行してみましょうTuesday, August 7, 12 46
  • 35. sqrt():平方根 • > sqrt(2) • > sqrt(144) • > sqrt(104976)Tuesday, August 7, 12 47
  • 36. 「関数(値)」が命 • には多数の関数がある • q() や help(sth) も関数 • 必要な関数をしつこく実行Tuesday, August 7, 12 48
  • 37.   といえば 変数 も命Tuesday, August 7, 12 49
  • 38. 変数とは 1つ以上の値を まとめていれておく 「箱」のことTuesday, August 7, 12 50
  • 39. では ベクトルとも呼ばれ 複数の値を1つに まとめたものを指すTuesday, August 7, 12 51
  • 40. 統計処理などを行うには 複数の値をまとめて扱う ことが必要で それを使い回すために 変数を使うTuesday, August 7, 12 52
  • 41. ちなみに 変数に数値を 入れることを 「代入」といいますTuesday, August 7, 12 53
  • 42. なにはともあれ 実行してみましょうTuesday, August 7, 12 55
  • 43. 変数の名前は “hako” •> hako <- c(1,2,3,4,5) •> hako • c() 関数:combine ( ) cf. https://twitter.com/#!/sakaue/status/193708048030760960 • 値を1つにまとめる関数 • 逆に書いても(一応)OKTuesday, August 7, 12 56
  • 44. c()関数の “<-” は何? hako <- c(1,2,3,4,5) の “<-” は 左向きの矢印(←) を表現 (入れ替えても動きます)Tuesday, August 7, 12 57
  • 45. コンソールで「+」が出たら... • 入力中に誤って[Enter] を押すと, 待機状態を示す「+」が出る • [STOP] ボタンでキャンセル • [Esc] キーでキャンセルTuesday, August 7, 12 58
  • 46. 履歴機能と補完機能 •履歴: [↑][↓] の矢印キー •補完: [Tab]キーTuesday, August 7, 12 59
  • 47. いま “hako” という名前の 「変数」の中に 1から5までの5つの数字が まとめて入っている状態Tuesday, August 7, 12 60
  • 48. では 使い回してみましょうTuesday, August 7, 12 61
  • 49. 以下の関数を実行 •> sqrt(hako) • > log(hako)Tuesday, August 7, 12 62
  • 50. もし変数がなかったら 何度も関数を 繰り返す羽目になる sqrt(1), sqrt(2) ... sqrt(5) log(1), log (2) ... log (5)Tuesday, August 7, 12 63
  • 51. 一括処理のために 変数(ベクトル)の 利用は不可欠Tuesday, August 7, 12 64
  • 52. ここまでのまとめ •   は「関数」と「変数」が命 • 関数を使って数値を処理 • q(), help(), sqrt(), log(), c() • 変数を使って一括処理!Tuesday, August 7, 12 65
  • 53. 覚える必要はなく メモ等を頼りに 実行できれば OKTuesday, August 7, 12 66
  • 54. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 67
  • 55. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 68
  • 56. Sub topics 1. 行列のおはなし 2. データフレーム 3. 外部データの読込Tuesday, August 7, 12 69
  • 57. さきほど 一行で表せる数値を 扱いましたがTuesday, August 7, 12 70
  • 58. 実際のデータは 複数行あるはずTuesday, August 7, 12 71
  • 59. 例えば... •身長と体重 •年齢と年収 • 覚えた単語数とTOEICスコアTuesday, August 7, 12 72
  • 60. 表にすれば... 身長 体重 A 180 75 B 170 65 C 165 60 D 175 70 E 190 80Tuesday, August 7, 12 73
  • 61. 複数の行や列で表される データを扱うために Rでは「行列」を使うTuesday, August 7, 12 74
  • 62. 行列とは 数値が縦横に並べられたものTuesday, August 7, 12 75
  • 63. 1 2 3 4 5 6 7 8 9Tuesday, August 7, 12 76
  • 64. Tuesday, August 7, 12 行 77
  • 65. 1 2 3 4 5 6 7 8 9Tuesday, August 7, 12 78
  • 66. 1 2 3 4 5 6 7 8 9Tuesday, August 7, 12 79
  • 67. 1 2 3 4 5 6 7 8 9Tuesday, August 7, 12 80
  • 68. Tuesday, August 7, 12 列 81
  • 69. 1 2 3 4 5 6 7 8 9Tuesday, August 7, 12 82
  • 70. 1 2 3 4 5 6 7 8 9Tuesday, August 7, 12 83
  • 71. 1 2 3 4 5 6 7 8 9Tuesday, August 7, 12 84
  • 72. ひとまず 「行列」という存在を 知ってやってくださいTuesday, August 7, 12 85
  • 73. そんな行列を扱うために matrix() 関数 を使うTuesday, August 7, 12 86
  • 74. matrix() 関数 • 行列を作る関数 • matrix(要素, 行の数, 列の数) • デフォでは列方向に配置Tuesday, August 7, 12 87
  • 75. このようなデータなら 身長 体重 A 180 75 B 170 65 C 165 60 D 175 70 E 190 80Tuesday, August 7, 12 88
  • 76. 行列を作ってみる karada <- matrix(c(180, 170, 165, 175, 190, 75, 65, 60, 70, 80), 5, 2) 1. c() 関数で、数値を連結 2. matrix() 関数で、行列に変換 • 「5行で2列」にするという指定をする 3. karada という名の変数に代入Tuesday, August 7, 12 89
  • 77. > karada と入力して 変数の中身を確認Tuesday, August 7, 12 90
  • 78. 行列の要素を取り出す demo <- matrix(1:30,nrow=5,ncol=6) http://gyazo.com/76c58d5d6c8426a44f160897cda99671.pngTuesday, August 7, 12 91
  • 79. 行列の要素を取り出す 2行目を表示 → demo[2,] 2列目を表示 → demo[,2] http://gyazo.com/6726084afd9e1cc4b03df85fe6bc0f29.pngTuesday, August 7, 12 92
  • 80. 行列の要素を取り出す 2行目と4行目を表示 → demo[c(2,4),] 2列目と4列目を表示 → demo[, c(2,4)]Tuesday, August 7, 12 93
  • 81. 行列の要素を取り出す http://gyazo.com/a116c0e2f1284ea7d38bf7024d92f1cc.pngTuesday, August 7, 12 94
  • 82. 行列まとめ • 横方向が行、縦方向が列 • デフォルトでの数値の並びに注意 • 必要な要素を適宜取り出して値を確認Tuesday, August 7, 12 95
  • 83. Sub topics 1. 行列のおはなし 2. データフレーム 3. 外部データの読込Tuesday, August 7, 12 96
  • 84. データフレームとは • いろんなデータを突っ込んだもの • いろんな=質的データ+量的データ • 突っ込む=一緒に並んでいることTuesday, August 7, 12 97
  • 85. データフレームとは 名前 血液型 身長 体重 坂本 B 175 65 高橋 B 177 70 阿部 B 174 75 長野 A 179 70 松本 O 170 60Tuesday, August 7, 12 98
  • 86. データフレームとは • Excel の WS とほぼ同じイメージ • 既存データの読込>自力で作る • data.frame() 関数が使えるTuesday, August 7, 12 99
  • 87. じゃあ 実際に自力で作るか といったら...Tuesday, August 7, 12 100
  • 88. そこで 外部データの読込 を行おうTuesday, August 7, 12 102
  • 89. Sub topics 1. 行列のおはなし 2. データフレーム 3. 外部データの読込Tuesday, August 7, 12 103
  • 90. ここはトラブル多発地域です うまくいかない時は まず説明をお聴きくださいTuesday, August 7, 12 104
  • 91. おそらく... • Excel でデータ管理 • できればそのまま活かしたいTuesday, August 7, 12 105
  • 92. 作業ディレクトリの設定 • 作業ディレクトリとは... • データを読み込む場所 • データを書き出す場所Tuesday, August 7, 12 106
  • 93. 作業ディレクトリの設定 • Windows:ファイル → ディレクトリの変更 • “My Documents” にファイル移動 • Mac OS X:環境設定 → 一般(起動) • ホームディレクトリにファイル移動 • Linux:up to you...Tuesday, August 7, 12 107
  • 94. 作業ディレクトリの設定 • コンソールからの確認・設定も可能 • getwd()関数:現在の設定を確認 • > getwd() • setwd()関数:現在の設定を変更 • > setwd("/Users/sakaue/Desktop/") • 実行注意!!Tuesday, August 7, 12 108
  • 95. データの読込 その1 • read.csv() 関数 • CSV 形式のファイルを読み込む • CSV: Comma Separated ValueTuesday, August 7, 12 109
  • 96. データの読込 その1 1. let2012.csv を作業ディレクトリへ移動 • XLS/XLSX 形式のものは保存時に変換 • CSV ファイルの文字コードは UTF-8 に 2. > test <- read.csv(“let2012.csv”) で代入 3. > test [Enter] で中身を確認Tuesday, August 7, 12 110
  • 97. CSV 変換なんて面倒... という方にTuesday, August 7, 12 111
  • 98. データの読込 その2 • read.delim() 関数 • 表形式のデータ読み込む • delim: delimiter(区切り文字)Tuesday, August 7, 12 112
  • 99. データの読込 その2 1. let2012.xls を開いてマウスで範囲指定 2. > test2 <- read.delim("clipboard") で代入 Mac の場合: read.delim(pipe(“pbpaste”)) 3. > test2 [Enter] で中身を確認Tuesday, August 7, 12 113
  • 100. 読み込んだら関数で処理 > table(test2[,2]) 2列目対象 • 度数分布を確認する > mean(test2[,3]) 3列目対象 • 平均値を求めるTuesday, August 7, 12 114
  • 101. 外部データの読込 • 作業ディレクトリの設定に注意 • CSV 形式に変換後、read.csv()関数で読込 • 必要な行 or 列を指定して処理Tuesday, August 7, 12 115
  • 102. データを集めたら 数値要約だけでなく データの視覚化も必要Tuesday, August 7, 12 117
  • 103. というわけで 作図のお時間ですTuesday, August 7, 12 118
  • 104. 基本的な作図手順 1. 変数に値を代入する 2. 作図用の関数を実行Tuesday, August 7, 12 119
  • 105. たった2段階 Excel や SPSS ではこうはいかないTuesday, August 7, 12 120
  • 106. 作成できる図の種類 • ヒストグラム • 散布図 • 棒グラフ • 折れ線グラフ • 箱ひげ図Tuesday, August 7, 12 121
  • 107. 作成できる図の種類 • ヒストグラム • 散布図 • 棒グラフ • 折れ線グラフ • 箱ひげ図Tuesday, August 7, 12 122
  • 108. まずはヒストグラム > hist(test2[,2])Tuesday, August 7, 12 123
  • 109. 箱ひげ図 > boxplot(test2[,2], test2[,3], names=c("Male", "Female"), horizontal=T)Tuesday, August 7, 12 125
  • 110. 箱ひげ図 > boxplot(test2[,2], test2[,3], names=c("Male", "Female"), horizontal=T, ylim=c(0,100))Tuesday, August 7, 12 126
  • 111. 箱ひげ図 > boxplot(test2[,2], test2[,3], names=c("Male", "Female"), horizontal=T, ylim=c(0,100), col="blue")Tuesday, August 7, 12 127
  • 112. 箱ひげ図 > boxplot(test2[,2], test2[,3], names=c("Male", "Female"), horizontal=T, ylim=c(0,100), col="blue", xlab="score", ylab="sex", main="BOXPLOT")Tuesday, August 7, 12 128
  • 113. グラフの保存方法 > pdf() # pdf デバイスを開く() > plot(1:10) # プロット → Rplots.pdf に出力 > dev.off() # デバイスを閉じる ★慣れないうちは画面上のメニューから選ぶのが無難Tuesday, August 7, 12 129
  • 114. 作図手順のまとめ 1. 変数に値を代入する 2. 作図用の関数を使って処理する 3. 形式を指定して保存 +人に伝承(twitter, FB)Tuesday, August 7, 12 130
  • 115. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 132
  • 116. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 133
  • 117. を使う経緯 この世の様々な現象を 数値データ+検定 から捉えてみたいTuesday, August 7, 12 134
  • 118. 共分散分析 カイ二乗検定 パワーアナリシス 主成分分析 符号検定 因子分析 t 検定 分散分析 マクマネー検定 クラスカル・ウォリス検定 判別分析Tuesday, August 7, 12 135
  • 119. で「t 検定」Tuesday, August 7, 12 136
  • 120. t 検定 • 2つのグループの平均値の差の検定 するのに使う手法 • R では t.test() であっさりと実行Tuesday, August 7, 12 137
  • 121. t 検定 • (例)あるテストの平均値に男女差があるかどうか > male <- test2[,2] > female <- test2[,3] > t.test(male, female, var.equal=TRUE)Tuesday, August 7, 12 138
  • 122. t 検定 > t.test(male, female,var.equal=TRUE) Two Sample t-test data: male and female t = -0.9232, df = 58, p-value = 0.3597 alternative hypothesis: true difference in means is not equal to 0 # 両側検定 95 percent confidence interval: # 信頼区間 -9.926800 3.660134 sample estimates: mean of x mean of y 62.06667 65.20000Tuesday, August 7, 12 139
  • 123. で「カイ二乗検定」Tuesday, August 7, 12 141
  • 124. カイ二乗検定 • 独立性の検定のために使う • (例)数学が好き嫌いと統計の好き嫌いの間に有 意な連関があるか • (例)あるコーパス中の表現Aと表現Bの頻度の差 • ざっくり言えば,期待度数と観測度数のズレ が偶然出ちゃったかどうかを調べるTuesday, August 7, 12 142
  • 125. 事例: 接続詞 “however” の生起位置の比較 文頭 文中 文末 合計 頻度 109 347 8 493 [文頭] However, .... [文中] ..., however, .... [文末] ..., however.Tuesday, August 7, 12 143
  • 126. 生起位置の比較のためにカイ二乗検定を実行 > freq <- c(109,347,8) > chisq.test(freq,correct=FALSE) Chi-squared test for given probabilities data: freq X-squared = 391.7371, df = 2, p-value < 2.2e-16 # 手作業なら,カイ二乗分布表の自由度2のところを確認する # http://homepage2.nifty.com/nandemoarchive/toukei_kiso/t_F_chi.htmTuesday, August 7, 12 144
  • 127. で検定のまとめ • 差がありそうかなさそうかを判断するため に各種検定を行う • 平均値の差の検定:t 検定・分散分析 • 独立性の検定  :カイ二乗検定 • 数行のコマンドであっさり検定! • データ準備の手間は多少かかるかも...Tuesday, August 7, 12 145
  • 128. を使って この世の現象を 数値データ+検定 から捉えてみよう!Tuesday, August 7, 12 146
  • 129. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 147
  • 130. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理Tuesday, August 7, 12 148
  • 131. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理Tuesday, August 7, 12 149
  • 132. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理Tuesday, August 7, 12 150
  • 133. 言語データ処理の流れ 1) データを読み込む 2) データを分解する 3) データを える 4) 数値を求める 5) データを保存するTuesday, August 7, 12 151
  • 134. 1) データを読み込む > nns <- scan("nns_raw.txt", what="character") Read 62959 itemsTuesday, August 7, 12 152
  • 135. 2) データを分解する > nns_list <- strsplit(nns, " ") # スペースでデータをリスト化 # 干し柿状態(?) > nns_unlist <- unlist(nns_list) # リストされたデータをバラバラに分解Tuesday, August 7, 12 153
  • 136. 3) データを える > sort_nns <- sort(nns_unlist) # データの並び替え > uniq_nns <- unique(sort_nns) # 並び替えたデータをまとめるTuesday, August 7, 12 154
  • 137. 4) 数値を求める > length(nns_unlist) [1] 70220 # Token > nns_all <- table(nns_unlist) # 単語一覧表の作成 > nns_type <- length(uniq_nns) > nns_type [1] 7579 # TypeTuesday, August 7, 12 155
  • 138. 5) データを保存する > write.table(nns_all, file="freq.txt", sep="t") # freq.txt という名で列をタブ区切りにして保存Tuesday, August 7, 12 156
  • 139. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理Tuesday, August 7, 12 157
  • 140. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理Tuesday, August 7, 12 158
  • 141. R による and と but の検索 •grep 関数・length 関数 • grep() : 文字列マッチング • length(): 要素数のカウントTuesday, August 7, 12 159
  • 142. R による and と but の検索 > grep("^And,?", nns_unlist, fixed = FALSE, value=TRUE) > grep("^But,?", nns_unlist, fixed = FALSE, value=TRUE) # ヒットした要素を表示 # 正規表現の ^ をつけておき,3文字を含む文字列(underst”and”)を除外 # fixed=FALSE で拡張正規表現を利用,value=TRUE で要素表示 > length(grep("^And,?", nns_unlist, fixed = FALSE, value=TRUE)) > length(grep("^But,?", nns_unlist, fixed = FALSE, value=TRUE)) # ヒット数だけを表示Tuesday, August 7, 12 160
  • 143. R による and と but の検索 > length(grep("^And,?", nns_unlist, fixed = FALSE, value=TRUE)) [1] 175 > length(grep("^But,?", nns_unlist, fixed = FALSE, value=TRUE)) [1] 178 > length(grep("^and,?", nns_unlist, fixed = FALSE, value=TRUE)) [1] 1479 > length(grep("^but,?", nns_unlist, fixed = FALSE, value=TRUE)) [1] 260Tuesday, August 7, 12 161
  • 144. R による and と but の検索 > barplot(freq, names=c("And", "and", "But", "but"), horiz=T, las=1)Tuesday, August 7, 12 162
  • 145. R による and と but の検索 • R で基本的な検索・分析ならば... 1) データを strsplit() + unlist() して 2) grep() と length() でカウント 3) barplot() などで視覚化 4) chisq.test() などで検定Tuesday, August 7, 12 163
  • 146. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理Tuesday, August 7, 12 164
  • 147. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理Tuesday, August 7, 12 165
  • 148. Packageとは? • ある処理・機能に特化したプログラム • base(基本パッケージ)だけでも 1,000 以上 • 特殊な処理を行う際は,別の package を追加 • 言語処理に特化したものもある(ex. RMeCab)Tuesday, August 7, 12 166
  • 149. 言語処理に特化した packages i) tm: Text Mining Package • http://tm.r-forge.r-project.org/ • http://cran.r-project.org/web/packages/tm/tm.pdf ii) corpora • http://cogsci.uni-osnabrueck.de/~severt/SIGIL/sigil_R/ • http://cran.r-project.org/web/packages/corpora/corpora.pdf iii) LanguageR • http://www.ualberta.ca/~baayen/software.html • http://cran.r-project.org/web/packages/languageR/languageR.pdfTuesday, August 7, 12 167
  • 150. 日本語データの分析を 助けてくれる RMeCab を紹介Tuesday, August 7, 12 168
  • 151. RMeCabとは • 石田 基広氏が開発したパッケージ • R から MeCab を呼び出して日本語 のテキストを解析させる • 解析結果をも R で出力してくれる 素晴らしいプログラムTuesday, August 7, 12 169
  • 152. デモ一覧 • RMeCabText() : ファイル解析 • RMeCabFreq() : 頻度集計 • Ngram() : N-gram 解析 • collocate() : 共起関係の分析Tuesday, August 7, 12 170
  • 153. おわりにTuesday, August 7, 12 171
  • 154. のススメTuesday, August 7, 12 172
  • 155. Excel SPSSTuesday, August 7, 12 174
  • 156. 参考文献Tuesday, August 7, 12 176
  • 157. 参考文献(続)Tuesday, August 7, 12 178
  • 158. 参考文献(続)Tuesday, August 7, 12 179