hiroshima.r #1 1-3 lt
Post on 13-Jan-2015
1.137 Views
Preview:
DESCRIPTION
TRANSCRIPT
を言語・言語教育研究でどう活用できるか
@sakaue
2011-06-17 HiRoshima.R #1@
1Saturday, June 18, 2011
Agenda
1. R で検定 ―カイ二乗検定―
2. R で英語データを処理
3. R で日本語データを解析
2Saturday, June 18, 2011
Agenda
1. R で検定 ―カイ二乗検定―
2. R で英語データを処理
3. R で日本語データを解析
3Saturday, June 18, 2011
言語現象を数値データ+検定から捉えてみたい
を使う経緯言語研究で
4Saturday, June 18, 2011
t 検定
カイ二乗検定パワーアナリシス
分散分析
共分散分析
判別分析
主成分分析
クラスカル・ウォリス検定
符号検定
マクマネー検定
因子分析
5Saturday, June 18, 2011
で「カイ二乗検定」
6Saturday, June 18, 2011
カイ二乗検定• 独立性の検定のために使う(連関の有無)• (例)数学が好き嫌いと統計の好き嫌いの間に有意な連関があるか
• (例)あるコーパス中の表現Aと表現Bの頻度の差
• ざっくり言えば,期待度数と観測度数のズレが偶然出ちゃったかどうかを調べる
7Saturday, June 18, 2011
事例: 接続詞 “however” の生起位置の比較
文頭 文中 文末 合計頻度 109 347 8 493
[文頭] However, ....
[文中] ..., however, ....
[文末] ..., however.
8Saturday, June 18, 2011
> 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.htm
生起位置の比較のためにカイ二乗検定を実行
9Saturday, June 18, 2011
言語現象を数値データ+検定から捉えてみよう!
を使って
10Saturday, June 18, 2011
Agenda
1. R で検定 ―カイ二乗検定―
2. R で英語データを処理
3. R で日本語データを解析
11Saturday, June 18, 2011
Agenda
1. R で検定 ―カイ二乗検定―
2. R で英語データを処理
3. R で日本語データを解析
12Saturday, June 18, 2011
大規模コーパスを効率よく処理せねば!
を使う経緯言語データ処理で
13Saturday, June 18, 2011
主なデータ処理手順1. データを読み込む2. データを切り出す3. データを分解する4. データを揃える5. 数値を求める6. データを書き出す
14Saturday, June 18, 2011
1. データを読み込む• その1• ns <- scan("ns_raw.txt", what="character")
• その2• ns <- scan(choose.files(), what="char")
• ファイルのパスに注意(トラブル多発地域)• getwd() による作業ディレクトリの確認を!
15Saturday, June 18, 2011
2. データを切り出す
•head(変数名, 要素数)
•tail(変数名, 要素数)
•先頭/末尾部分を指定した要素分の表示
16Saturday, June 18, 2011
2. データを切り出す•grep (“文字列”, 変数名)
• 要素の番号のみを返す。> grep("school", ns)
•変数 ns から、要素のみ取り出し。> ns[grep("school", ns)]
17Saturday, June 18, 2011
• 変数名[要素番号]
• > ns[100]
• 100 番目の要素のみ取り出し
• > ns[c(98,99,100)]
• 98, 99, 100 番目の要素のみ取り出し• c 関数に注意
2. データを切り出す
18Saturday, June 18, 2011
3. データを分解する• 単語をバラバラにする•strsplit (変数名, “セパレータ”)
> strsplit (ns, " ")
•ns の要素をスペースで分割する•要素ごとに処理される•つまり、list になっている状態
19Saturday, June 18, 2011
3. データを分解する•リストの要素をバラバラにする
> ns_list <- strsplit (ns, " ")
•分割した結果を ns_list という変数に代入
> unlist (ns_list)
• ns_list のリストの要素をバラバラにする。• unlist(strsplit(ns, " "))でも同じ結果。
20Saturday, June 18, 2011
4. データを揃える
ばらばらにした単語をソートするsort (変数名)
> ns2 <- sort(unlist(ns_list))
21Saturday, June 18, 2011
4. データを揃える
unique (変数名)
> ns3 <- unique (sort(unlist(ns_list)))#ソートした単語をタイプ(異なり語)にまとめる。
# sort(unique(unlist(ns_list)))でも結果は同じ。
22Saturday, June 18, 2011
5. 数値を求めるtable (変数名)
> ns4 <- table(unlist(strsplit (ns, " ")))
#単語をバラバラにした後で table を使用。# 総語数を求めることになる
23Saturday, June 18, 2011
5. 数値を求める
> ns5 <- length(unlist(strsplit (ns, " ")))
# これでも総語数を求めることになる
24Saturday, June 18, 2011
5. 数値を求める
> ns6 <- length(unique(sort(unlist(strsplit (ns, " ")))))
# これで異なり語数を求めることになる# ここまで来ると間違えるので変数利用が不可欠
> ns7 <- unique(sort(unlist (ns_list)))> length(ns7)
25Saturday, June 18, 2011
6. データを書き出す> write.table(ns4, file=“freq1.txt”)> write.table(ns5, file=“freq2.txt”)> write.table(ns6, file=“freq3.txt”)
# getwd() で表示されるディレクトリに保存# Excel 等で読み込んで,再処理・再加工
26Saturday, June 18, 2011
言語データを効率よく処理してしまおう!
を使って
27Saturday, June 18, 2011
Agenda
1. R で検定 ―カイ二乗検定―
2. R で英語データを処理
3. R で日本語データを解析
28Saturday, June 18, 2011
Agenda
1. R で検定 ―カイ二乗検定―
2. R で英語データを処理
3. R で日本語データを解析
29Saturday, June 18, 2011
テキストマイニングが流行り?
•テキストに含まれる特徴を見つけ出す•ユーザーの趣向・動向調査
•文章を書いた人の推定・分類
•自由記述 アンケート
•授業アンケート... orz
30Saturday, June 18, 2011
日本語データの分析を助けてくれる
RMeCab を紹介
31Saturday, June 18, 2011
RMeCabとは•石田 基広氏が開発したパッケージ
•R から MeCab を呼び出して日本語のテキストを解析させる
•解析結果をも R で出力してくれる素晴らしいプログラム
32Saturday, June 18, 2011
デモ一覧•RMeCabText() : ファイル解析
•RMeCabFreq() : 頻度集計
•Ngram() : N-gram 解析
•collocate() : 共起関係の分析
33Saturday, June 18, 2011
参考文献紹介
34Saturday, June 18, 2011
参考文献紹介
1,785円 3,780円2,940円
35Saturday, June 18, 2011
言語データを効率よく処理してしまおう!
を使って
36Saturday, June 18, 2011
ご静聴ありがとうございました
twitter: @sakaue
e-mail: tsakaue<AT>hiroshima-u.ac.jp
37Saturday, June 18, 2011
top related