Windows開発者が必須の技術情報を原文で読むためのAnki学習法。コーパス分析から頻出語彙表を作成し、Anki単語帳に加工する方法を紹介します。

AnkiとはDamien Elmesが開発している分散学習システム(SRS; Spaced Repetition learning Systems)です。

おことわり

この記事は、楽しむことを目的とした内容で、学術的な厳密性を考慮していません。

MSDNは、Microsoft Corporationの商標であり、 MSDN Magazineは、1105 Media, Inc.の出版物です。

使うもの

  • Anki2

  • MSDN Magazine BackNumber 2009.08 - 2013.03

  • コンコーダンサーソフト (この記事の作成には、CasualConcを使いました。)

  • 表計算ソフト (この記事の作成には、LibreOffice Calcを使いました。)

自分にあったオーダーメイドの単語帳

既成のAnki単語帳をそのまま使ったり、出会った単語をその都度単語帳に記録して使うのが一般的なAnkiの使い方だと思います。少し慣れた人であれば、既成の語彙リストからAnki単語帳を作成する使い方をしているでしょう。

使用人口が少ない言語の場合や、あるいはある特定の専門分野だけの語彙の場合、共有データの中から学習用の語彙リストを見つけ出すのは非常に困難です。

そこで、そのような語彙リストを自作する方法を紹介します。 対象とする文字資料のデータベース(コーパス)を作成し、その語彙の頻度分析から、Anki単語帳に加工する方法を紹介します。

この方法を使えば、テキストデータさえ手に入れば自分の好みに合うニッチな単語帳をどんどん作り出せます。

その一例として、Windowsアプリケーション開発の正式なリファレンス MSDNの使用語彙の頻度表をコーパスから作成し、Anki単語帳に加工する手順を紹介します。

なお、WordPress Codexの頻出語彙を同様にAnki単語帳に加工する方法をWordPress Codexの英語 WordPress開発者のためのAnki単語帳に書きました。こちらは、MediaWikiからデータを取り出す方法を説明しています。

収集データの選択

まずは、コーパス作成用の元データを準備します。MSDN全体のテキストデータを入手することは不可能ですので、代表サンプルとして過去3年分のMSDN Magazineのバックナンバーを使います。

MSDN Magazineは、Windowsプラットフォームの開発者のためのQuality Paperです。

Microsoftが戦略的に重要と考えている技術的なテーマを幅広く取り上げています。この分野の技術動向に強い影響力を持っています。執筆陣は、内容理解が極めてに深い内部の製品開発者か、業界で顕著な実績をもつ当該分野の外部専門家です。

有償の定期購読者のために決められた紙面の量を出版することを前提としているので、編集者が非常に高い質の編集をしています。文章の内容と質ともにMSDN内では傑出しています。また、電子データの形で公開されています。

MSDN収録文書に対して代表性を持ち、コーパス分析ソフトによる検索可能な可読性を持っています。

MSDN Magazine Issues and DownloadsからMSDN Magazineのバックナンバーがダウンロード可能です。最新のPDF形式のものだけ(2009.08-2013.03)を抽出しました。それ以前のものは、CHM形式で変換が手間が増えるので対象にはしませんでした。

2013/6/7 追記: 全てのCHMファイルを対象として過去10年間のMSDN Magazineの記事データを分析した内容を、MSDN Magazine過去10年分の頻出語彙からAnki単語帳を作るに書きました。

コーパスの作成と頻度表の生成

一般的なコンコーダンサーアプリケーションであれば、コーパスから頻度表を作成する機能を持っています。この記事では、Mac OS X上で動作するアプリとしてCasualConcを選択しました。Mac OS Xの場合には、ほとんど選択肢がないのですが、WindowsやLinuxのアプリは多数に存在します。

CasualConcの良い点は、PDFのまま処理できる点です。コーパス作成から頻度表の作り方の具体的な手順は、CasualConcの使い方をご覧ください。

今回の記事作成では、前処理をせずダウンロードしたPDFを丸ごとコーパスにしました。このため、ソースコードや広告などが含まれることになります。これらの点は、頻度表を作成した後に整理しました。

CasualConcでコーパスを作成した後、Word Count ツールを使って、使用語彙の頻度表を得ました。単語と発生頻度、登場ファイル数、レマ化した語彙(Lemmaed Words)の情報を表計算ソフトに読み込めるCSV形式で書き出しました。

CasualConcの操作手順

CasualConcを使った頻度表作成の手順を簡単に紹介します。

CasualConc 環境設定

[CasualConc]>[環境設定]を選択すると、設定画面が開きます。

  • 一般: コーパスモード[アドバンスト]を指定。

  • ファイル: ファイルタイプ設定でPDFを指定。

  • Lemma: [Lemma の扱い]と[異綴り処理]の項目を全てチェック。

詳しい設定については、外国語教育メディア学会(LET) 関西支部メソドロジー研究部会 2011年度報告論集、「Mac OS X 用コンコーダンサー CasualConc―基本的な使い方と用例検索ツールとしての応用例―」の「2.2.1.4. Lemma/キーワードグループ/異綴り処理」をお読みください。

