【R】統計的言語研究の練習(2)ー 相関分析

公開日:2019-01-15
最終更新:2019-01-16

相関分析

今回は相関分析の練習です.

相関分析とは,複数の変数がどの程度の強さで相互に関係しているか.つまり,一方が変化すれば他方もそれについて変化するという直線的な関係がその程度の強さで見られるかを調べる統計的分析方法である.コーパス研究において,相関分析は頻度から見た語と語の相互関係や,学習者の習熟度と学習者による作文の言語特徴の関係性の把握など,様々な目的で使用される.
(”言語研究のための統計入門 - くろしお出版”)


設定テーマ

娘の通っている英語保育のアメリカ人の先生が,園の様子を書いてくれる英語の連絡帳があるのですが,その連絡帳の文章群と,”ICNALE”の英語母語話者と日本人英語学習者の副詞に相関性があるかをテーマとして設定することにします.

International Corpus Network of Asian Learners of English(ICNALE):神戸大の石川慎一郎研究室で開発されたアジア圏10か国の大学生および英語母語話者による書き言葉・話し言葉コーパス


手順

1.連絡帳の英文を一つのテキストファイルにまとめたteacher.txtを作る.

2.Rでtreetaggerを使って,teacher.txt内の副詞について頻度を調べる.
日本語の形態素解析ツールとしてMeCabを使っていましたが,今回は英語ということでtreetaggerという形態素解析ツールを利用します.
koRpusというパッケージを使用することでR環境でtreeetaggerを動かすことができるとのことです.

早速,”teacher.txt”をtreetaggerの分析にかけます.

install.packages("koRpus")  
library(koRpus)  
tagged.text <- taggedText(  
  treetag("teacher.txt",  
  treetagger="manual", lang="en", TT.options = list(path="/Users/raster/tree-tagger/",  
  preset="en")))

品詞情報tagがadverb,adverb comparative, adverb superlativeの単語を抽出し,
小文字に統一し,単語を表示する

RB.text <- tagged.text[tagged.text$tag=="RB" | tagged.text$tag=="RBR" | tagged.text$tag=="RBS",]  
RB.token.list <- tolower(RB.text$token)  
words_token <- rev(sort(table(RB.token.list)))

次のような結果が得られた(頻度4以上)

 very     well     then    not     also  together  so   always     back    still  
  87       47       25       17       16       15       15       11        9        8  
 as     only      n't     hard    again    right     more     away   all     much   
  7          6        6        6        6        5        5          5      5        4   
  just   instead   here  
  4          4            4

3.次にICNALEの英語母語話者と日本人英語学習者コーパスで,上記の単語の頻度について調査し,ベクトル化して相関係数を計算.(100万語中の出現率)
ICNALEを利用した時の簡単な記録

teacher = c(87, 47, 25, 17, 16, 15, 15, 11, 9, 8, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4)  
native = c(2900, 2103, 1693, 9231, 3320, 231, 4305, 675, 343, 1018, 8013, 2136, 3995, 642, 177, 1085, 3619, 398, 4582, 1992, 2568, 155, 387)  
Japanese = c(2418, 326, 546, 9099, 3618, 45, 8100, 435, 81, 552, 4760, 2735, 7448, 1802, 81, 555, 2591, 287, 5295, 1602, 705, 117, 117)
  • ピアソンの積率相関係数

    cor(teacher, native)  
    cor(teacher, Japanese)  
    cor(Japanese, native)
    

    結果

    > cor(teacher, native)  
    [1] 0.09147254  
    > cor(teacher, Japanese)  
    [1] 0.007601321  
    > cor(Japanese, native)  
    [1] 0.845194
    

    先生と英語母語話者の相関係数と,先生と日本人英語学習者の相関係数はほとんど0に近く,相関がほとんどないという結果になってしまいました.
    しかし,それでも日本人英語学習者より英語母語話者との方が相関係数が大きいのは少し面白いです.
    英語母語話者と日本人英語学習者は同じコーパスから抽出している影響で相関は高いですね.

  • スピアマンの順位相関係数

    cor(teacher, native, method="spearman")  
    cor(teacher, Japanese, method="spearman")  
    cor(Japanese, native, method="spearman")
    
    > cor(teacher, native, method="spearman")  
    [1] 0.2384935  
    > cor(teacher, Japanese, method="spearman")  
    [1] 0.1342501  
    > cor(Japanese, native, method="spearman")  
    [1] 0.9243699  
    >
    

    結果

  • ケンドールの順位相関係数

    cor(teacher, native, method="kendall")  
    cor(teacher, Japanese, method="kendall")  
    cor(Japanese, native, method="kendall")
    

    結果

    > cor(teacher, native, method="kendall")  
    [1] 0.172616  
    > cor(teacher, Japanese, method="kendall")  
    [1] 0.09490368  
    > cor(Japanese, native, method="kendall")  
    [1] 0.7738156
    

    質的データの比較の方が相関係数が現れやすいのかな??

上記の三種類の相関分析について後日もう少し調べてまとめます.


* treetaggerのインストールはこちらを参考にさせていただきました
[Mac] tree-tagger を使って英文の形態素解析を試してみた
* Rでtreetaggerを使用するための”koRpus”の使用方法はこちらを参考にさせていただきました
Using the koRpus Package for Text Analysis
koRpusで原形と品詞情報を得る
*Rでの相関係数関数についてこちらを参考にさせていただきました
相関(と回帰)
Rを使った分析(相関分析)

記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
統計学 / 機械学習 / データ分析 /テキスト処理

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする