SlideShare une entreprise Scribd logo
1  sur  159
Télécharger pour lire hors ligne
による教育・言語データ処理のススメ

                            2012-08-07 LET2012@Konan Univ.

Tuesday, August 7, 12                                        3
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    11
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    12
 とは何か
          • 統計処理を目的とするプログラミング言語
          • 無償+オープンソースのソフトウェア
          • 作者: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.pdf




Tuesday, August 7, 12                                                                                        13
要するに
                        統計ソフト
Tuesday, August 7, 12           14
  の何が良いのか

          • 無償           (IBM SPSS Statistics は約10万円で保守なし...)


          • 統計処理の種類が豊富
          • グラフィックスが美しい
Tuesday, August 7, 12                                           15
 の弱点
                        • 文字入力による操作
                         •   プログラムを組む感覚を養成
                         •   確実に伝わるという利点も

                        • 多方面の知識が必要
                         •   英語+統計+計算機

                        • 参考書籍がお高め
Tuesday, August 7, 12                        16
モウダメダー




Tuesday, August 7, 12              17
Excel や SPSS は...
              • 高価(気軽に使えない)
              • 処理が信頼できず
                        • Excel のひどい話(青木先生@群馬大)
              • 作図結果が美しくない
Tuesday, August 7, 12                             18
  の基本操作
       -Install / Update / Uninstall-



Tuesday, August 7, 12                   20
  のインストール

                        1. http://www.r-project.org/ にアクセス
                        2. “download R” をクリック
                        3. JAPAN の中から1つを選ぶ
                        4. OS に応じたリンクをクリック

Tuesday, August 7, 12                                        21
  のインストール

            • 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
Tuesday, August 7, 12   23
Tuesday, August 7, 12   24
Tuesday, August 7, 12   25
Tuesday, August 7, 12   26
Tuesday, August 7, 12   27
Tuesday, August 7, 12   28
  のアップデート
                   1. http://www.r-project.org/ にアクセス
                   2. 自分が使っているバージョンより
                        新しいものが出ているか確認

                   3. 新規にインストール用ファイルを
                        ダウンロードしてインストール


Tuesday, August 7, 12                                   29
  のアップデート
              • セキュリティ上の問題がない限りは,
                        むやみに更新しない
                         • パッケージ(付加機能)の動作不良回避

              • 新旧の共存は可能
                         • Windows/Mac: 別名でインストール
                         • ただし何がどう共有されているかは不明


Tuesday, August 7, 12                               30
 のアンインストール
    • Windows
          • [ Windows XP] コンパネ→プログラムの追加と削除
          • [ Windows 7 ] コンパネ→プログラムのアンインストール

    • Mac OS X
          • /Applications にある    アイコンと /Library の中の
                  Frameworks にある R. framework を削除(CleanApp 可)


Tuesday, August 7, 12                                       31
  の起動

                  • Windows
                        • START → Program → R → R 2.15.1
                  • Mac OS X
                        • /Applications 内の    をクリック



Tuesday, August 7, 12                                      32
「コンソール」の表示を確認




Tuesday, August 7, 12          33
  の終了

           • コンソールに「q()」と入力
                        • 今は「作業スペース」は保存しない
                        • ウィンドウが消えれば終了


Tuesday, August 7, 12                        34
  で困ったら...
               • まずは 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
  概論まとめ

             •          は統計ソフト

             • 無償+何でも統計+美しく作図
             • 困ったら help(sth) !!
Tuesday, August 7, 12              36
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    38
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    39
前置きが長くなりましたが
                  どんどん実行しましょう



Tuesday, August 7, 12           40
まずは四則演算
                        • 式を入力し [Enter] を押す
                          • > 12345 + 56789 [Enter]
                          • > 9753 - 1486 [Enter]
                          • > 3571 * 2984 [Enter]
                          • > 2234/5678 [Enter]
                          • > (12 + 34 -56) * 78 / 90 [Enter]
Tuesday, August 7, 12                                           41
いまのは
    単なる計算式でしたが


Tuesday, August 7, 12          42
 といえば


                        関数
                         が命
Tuesday, August 7, 12           43
関数とは
             指定した値に対して
             何らかの処理をして
                        結果を返すもの
Tuesday, August 7, 12             44
なにはともあれ
             実行してみましょう


Tuesday, August 7, 12             46
sqrt():平方根

                        • > sqrt(2)
                        • > sqrt(144)
                        • > sqrt(104976)
Tuesday, August 7, 12                      47
「関数(値)」が命

       • には多数の関数がある
       • q() や help(sth) も関数
       • 必要な関数をしつこく実行
Tuesday, August 7, 12               48
  といえば


                        変数
                          も命
Tuesday, August 7, 12            49
変数とは
                        1つ以上の値を
             まとめていれておく
                        「箱」のこと
Tuesday, August 7, 12             50
では
             ベクトルとも呼ばれ
                        複数の値を1つに
            まとめたものを指す
Tuesday, August 7, 12              51
統計処理などを行うには
       複数の値をまとめて扱う
                        ことが必要で
              それを使い回すために
                        変数を使う
Tuesday, August 7, 12            52
ちなみに
              変数に数値を
              入れることを
            「代入」といいます
Tuesday, August 7, 12   53
なにはともあれ
             実行してみましょう


Tuesday, August 7, 12             55
変数の名前は “hako”

               •> hako <- c(1,2,3,4,5)
               •> hako
                        • c() 関数:combine (                                                      )
                                      cf. https://twitter.com/#!/sakaue/status/193708048030760960




                        • 値を1つにまとめる関数
                        • 逆に書いても(一応)OK
Tuesday, August 7, 12                                                                               56
c()関数の “<-” は何?

        hako <- c(1,2,3,4,5) の “<-” は

            左向きの矢印(←)
                          を表現
                        (入れ替えても動きます)


Tuesday, August 7, 12                   57
コンソールで「+」が出たら...


                        • 入力中に誤って[Enter] を押すと,
                         待機状態を示す「+」が出る

                          • [STOP] ボタンでキャンセル
                          • [Esc] キーでキャンセル

Tuesday, August 7, 12                            58
履歴機能と補完機能



                   •履歴: [↑][↓] の矢印キー
                   •補完: [Tab]キー