CasualConc データベースモードの指定

画面右上の[データベース]ボタンを押す。(図1)

ファイルツール
図 1. CasualConc ファイルツール画面
コーパス作成手順 (図1)
  1. 画面上[ファイル]タブをクリックしてファイルツールを表示する。
  2. 右上画面下[追加]ボタンでコーパス化するファイルを選択する。
  3. 左上画面下[新規データベース]ボタンを押すとコーパスが作成できます。
最初の画像
図 2. CasualConc 頻度分析の結果表示
単語頻度表の作成 (図2)
  1. 画面上[Word Count]タブをクリックしてWord Countツールを表示する。
  2. 画面左上のプルダウンメニューから[単語]を選択して、そのすぐ右にある[実行]ボタンを押す。
CSV書き出し

画面左上[書き出す]ボタンを押す(図2)か、メニューバーから[ファイル]>[テーブルの結果を書き出す]を選択します。

頻度表の整理

表計算ソフトでは、単語を並び替えや検索などを行って、記号や数字が混入しているソースコードの断片など明らかに英語の単語ではないものを取り除きました。

さらに、約1億語を収録するイギリス英語のコーパスBNC(British National Corpus)の最頻出2万語(レマ化)とつきあわせて、英単語を取り出しました。BNCの頻出20Kリストは、Web VP / BNC-20から入手できます。

ここからは不本意ながら手作業になります。

残ったのは、記号や数字が入っていない文字列で、BNC頻出20Kに入っていないものになります。

表計算ソフト上で、出現頻度の高いものから全てのデータ(英単語確認済み+未確定)を並べて、コーパス全体の累積被覆率を計算しました。4269番目の確認済みの単語で99%に達します。この単語は、12回出現しています。

残りの未確定の文字列を累積被覆率99%に達するまで、見て確認しました。このようなデータは、約3500個ありました。 確認方法は、頻度表を使うのに作ったコーパスデータです。KWIC(Key Word In Context)検索を掛けてみて、実際の文章内で英単語として使われているか確認しました。

頻出語句を探すのが目的なのでここで止めました。 市販の単語集を編集している方の苦労が分かったような気がします。

これで調整済みの頻度表が得られました。頻出上位3200語で被覆率98%に達します。MSDN Magazine3年分のテキストの98%は頻出3200語でカバーできます。

この上位3200語から、非ネイティブな英語学習者が最初に取得すべき一般的な基本語彙(GSL2000語+AWL570語)と固有名詞を除き、CasualConcでレマ化できなかった単語、派生語などをまとめました。特定の号に集中的に出現する語彙を取り除くため、平均1年に一回以上の号に出現する条件を加えて、4号以上に出現する語彙に絞りました。 その結果、MSDNに特異的に出現する単語は723語になりました。最低出現回数は25回です。

完成品 MSDN Word list

一般的な英語学習者が取得すべき基本語彙2570語(GSL+AWL)に加えてこの750語を覚えれば、MSDN Magazineの98%の使用語彙の98%はカバーできます。

この被覆率98%とは、非ネイティブ向けの英語教育の論文では、支援なしに周囲の情報から未知語を類推して読み進めることのできる比率として使われています。MSDN Magazineの例だと、雑誌の紙面では2段組みされているので、4行に1語未知語が出てくる頻度になります。

722語からなる目標とする語彙表ができました。この語彙表のことを仮にMSDN Word listと呼びます。

作成データの検証

本当にこの語彙表、MSDN word listは有効なのか、確認して見ました。 対象は、コーパスには含んでいないMSDN Magazineの最新号とMSDNライブラリのWindows 8のホワイトペーパーです。 ケベック大学モントリオール校(UQAM)のTom Cobb教授が公開しているVocabProfilers Classic VP English v.3を使い、それぞれの記事の使用語彙に対して、頻出基本語句(GSL+AWL)、MSDN word listでどれだけカバーできるか調べてみました。

表 1. 頻出語彙集 MSDN word listの効果
題名 GSL+AWL MSDN word list 合計
Parse JSON Strings in Windows Runtime Components 95.01% 3.94% 98.95%
Social Authentication in ASP.NET MVC 4 93.00% 5.87% 98.87%
Packaging and assembly binding in the .NET Framework for Windows Store apps 92.44% 5.83% 98.27%
Windows Store apps using JavaScript versus traditional web apps 89.80% 8.47% 98.27%

一般的な基本語彙(GSL+AWL)を理解している場合、使用語彙の10%程度が未知の語句を含むテキストが、このMSDN word listを加えることで、未知の語句を2%にまで圧縮できる結果を得ました。

今回の記事では、Anki単語帳を作成する手順を重視して作成しています。 MSDNの語彙水準と完成したMSDN word listの内容の検討は MSDNの英語 MSDNを情報源として利用できる語彙水準と学習戦略で行っています。

MSDN word listの内訳の検討

