WLC (Ver. 1.5) Online Version

AWK による語彙レベル分布計測プログラム

Word Level Checker (Ver. 1.5)

簡易マニュアル
 

染谷 泰正

July 24, 1998 

(Last Revised: October 26, 2000)
 

1. プログラムの概要
2.  Word Level Checker の 実行に必要なファイル
3. プログラムの実行方法
4. 新出語を「マスター辞書」ファイルに登録する方法
 


このプログラムはフリーウエアです。教育・研究用の目的に限り自由に使用することができます。また、プログラムの内容および添付辞書ファイルの内容も自らの責任において自由に変更してかまいません。ただし、本プログラムの実行結果について作者は一切の責任を負うものではありません。なお、本プログラムで使用している awk処理系は jgawk 2.11.1 + 3.0 版です。 

 

1. プログラムの概要
 
いま、仮に次のような英文テクスト (test.txt) があり、このテクストの語彙的難易度を計測したいとします。
 

 (test.txt)
 
Acid rain affects not only lakes but also trees. In Czechoslovakia, which is one of the countries with the most acid rain, trees began to die during the 1960s and now there are large areas of former forest which consist only of dead trees. In the late 1970s the phenomenon was also noticed in West Germany. Today, many forest areas there are dying and some are already dead. The main source of acid rain is electric power stations. Some countries such as Japan and West Germany have already passed laws requiring their power stations to build filter installations which prevent the acid from getting out into the air, but some other countries haven't taken any measures as yet. 

 
このテクストに対して本プログラムを実行すると、次のような結果を得ることができます。
 
 
 
The following are the results of Word Level distribution analysis of the given text:

 
-------------------------------------------
 WL Tag       Word Level   Freq.      %
 ------------------------------------------
  ?        Unknown words      0      0.00
 01                1,000     92     79.31
 02                2,000     10      8.62
 03                3,000      6      5.17
 04                4,000      1      0.86
 05                5,000      4      3.45
 06                6,000      2      1.72
 17               17,000      1      0.86
 ------------------------------------------
                   TOTAL    116    100.00
  

Note 1: Word Level 5,000 (05) consists of proper nouns, abbreviations and acronyms.
Note 2: The ? mark indicates the number of words not in the dictionary.
 
 
Word Level 
        +----+----+----+----+----+----+----+----+----+----+ 
     ? :|
  1,000:|****************************************
  2,000:|****
  3,000:|***
  4,000:|
  5,000:|** 
  6,000:|*
 17,000 |
        +----+----+----+----+----+----+----+----+----+----+ 
        0   10   20   30   40   50   60   70   80   90  100 (%)
 

Total Number of Words = 116
Average Word Level = 1.57759
Var = 3.22674
S.D. = 1.79631
Disp. = 0.893821

 

 
このうち、最初の表では入力テクストの語彙的難易度を次の10段階に区分したレベルごとの頻度分布で示しています(注1)。"?" の欄には「マスター辞書」に登録されていない新出語の数が表示されます。下段の棒グラフはこれを視覚的に示したものです(* 印ひとつが 2 % に相当します)。
 
 
-----------------------------
難易度        対応語彙レベル
-----------------------------
 01           Basic 1,000語
 02                 2,000語
 03                 3,000語
 04                 4,000語
-----------------------------
 05            固有名詞・略語
-----------------------------
 06       Advanced  6,000語
 11                11,000語
 17                17,000語
 21                21,000語
 30                30,000語
-----------------------------
  ?                未登録語
-----------------------------
 
棒グラフの下部に表示されている統計データのうち、Var は分散 (Variance)、S.D.は標準偏差 (Standard Deviation)、Disp. は拡散度 (Dispersion)をそれぞれ示します。分散は平均 (Average = Mean)からの各値の差を自乗してその総和平均を求めたものですが、自乗するという操作が入るため、平均からの距離が誇張されてしまうという欠点があります。そこで、自乗和を平均した分散の根を求めます。これが標準偏差 (= SQRT(VAR))ということになります。ただし、標準偏差は(同じような偏差であっても)データの規模によって大きく異なってきますので、これを標準化し、どのような規模のデータであってもその偏差が 0 から 1 の間にあるようにするほうが都合がいいわけです。このような標準化された値を P とすると、P は SD/(MEAN(SQRT(n-1))) で求めることができます。この P はデータのばらつきを示し、分散が大きいほど 1 に近く、分散が平均に近いほど 0 に近い値をとります。拡散度はばらつきのない分布の程度を示す指標で、P の理論的最大値 1 から実際の観測値 p を引くことで求めた値です。(詳しくは『パソコンによる外国語研究』上田博人 (1998)参照)
 