Tuesday, August 7, 12                  59
いま “hako” という名前の
                        「変数」の中に
                1から5までの5つの数字が
                    まとめて入っている状態

Tuesday, August 7, 12                60
では
    使い回してみましょう


Tuesday, August 7, 12        61
以下の関数を実行

                        •> sqrt(hako)

                        • > log(hako)

Tuesday, August 7, 12                   62
もし変数がなかったら
                            何度も関数を
                        繰り返す羽目になる
                         sqrt(1), sqrt(2) ... sqrt(5)
                          log(1), log (2) ... log (5)

Tuesday, August 7, 12                                   63
一括処理のために
             変数(ベクトル)の
                        利用は不可欠

Tuesday, August 7, 12            64
ここまでのまとめ
        •   は「関数」と「変数」が命
        • 関数を使って数値を処理
          • q(), help(), sqrt(), log(), c()
        • 変数を使って一括処理!
Tuesday, August 7, 12                         65
覚える必要はなく
                        メモ等を頼りに
                        実行できれば OK

Tuesday, August 7, 12               66
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    67
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    68
Sub topics

                        1. 行列のおはなし
                        2. データフレーム
                        3. 外部データの読込

Tuesday, August 7, 12                  69
さきほど
            一行で表せる数値を
                        扱いましたが

Tuesday, August 7, 12            70
実際のデータは
                        複数行あるはず


Tuesday, August 7, 12             71
例えば...

           •身長と体重
           •年齢と年収
           • 覚えた単語数とTOEICスコア
Tuesday, August 7, 12            72
表にすれば...
                              身長    体重
                        A     180   75
                        B     170   65
                        C     165   60
                        D     175   70
                        E     190   80
Tuesday, August 7, 12                    73
複数の行や列で表される
                        データを扱うために
                        Rでは「行列」を使う


Tuesday, August 7, 12                74
行列とは


      数値が縦横に並べられたもの



Tuesday, August 7, 12          75
1   2   3
                        4   5   6
                        7   8   9


Tuesday, August 7, 12               76
Tuesday, August 7, 12
                        行   77
1   2   3
                        4   5   6
                        7   8   9


Tuesday, August 7, 12               78
1   2   3
                        4   5   6
                        7   8   9


Tuesday, August 7, 12               79
1   2   3
                        4   5   6
                        7   8   9


Tuesday, August 7, 12               80
Tuesday, August 7, 12
                        列   81
1   2   3
                        4   5   6
                        7   8   9


Tuesday, August 7, 12               82
1   2   3
                        4   5   6
                        7   8   9


Tuesday, August 7, 12               83
1   2   3
                        4   5   6
                        7   8   9


Tuesday, August 7, 12               84
ひとまず
              「行列」という存在を
               知ってやってください

Tuesday, August 7, 12          85
そんな行列を扱うために

               matrix() 関数
                        を使う

Tuesday, August 7, 12         86
matrix() 関数

           • 行列を作る関数
           • matrix(要素, 行の数, 列の数)
           • デフォでは列方向に配置
Tuesday, August 7, 12                 87
このようなデータなら
                            身長    体重
                        A   180   75
                        B   170   65
                        C   165   60
                        D   175   70
                        E   190   80
Tuesday, August 7, 12                  88
行列を作ってみる
     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
> karada
                         と入力して
                        変数の中身を確認

Tuesday, August 7, 12                90
行列の要素を取り出す
                   demo <- matrix(1:30,nrow=5,ncol=6)




       http://gyazo.com/76c58d5d6c8426a44f160897cda99671.png

Tuesday, August 7, 12                                          91
行列の要素を取り出す
                        2行目を表示 → demo[2,]
                        2列目を表示 → demo[,2]




              http://gyazo.com/6726084afd9e1cc4b03df85fe6bc0f29.png
Tuesday, August 7, 12                                                 92
行列の要素を取り出す

                        2行目と4行目を表示
                         → demo[c(2,4),]
                        2列目と4列目を表示
                         → demo[, c(2,4)]

Tuesday, August 7, 12                       93
行列の要素を取り出す




              http://gyazo.com/a116c0e2f1284ea7d38bf7024d92f1cc.png
Tuesday, August 7, 12                                                 94
行列まとめ

              • 横方向が行、縦方向が列
              • デフォルトでの数値の並びに注意
              • 必要な要素を適宜取り出して値を確認

Tuesday, August 7, 12               95
Sub topics

                        1. 行列のおはなし
                        2. データフレーム
                        3. 外部データの読込

Tuesday, August 7, 12                  96
データフレームとは

       • いろんなデータを突っ込んだもの
                   • いろんな=質的データ+量的データ
                   • 突っ込む=一緒に並んでいること

Tuesday, August 7, 12                   97
データフレームとは
                        名前   血液型   身長    体重
                        坂本    B    175   65
                        高橋    B    177   70
                        阿部    B    174   75
                        長野    A    179   70
                        松本    O    170   60
Tuesday, August 7, 12                         98
データフレームとは

                        • Excel の WS とほぼ同じイメージ
                        • 既存データの読込>自力で作る
                           • data.frame() 関数が使える

Tuesday, August 7, 12                              99
じゃあ
            実際に自力で作るか
                        といったら...

Tuesday, August 7, 12              100
そこで
                        外部データの読込
                          を行おう

Tuesday, August 7, 12              102
Sub topics

                        1. 行列のおはなし
                        2. データフレーム
                        3. 外部データの読込

Tuesday, August 7, 12                  103
ここはトラブル多発地域です

                        うまくいかない時は
              まず説明をお聴きください

Tuesday, August 7, 12               104
おそらく...


            • Excel でデータ管理
            • できればそのまま活かしたい

Tuesday, August 7, 12             105
作業ディレクトリの設定


              • 作業ディレクトリとは...
                • データを読み込む場所
                • データを書き出す場所
Tuesday, August 7, 12            106
作業ディレクトリの設定

              • Windows:ファイル → ディレクトリの変更
                 • “My Documents” にファイル移動
              • Mac OS X:環境設定 → 一般(起動)
                 • ホームディレクトリにファイル移動
              • Linux:up to you...

