以前の記事では、過去3年分のMSDN Magazineの記事のコーパス分析から頻出語彙表を作成し、Anki単語帳に加工する方法を紹介しました。前回手をつけなかったCHMファイルをコーパスに取り込み過去10年に遡った分析します。前回作成したMSDN Word Listからの差分は102語になりました。

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

おことわり

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

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

使うもの

  • Anki2

  • MSDN Magazine BackNumber 2003.01 - 2009.07

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

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

はじめに

以前の記事、Windows開発者の必修語彙をAnki学習する方法ではMSDN MagazineのバックナンバーのうちPDF化されている過去3年分について、コーパス分析を行いました。 コンコーダンサーソフトに読み込む作業の煩雑さから、CHM(Microsoft Compiled HTML Help)形式のファイルは対象としませんでした。

今回は、CHMファイルをPDFに変換してコンコーダンサーに読み込む方法に挑戦します。

2003年のバックナンバーを改めて読んでみました。.NET Framework 1.1とWindows XP SP2(Springboard)という現在のWindowsプラットフォームの基盤となる製品がリリースした頃です。ここまで遡ってコーパスデータを分析すれば、ほぼWindowsプラットフォームの技術文書に特有な語彙は網羅できるだろうと考えました。

内容の面での代表性を考えるとSpringboardまで遡らないと不十分なのではと、気になっていました。

CHMファイル数は79で、今回の拡張で前回の分析データから3倍に増加します。

分析前の予想として、高頻度の語彙の使用がさらに集中して、使用語彙の98%に入る頻出語彙の種類は減るだろうというと考えています。実際に確認してみました。

CHMファイルの変換

CHMファイルを分解して取り出す正統的な方法はHelp Workshopを使う方法です。この方法だと手作業の部分が非常に多くなるため二の足を踏んでいました。

なにかCHMファイルをコンバートする上手い方法はないだろうかと探していたところ、pdfに変換してくれるアプリケーションが見つかりました。iChmというMac OS X上のCHMビューアーとchm2pdfという変換用Pythonスクリプトです。

心情的にはchm2pdfを使って、シェルスクリプトで一括処理したかったのですが、MSDN Magazineの1冊分のファイル容量では大きすぎて、chm2pdfはエラーをはきます。そこで残念ながら79個のファイルを手作業でiChmを使って、pdfに書き出しました。

なお、chm2pdfのMac OS X上でのビルド方法について情報がインターネット上にほとんどなかったので、この記事の最後に補足として記録しておきます。

コンコーダンサーCasualConcへの読み込み

pdf化したバックナンバーをCasualConcで既存のコーパスデータベースに追加します。 前回はデータベースの新規作成を行いましたが、今回はデータの追加なので作業手順が若干異なります。

今回のデータを別のデータベースとして新規作成する方法もあります。手順は前回と同じです。 この場合は、頻度表をカウントする時に複数のデータベースを指定する必要があります。

ファイルツール
図 1. CasualConc ファイルツール画面
コーパス作成手順 (図1)
  1. 画面上[ファイル]タブをクリックしてファイルツールを表示する。
  2. 右上画面下[追加]ボタンでコーパス化するファイルを選択する。
  3. 左下画面下[追加リストから追加]ボタンを押すとコーパスが作成できます。

ここで、登録済みのデータを重複して登録するかというダイアログが表示される場合があります。ディレクトリ内に以前作業したファイルが残っている場合などですが、[すべていいえ]を選択してください。

その後の手順は、Windows開発者の必修語彙をAnki学習する方法の通りです。

10年分に対象を拡大した結果

頻度順に語彙を並べて、コーパス全体に占める割合を足していくと2754番目に98%に達します。登場回数は77が最小値です。 そこから、一般的に高頻度な語彙(GSL+BNC2K)と学術的に高頻度な語彙を除き、MSDN Magazineに特有な頻出語彙662語を抽出しました。

MSDN Magazine コーパスの内訳
図 2. MSDN Magazine 過去10年分の使用語彙の内訳

さて、最初の予想はどうなったかというと、直近3年分の分析結果から180語が外れて、100語が追加になりました。