なお、本プログラムでは数字は単語として数えないようになっています。したがって、上記テクスト (test.txt) 中の 1960s および 1970s の 2 つの数字列は総語数 (116) の中に含まれていません。また、このプログラムでは単語を token として扱っていますので、同じ単語でも出てきた回数だけカウントされます。通常はこれでよいと考えられますが、何らかの理由で単語を type として扱いたい場合は後述の wlc_type.bat を使ってください(注2)。
 
また、上記の出力例は入力テクスト中の単語がすべて「マスター辞書」に登録されていた場合の例ですが、実際にはマスター辞書に登録されていない単語が入力テクスト中に含まれていることが予想されます。未登録語の数が多い場合にはこれらの単語を後述の方法でいったん「マスター辞書」に登録した後、再度 wlc.bat を実行してください。
  

2.  Word Level Checker の 実行に必要なファイル
 
1) AWK スクリプトファイル
 
word.awk 平テクストを単語リストに変換   [Revised on 4-24-Y2K] Download 
wordlist.awk 平テクストを頻度付き語彙リストに変換(wlc_type.batを使う場合のオプション)  Download 
del_nbr.awk  上記の結果から数字列と各種記号を削除 Download
matching.awk  上記の結果をマスター辞書と照合 Download
nandoprn.awk 上記の結果をソートして出力 Download 
voc_lev1.awk 表とグラフを出力 Download
voc_lev2.awk  上記の結果を受け取り、表とグラフを出力(前処理)   [Revised on 4-24-Y2K] Download 
merge$0.awk  新出語をマスター辞書に登録 Download 
open_con.awk 縮約形を分離 (オプション) Download

2) MS-DOS バッチファイル
 
wlc.bat  単語を token として扱う場合のバッチファイル  Download
wlc_type.bat  単語を type として扱う場合のバッチファイル Download 
pre_wlc1.bat  新出語の一覧表を得るためのバッチファイル(通常の平テクストに対して実行)  Download
pre_wlc2.bat  同上(ソートされた語彙リスト (lemmatized wordlist) に対して実行) Download 

3) マスター辞書ファイル
 
wrdlvl-2.dic  マスター辞書ファイル (暫定版。本稿末尾のメモ参照 )  [Revised on 4-24-Y2K]
Download 
(zip file: 150 KB)

4) 上記の他、添付 FDには次のものが含まれています(online 版では割愛 *)
 
manual.txt  このファイルです  -- 
jgawk.exe jgawk 実行プログラム* --
go32.exe DOS拡張プログラム  Download
sortf.exe ソート用プログラム** --
sortf.txt  上記の説明書 -- 
GNU_licence.txt  GNU GENERAL PUBLIC LICENSE AGREEMENT  -- 
test.txt  テスト用のテキストファイル Download

*   jgawk  (jgawk 2.11.1 + 3.0 版 Japanaized Gnu Awk for MS-DOS) はフリーウエアとして次のインターネットサイトからダウンロード可能。
    http://www.vector.co.jp/soft/dos/util/se000208.html 
    または
    http://www.vector.co.jp/vpack/browse/person/an000012.html
**  sortf は豊島正之氏によるフリーウエアで、次のサイトからダウンロード可能。 なお、sortf が jgawk.exe および前記 1) の awk スクリプトと同じ作業フォルダーにない場合はエラーになります。(注3参照)
    http://www.vector.co.jp/soft/dos/util/se011547.html
 


3. プログラムの実行方法
 
上記の各ファイルと分析対象のテキストファイルが保存されているディレクトリ名を仮に c:\awk とします。
 
1) Windows の DOS窓を開き、ディレクトリを c:\awk に移動します。

2) MS-DOSプロンプトから以下のように入力し、リターンキーを押して実行します。wlc(= wlc.bat)はバッチファイル名、test.txt は分析対象ファイル名、result-1.txt は出力ファイル名です。
 
   c:\awk>wlc test.txt result-1.txt
 
3) 画面上に次のようなメッセージが表示され、作業終了と同時にディレクトリ c:\awk 中に result-1.txt というファイルが作成されます。(注3
 
 

c:\awk>wlc test.txt result-1.txt

********************************************************************
Invoking WORD LEVEL CHECKER (Ver.1).
The Dictionary File currently assigned is: wrdlvl-2.dic

(c) Yasumasa Someya, 1998

1) This program treats words as "tokens" (Use "wlc_type.bat" if you 
wish to treat words as "types").
2) If your text includes words not registered in the current master
file, register them using "prep_wlc.bat" and "merge$0.awk". See 
Instruction Manual for more details. 
********************************************************************
 
C:\AWK>jgawk -f word.awk test.txt | jgawk -f del_nbr.awk | jgawk 
-f matching.awk -v dic=wrdlvl-2.dic | jgawk -f nandoprn.awk | jgawk
-f voc_lev1.awk | jgawk -f voc_lev2.awk > result-1.txt

Replacing entries with word level tags. Please wait... 116
Job Completed.
 

 

 
4) 新たに作成されたファイル (result-1.txt) をエディターで開き、結果を確認します(result-1.txt の内容は本マニュアル冒頭に示した図表と同じものになります)。なお、分析対象テクスト中に、「マスター辞書」に登録されていない単語が多く含まれている場合は、当然のことながら分析結果の信頼性が低くなります。したがって、この場合は以下に述べるような手順で新出語を「マスター辞書」に追加したのち、上記の作業を再度実行します。
  

4. 新出語を「マスター辞書」ファイルに登録する方法
 
1) まず、分析対象テクスト (test.txt) に対して pre_wlc1.batを実行します。出力ファイル名は仮に result-2.txt としておきます。
 
  c:\awk>pre_wlc1 test.txt result-2.txt
 
2) 上記のコマンドを実行すると、画面上に作業中であることを示すメッセージが表示され、作業終了と同時にディレクトリ c:\awk 中に result-2.txt というファイルが作成されます(下図参照)。ここでは、末尾の4つの単語が未登録語であると仮定します。なお、本プログラムでは入力テキスト中の単語をすべて小文字表記に変更するように設定されています(「マスター辞書」も現バージョンでは小文字表記対応になっています)。

(result-2.txt)
 
01 92
02 10
03 6
04 1
05 4
06 2
17 1
czechoslovakia 1 <= 新出語
installations 1  <= 新出語
phenomenon 1     <= 新出語
prevent 1        <= 新出語 

3) 次に、エディターを使ってこの4つの新出語を語を切り取り、新たなファイルを作成します(ここでは仮に newword.txt とします)。

4) このファイルに次のようなフォーマットで「難易度タグ」を手動で加えます。第2フィールド ($2) には難易度タグを記入しますが、各語にどのレベルの難易度タグをアサインするかは各自が独自に決定することになります。第3フィールド ($3) の品詞データはオプションです(ただし、この情報は現在は利用されていません)。フィールドセパレータは半角スペースです。
 
(newword.txt)
 
czechoslovakia 05 NNP
installation 06 NN
phenomenon 17 NN
prevent 02 VB

なお、第4フィールド ($4) 以下の各フィールドには任意の属性を指定することができます。たとえば次の例では第4フィールド ($4) に意味属性を、第5フィールド ($5) に動詞の統語属性を指定した例です。なお、半角スペースはフィールドセパレータとして使われていますので、各フィールド内部の記述には半角スペースを使うことはできません。

installation 06 NN (機械・設備などの)設置
phenomenon 17 NN 現象
prevent 02 VB 〜が…するのを防ぐ SVO^fromVBG

 
5) このファイルを前記と同じ c:\awk 内に保存します。

6) DOSプロンプトから以下のように入力し、リターンキーを押して実行します。
 
  c:\awk>jgawk -f merge$0.awk newword.txt wrdlvl-2.dic > wrdlvl-3.dic
 
7) これで、現在の「マスター辞書」 wrdlvl-2.dic が更新され、wrdlvl-3.dic という名前で保存されます。
 
8) 以後、マスター辞書の名前を変更(更新)するごとに、wlc.bat(およびwlc_type.batの中で指定する辞書名をこれに合わせて変更してください。たとえば、上記のように辞書名を更新した場合は、現在の dic=wrdlvl-2.dic という指定から dic=wrdlvl-3.dic という指定に変更します(あるいは、辞書を更新するごとに以前のバージョンの辞書名を変更し、常に wrdlvl-2.dic を最新バージョンにしておきます)。
 
9) 新出語をすべて「マスター辞書」に追加したら、再度、前記 3 の「プログラムの実行方法」に戻り、分析対象のテキストファイルに対して WORD LEVEL CHECKER のバッチファイル (wlc.bat) を実行します。
 
なお、本プログラムの応用例については A Corpus-based Study of Lexical and Grammatical Features of Written Business English (Someya, 1999) の Chapter 4 を参照してください。
 


注1) 上記の難度区分のうち、4000語レベルまでは「JACET基本語4000」(大学英語教育学会教材研究委員会 1983)および「D4000辞書」(金田正也 1991 「英語教師のパソコンガイド」『英語教育』別冊 3, 40(5) 大修館)に依拠し、6,000語から 30,000語までの難度区分については主に「30000.LST」(赤瀬川史郎 1995「30000.LST」[私信])に依拠しています。詳しくは「Word Level Checker (Ver. 1) -- AWKによる語彙レベル分布自動計測プログラムの概要」(染谷泰正 1998)を参照してください。
[back] 
注2) 単語を type として扱いたい場合、これを正確に行うためには次のような手順を踏みます。 (1)まず、WordSmith を使って対象テクストの語彙リストを作成し、これを e-lemma.dic (本ホームページの Publications List 参照)を使ってレンマ化。(2) この語彙リスト (lemmatized wordlist) のうち第1フィールドの単語列だけを切り出した簡易語彙リストを作成(単語列の切り出しは WordSmith のアウトプットを Excel にインポートした上で行うのがもっとも手っ取り早い)。(3) この簡易語彙リストに対して pre_wlc2.bat を実行し、「マスター辞書」に登録されていない単語を抽出。(4) この単語を merge$0.awk を使って「マスター辞書」に登録。(5) 最後に、前記の簡易語彙リストに対してwlc.bat を実行(この段階では単語はすでにレンマ化されているため、wlc_type.bat を使っても同じ結果になる)。 
[back] 
注3)辞書ファイル (wrdlvl-2.dic)が適切に解凍されていないか、所定のディレクトリー内に存在しない場合(あるいはファイル名が変更されている場合)、および sortf が jgawk.exe および前記 2 の 1)  の awk スクリプトと同じ作業フォルダーにない場合は次のようなエラーメッセージが表示されます。
jgawk.exe: fatal error: division by zero attempted
source line number 13, file `voc_lev2.awk'
[back]


WORD LEVEL CHECKER 用マスター辞書 (wrdlvl-2.dic) についてのメモ
As of October 26, Y2K (Original Version: August 20, 1998)
Total = 35,016 words (graphic words)
ASCII text file = 556 KB (Zip file =150 KB)

Updated: Aug 27, 2002
Total = 35,145 words (graphic words)
ASCII text file = 558 KB (Zip file =188 KB)

1) エントリーはすべて小文字化。
2) 連語・イディオムはすべて単語に戻して収録(連語・イディオム辞書は別途作成)。
3) ハイフンでつながれている単語はそのままの形で収録(合成語としての固有の難易度が出ていないものについては原則として構成語のうちいずれか難度の高いほうをその合成語の難易度して採用。ただしケースバイケースで適宜調節する)。
4) 固有名詞(地名、人名、商品名、会社名など)および略語はすべて Level 05 とする。
5) 現在の辞書には be 動詞 、have および will/would の縮約形 (-'d , -'ll, -'m, -'n, -'nt, -'re, -'s, -'ve) が登録してあるが、これらの縮約形を独立の単語として数える場合には、あらかじめ入力テクスト中の縮約形を open_con.awk を使って開いておくこと。ただし、is と has、および had と would の縮約形の正確な判別はできないので注意。

=>この「マスター辞書」は、ある特定ジャンルのコーパスデータの語彙難度を分析するために作成されたもので、すべての単語(およびその変化形)をカバーしているわけではありません。現在、35,145 語が登録されていますが、未登録の単語については必要に応じて追加していってください。
 
 

[end of manual]


Newsweek の記事の語彙難度分析例