トップページ

Project Zephyr
OED第2版 V4.0 CD のEPWING化

更新履歴

はじめに

ここで公開しているツールを使って、Oxford English Dictionary, 2nd Edition, Version 4.0のCD-ROMからEPWINGデータを作ることが出来ます。Version 3.0や3.1には対応していません。

注意

動詞のjapan

OED Ver 3.0は 2002年3月発売だったようですが(私は持っていません)、その後の追加項目ももちろん入ります(EPWING仕様のため、OEDアプリでは1行目にある"Draft Entry ...."を見出し語の後に移動しました)。でもよく見ると、同時多発テロの 911 はまだ載っていない!!2003年draftなのに!?

911

必要なもの

動作確認環境:Windows 7 (32bit)、Intel i5-2500 (3.3GHz)、2GBメモリ。
Oxford English Dictionary Second Edition on CD-ROM (v. 4.0.0.3)。UWSC Free版 Ver 5.1.0.0。Java 1.8.0_92。EBStudio 1.70b、EBWin4 4.3.3.0。

私が使ったOEDは、Update版ではなく新規購入品です。過去メールを調べたら、2012年9月にAmazon日本経由でイギリスの販売店(?)から購入し、約17,000円でした。今(2015/02)は4万円近くになっていてびっくり・・・。せいぜい1ドル80円が120円になったくらいなのに2倍なのか・・・。
    お届け予定日: 2012年9月4日 - 2012年9月10日
    1 "Oxford English Dictionary, 2nd Edition, Version 4.0 (Windows & Mac) (CD-ROM)"
    Simpson, John; CD-ROM; ¥ 16,993
    在庫あり
    販売: uk_books_and_music

作業手順

ソフトの準備

UWSCには、電卓をぐるぐる回す GruGru.UWS が付いています。「読込み」でスクリプトファイルを指定し、「再生」でその内容を実行します。UWSCの動かし方を確認してください。

この変換のためにJavaをインストールした方は、セキュリティ上の理由から、作業終了後にJavaをアンインストールすることをおすすめします。

OEDアプリのバージョン確認

辞書検索画面で、Home→Copyrightをクリックすると、ブラウザでcpyrt.htmlが開きます。その先頭に「Oxford English Dictionary Second Edition on CD-ROM (v. 4.0.0.3)」などと出ます。

4.0.0.3でなくて4.0だった場合は、こちらのページを参考に、更新版の入手をお勧めします。4.0はいくつかバグがあるようです。更新版はダウンロードでなく、メールで問い合わせるようなので、ちょっと時間がかかりそうですが。

なお私が作業したのは v. 4.0.0.3です。4.0でコピペに問題ないのかは分かりません(ひょっとすると問題があるかもしれません。参考)。

全文コピペ前のWindowsの準備

全文コピペには半日~一日以上の時間がかかります。途中で意図せず止まらないように以下の確認をしてください。

【重要】 全文コピペは毎秒数回の速度で、のべ30万回繰り返されます。通常の手作業ではありえない操作のため、クリップボードを監視するソフトが起動していると、コピペが止まってしまうことがあるようです。コピペが数回~100回程度でエラー終了してしまう場合は、その種のソフトが動いていないか確認してください。

【重要】OEDアプリの初期設定変更

OEDアプリのデフォルト設定では、アプリを起動すると辞書検索ページではなく、タイトルページのようなものが開きます。

タイトルページで Dictionary ボタンを押し、辞書画面に移った後、Optionsページを開き、"Look up words from other applications" のチェックを外し、"Bypass homepage on start-up" にチェックを入れて、Apply changes を押してください。変更を確実にするため、いったんOEDアプリを終了して再起動し、設定が反映されていることを確認してください。この設定はきわめて重要です。逆にするとうまく行きません。

全文コピペスクリプトは、OEDアプリ起動直後に辞書検索画面が開く前提で作られています。必ず設定変更し、アプリ起動後に辞書検索画面が開くことを確認してください。

"Look up words from other applications"のチェックがなされている状態だと、最初の数十回のコピペ中に、コピーした語釈の内容が検索語入力欄に勝手に転送されておかしな振る舞いになることがあります。

OEDのOptions画面

全文コピペスクリプトの確認

EPWING化ツールにある getall.uws が、OEDを自動起動し、全文コピペを行う UWSC 用のスクリプト(ただのテキストファイル)です。

先頭に、OEDアプリの実行パスが書いてあります。32bit環境の方はこのままでよいはずです。64bit環境の方は "C:\Program Files (x86)\OED v4.0\oed.exe"と書き換えることになると思います。処理高速化のため、途中で何度かOEDの自動再起動を行いますので、正しいパスでなければなりません。

// OED アプリの実行パス(途中で自動再起動するので、正しいパスでなければなりません)
public OED_EXE="C:\Program Files\OED v4.0\oed.exe"
...

全文コピペを実行すると、OEDが起動していなければ、最初に自動起動します。起動に失敗するようでしたら実行パスを確認してください。




全文コピ実行前の確認

  1. dataフォルダに以前に作成された oed-数字.txt があれば、ファイルを削除(移動)してください。残っているとコピペしません。もちろん途中再開する場合は残したままでOKです。
  2. OEDとUWSC以外のすべてのアプリを終了してください。全自動でクリック&コピペを高速繰り返しするので、起動したままの無関係のアプリを意図せず操作してしまう可能性があります。ただ実際には、OEDアプリが開く画面左上以外なら、起動していてもまず問題ありません。