Tuesday, August 7, 12                       107
作業ディレクトリの設定

            • コンソールからの確認・設定も可能
                        • getwd()関数:現在の設定を確認
                           • > getwd()
                        • setwd()関数:現在の設定を変更
                         •   > setwd("/Users/sakaue/Desktop/")
                         •   実行注意!!



Tuesday, August 7, 12                                            108
データの読込 その1


             • read.csv() 関数
                • CSV 形式のファイルを読み込む
                • CSV: Comma Separated Value

Tuesday, August 7, 12                          109
データの読込 その1

           1. let2012.csv を作業ディレクトリへ移動
                        • XLS/XLSX 形式のものは保存時に変換
                        • CSV ファイルの文字コードは UTF-8 に
           2. > test <- read.csv(“let2012.csv”) で代入

           3. > test [Enter] で中身を確認


Tuesday, August 7, 12                                 110
CSV 変換なんて面倒...
                        という方に


Tuesday, August 7, 12             111
データの読込 その2


             • read.delim() 関数
                • 表形式のデータ読み込む
                • delim: delimiter(区切り文字)

Tuesday, August 7, 12                       112
データの読込 その2

         1. let2012.xls を開いてマウスで範囲指定
         2. > test2 <- read.delim("clipboard") で代入
                        Mac の場合: read.delim(pipe(“pbpaste”))

         3. > test2 [Enter] で中身を確認



Tuesday, August 7, 12                                          113
読み込んだら関数で処理

                        > table(test2[,2])
                                        2列目対象

                          •  度数分布を確認する
                        > mean(test2[,3]) 3列目対象
                          • 平均値を求める

Tuesday, August 7, 12                             114
外部データの読込

          • 作業ディレクトリの設定に注意
          • CSV 形式に変換後、read.csv()関数で読込
          • 必要な行 or 列を指定して処理

Tuesday, August 7, 12                    115
データを集めたら
                        数値要約だけでなく
              データの視覚化も必要

Tuesday, August 7, 12               117
というわけで
                        作図のお時間です


Tuesday, August 7, 12              118
基本的な作図手順


                   1. 変数に値を代入する
                   2. 作図用の関数を実行


Tuesday, August 7, 12              119
たった2段階
                        Excel や SPSS ではこうはいかない




Tuesday, August 7, 12                            120
作成できる図の種類

                          • ヒストグラム
                          • 散布図
                          • 棒グラフ
                          • 折れ線グラフ
                          • 箱ひげ図
Tuesday, August 7, 12                121
作成できる図の種類

                          • ヒストグラム
                          • 散布図
                          • 棒グラフ
                          • 折れ線グラフ
                          • 箱ひげ図
Tuesday, August 7, 12                122
まずはヒストグラム



                    > hist(test2[,2])


Tuesday, August 7, 12                   123
箱ひげ図


                    > boxplot(test2[,2], test2[,3],
                    names=c("Male", "Female"),
                    horizontal=T)


Tuesday, August 7, 12                                 125
箱ひげ図


                    > boxplot(test2[,2], test2[,3],
                    names=c("Male", "Female"),
                    horizontal=T, ylim=c(0,100))


Tuesday, August 7, 12                                 126
箱ひげ図

                    > boxplot(test2[,2], test2[,3],
                    names=c("Male", "Female"),
                    horizontal=T, ylim=c(0,100),
                    col="blue")


Tuesday, August 7, 12                                 127
箱ひげ図

                  > 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
グラフの保存方法

           > pdf()         # pdf デバイスを開く()

           > plot(1:10)    # プロット → Rplots.pdf に出力

           > dev.off()     # デバイスを閉じる


            ★慣れないうちは画面上のメニューから選ぶのが無難




Tuesday, August 7, 12                                129
作図手順のまとめ
                   1. 変数に値を代入する

                   2. 作図用の関数を使って処理する

                   3. 形式を指定して保存

               +人に伝承(twitter, FB)

Tuesday, August 7, 12                  130
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    132
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    133
を使う経緯


                        この世の様々な現象を
                        数値データ+検定
                         から捉えてみたい

Tuesday, August 7, 12                134
共分散分析
                        カイ二乗検定
                                     パワーアナリシス
        主成分分析
                                         符号検定

         因子分析                               t 検定

                                         分散分析
                    マクマネー検定
                                  クラスカル・ウォリス検定
                           判別分析

Tuesday, August 7, 12                              135
で「t 検定」




Tuesday, August 7, 12             136
t 検定

                  • 2つのグループの平均値の差の検定
                        するのに使う手法

                  • R では t.test() であっさりと実行

Tuesday, August 7, 12                        137
t 検定
             •          (例)あるテストの平均値に男女差があるかどうか



   > male <- test2[,2]
   > female <- test2[,3]
   > t.test(male, female, var.equal=TRUE)




Tuesday, August 7, 12                             138
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.20000

Tuesday, August 7, 12                                   139
で「カイ二乗検定」




Tuesday, August 7, 12               141
カイ二乗検定
           • 独立性の検定のために使う
                 •      (例)数学が好き嫌いと統計の好き嫌いの間に有
                        意な連関があるか

                 •      (例)あるコーパス中の表現Aと表現Bの頻度の差

           • ざっくり言えば,期待度数と観測度数のズレ
                  が偶然出ちゃったかどうかを調べる


Tuesday, August 7, 12                             142
事例: 接続詞 “however” の生起位置の比較


                              文頭      文中       文末      合計
                        頻度    109      347        8    493

                             [文頭] However, ....
                             [文中] ..., however, ....
                             [文末] ..., however.

Tuesday, August 7, 12                                        143
生起位置の比較のためにカイ二乗検定を実行

    > 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



Tuesday, August 7, 12                                                     144
で検定のまとめ
               • 差がありそうかなさそうかを判断するため
                        に各種検定を行う

                        • 平均値の差の検定:t 検定・分散分析
                        • 独立性の検定  :カイ二乗検定
               • 数行のコマンドであっさり検定!
                  • データ準備の手間は多少かかるかも...
Tuesday, August 7, 12                          145
を使って
                        この世の現象を
                        数値データ+検定
                        から捉えてみよう!

Tuesday, August 7, 12               146
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    147
Agenda
                        1. R の基本操作
                        2. 関数と変数が命
                        3. 外部データの読込と作図
                        4. R で検定
                        5. 言語データの処理

Tuesday, August 7, 12                    148
Sub topics

                   1. 言語データ処理の流れ
                   2. R による and と but の検索
                   3. パッケージ利用によるデータ処理



Tuesday, August 7, 12                       149
Sub topics

                   1. 言語データ処理の流れ
                   2. R による and と but の検索
                   3. パッケージ利用によるデータ処理



Tuesday, August 7, 12                       150
言語データ処理の流れ
                        1) データを読み込む
                        2) データを分解する
                        3) データを   える
                        4) 数値を求める
                        5) データを保存する
Tuesday, August 7, 12                  151
1) データを読み込む

             > nns <- scan("nns_raw.txt",
             what="character")

             Read 62959 items




Tuesday, August 7, 12                       152
2) データを分解する
          > nns_list <- strsplit(nns, " ")
                   # スペースでデータをリスト化
                   # 干し柿状態(?)

          > nns_unlist <- unlist(nns_list)
                   # リストされたデータをバラバラに分解


Tuesday, August 7, 12                        153
3) データを   える

         > sort_nns <- sort(nns_unlist)
           # データの並び替え

         > uniq_nns <- unique(sort_nns)
                   # 並び替えたデータをまとめる


Tuesday, August 7, 12                     154
4) 数値を求める
         > length(nns_unlist)
         [1] 70220    # Token
         > nns_all <- table(nns_unlist)
           # 単語一覧表の作成

         > nns_type <- length(uniq_nns)
         > nns_type
         [1] 7579     # Type

Tuesday, August 7, 12                     155
5) データを保存する

            > write.table(nns_all,
            file="freq.txt", sep="t")

            # freq.txt という名で列をタブ区切りにして保存




Tuesday, August 7, 12                      156
Sub topics

                   1. 言語データ処理の流れ
                   2. R による and と but の検索
                   3. パッケージ利用によるデータ処理



Tuesday, August 7, 12                       157
Sub topics

                   1. 言語データ処理の流れ
                   2. R による and と but の検索
                   3. パッケージ利用によるデータ処理



Tuesday, August 7, 12                       158
R による and と but の検索


                 •grep 関数・length 関数
                        • grep() : 文字列マッチング
                        • length(): 要素数のカウント

Tuesday, August 7, 12                          159
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
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] 260




Tuesday, August 7, 12                                                    161
R による and と but の検索
 > barplot(freq, names=c("And", "and", "But", "but"), horiz=T, las=1)




Tuesday, August 7, 12                                                   162
R による and と but の検索

           • R で基本的な検索・分析ならば...
                        1) データを strsplit() + unlist() して
                        2) grep() と length() でカウント
                        3) barplot() などで視覚化
                        4) chisq.test() などで検定


Tuesday, August 7, 12                                      163
Sub topics

                   1. 言語データ処理の流れ
                   2. R による and と but の検索
                   3. パッケージ利用によるデータ処理



Tuesday, August 7, 12                       164
Sub topics

                   1. 言語データ処理の流れ
                   2. R による and と but の検索
                   3. パッケージ利用によるデータ処理



Tuesday, August 7, 12                       165
Packageとは?

        • ある処理・機能に特化したプログラム
                    •   base(基本パッケージ)だけでも 1,000 以上
                    •   特殊な処理を行う際は,別の package を追加
                    •   言語処理に特化したものもある(ex. RMeCab)




Tuesday, August 7, 12                                166
言語処理に特化した 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.pdf




Tuesday, August 7, 12                                                                        167
日本語データの分析を
                        助けてくれる
                        RMeCab を紹介

Tuesday, August 7, 12                168
RMeCabとは
                 • 石田 基広氏が開発したパッケージ
                  • R から MeCab を呼び出して日本語
                         のテキストを解析させる

                        • 解析結果をも R で出力してくれる
                         素晴らしいプログラム

Tuesday, August 7, 12                         169
デモ一覧
          • RMeCabText() : ファイル解析
          • RMeCabFreq() : 頻度集計
          • Ngram() : N-gram 解析
          • collocate() : 共起関係の分析
Tuesday, August 7, 12               170
おわりに

Tuesday, August 7, 12          171
のススメ

Tuesday, August 7, 12          172
Excel
                        SPSS
Tuesday, August 7, 12           174
参考文献




Tuesday, August 7, 12          176
参考文献(続)




Tuesday, August 7, 12             178
参考文献(続)




Tuesday, August 7, 12             179

Contenu connexe

Tendances

MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...
Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...
Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...Toshiki Sakai
 
深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service 深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service Amazon Web Services
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計Takahiro Kubo
 
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~Yugo Shimizu
 
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)NTT DATA OSS Professional Services
 
Visual question answering vqa
Visual question answering vqaVisual question answering vqa
Visual question answering vqahyunyoung Lee
 
データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法Tatsuya Shirakawa
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)Shinya Sugiyama
 
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)STAIR Lab, Chiba Institute of Technology
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化kazuhcurry
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめOhyama Masanori
 
ハトでもわかる単純パーセプトロン
ハトでもわかる単純パーセプトロンハトでもわかる単純パーセプトロン
ハトでもわかる単純パーセプトロンtakosumipasta
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習Preferred Networks
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたYusuke Kon
 
ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術Shohei Hido
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncKoji Shinkubo
 

Tendances (20)

【2017年4月時点】Oracle Essbase 概要
【2017年4月時点】Oracle Essbase 概要【2017年4月時点】Oracle Essbase 概要
【2017年4月時点】Oracle Essbase 概要
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...
Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...
Cv勉強会cvpr2018読み会: Im2Flow: Motion Hallucination from Static Images for Action...
 
深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service 深入淺出 Amazon Database Migration Service
深入淺出 Amazon Database Migration Service
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
 
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
 
Visual question answering vqa
Visual question answering vqaVisual question answering vqa
Visual question answering vqa
 
データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
 
