2016年度 言語処理論B (Day 1)

 以下は、東京外国語大学の集中講義「言語処理論B」に関するメモです。

Class 1: イントロダクション

 この授業の目的は、文系学生が卒業研究などで用いるデータ処理技術を習得することです。具体的には、(1) Rによるプログラミングの基礎、(2) さまざまなグラフ作成、(3) 日本語および英語を対象とする言語データの分析、などを扱います。
 授業の前半では、以下の本を使って、Rの基本的な使い方を学んでいきます。

 この時間では、主に以下の内容を扱います(上記テキストの1~2章)。

  • Rとは?
  • Rのインストール

参考リンク

Class 2: 簡単な計算

 この時間では、主に以下の内容を扱います(上記テキストの3章)。

  • 四則演算
  • 関数

 練習問題として、こちらのページにある四則演算を「Rを使って」解いてみましょう。

Class 3: 簡単な統計分析

 この時間では、主に以下の内容を扱います(上記テキストの4章)。

# 変数に値を代入
x <- 1
x # 代入結果を確認
x <- 2 # 上書き
x # 代入結果を確認

# 変数にベクトルを代入
y <- 1 : 10
y # 代入結果を確認
z <- c(1, 3, 7, 8, 10) # cは関数の名前
z # 代入結果を確認

# 記述統計量の計算
sum(z) # 総計
mean(z) # 平均値
median(z) # 中央値
min(z) # 最小値
max(z) # 最大値
sd(z) # 標準偏差

# 行列を作成
matrix(c(1, 2, 3, 4), nrow = 2) # 引数nrowで行列の行数を指定
matrix(c(1, 2, 3, 4), nrow = 2, byrow = TRUE) # 引数byrowでTRUEを指定すると、数字の配置が換わる(要注意)
# 変数に行列を代入
m <- matrix(c(12, 17, 22, 16), nrow = 2)
# 代入結果を確認
m
# 行ラベルの作成
rownames(m) <- c("A", "B")
# 列ラベルの作成
colnames(m) <- c("X", "Y")
# ラベルをつけた結果の確認
m

# カイ二乗検定
chisq.test(m, correct = FALSE)
# カイ二乗検定(イェーツの補正あり)
chisq.test(m, correct = TRUE)

# Rに格納されているサンプルデータを使用
cars
cars[, 1] # 1列目 (speed) のデータだけを表示
cars[, 2] # 2列目 (dist) のデータだけを表示
# 相関係数
cor(cars[, 1], cars[, 2]) # 相関係数

 練習問題として、(1) こちらのページにある日本代表選手25名の身長を変数に代入し、その平均と分散を求めてみましょう。(2) そのあと、日本代表選手25名の体重を別の変数に代入し、身長と体重の相関係数を求めなさい。(3) そして、以下の行列をRに入力し、カイ二乗検定イェーツの補正なし)を行いなさい。

A新聞の購読者 B新聞の購読者
内閣支持 225 292
内閣不支持 275 208

参考リンク

Class 4: 簡単なグラフ・ファイルの読み込み

 この時間では、主に以下の内容を扱います(上記テキストの5~6章)。

 p.99の表6.1「AKB48チームメンバーリスト(2015年7月現在)」については、以下のデータからCSVデータを作成するのが楽かもしれません(全員で一緒に作業します)。*1

氏名,年齢,身長
小嶋陽菜,27,164
高橋みなみ,24,148.5
大家志津香,23,164
宮崎美穂,22,159
横山由依,22,158
中村麻里子,21,161
島崎遥香,21,157
小笠原茉由,21,151
前田亜美,20,165
中西智代梨,20,160
小嶋菜月,20,154
佐々木優佳里,19,158
入山杏奈,19,157
田北香世子,18,155
宮脇咲良,17,160
岩田華怜,17,159
白問美瑠,17,155
平田梨奈,17,149
谷口めぐ,16,159
山田菜々美,16,154
大和田南那,15,154
樋渡結依,15,151
西山怜那,14,151

Class 5: 多変量解析

 この時間では、主に以下の内容を扱います(上記テキストの7章)。

  • クラスター分析
  • 主成分分析
  • 対応分析
  • 回帰分析
# クラスター分析、主成分分析、対応分析の練習問題用のデータセット
library(ca)
data(author)
author
# 行と列の入れ替え(転置)
t(author)

# 単回帰分析
lm(cars[, 1] ~ cars[, 2]) # speedからdistを予測
plot(cars[, 2], cars[, 1]) # 先ほどの散布図
abline(lm(cars[, 1] ~ cars[, 2]), col = "red") # 回帰直線を重ね書き
# 重回帰分析
# Rに格納されているサンプルデータを使用
airquality
# 日付のデータを除外
airquality.2 <- airquality[, 1 : 4]
# データの視覚化
pairs(airquality.2)
# オゾン濃度とそれ以外のデータの関係を記述(重回帰分析)
lm.result <- lm(Ozone ~ ., data = airquality.2)
summary(lm.result) # 分析結果の確認

*1:OCRで文字を自動認識しているので、表中のデータに間違いがないかどうかをよく確認してください。