全文コピペ実行!

  1. UWSCを起動し、左端の「読込み」ボタンを押して、getall.uws を読み込みます。
  2. 真ん中の「再生」ボタンを押すと、全自動の全文コピペが始まります。以下の内容を全自動で行います。
    1. まず、OEDが起動していなければ起動して、画面左上隅に移動します。
    2. コピペファイルを保存する data フォルダがなければ作ります。
    3. getall.uwsの5行目の startWord="0898" にある語を検索します。
    4. OEDアプリ中央下の「Copy」ボタンをクリックし、コピペテキストをファイルに記録します。
    5. 見出し語を一つ下に移動して、コピペを繰り返します。
    6. 10件ごとに、コピペ速度(1万~2万[件/h]くらい)と、予想終了時刻を表示します。
    7. 100件ごとに、テキストファイルの書き込みを実際に行います(毎回行うと遅くなる)。
    8. 5000件ごとに、保存するファイル名を変えます。最初は oed-0.txt で、後は oed-1.txt, oed-2.txt となり、最後は oed-59.txt になります(30万件弱ある)。
    9. getall.uws の restartWords にある見出し語になったら、OEDアプリを自動再起動します。起動したままだとOEDアプリが異常終了したり、コピペ速度が半分くらいに遅くなるためです。
    10. 最後の "zyxt" に到達したら、全文コピペ終了になります。

全文コピペについての注意点

全文コピペテキストをHTMLに変換

  1. コマンドプロンプトを開く
  2. EPWING化ツールを解凍したディレクトリに移動
  3. makehtml.batを実行します。1分程度で終了し、oed-body.htmlが出来ます。
    C:...>cd "EPWING化ツールのディレクトリ"
    C:...>makehtml.bat
    oed-0.txt
    oed-1.txt
    ....
    oed-59.txt
    297958 entries

あるいは単に makehtml.bat をダブルクリックするのでもOKです。瞬間的に終わるときは、なにか問題が起きています。その場合は上記のようにコマンドプロンプトを開くとエラーメッセージが見られます。

HTMLをEPWINGに変換

  1. EBStudioを起動し、oed2v4.ebsを開く
  2. 「基準ディレクトリ」を、EPWING化ツールの解凍ディレクトリ(oed-body.htmlファイルの出来たディレクトリ)に設定する
  3. 「入力ファイル名」(oed-body.htmlのパス)、「出力先」(EPWINGデータの出力先、無ければ作られます)を正しく設定する
  4. 「ファイル→実行」でEPWING化する。変換には数分かかります。

外字をUnicode表示するための設定ファイルもEPWING化ツールにあります。OED2V4.map (EBWin用)、OED2V4.plist (EBPocket for iOS用)、OED2V4.{hgai, zgai} (Logophile用)です。使い方はソフトのマニュアルをご覧ください。なおJammingはUnicode文字を使えない(外字置換ファイル自体がShiftJIS)ので、外字設定ファイルを作っていません。

全文コピペがうまく行かなかったとき

遅いパソコンを使うとき

遅いパソコン(5~10年くらい前の CPU 1GHzくらいの1コアのものなど)だと、コピペがスムーズに進まず、途中でOEDアプリが異常終了してしまうことがあります。この場合は自動処理の待ち時間を少し長めに設定して、ゆっくり進めるようにします。

function getText(prevtxt)
	waitmsec = 20  // ★変更可能1
	for i = 0 to 4
		txt = getTextWithWait(waitmsec)
		ifb txt <> prevtxt and length(trim(txt)) > 0 then
			Result = txt
			exit
		endif
		waitmsec = waitmsec + 50
	next
・・・・
function getTextWithWait(msec)
	ifb !isOEDalive() then
		Result = ""
		exit
	endif

	BTN(LEFT,CLICK,388,577,10) // ★変更可能2

	Sleep(0.001 * msec)
	Result = TRIM(GETSTR(0))
fend

途中からコピペ再開するとき

getall.uws先頭の START_FRESHをFALSEに、startWordを再開する語にします。再開時の予想終了時刻計算は正しくありません(enutnum, gotnumを適切に設定すれば一応計算出来ます)。

ここで、startWordに設定する語は、data\oed-最大数字.txt の 最後の見出し語の次になります。oed-数字.txt では、各項目が ====== で区切られていますので、最後のコピペ項目の先頭を見てください。

厄介なのは、検索上、同一見出しとなる語があることです。たとえば、startWord="a"は、"A"の項目からのコピーになり、"† a, a.1 (def. numeral) Obs. or dial."や"a, a.2 (indef. article)" からのコピペにはなりません。もし、そういうところでコピペが止まっていたら、そういう語のコピペを oed-最大数字.txt の最後から手で消してください。そうすることで、見出しの重複が無くなります。

// 先頭からコピペを始めるなら TRUE、途中から再開するなら FALSE(その場合、下のstartWordも修正する)
public START_FRESH=FALSE
public startWord="再開する語の見出し"

その他

環境依存でうまく行かないことがあるかもしれません。なんでも掲示板のほうにメッセージを寄せてください。全文コピペはなかなかうまく行かず、何十回も試行錯誤しました。ゆっくり進めればおそらく大丈夫なのでしょうが、それでもだめなこともあるかもしれません。

著作権とライセンス

CD-ROM、全文テキスト、EPWINGデータの不正利用は厳に慎んでください。

EPWING化ツールは、大久保が作成したものです。これらはパブリックドメイン扱いとします。