「YDNの広告のCTRをオンライン学習で予測してみた」#yjdsw4
「YDNの広告のCTRをオンライン学習で予測してみた」#yjdsw4「YDNの広告のCTRをオンライン学習で予測してみた」#yjdsw4
「YDNの広告のCTRをオンライン学習で予測してみた」#yjdsw4
 
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
グラフ構造データに対する深層学習〜創薬・材料科学への応用とその問題点〜 (第26回ステアラボ人工知能セミナー)
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
 
ハトでもわかる単純パーセプトロン
ハトでもわかる単純パーセプトロンハトでもわかる単純パーセプトロン
ハトでもわかる単純パーセプトロン
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
 
ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_sync
 

En vedette

統計解析環境Rによる言語データの分析
統計解析環境Rによる言語データの分析統計解析環境Rによる言語データの分析
統計解析環境Rによる言語データの分析SAKAUE, Tatsuya
 
R のインストール手順(LET 2012用)
R のインストール手順(LET 2012用)R のインストール手順(LET 2012用)
R のインストール手順(LET 2012用)SAKAUE, Tatsuya
 
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」SAKAUE, Tatsuya
 
Annual Report 2012
Annual Report 2012Annual Report 2012
Annual Report 2012charsbar
 
Analyze CPAN, Analyze Community
Analyze CPAN, Analyze CommunityAnalyze CPAN, Analyze Community
Analyze CPAN, Analyze Communitycharsbar
 
Introduction to "R" for Language Researchers
Introduction to "R" for Language ResearchersIntroduction to "R" for Language Researchers
Introduction to "R" for Language ResearchersSAKAUE, Tatsuya
 
(続) Effective SQLite for Android
(続) Effective SQLite for Android(続) Effective SQLite for Android
(続) Effective SQLite for AndroidShinobu Okano
 
変数、リファレンス
変数、リファレンス変数、リファレンス
変数、リファレンスcharsbar
 
Brookfield Place Worldwide Offices
Brookfield Place Worldwide OfficesBrookfield Place Worldwide Offices
Brookfield Place Worldwide OfficesSuporteaoCorretor
 
Cargadores inalambricos
Cargadores inalambricosCargadores inalambricos
Cargadores inalambricosAngel Lockwood
 
Expresso Acessível - 1º Seminário PHP no Serpro
Expresso Acessível - 1º Seminário PHP no SerproExpresso Acessível - 1º Seminário PHP no Serpro
Expresso Acessível - 1º Seminário PHP no SerproFlávio Lisboa
 

En vedette (20)

統計解析環境Rによる言語データの分析
統計解析環境Rによる言語データの分析統計解析環境Rによる言語データの分析
統計解析環境Rによる言語データの分析
 
R のインストール手順(LET 2012用)
R のインストール手順(LET 2012用)R のインストール手順(LET 2012用)
R のインストール手順(LET 2012用)
 
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
 
Annual Report 2012
Annual Report 2012Annual Report 2012
Annual Report 2012
 
Analyze CPAN, Analyze Community
Analyze CPAN, Analyze CommunityAnalyze CPAN, Analyze Community
Analyze CPAN, Analyze Community
 
Introduction to "R" for Language Researchers
Introduction to "R" for Language ResearchersIntroduction to "R" for Language Researchers
Introduction to "R" for Language Researchers
 
(続) Effective SQLite for Android
(続) Effective SQLite for Android(続) Effective SQLite for Android
(続) Effective SQLite for Android
 
Nagoyar 5 Part 1
Nagoyar 5 Part 1Nagoyar 5 Part 1
Nagoyar 5 Part 1
 
変数、リファレンス
変数、リファレンス変数、リファレンス
変数、リファレンス
 
Lécran Lagoa
Lécran LagoaLécran Lagoa
Lécran Lagoa
 
Mar Azul Sahy Residencial
Mar Azul Sahy ResidencialMar Azul Sahy Residencial
Mar Azul Sahy Residencial
 
Brookfield Place Worldwide Offices
Brookfield Place Worldwide OfficesBrookfield Place Worldwide Offices
Brookfield Place Worldwide Offices
 
Union Square Suites
Union Square SuitesUnion Square Suites
Union Square Suites
 
Unique Offices
Unique OfficesUnique Offices
Unique Offices
 
Cargadores inalambricos
Cargadores inalambricosCargadores inalambricos
Cargadores inalambricos
 
Expresso Acessível - 1º Seminário PHP no Serpro
Expresso Acessível - 1º Seminário PHP no SerproExpresso Acessível - 1º Seminário PHP no Serpro
Expresso Acessível - 1º Seminário PHP no Serpro
 
Costa do Sahy Casas
Costa do Sahy CasasCosta do Sahy Casas
Costa do Sahy Casas
 
Comandos
ComandosComandos
Comandos
 
Sofisticato Residences Casa
Sofisticato Residences CasaSofisticato Residences Casa
Sofisticato Residences Casa
 
BUAT NPIK-TEKSTIL EXPRESS
BUAT NPIK-TEKSTIL EXPRESSBUAT NPIK-TEKSTIL EXPRESS
BUAT NPIK-TEKSTIL EXPRESS
 

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

Nagoya.R #8 入門者講習資料
Nagoya.R #8 入門者講習資料Nagoya.R #8 入門者講習資料
Nagoya.R #8 入門者講習資料SAKAUE, Tatsuya
 
統計解析環境Rによる統計処理の基本―検定と視覚化―
統計解析環境Rによる統計処理の基本―検定と視覚化―統計解析環境Rによる統計処理の基本―検定と視覚化―
統計解析環境Rによる統計処理の基本―検定と視覚化―SAKAUE, Tatsuya
 
ドザーに贈るMacのちょっと効率的な使い方
ドザーに贈るMacのちょっと効率的な使い方ドザーに贈るMacのちょっと効率的な使い方
ドザーに贈るMacのちょっと効率的な使い方Takuya Fujimura
 
第一回ゆるふわーる
第一回ゆるふわーる第一回ゆるふわーる
第一回ゆるふわーるSachiko Hirata
 
Google IO 2012 つまみ食い(1) ADT r20 の新機能
Google IO 2012 つまみ食い(1) ADT r20 の新機能Google IO 2012 つまみ食い(1) ADT r20 の新機能
Google IO 2012 つまみ食い(1) ADT r20 の新機能Takuya Fujimura
 
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティストSatoru Yamamoto
 
