こにしき(言葉・日本社会・教育)

関西学院大学(2016.04~)の寺沢拓敬のブログです(専門:言語社会学)。

雑誌『英語教育』のトレンド分析(および grep()関数について)


この記事(雑誌『英語教育』(戦後)の量的傾向をざっと見る - こにしき(言葉、日本社会、教育))の続きです。

前述の『英語教育 Fifty』附録の記事タイトルのデータはエクセル形式で提供されていたはずなので、表計算ソフトなどをつかえば、ある用語のトレンドは調べられます。ただ、たとえばMSエクセルだと、30,000ケースを越える文字データの処理はけっこう時間がかかり、しかも操作が煩雑で意外と面倒です。というわけで、統計ソフトRで処理した方が、ストレスのない分析ができると思います。


僕もこれを分析していて初めて知ったんですが、Rには正規表現を扱える関数があるそうです。基本のパッケージに入っているので、単純に僕の勉強不足でしたが。。。というわけで、詳しくは以下を参照して下さい。

以下では、目的の文字列をとりだす grep()関数を使って、「オーラル」という語の分析例を見ていきます。
※なお、この関数の用法については、ヘルプを参照

データの下ごしらえ

まず、エクセル形式のデータをRに読み込んだものを、さらにgrep()で分析するための下準備をします。

### ※ 表形式のデータが D に格納されているとする
### ※ タイトルと出版年の行にそれぞれ "title","year"というラベルがついているとする、

T  <- D[,"title"]    # 元データDからタイトルだけを取り出す
Y  <- D[,"year"]     # 元データDから出版年だけを取り出す
YY <- 10*floor(.1*Y) # 出版年(1年ごと)を「年代」(10年刻み)に変換する
 N.YY <- table(YY)   # あとで比率を計算するために母数=総記事数(年代ごと)を算出する

「オーラル」という語を含む記事の取り出し

XXX <- "オーラル|oral" # 目的の文字列指定
                         # ここでは、カタカナと英語いずれかを含めばOKとしています

  i <- grep(XXX,T,perl = TRUE, ignore.case=T) # タイトル内にXXXで指定した文字列を含むケース

 (n <- table(YY[i]))                             # 頻度を算出
 (p <- round(100*table(YY[i])/N.YY[names(n)],3)) # 出現率(%)を算出

結果

>  (n <- table(YY[i]))                   # 頻度
1950 1960 1970 1980 1990 2000 
  26   18   14    8   67    8 

>  (p <- round(100*table(YY[i])/N.YY[names(n)],3)) # 出現率(%)
 1950  1960  1970  1980  1990  2000 
0.944 0.280 0.177 0.094 0.843 0.475 
>


ついでに、図示してみます

barplot(p,las=1,main=XXX,ylab="出現率(%)")    # 出現率を棒グラフで
text(c(1:length(n))*1.2-.4 , 0 , pos=3,n ,col=2) # 頻度を数字で


棒の高さが出現率を、赤い数字が頻度(度数)をあらわしています。

コメント

90年代に突如急増していますが、この理由はすぐピンときます。「オーラルコミュニケーション」という科目が導入されたことで、編集方針などが影響を受けたと考えられるからです。

一方で、50年代にもかなり「オーラル」への注目があったようです。この「オーラル」熱は60年代以降90年代になるまで次第に薄れてきたように見えます。この理由はなんでしょうか?戦後英語教育史(というほどでもないですが)に詳しい方ならすぐわかるでしょうが、アレのせいです。(実際、僕は、生データ=実際の記事を見ているので、アレでOKです)