前回は粗い方法で大学入試共通テスト(センター試験)における単語の出現回数を集計しました.
粗い方法では単数形と複数形が別の単語としてカウントされてしまう 動詞の時制が違うと別の単語としてカウントされてしまう などの問題点がありました.
今回はPythonの自然言語処理ライブラリspaCyを利用してもう少しスマートに出現回数を集計してみたいと思います.
前回と同様に2004年から2023年に出題された20年分の大学入試共通テスト(センター試験)における英単語の出現頻度を調べます.
使用したコードの一部はこちら
単語出現回数カウントのサンプルはこちら→単語出現回数カウンター
前回は以下のような集計方法でした.
自然言語処理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位までの単語の出現回数をグラフにしたのが以下のグラフです. 単語の出現頻度は指数関数的に減少するようです.
一度出現した単語は同じ文中に複数回出現することが考えられます. 前回は単語が出現した年を数えましたが,今回は単語が出現した大問の数を数えます. 単語が出現した大問の数を調べたのが以下のグラフです. 大問別で集計してみたところ半数近くの単語が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語も要求されるので粗い集計のときよりも覚えやすそうな語数になっています.
98%の理解度を達成するには見出し語で2700語必要でした.
しかし,ここから高校生が既に知っているであろう中学卒業レベルの単語を取り除くことができます.
中学生【英単語】一覧|学習指導要領の全2286単語を完全網羅!で紹介されている中学卒業レベルの2286単語を取り除きます.
1331語の中学卒業レベルの単語が見つかったのでこれをすでに知っているものとして扱います.
中学レベルの単語を知っているだけで既に大学入試共通テストに出現する単語のうち86%は網羅できているようです.
今回は大学入試共通テストにおける単語の出現頻度と必要な単語数について考えてみました. 二次試験のデータも使って出現した回数を集計すれば簡単な単語帳も作れそうな気もします. 出現頻度の検索はこちらでできるようにしておきましたので興味があったらご覧ください. 今後は二次試験に関しても分析してみたいと思います.
大学受験に必要な英単語数を調べてみたにて二次試験の長文に関しても調べてみました.