「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with...
「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with...「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with...
「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with...SAKAUE, Tatsuya
 
safety and security using Raspberry PI
safety and security using Raspberry PIsafety and security using Raspberry PI
safety and security using Raspberry PIKiyoshi Ogawa
 
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsCasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsNaoki Sega
 
10分で分かるr言語入門ver2.4
10分で分かるr言語入門ver2.410分で分かるr言語入門ver2.4
10分で分かるr言語入門ver2.4Nobuaki Oshiro
 
#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーション#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーションYasushi Hara
 
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanWO Community
 
Tizenネイティブアプリ開発ことはじめ
Tizenネイティブアプリ開発ことはじめTizenネイティブアプリ開発ことはじめ
Tizenネイティブアプリ開発ことはじめtoshihirock
 

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

Nagoya.R #8 入門者講習資料
Nagoya.R #8 入門者講習資料Nagoya.R #8 入門者講習資料
Nagoya.R #8 入門者講習資料
 
統計解析環境Rによる統計処理の基本―検定と視覚化―
統計解析環境Rによる統計処理の基本―検定と視覚化―統計解析環境Rによる統計処理の基本―検定と視覚化―
統計解析環境Rによる統計処理の基本―検定と視覚化―
 
ドザーに贈るMacのちょっと効率的な使い方
ドザーに贈るMacのちょっと効率的な使い方ドザーに贈るMacのちょっと効率的な使い方
ドザーに贈るMacのちょっと効率的な使い方
 
Hiroshimar4_Rintro
Hiroshimar4_RintroHiroshimar4_Rintro
Hiroshimar4_Rintro
 
第一回ゆるふわーる
第一回ゆるふわーる第一回ゆるふわーる
第一回ゆるふわーる
 
データ分析概略
データ分析概略データ分析概略
データ分析概略
 
JUC2012
JUC2012JUC2012
JUC2012
 
Google IO 2012 つまみ食い(1) ADT r20 の新機能
Google IO 2012 つまみ食い(1) ADT r20 の新機能Google IO 2012 つまみ食い(1) ADT r20 の新機能
Google IO 2012 つまみ食い(1) ADT r20 の新機能
 
NFC app launcher
NFC app launcherNFC app launcher
NFC app launcher
 
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
 
「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with...
「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with...「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with...
「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with...
 
safety and security using Raspberry PI
safety and security using Raspberry PIsafety and security using Raspberry PI
safety and security using Raspberry PI
 
Rゼミ 1
Rゼミ 1Rゼミ 1
Rゼミ 1
 
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsCasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
 
10分で分かるr言語入門ver2.4
10分で分かるr言語入門ver2.410分で分かるr言語入門ver2.4
10分で分かるr言語入門ver2.4
 
#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーション#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーション
 
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
 
Heroku入門
Heroku入門Heroku入門
Heroku入門
 
Tizenネイティブアプリ開発ことはじめ
Tizenネイティブアプリ開発ことはじめTizenネイティブアプリ開発ことはじめ
Tizenネイティブアプリ開発ことはじめ
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
 

Plus de SAKAUE, Tatsuya

HiRoshimaR6_ExplodingBoxplot
HiRoshimaR6_ExplodingBoxplotHiRoshimaR6_ExplodingBoxplot
HiRoshimaR6_ExplodingBoxplotSAKAUE, Tatsuya
 
HiroshimaR6_Introduction
HiroshimaR6_IntroductionHiroshimaR6_Introduction
HiroshimaR6_IntroductionSAKAUE, Tatsuya
 
MethokenOkinawa_Sakaue_LearnerCorpus
MethokenOkinawa_Sakaue_LearnerCorpusMethokenOkinawa_Sakaue_LearnerCorpus
MethokenOkinawa_Sakaue_LearnerCorpusSAKAUE, Tatsuya
 
ポッドキャスト利用による個別学習の支援とリスニング不安への影響
ポッドキャスト利用による個別学習の支援とリスニング不安への影響ポッドキャスト利用による個別学習の支援とリスニング不安への影響
ポッドキャスト利用による個別学習の支援とリスニング不安への影響SAKAUE, Tatsuya
 
Nagoya.R #10 LT 「グラフはベクタ(ベクトル)画像で出力しようじゃありませんか」
Nagoya.R #10 LT 「グラフはベクタ(ベクトル)画像で出力しようじゃありませんか」Nagoya.R #10 LT 「グラフはベクタ(ベクトル)画像で出力しようじゃありませんか」
Nagoya.R #10 LT 「グラフはベクタ(ベクトル)画像で出力しようじゃありませんか」SAKAUE, Tatsuya
 
ベクタ画像と PNG 画像の比較
ベクタ画像と PNG 画像の比較ベクタ画像と PNG 画像の比較
ベクタ画像と PNG 画像の比較SAKAUE, Tatsuya
 
反応時間データをどう分析し図示するか
反応時間データをどう分析し図示するか反応時間データをどう分析し図示するか
反応時間データをどう分析し図示するかSAKAUE, Tatsuya
 
授業外で個別学習を促進するためのポッドキャスト利用
授業外で個別学習を促進するためのポッドキャスト利用授業外で個別学習を促進するためのポッドキャスト利用
授業外で個別学習を促進するためのポッドキャスト利用SAKAUE, Tatsuya
 
Osaka.R #7 LT: フォントのオハナシ
Osaka.R #7 LT: フォントのオハナシOsaka.R #7 LT: フォントのオハナシ
Osaka.R #7 LT: フォントのオハナシSAKAUE, Tatsuya
 
HiRoshima.R #2 LT by @sakaue
HiRoshima.R #2 LT by @sakaueHiRoshima.R #2 LT by @sakaue
HiRoshima.R #2 LT by @sakaueSAKAUE, Tatsuya
 
HiRoshima.R #2 入門者講習資料
HiRoshima.R #2 入門者講習資料HiRoshima.R #2 入門者講習資料
HiRoshima.R #2 入門者講習資料SAKAUE, Tatsuya
 
Japan.R #2 Introduction to R
Japan.R #2 Introduction to RJapan.R #2 Introduction to R
Japan.R #2 Introduction to RSAKAUE, Tatsuya
 