10年のスパンで見ると頻出語句だけど、この3年では頻出語句からものは、gadget、cursor、virus、KB、LOB、fuzzy、RPC、enumeratorなどが含まれていて、時代を感じさせる言葉です。 この3年で頻出語句に入ってきたものは、geographic、multicore、affiliate、gpu、ubiquitous、taxonomy、prototypeなどです。SEOなどのバズワードも入っています。

技術の進歩や市場の関心の変化が反映していることが読み取れました。

当初は、10年分の分析結果の語彙表を決定版として、3年分のデータを置き換えようと考えていました。 多くのコーパス分析の対象は、過去に向いて文学作品など固定した文書ですが、今自分が扱っているのは生ものの文字情報なのだということに気づきました。

未来に向けて、予言する訳ではないですが、これから出てくるであろう文書を読むための語彙を調べようという趣旨なので、直近3年分のデータを正本として、10年分のデータは補足資料として扱おうと方針転換しました。 ほとんど無駄な努力だったかもです。この脱力感がたまらない。同時に直近3年分のデータからの結果に自信を持ちました。

直近3年の頻出語句からもれた102語を補足データとして、Anki単語帳のパッケージデータにしました。Level3というタグを付加しています。

完成品のダウンロード

この記事で作成した差分の単語帳は、Anki単語帳パッケージ msdnwl_adx.apkg (15.2KB)をダウンロードしてお使いいただけます。 子単語帳`MSDNWords::Level3`として作成していますので、既にダウンロード済みの単語帳に追加して使うことができます。

全体の単語帳は、Anki単語帳パッケージをダウンロードしてお使いいただけます。

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

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

このAnki単語帳の使い方については、Windows開発者の必修語彙をAnki学習する方法をご覧ください。

まとめ

テキストデータをより広範に収集できれば、頻度表の品質を向上させることができます。 その際には目的にかなった対象を選ぶことが大切です。

当初の目論みから方針転換はしましたが、取得したデータの内容から、この分野の頻出語彙集の決定版だと思っています。

個人としてできることは、あとはSDKのドキュメントなどからコーパスデータを作って個別製品の開発に特化したより分野の狭い専門語彙を見つけ出すことだと思います。 全てのSDKドキュメントを集めて、合算して分析する発想もありますが、今回の結果と大きな差でないのではないかと思います。 但し、全SDKドキュメントのコーパスの作成は、今回の様な頻出語彙を取り出すのではなくて、もっと広範で高度なコーパス分析には意義があると思います。

頻度表を得るために作ったコーパスをKWIC分析やN-gram分析を掛けると、その語彙の語義だけでは分からない、MSDNのコンテキストの中での、その語彙の振る舞いが一覧にして理解できるようになります。この情報は語彙学習の面で極めて強力でだと思います。サンプルのソースコードも一緒に見ることができます。

もし、自分でコーパスを作ってみた方は、ぜひ頻度表を作った後も、コーパスをメンテナンスして語彙学習に活用してみてください。楽しくなってくると思います。いつか機会があれば、そんな内容の記事が書けたら良いなと持っています。

CasualConcは、PDF以外にも、HTML、XML、Web Archive、RTF、Microsoft Word、OASIS OpenDocument Textなどの直接的な読み込みをサポートしています。 テキストファイルへの変換が面倒な場合でも、上記のいずれかのフォーマットに持ち込めれば、コーパスを簡単に作成できます。

また、複数のコーパスデータベースを管理して、データベース間にまたがって分析することも簡単にできます。

自分の目的にあったデータを見つけ出して、もっと自由にAnkiを楽しんでください。

補遺 chm2pdfのMac OS Xへのインストール方法

Pythonスクリプトchm2pdfの前提条件は次の3点です。

htmldocは、Homebrewから入手できるので、chmlib、pychmのみ自力でインストールしました。 Pythonはシステムに付属しているものではなく、pythonbrewからインストールしたPython 2.7.3を使いました。

chmlib

Mac OS Xでのインストール方法が INSTALL ファイルに書かれています。 更に、chm2pdfの README に書かれている通り、 Makefileを作る時に `./configure --enable-examples`オプションが必要です。MacPortから入手できるものはこのオプションがないそうです。

pychm

pychmは、`README`に書かれている方法でインストールし、シェルの環境変数を設定します。

最後にchm2pdfの README に書いてある方法でインストールします。 ターミナルから次のように入力して使います。 chm2pdf (--book / --webpage/) [options] input_filename [output_filename]