抽出したデータを検討すると、Agileなどアプリケーション開発のコミュニケーションでカタカナ英語として既に流通しているものが221個見られました。また、翻訳しようのないGUIなど略語も51個ありました。

これらの用語については、区別のため「カタカナ」、「略語」というタグを付けることにしました。 最終的には純粋な語彙として意味を暗記すべき英単語は456個まで圧縮できました。

Anki単語帳へ加工

抽出した単語データからAnki単語帳にするCSVファイルを作ります。カタカナ英語については、裏面にカタカナ表記追加し、「カタカナ」、「略語」などタグ情報の追加を行いました。 。

更に、使用頻度が高いものから優先して学習できるように頻度別にタグを付けました。95%被覆が可能な最高頻度のもの(Level1, 344個 )と、それ以外の98%被覆が可能な高頻度なもの(Level2, 378個)に二分してタグを振りました。

Ankiに読み込むCSVファイルは、頻度順に並べました。既定では出現頻度の高いものから出題するようにしました。

実際のAnkiへの読み込み手順はAnkiにデータをまとめて取り込むで紹介していますので、詳しく知りたい方はこちらをご覧ください。

最終的には722個のデータをAnkiに読み込んでから4分割して子単語帳に収めました。子単語帳に分割する具体的な手順は Ankiのブラウザーの使い方とデータ検索で説明しています。

2013/6/7注: 過去10年分まで分析対象を拡大した場合、新たに頻出語句に加わる102語をLevel3として追加しました。詳しくは、MSDN Magazine過去10年分の頻出語彙からAnki単語帳を作るをご覧ください。

表 2. 単語帳の内訳
子単語帳名 単語数 内容
MSDNWords::Level1 174 基本語彙(GSL+AWL)との組み合わせで使用語彙の95%までカバーできる単語(カタカナ、略語を除く)
MSDNWords::Level2 267 基本語彙(GSL+AWL)との組み合わせで使用語彙の98%までカバーできる単語(カタカナ、略語を除く)
MSDNWords::Level3 97 過去10年分のバックナンバーまで分析対象を拡大した時、新たに追加になった頻出語彙
MSDNWords::カタカナ英語 217 カタカナ英語として使われている単語
MSDNWords::略語 49 訳語をあてずに使われている略語

カードの編集

解答面には、オンライン英和和英辞典weblio、オンライン英英辞典Vocabulary.comMSDNオンライン検索(MSDN MagazineとMSDN Library限定)、マイクロソフト用語集へのリンクを追加しました。

また、解答面ではGoogleTTSを使用した読み上げ機能を設定しました。実際に動作させるにはアドオンAwesomeTTSのインストールと設定が必要です。

カードの具体的な編集方法とAwesomeTTSの設定方法はAnkiのカード表示を編集するをご覧ください。

アドオンのインストール方法については、Ankiの共有リソースを使ってみるで説明しています。

完成品のダウンロード

この記事で作成した単語帳は、Anki単語帳パッケージをダウンロードしてお使いいただけます。

Anki 単語帳パッケージ

この単語帳を使うにはAnkiのインストールが必要です。Ankiサイトから最新版をダウンロードできます。Ankiは、Windows、Mac、Linux/BSD、iOS、Androidに対応しています。その他のデバイスからはAnkiWebを通じて利用可能です。詳しくはAnkiサイトをご覧ください。

完成品画面
図 3. 完成品画面

ご利用いただく前に

この単語帳は2000ワードファミリーレベルの頻出語彙とAWLとの組み合わせて使用することを前提にしています。 この単語帳の学習の前に、あるいは並行して基本語彙を確認することをお勧めします。

頻出語彙2000語については、GSLの他にBNC(British National Corpus)の頻出2000語や英英辞典の定義語集Oxford 3000、Longman Defining Vocabularyなどの入手しやすいものをお使いください。

どうしてもアメリカ英語をという方は、アメリカ英語のコーパスCOCA(Corpus of Contemporary American English)の上位5000語のリストから上位3000語を使うこともできます。上位3000語で2000ワードファミリー程度になります。

作成した単語帳の使い方

親単語帳「MSDNWords」を学習した場合は、Level1>Level2>カタカナ英語>略語の優先順で新規カードの取得が行われます。

子の単語帳を学習するとそれぞれの項目を選択的に学習することができます。

全ての単語をランダムに学習したい場合は、子単語帳のカードを全て親単語帳に戻すか、フィルター単語帳を作成してください。

フィルター単語帳でAnki学習をカスタマイズしようでは、カスタム学習の設定方法を詳しく紹介しています。

まとめ

共有の頻度データがない場合でも、文字資料が入手できればコンコーダンサーソフトを使うと簡単に語彙頻度リストを得ることができます。

既存のコーパスデータは、その目的から汎用性を重視した内容となっています。 これに付け加えて、自分が理解したい特定分野の頻度データを自作すれば、さらに効果的なAnki学習ができるようになります。 学習が自発的になると、学習意欲が更に高まって、楽しくなってきます。

自家製単語帳を作ってもっとAnkiを楽しんでください。