SAKAUE & KIDA (2011) @JASELE Yamagata
SAKAUE & KIDA (2011) @JASELE Yamagata SAKAUE & KIDA (2011) @JASELE Yamagata
SAKAUE & KIDA (2011) @JASELE Yamagata SAKAUE, Tatsuya
 

Plus de SAKAUE, Tatsuya (20)

HiRoshimaR6_ExplodingBoxplot
HiRoshimaR6_ExplodingBoxplotHiRoshimaR6_ExplodingBoxplot
HiRoshimaR6_ExplodingBoxplot
 
HiroshimaR6_Introduction
HiroshimaR6_IntroductionHiroshimaR6_Introduction
HiroshimaR6_Introduction
 
HiroshimaR5_Intro
HiroshimaR5_IntroHiroshimaR5_Intro
HiroshimaR5_Intro
 
JASELE2015-KumamotoWS
JASELE2015-KumamotoWSJASELE2015-KumamotoWS
JASELE2015-KumamotoWS
 
HiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaueHiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaue
 
Hiroshimar3_rmecab
Hiroshimar3_rmecabHiroshimar3_rmecab
Hiroshimar3_rmecab
 
MethokenOkinawa_Sakaue_LearnerCorpus
MethokenOkinawa_Sakaue_LearnerCorpusMethokenOkinawa_Sakaue_LearnerCorpus
MethokenOkinawa_Sakaue_LearnerCorpus
 
ポッドキャスト利用による個別学習の支援とリスニング不安への影響
ポッドキャスト利用による個別学習の支援とリスニング不安への影響ポッドキャスト利用による個別学習の支援とリスニング不安への影響
ポッドキャスト利用による個別学習の支援とリスニング不安への影響
 
Nagoya.R #10 LT 「グラフはベクタ(ベクトル)画像で出力しようじゃありませんか」
Nagoya.R #10 LT 「グラフはベクタ(ベクトル)画像で出力しようじゃありませんか」Nagoya.R #10 LT 「グラフはベクタ(ベクトル)画像で出力しようじゃありませんか」
Nagoya.R #10 LT 「グラフはベクタ(ベクトル)画像で出力しようじゃありませんか」
 
ベクタ画像と PNG 画像の比較
ベクタ画像と PNG 画像の比較ベクタ画像と PNG 画像の比較
ベクタ画像と PNG 画像の比較
 
反応時間データをどう分析し図示するか
反応時間データをどう分析し図示するか反応時間データをどう分析し図示するか
反応時間データをどう分析し図示するか
 
授業外で個別学習を促進するためのポッドキャスト利用
授業外で個別学習を促進するためのポッドキャスト利用授業外で個別学習を促進するためのポッドキャスト利用
授業外で個別学習を促進するためのポッドキャスト利用
 
Osaka.R #7 LT: フォントのオハナシ
Osaka.R #7 LT: フォントのオハナシOsaka.R #7 LT: フォントのオハナシ
Osaka.R #7 LT: フォントのオハナシ
 
HiRoshima.R #2 LT by @sakaue
HiRoshima.R #2 LT by @sakaueHiRoshima.R #2 LT by @sakaue
HiRoshima.R #2 LT by @sakaue
 
HiRoshima.R #2 入門者講習資料
HiRoshima.R #2 入門者講習資料HiRoshima.R #2 入門者講習資料
HiRoshima.R #2 入門者講習資料
 
How2Install "R"
How2Install "R"How2Install "R"
How2Install "R"
 
Japan.R #2 Introduction to R
Japan.R #2 Introduction to RJapan.R #2 Introduction to R
Japan.R #2 Introduction to R
 
Nagoya.R #6 LT Beanplot
Nagoya.R #6 LT BeanplotNagoya.R #6 LT Beanplot
Nagoya.R #6 LT Beanplot
 
SAKAUE & KIDA (2011) @JASELE Yamagata
SAKAUE & KIDA (2011) @JASELE Yamagata SAKAUE & KIDA (2011) @JASELE Yamagata
SAKAUE & KIDA (2011) @JASELE Yamagata
 
Methoken.R
Methoken.RMethoken.R
Methoken.R
 

Dernier

次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~Kochi Eng Camp
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料Tokyo Institute of Technology
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 

Dernier (7)

次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 

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

  • 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.pdf Tuesday, 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
  • 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
  • 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
  • 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つにまとめる関数 • 逆に書いても(一応)OK Tuesday, 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. 覚える必要はなく メモ等を頼りに 実行できれば OK Tuesday, 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 80 Tuesday, 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 9 Tuesday, August 7, 12 76
  • 64. Tuesday, August 7, 12 行 77
  • 65. 1 2 3 4 5 6 7 8 9 Tuesday, August 7, 12 78
  • 66. 1 2 3 4 5 6 7 8 9 Tuesday, August 7, 12 79
  • 67. 1 2 3 4 5 6 7 8 9 Tuesday, August 7, 12 80
  • 68. Tuesday, August 7, 12 列 81
  • 69. 1 2 3 4 5 6 7 8 9 Tuesday, August 7, 12 82
  • 70. 1 2 3 4 5 6 7 8 9 Tuesday, August 7, 12 83
  • 71. 1 2 3 4 5 6 7 8 9 Tuesday, 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 80 Tuesday, 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.png Tuesday, August 7, 12 91
  • 79. 行列の要素を取り出す 2行目を表示 → demo[2,] 2列目を表示 → demo[,2] http://gyazo.com/6726084afd9e1cc4b03df85fe6bc0f29.png Tuesday, 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.png Tuesday, 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 60 Tuesday, 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 Value Tuesday, 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.
  • 110. 箱ひげ図 > boxplot(test2[,2], test2[,3], names=c("Male", "Female"), horizontal=T) Tuesday, August 7, 12 125
  • 111. 箱ひげ図 > boxplot(test2[,2], test2[,3], names=c("Male", "Female"), horizontal=T, ylim=c(0,100)) Tuesday, August 7, 12 126
  • 112. 箱ひげ図 > boxplot(test2[,2], test2[,3], names=c("Male", "Female"), horizontal=T, ylim=c(0,100), col="blue") Tuesday, August 7, 12 127
  • 113. 箱ひげ図 > 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
  • 114. グラフの保存方法 > pdf() # pdf デバイスを開く() > plot(1:10) # プロット → Rplots.pdf に出力 > dev.off() # デバイスを閉じる ★慣れないうちは画面上のメニューから選ぶのが無難 Tuesday, August 7, 12 129
  • 115. 作図手順のまとめ 1. 変数に値を代入する 2. 作図用の関数を使って処理する 3. 形式を指定して保存 +人に伝承(twitter, FB) Tuesday, August 7, 12 130
  • 116. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理 Tuesday, August 7, 12 132
  • 117. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理 Tuesday, August 7, 12 133
  • 118. を使う経緯 この世の様々な現象を 数値データ+検定 から捉えてみたい Tuesday, August 7, 12 134
  • 119. 共分散分析 カイ二乗検定 パワーアナリシス 主成分分析 符号検定 因子分析 t 検定 分散分析 マクマネー検定 クラスカル・ウォリス検定 判別分析 Tuesday, August 7, 12 135
  • 121. t 検定 • 2つのグループの平均値の差の検定 するのに使う手法 • R では t.test() であっさりと実行 Tuesday, August 7, 12 137
  • 122. t 検定 • (例)あるテストの平均値に男女差があるかどうか > male <- test2[,2] > female <- test2[,3] > t.test(male, female, var.equal=TRUE) Tuesday, August 7, 12 138
  • 123. 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.20000 Tuesday, August 7, 12 139
  • 125. カイ二乗検定 • 独立性の検定のために使う • (例)数学が好き嫌いと統計の好き嫌いの間に有 意な連関があるか • (例)あるコーパス中の表現Aと表現Bの頻度の差 • ざっくり言えば,期待度数と観測度数のズレ が偶然出ちゃったかどうかを調べる Tuesday, August 7, 12 142
  • 126. 事例: 接続詞 “however” の生起位置の比較 文頭 文中 文末 合計 頻度 109 347 8 493 [文頭] However, .... [文中] ..., however, .... [文末] ..., however. Tuesday, August 7, 12 143
  • 127. 生起位置の比較のためにカイ二乗検定を実行 > 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 Tuesday, August 7, 12 144
  • 128. で検定のまとめ • 差がありそうかなさそうかを判断するため に各種検定を行う • 平均値の差の検定:t 検定・分散分析 • 独立性の検定  :カイ二乗検定 • 数行のコマンドであっさり検定! • データ準備の手間は多少かかるかも... Tuesday, August 7, 12 145
  • 129. を使って この世の現象を 数値データ+検定 から捉えてみよう! Tuesday, August 7, 12 146
  • 130. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理 Tuesday, August 7, 12 147
  • 131. Agenda 1. R の基本操作 2. 関数と変数が命 3. 外部データの読込と作図 4. R で検定 5. 言語データの処理 Tuesday, August 7, 12 148
  • 132. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理 Tuesday, August 7, 12 149
  • 133. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理 Tuesday, August 7, 12 150
  • 134. 言語データ処理の流れ 1) データを読み込む 2) データを分解する 3) データを える 4) 数値を求める 5) データを保存する Tuesday, August 7, 12 151
  • 135. 1) データを読み込む > nns <- scan("nns_raw.txt", what="character") Read 62959 items Tuesday, August 7, 12 152
  • 136. 2) データを分解する > nns_list <- strsplit(nns, " ") # スペースでデータをリスト化 # 干し柿状態(?) > nns_unlist <- unlist(nns_list) # リストされたデータをバラバラに分解 Tuesday, August 7, 12 153
  • 137. 3) データを える > sort_nns <- sort(nns_unlist) # データの並び替え > uniq_nns <- unique(sort_nns) # 並び替えたデータをまとめる Tuesday, August 7, 12 154
  • 138. 4) 数値を求める > length(nns_unlist) [1] 70220 # Token > nns_all <- table(nns_unlist) # 単語一覧表の作成 > nns_type <- length(uniq_nns) > nns_type [1] 7579 # Type Tuesday, August 7, 12 155
  • 139. 5) データを保存する > write.table(nns_all, file="freq.txt", sep="t") # freq.txt という名で列をタブ区切りにして保存 Tuesday, August 7, 12 156
  • 140. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理 Tuesday, August 7, 12 157
  • 141. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理 Tuesday, August 7, 12 158
  • 142. R による and と but の検索 •grep 関数・length 関数 • grep() : 文字列マッチング • length(): 要素数のカウント Tuesday, August 7, 12 159
  • 143. 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
  • 144. 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] 260 Tuesday, August 7, 12 161
  • 145. R による and と but の検索 > barplot(freq, names=c("And", "and", "But", "but"), horiz=T, las=1) Tuesday, August 7, 12 162
  • 146. R による and と but の検索 • R で基本的な検索・分析ならば... 1) データを strsplit() + unlist() して 2) grep() と length() でカウント 3) barplot() などで視覚化 4) chisq.test() などで検定 Tuesday, August 7, 12 163
  • 147. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理 Tuesday, August 7, 12 164
  • 148. Sub topics 1. 言語データ処理の流れ 2. R による and と but の検索 3. パッケージ利用によるデータ処理 Tuesday, August 7, 12 165
  • 149. Packageとは? • ある処理・機能に特化したプログラム • base(基本パッケージ)だけでも 1,000 以上 • 特殊な処理を行う際は,別の package を追加 • 言語処理に特化したものもある(ex. RMeCab) Tuesday, August 7, 12 166
  • 150. 言語処理に特化した 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.pdf Tuesday, August 7, 12 167
  • 151. 日本語データの分析を 助けてくれる RMeCab を紹介 Tuesday, August 7, 12 168
  • 152. RMeCabとは • 石田 基広氏が開発したパッケージ • R から MeCab を呼び出して日本語 のテキストを解析させる • 解析結果をも R で出力してくれる 素晴らしいプログラム Tuesday, August 7, 12 169
  • 153. デモ一覧 • RMeCabText() : ファイル解析 • RMeCabFreq() : 頻度集計 • Ngram() : N-gram 解析 • collocate() : 共起関係の分析 Tuesday, August 7, 12 170
  • 156. Excel SPSS Tuesday, August 7, 12 174