トップページ -> 大学入試共通テストの英単語出現回数を調べる (自然言語処理ライブラリ使用版)

大学入試共通テストの英単語出現回数を調べる (自然言語処理ライブラリ使用版)

前回は粗い方法で大学入試共通テスト(センター試験)における単語の出現回数を集計しました.
粗い方法では単数形と複数形が別の単語としてカウントされてしまう 動詞の時制が違うと別の単語としてカウントされてしまう などの問題点がありました. 今回はPythonの自然言語処理ライブラリspaCyを利用してもう少しスマートに出現回数を集計してみたいと思います. 前回と同様に2004年から2023年に出題された20年分の大学入試共通テスト(センター試験)における英単語の出現頻度を調べます.
使用したコードの一部はこちら
単語出現回数カウントのサンプルはこちら→単語出現回数カウンター

  1. 単語のカウント方法について
  2. spaCyについて
  3. 出現した単語数
  4. 出現回数の多い単語たち
  5. 出現回数の分布
  6. 出現した大問のカウント
  7. 単語との遭遇確率
  8. 覚えた単語の数と文章の理解度の関係
  9. 大学入試共通テスト対策で覚えるべき単語数

単語のカウント方法について

前回は以下のような集計方法でした.

今回は自然言語処理を用いることで さらに,地名・人名などの固有名詞に関しては英和辞典と突き合わせ載っていないものを除去します.

spaCyについて

