33
による 英語コーパスの処理入門 接続詞 and/but の使用実態調査を例に2012-04-07 Computing Language and Culture with R 2012Osaka Univ. 阪上 辰也 1 Saturday, April 7, 12

「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Embed Size (px)

Citation preview

Page 1: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

  による英語コーパスの処理入門

―接続詞 and/but の使用実態調査を例に―

2012-04-07Computing Language and Culture with R 2012@Osaka Univ.

阪上 辰也

1Saturday, April 7, 12

Page 2: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

0. 自己紹介

2Saturday, April 7, 12

Page 3: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

0. 自己紹介

•阪上 辰也 (SAKAUE, Tatsuya)

• 所属:        ... 特任講師• 専門: 第二言語習得

• HiRoshima.R 主催/Nagoya.R 初代主催• ID: sakaue にて

• 詳しくは...

3Saturday, April 7, 12

Page 4: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

4Saturday, April 7, 12

Page 5: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

本日の目標

言語データ分析の基本を“知る”

5Saturday, April 7, 12

Page 6: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Agenda

1. R の基本2. 言語データ処理入門3. R による and/but の検索4. R のススメ

6Saturday, April 7, 12

Page 7: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Agenda

1. R の基本2. 言語データ処理入門3. R による and/but の検索4. R のススメ

7Saturday, April 7, 12

Page 8: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

1. R の基本

• R は「関数」と「変数」が命

• 関数を使ってデータを処理• 関数を使ってサクっと検定・作図• 変数を使って値をまとめておく

8Saturday, April 7, 12

Page 9: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

1. R の基本

> numbers <- c(1, 2, 3, 4, 5) # c関数で数値をまとめて変数へ代入

> sum(numbers) # sum関数で変数を処理し合計値を算出

[1] 15

9Saturday, April 7, 12

Page 10: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Agenda

1. R の基本2. 言語データ処理入門3. R による and/but の検索4. R のススメ

10Saturday, April 7, 12

Page 11: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Agenda

1. R の基本2. 言語データ処理入門3. R による and/but の検索4. R のススメ

11Saturday, April 7, 12

Page 12: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

2. 言語データ処理入門1) データを読み込む2) データを分解する3) データを揃える4) 数値を求める5) データを保存する

12Saturday, April 7, 12

Page 13: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

1) データを読み込む

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

Read 62959 items

13Saturday, April 7, 12

Page 14: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

2) データを分解する> nns_list <- strsplit(nns, " ")

# スペースでデータをリスト化 # 干し柿状態(?)

> nns_unlist <- unlist(ns_list)

# リストされたデータをバラバラに分解

14Saturday, April 7, 12

Page 15: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

3) データを揃える

> sort_nns <- sort(nns_unlist)

# データの並び替え

> uniq_nns <- unique(sort_nns)

# 並び替えたデータをまとめる

15Saturday, April 7, 12

Page 16: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

4) 数値を求める> length(nns_unlist)[1] 70220 # Token

> nns_all <- table(nns_unlist)

# 単語一覧表の作成

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

16Saturday, April 7, 12

Page 17: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

5) データを保存する

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

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

17Saturday, April 7, 12

Page 18: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Agenda

1. R の基本2. 言語データ処理入門3. R による and/but の検索4. R のススメ

18Saturday, April 7, 12

Page 19: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Agenda

1. R の基本2. 言語データ処理入門3. R による and/but の検索4. R のススメ

19Saturday, April 7, 12

Page 20: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

3. R による and/but の検索

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

20Saturday, April 7, 12

Page 21: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

3. 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))

# ヒット数だけを表示

21Saturday, April 7, 12

Page 22: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

3. 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

22Saturday, April 7, 12

Page 23: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

3. R による and/but の検索> barplot(freq, names=c("And", "and", "But", "but"), horiz=T, las=1)

23Saturday, April 7, 12

Page 24: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

3. R による and/but の検索

• R で基本的な検索・分析ならば...

1) データを strsplit() + unlist() して2) grep() と length() でカウント3) barplot() などで視覚化4) chisq.test() などで検定

24Saturday, April 7, 12

Page 25: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Agenda

1. R の基本2. 言語データ処理入門3. R による and/but の検索4. R のススメ

25Saturday, April 7, 12

Page 26: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Agenda

1. R の基本2. 言語データ処理入門3. R による and/but の検索4. R のススメ

26Saturday, April 7, 12

Page 27: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

4. R のススメ• すべての処理・分析が R のみで完結

• <-> Concordancer + Editor + Excel (+ UNIX) + R

• プログラミングの基礎養成に有効• --> Python, Perl, Ruby ...

• 作図が美しい(+Macならフォントも)• Excel の作図はオモチャ

27Saturday, April 7, 12

Page 28: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

28Saturday, April 7, 12

Page 29: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

One more thing...

29Saturday, April 7, 12

Page 30: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Package による付加機能

30Saturday, April 7, 12

Page 31: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

Packageとは?

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

• 言語処理に特化したものもある(ex. RMeCab)

31Saturday, April 7, 12

Page 32: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

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

言語処理に特化した packages

32Saturday, April 7, 12

Page 33: 「R による英語コーパスの処理入門―接続詞 and/but の使用実態調査を例に―」Computing Language and Culture with R 2012

ご意見・ご感想お待ちしております

twitter: @sakaue

e-mail: [email protected]

33Saturday, April 7, 12