自然言語処理spaCyを利用することで与えられた文章の中に対して(1)文中での単語の品詞は何かタグ付けをする (2)単語の原形は何か を判定することができます. また,記号や余分な句読点,所有語尾('s) などもタグ付けされるためこれを利用して記号などのいらない単語を削除します. 具体的には括弧,句読点,ハイフンなどの記号 単体では意味をなさない所有語尾,誤字などで分類できなかった単語を削除します.
spaCyについてはこちら→spaCy
コードの例はこちら→Natural Language Processing With spaCy in Python
利用できるタグの一覧はこちら→List spaCy Tags

出現した単語数

前回やった自然言語処理を利用しない粗い集計では出現した単語数は5053単語でした. 自然言語処理を利用して原形に直して集計すると人名・地名を含まない場合で3152単語,含む場合で3711単語でした. 原形に直さずに集計した場合でも短縮形や記号の誤集計,人名・地名が減ったのか4292単語でした. 本質的な単語数が3152語なら覚える気も起きますね(?)

出現回数の多い単語たち

今回も出現回数の多かった単語を表にまとめます. 今回は品詞別に集計することができたので,名詞 動詞 形容詞 助動詞 前置詞 副詞のランキングをそれぞれ表示してみます.

名詞の出現頻度

計1822種類の名詞が登場しました. タグはNN,NNP,NNS,NNPSです. 以下が名詞の出現頻度上位100単語の表です.

動詞の出現頻度

計689種類の動詞が登場しました. タグはVB,VBG,VBN,VBP,VBZです.

形容詞の出現頻度

計638種類の形容詞が登場しました. タグはAFX,JJ,JJR,JJSです.

副詞の出現頻度

計265種類の副詞が登場しました. タグはRB, RBS, RBR, WRBです.

前置詞の出現頻度

計67種類の前置詞が登場しました. タグはINです.

誤集計と思われるものがいくつか入っていますが,概ねよく分類できていると思います. 分類が怪しい単語の確認ができるように単語をクリックすることでいくつかの例文が表示されるようにしておきました.
※ 例文の日本語訳には機械翻訳を使っているため誤りがある場合があります.また,文字起こしの際に誤って文章を起こしていることがあります.

出現回数の分布

出現回数の分布については粗い集計をしときとほとんど変化はありませんでした. 出現頻度上位200位までの単語の出現回数をグラフにしたのが以下のグラフです. 単語の出現頻度は指数関数的に減少するようです.

出現頻度のグラフ(原形)
出現回数が20回以上の単語は262,10回以上の単語は553,5回以上の単語は1039単語でした.

出現した大問のカウント

一度出現した単語は同じ文中に複数回出現することが考えられます. 前回は単語が出現した年を数えましたが,今回は単語が出現した大問の数を数えます. 単語が出現した大問の数を調べたのが以下のグラフです. 大問別で集計してみたところ半数近くの単語が1つの大問でしか出現していないことが分かりました.

出現頻度のグラフ(年度別)

単語との遭遇確率

今回,記号などを取り除いてカウントされた単語の語数は35342語でした. 1回の試験で2000語の英文を読むとすると,出現回数がn回の単語と遭遇する確率は 1-(1-(n/35342))**2000 です. 遭遇確率は粗い集計をしたときとほとんど変わらず. 出現数30回以上の頻繁に出現する単語との遭遇確率は約82%,20回で約68%,10回で約43%でした. 出現頻度の少ないほうでは1, 2, 3, 4回でそれぞれ約 5, 10, 15, 20%となります.

覚えた単語の数と文章の理解度の関係

前回と同様に出現頻度の多い単語から順番に覚えていく場合にどの程度 英文が読めるようになるかを考えます. 文中に占める知っている単語の割合を文章の理解率として考えます. 1単語ずつ読んでいった場合,その単語を知っている確率と暗記している単語の数のグラフが以下です. 原形に直して本質的な見出し語に絞っていることもあって600語知っていればほぼ8割は分かるようです. move の意味が分かって moved の意味が分からない人の方が少ないと思いますので,こちらの方が実情に近いと考えられます. 原形と元の形を一緒に描画してありますが,単語を知っている確率を90%にしたいときに要求される単語数を比べると見出し語だけなら1100語に対して 全ての形を別の単語として捉えると1700語も要求されるので粗い集計のときよりも覚えやすそうな語数になっています.

暗記した単語数と単語を知っている確率のグラフ
これを踏まえて理解率90%,95%,98%を目指すのに必要な単語数が以下のグラフから分かります. それぞれX軸が覚えている単語数,Y軸が2000語の長文を読んだときに理解度90%,95%,98%を達成することができる確率です.

90%の理解度を達成するためにはだいたい1200語程度必要なようです. 粗い集計のときには2100語必要だったので900語少なくなっています. 10語に1回知らない単語に遭遇するペースです.
暗記した単語数と理解度90%を達成できる確率

95%の理解度を達成するためにはだいたい1800語程度必要なようです. 粗い集計のときには3500語必要だったので1700語少なくなっています. 20語に1回知らない単語に遭遇するペースです.
暗記した単語数と理解度95%を達成できる確率

98%の理解度を達成するためにはだいたい2700語程度必要なようです. 粗い集計のときには4500語必要だったので1800語少なくなっています. 50語に1回知らない単語が出てくる程度ならそこそこ読めてるんじゃないでしょうか(?)
暗記した単語数と理解度98%を達成できる確率

想像していた単語数より少なかったです. 2700語なら十分に学習が間に合いそうな単語数に感じます. さらにここから以下で紹介する中学レベルの英単語を除外していくと高校生が新たに学習する必要のある単語数が見えてきます.

大学入試共通テスト対策で覚えるべき単語数

98%の理解度を達成するには見出し語で2700語必要でした. しかし,ここから高校生が既に知っているであろう中学卒業レベルの単語を取り除くことができます.
中学生【英単語】一覧|学習指導要領の全2286単語を完全網羅!で紹介されている中学卒業レベルの2286単語を取り除きます. 1331語の中学卒業レベルの単語が見つかったのでこれをすでに知っているものとして扱います. 中学レベルの単語を知っているだけで既に大学入試共通テストに出現する単語のうち86%は網羅できているようです.

暗記した単語数と単語を知っている確率のグラフ(2)
また,90%, 95%, 98%の理解度を達成するにはそれぞれ200語,700語,1500語程度を新たに覚える必要がありました. 大問1つ700語の文中で14個分からない単語がある程度なら問題なさそうなので1500語程度を学習しておけば単語力に関しては全く問題がなさそうです(?). 1500単語というと旺文社の単語帳ターゲットシリーズがこれに近い数字なので説得力がありそうに感じます(?)
暗記した単語数と理解度N%を達成できる確率

おわりに

今回は大学入試共通テストにおける単語の出現頻度と必要な単語数について考えてみました. 二次試験のデータも使って出現した回数を集計すれば簡単な単語帳も作れそうな気もします. 出現頻度の検索はこちらでできるようにしておきましたので興味があったらご覧ください. 今後は二次試験に関しても分析してみたいと思います.

追記

大学受験に必要な英単語数を調べてみたにて二次試験の長文に関しても調べてみました.