UNIX上で電子辞書を活用しよう

最終更新日: 2000-12-19 (公開日: 2000-02-17)


本稿は Software Design誌 1999年9月号に掲載された記事を加筆修正したものです。 内容はかなり古くなっていると思います。

目次

はじめに

「そこで辞書だ。凡人には辞書がある。」

これは翻訳家の柳瀬尚紀氏の言葉*1です。なるほど、確かに辞書はあるかもしれない、 しかし、辞書を引くのは面倒じゃないか? 根っからの横着者である 筆者などはついそんなふうに考えてしまいます。

にもかかわらず、筆者は大の辞書好きで、柳瀬氏の言葉を座右の銘 とし、一日に何十回となく辞書を引きます。なぜそんなことができ るのでしょうか? それは電子辞書を快適に利用できる環境をUNIX上 に構築しているからです。

本稿ではフリーおよび市販の電子辞書をUNIX上で活用する方法を紹 介します。

SDIC

SDICは Emacs 上で英和・和英辞書を引くためのソフトウェアです。 土屋雅稔さんによって開発されました。SDICはネットワーク上から 入手可能なフリーの英和・和英辞書を利用できるため、市販の辞書 を購入することなく、手軽に使い始めることができます。 [図 1]

図1 SDIC の Webページ
[SDIC の Webページ]

SDICには次のような特徴があります。

  1. Emacs上でカーソル位置の単語を瞬時に辞書引きできる
  2. 派生語の原形を自動的に類推して検索できる
    generalization を引くと general, generalize の語義もまとめて 表示します
  3. 名詞・動詞・形容詞・副詞の語形の変化を自動補正して検索で きる
    books なら book へ、 played なら play へ、 biggest なら bigへ自動補正して検索します

辞書データの入手

SDICを利用するには前もって辞書データをネットワーク上から入手 しておく必要があります。ここでは英和辞書として GENE95を、和 英辞書としてEDICTを用いることにします*2

GENE95は Kurumi氏が編纂された収録語数約57,350語の英和辞書 です。<http://www.forest.impress.co.jp/dict.html#gene95> から入手できます。EDICTはJim Breen氏が編纂された収録語数約 67,200語の和英辞書です。<ftp://ftp.u-aizu.ac.jp/pub/SciEng/nihongo/ftp.cc.monash.edu.au/edict.gz> から入手できます。

インストール

SDICの最新版は<http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic/> から入手できます。本誌が書店に並ぶ頃には v2.1 が正式にリリー スされているはずです。

インストールの手順は次の通りです。gene95.lzh, edict.gz は lha, gzip コマンドがインストールされていればそれぞれ自動的に 展開されます。


    % gzip -dc sdic-2.1.tar.gz |tar xf -
    % cd sdic-2.1
    % cp ../gene95.lzh . (GENE95のファイルをコピーする)
    % cp ../edict.gz .   (EDICTのファイルをコピーする)
    % ./configure
    % make               (Lispプログラムを makeする)
    % make dict          (辞書ファイルを加工する)
    % su
    Password: (rootのパスワードを入力)
    # make install       (Lispプログラムをインストール)
    # make install-dict  (辞書ファイルをインストール)
    # exit
    % make config        (~/.emacs に SDIC用の設定を追加)
    本当に /home/user/.emacs を書き換えますか[yes/no] (yesと入力)
    元の /home/user/.emacs を /home/user/.emacs.orig として保存します
    ( echo ; cat lisp/sample.emacs )>>$HOME/.emacs

使い方

インストールが完了したら Emacs を立ち上げて M-x sdic (M-x は ESCキーを押して次に x を押す) と入力して みてください。ミニバッファに Input Word : とプ ロンプトが表示されるはずです。ここで何か英単語を入力して結果 が返ってくれば成功です。 [図 2] は "software" を引いたときの結果です。画面の下部 2/5 ほどの領域 に辞書閲覧バッファが現れ、語義が表示されます。

図2 SDIC で "software" を検索した画面
[SDIC で "software" を検索した画面]

もちろん、Input Word : のプロンプトに日本語を入 力すれば和英で辞書引きできます。キーワードは「言語」のように 漢字で入力しても「げんご」のようにひらがなで入力してもどちら でも構いません。

これだけでも充分に便利ですが、 SDICの本領は英文を読む際に発 揮されます。たとえば、文の中で derived という単語の意味がわ からなかったとき、カーソルを derived に合わせて、 Ctrl-c W (Ctrlキーを押しながら c を押し、 Ctrl キーを放して、大文字のWを打つ) と叩けば、瞬時に [図 3] の結果が得られます。このとき、derived は原形であ る derive に自動で変換されて検索が行われます*3

図3 SDIC で "derived" を検索した画面
[SDIC で "derived" を検索した画面]

辞書閲覧バッファで q キーを叩けばただちにもと の作業に戻れます (辞書閲覧バッファは消える)。また、 ?キーを叩けば辞書閲覧バッファでのキー操作一 覧を表示できます。[表 1]

表1 SDICのキー操作


    w, /           新たな単語を検索する
    W              辞書を指定して検索する
    SPC            辞書閲覧バッファを前方へスクロールする
    b, BS, Delete  辞書閲覧バッファを後方へスクロールする
    n, TAB         次の項目へ移動する
    p, M-TAB       前の項目へ移動する
    <              辞書閲覧バッファの先頭へ移動する
    >              辞書閲覧バッファの終端へ移動する
    o              辞書閲覧バッファから他のバッフへ移る
    q              辞書閲覧バッファを消す
    Q              SDIC を終了する
    ?              ヘルプを表示する

UNIXを利用していると英語のマニュアルを読む機会が多いものです。 SDIC を使えばずっと楽に英文が読めるようになること請け合いで す。

NDTPD

NDTPDは NDTP (Network Dictionary Transfer Protocol) プロトコ ルに基づく辞書サーバです。市販の電子ブックおよびEPWING (コラム参照) の辞書に対応して います。笠原基之さんによって開発されました。[図 4]

図4 NDTPD Webページ
[NDTPD Webページ]

NDTPDには次のような特徴があります。

  1. 市販の電子ブック・EPWING形式の辞書が扱えます[表 2]
  2. EPWING V4以降の圧縮書籍に対応している
    EPWING版の広辞苑第5版が扱えます
  3. 外字のビットマップデータに対応している (NDTPを拡張)
    これにより、BookView と Lookup は外字のビットマップ表示を実現しています
  4. 付属のebzipコマンドにより辞書を圧縮できる

表2 主なEPWING書籍の一覧

名称
広辞苑第5版
価格
11,000円
出版社
岩波書店
情報源
<http://www.iwanami.co.jp/kojien/cdrom/index.html>
収録辞書
広辞苑第5版 (23万語)
名称
スーパー大辞林
価格
9,800円
出版社
三省堂
情報源
<http://www.sanseido-publ.co.jp/publ/super_daijirin.html>
収録辞書
大辞林第2版 (23万語)
デイリーコンサイス英和辞典
デイリーコンサイス和英辞典
ワープロ漢字辞典
名称
新グローバル&ニューセンチュリー英和・和英辞典
価格
7,800円
出版社
三省堂
情報源
<http://www.sanseido-publ.co.jp/publ/cd_gl_cn.html>
収録辞書
新グローバル英和辞典(9万3千語)
ニューセンチュリー和英辞典第2版(4万1千語)
名称
新英和・和英中辞典
価格
6,200円
出版社
研究社
情報源
<http://www.kenkyusha.co.jp/guide/dic/dic-ed.html>
収録辞書
新英和中辞典第6版 (9万語)
新和英中辞典第4版 (7万語)
名称
リーダーズ + プラス
価格
23,000円
出版社
研究社
情報源
<http://www.kenkyusha.co.jp/guide/dic/dic-ed.html>
収録辞書
リーダーズ英和辞典初版 (26万語)
リーダーズ・プラス (19万語)
名称
新編英和活用大辞典
価格
13,000円
出版社
研究社
情報源
<http://www.kenkyusha.co.jp/guide/dic/dic-ed.html>
収録辞書
新編英和活用大辞典 (38万用例)
名称
ジーニアス英和・和英辞典
価格
9,000円
出版社
大修館書店
情報源
<http://akashia.est.co.jp/tsubame/detail.asp?sku=10163>
収録辞書
ジーニアス英和辞典改訂版 (9万2千語)
ジーニアス和英辞典 (8万語)
名称
辞・典・盤97
価格
9,520円
出版社
アスキー
情報源
<http://www.ascii.co.jp/pb/jitenban/htm/main.htm>
収録辞書
岩波国語辞典第5版 (6万2千語)
研究社新英和中辞典第6版 (9万語)
研究社新和英中辞典第4版 (7万語)
知恵蔵
マイペディア97
名称
辞・典・盤Pro
価格
17,000円
出版社
アスキー
情報源
<http://www.ascii.co.jp/pb/jitenban/htm/main.htm>
収録辞書
広辞苑第4版 (22万語)
リーダーズ英和辞典初版 (26万語)
名称
スーパー統合辞書99
価格
19,800円
出版社
富士通
情報源
<http://www.fujitsu.co.jp/hypertext/softinfo/product/oa/epwing/news/super.html>
収録辞書
広辞苑第5版 (23万語)
研究社新英和中辞典第6版 (9万語)
研究社新和英中辞典第4版 (7万語)
漢字源
現代用語の基礎知識1999年版

インストール

NDTPDの最新版は<http://www.sra.co.jp/people/m-kasahr/ndtpd/index-ja.html> から入手できます。本稿執筆時点では v2.3.8が最新です。インストー ルの手順は次の通りです。


    % gzip -dc ndtpd-2.3.8.tar.gz |tar xf -
    % cd ndtpd-2.3.8
    % ./configure
    % make
    % su
    Password: (rootのパスワードを入力)
    # make install
    # exit

make install を実行すると ndtpd (サーバプログラム) の他に ndtpcheck, ndtpcontrol, ndtpdaily, ebappendix, ebfont, ebunzip, ebzipinfo, ebinfo, ebrefile, ebzip といったツール群 も同時にインストールされます。[表 3]

表3 NDTPD関連のコマンド


    ndtpcheck     ndtpd.conf の記述を検証する
    ndtpcontrol   ndtpd を停止したり再スタートしたりする
    ndtpdaily     ndtpd のログを整理する
    ebappendix    付録データを作成する 
                  (外字代替表はあらかじめ手作業で作っておく必要がある)
    ebfont        外字のビットマップデータを画像ファイルとして保存する
    ebzip         辞書データを圧縮する
    ebunzip       圧縮した辞書データを展開する (元に戻す)
    ebzipinfo     圧縮した辞書データの情報を出力する
    ebinfo        辞書の情報を出力する
    ebrefile      カタログファイルを加工する

ndtpd.confの準備

インストールが終わったら、ndtpdを動かすための設定ファイル を 作成します。サンプルが /usr/local/etc/ndtpd.conf.sample に作 成されているので、これを /usr/local/etc/ndtpd.conf にコピー して使います。では、必要な設定項目を見ていきましょう。

ndtpd.confの設定 - ndtpd全 般の設定

user, group

ndtpd プロセスを所有するユーザ名とグループ名をそれぞれ設定し ます。標準では


    user     ndtpuser
    group    ndtpgrp

と設定されています。これは、安全性を確保するために ndtpuser, ndtpgrp というユーザおよびグループの権限で ndtpd のプロセス を動かす、という意味を持っています。通常のシステムでは、 ndtpuserユーザと ndtpgrpグループは標準では用意されていないた め、新規に作成する必要があります。

ユーザの追加およびグループの作成を行うためのツール (たとえば adduser, addgroup, useradd, groupadd) が用意されている OSで は、これらのツールを使って ndtpuserユーザ, ndtpgrpグループを 作成してください。

もし、これらのツールが用意されていないときは vipw で /etc/passwd を直接編集して次の行を追加します。(12345の部分に は、未使用の UID, GIDを指定してください)


    ndtpuser:x:12345:12345:NDTP User:/nonexistent:

次に vi で /etc/group を編集して次の行を追加します。


    ndtpgrp::12345:ndtpuser

max-clients

ndtpdに同時に接続できるクライアントの数を設定します。 0 を設 定すると無制限になります。標準は 1です。

hosts

ndtpdに接続できるホストを設定します。ここでは 127.0.0.1 (localhost) からのアクセスのみを許可するように設定します。

    hosts               127.0.0.1

timeout

交信が途絶えたクライアントを切断するまでの秒数を設定します。 0 を設定すると無制限になります。標準は 900秒です。

work-path

作業用ディレクトリを絶対パスで指定します。標準の /usr/local/var/ndtpd は make install 時に自動的に作成されま す。

    work-path  /usr/local/var/ndtpd

なお、このディレクトリの所有権は先ほど作成した ndtpuserユー ザ, ndtpgrpグループに設定する必要があります。rootになって次 のように実行してください。

    # chown ndtpuser /usr/local/var/ndtpd
    # chgrp ndtpgrp  /usr/local/var/ndtpd
    # chmod 755      /usr/local/var/ndtpd

以上が ndtpd の動作全般に関する設定です。

ndtpd.confの設定 - 辞書 に関する設定

次に、辞書に関する設定を行います。各辞書ごとにbegin book 〜 end の形式で定義します。例: [リスト 1]

リスト1 辞書の設定例


    begin book
        name            GENIUS
        title           Genius Eiwa/Waei Dictionary
        path            /usr/local/share/eb/data/genius
        max-clients         1
        hosts           127.0.0.1
        appendix-path   /usr/local/share/eb/appendix/genius
    end

name

辞書の名前を設定します。英大文字・数字・下線・ハイフンを最大 14文字まで使えます。各辞書ごとに異なる名前をつけなければなりま せん。

title

辞書の題名を設定します。改行文字とnull文字を除くすべての文字 が使えます。長さは最大80バイトまでです。*4

path

辞書データのあるトップディレクトリ (電子ブックならcatalog, EPWINGならcatalogsファイルが置かれている) を絶対パスで指定し ます。リスト1はジーニアス英和・和英辞典の辞書データを /usr/local/share/eb/data/genius に置いてあるときの設定です。

電子ブック・EPWINGの辞書データを CD-ROMからハードディスクに コピーするには次のように実行します。*5


     1. 辞書データ格納用のディレクトリを作成する
     # mkdir -p /usr/local/share/eb/data  
     2. CD-ROMをマウントしているディレクトリをまるごとコピーする
     # cd /usr/local/share/eb/data
     # cp -rp /cdrom dictname  (`dictname'は自由に指定で
     きる)

max-clients

この辞書を同時に使うことができるクライアントの数を設定します。 0 を設定すると無制限になります。標準は 1です。

hosts

この辞書を使うことができるホストを設定します。リスト1では 127.0.0.1 (localhost) からのアクセスのみを許可するように設定 しています。

appendix-path

付録データの絶対パスを指定します。付録データとは、辞書に含ま れる外字 (発音記号など) を一般の文字セットで表示するための代 替文字列を定義したファイルのことです。付録データを利用するこ とにより、外字をビットマップで表示できない NDTPクライアント でも代替文字列を用いてそれらしい表示を得ることができます。 [図 5] は上から順に、外字をビットマップで表 示した画面、外字を代替文字で表示した画面、外字を何も処理しな いで表示した画面です。付録データは<http://www.sra.co.jp/people/m-kasahr/eb/appendix-ja.html> から入手できます。

なお、付録データは辞書ごとに用意する必要があります。もし、 付録データが上記のサイトに用意されていないときは ebappendix で作成するか (かなり手間がかかります)、付録デー タの使用をあきらめて appendix-path を未設定にします。外字 をビットマップで表示できるクラインアントを使う分には付録 データは不要です。

図5 外字表示の違い
[外字表示の違い]

以上で ndtpd.conf の設定が終わりました。 /usr/local/sbin/ndtpcheck を実行して何も出力されなければ、正 しく設定できた証拠です。エラーメッセージが表示されたときは適 宜、修正してください。(行番号が表示されるので修正は容易です)

その他の設定

services

サービス名 ndtpを登録します。/etc/services に次の行を追加 します。


    ndtp   tcp/2010

syslog.conf

ログ出力の設定を行います。/etc/syslog.conf に次の行を追加し、


    local0.info   /usr/local/var/ndtpd/log/ndtpd.log

ログファイル用に空のファイルを作成します。


    # touch /usr/local/var/ndtpd/log/ndtpd.log
    # chmod 644 /usr/local/var/ndtpd/log/ndtpd.log

次に、syslogd のプロセスにハングアップシグナルを送ります。

  
    # kill -HUP XXX          (XXXは syslogのPID)

なお、syslogd のPIDを調べるには


    # ps aux | grep syslogd  (BSD系のシステム)
    # ps -ef | grep syslogd  (SYSV系のシステム)

と実行します。これで ndtpd を動かすための設定はすべて終了で す。お疲れ様でした。

ndtpdの起動

ndtpd を起動するには root になって /usr/local/sbin/ndtpd を実行するだけです。動作 を確認するには次のように実行します。


    % telnet localhost ndtp
    t  (tを入力して辞書一覧を表示 - 表示できれば成功)
    1    ジーニアス英和・和英辞典        GENIUS/GENIUS   0  0  0
    $*
    Q  (Qを入力して終了)

なお、辞書一覧で表示されている GENIUS/GENIUS の部分は辞書の ID です。このIDは後述の BookView の設定 (start book ID) で必 要になります。

コラム: 電子ブック と EPWING

電子ブックはソニーの主導で作られた規格です。記憶媒体として 8cm CD-ROMを採用しています。本来は電子ブックプレイヤと呼ばれ る装置で利用するものですが、PCから利用することもできます。 Webサイト: <http://www.ebxa.gr.jp/>

EPWINGは富士通の主導で作られた規格です。記憶媒体として 12cm CD-ROMを採用しています。EPWINGはバージョンを追うごとに、 MPEG1の動画再生や圧縮書籍、JPEG画像表示、といった新機能が追 加されています。Webサイト: <http://www.epwing.or.jp/ >

電子ブックが基本的にテキスト+白黒画像+音声しか扱えないのに対 し、 EPWINGではそれらに加えて MPEG1や JPEGといった高度なマル チメディアデータに対応している点が大きく異なります。

また、筆者の知るかぎり、電子ブック版の辞書は漢字での検索がで きないようです (規格としてそうなのかは不明です)。その点、 EPWINGでは漢字での検索に対応しているため、読みのわからない言 葉を copy & paste して国語辞典で調べる、といった便利な使い方 ができます。

同じタイトルの電子辞書が出版されているときは、 PCだけでの利 用を考えるなら、EPWING版を選べば間違いないでしょう。出版され ている書籍の情報はそれぞれの Webサイトから入手できます。

BookView

BookViewは Tcl/Tk で書かれた NDTPクライアントです。笠原基之 さんによって開発されました。動作させるには Tcl8.0jp/Tk8.0jp 以降が必要です。[図 6]

図6 Bookviewの Webページ
[Bookviewの Webページ]

BookViewには次のような特徴があります。

  1. NDTPDと併用することで電子ブック・EPWINGの辞書が引ける
  2. わかりやすいGUIで簡単に辞書引きできる
  3. 外字をビットマップで表示できる

インストール

BookViewの最新版は<http://www.sra.co.jp/people/m-kasahr/bookview/index-ja.html> から入手できます。本稿執筆時点では v2.4.8が最新です。インス トールの手順は次の通りです。


    % gzip -dc bookview-2.4.8.tar.gz |tar xf -
    % cd bookview-2.4.8
    % ./configure
    % make
    % su
    Password: (rootのパスワードを入力)
    # make install
    # exit

インストールが終わったら、コマンドラインから bookview & と実行して BookView を起動します。 [図 7]

図7 Bookviewの初期画面
[Bookviewの 初期画面]

セットアップ

File メニューから Setup... を選んでセットアップを行います。 [図 8]

図8 Bookviewのセットアップ画面
[Bookviewの セットアップ画面]

セットアップ画面では Servers: と Bitmap: の 2つの項目を設定 します。

Servers: では、 BookView が接続する NDTP サーバ (hostname) と最初に選択する辞書の ID (start book ID)を設定します。また、 Connect to server 1 at start of BookView のボタンにチェック を入れておけば BookView の起動時に自動的に server 1 に接続す るように設定できます。

Bitmap: では利用する外字のサイズを設定します。標準の 16のま までよいでしょう。

ここで設定した情報は ~/.bookview ファイルに保存され、次回以 降に起動した際に自動的に読み込まれます。

使い方

BookView の使い方は簡単です。基本的に、Server:, Book: メニュー で接続するサーバと使用する辞書をそれぞれ選択し、Word: 欄に 調べたい言葉を入力して Enterキーを叩くだけです。 [図 9]

図9 Bookview で "design" を検索した画面
[Bookview で "design" を検索した画面]

青色 + 下線付きで(->link) と表示されている 部分はリンクを表し、左クリックすれば参照先のテキストを表示 できます。

なお、Word:欄に日本語を入力するときは、 kinput2 が立ち上がっ ている状態で Ctrl + \ を叩きます (日本語入力モードから抜ける ときは Shift + Space)。

コラム: UNIXで百科事典を利用するには

現在市販されている電子化された百科事典の多くは残念なことに Windows専用の製品ばかりです。 (マイクロソフトエンカルタ百科 事典99、日立デジタル平凡社 世界大百科事典第2版、小学館 日本 大百科全書 + 国語大辞典)

このうち、日本大百科全書だけは電子ブック版が用意されており、 電子ブックプレイヤとセットで販売されています。また、書店で注 文すれば電子ブックプレイヤが付属しない版を購入することも可能 なようです。<http://www.sony.co.jp/sd/ProductsPark/Models/Current/DD-2001MK2_J_1/index.html>

電子ブック版日本大百科全書は本文の区切りを示す stop-code が 一般の値と異なるため、NDTPDで扱うには付録データを用意して適 切な stop-codeを明示する必要があります。具体的には次の値を設 定します。


    stop-code       0x1f41 0x0090

本誌が書店に並ぶ頃には <http://www.sra.co.jp/people/m-kasahr/eb/appendix-ja.html> に電子ブック版日本大百科全書用の付録データが用意されている はずです。こちらを利用すれば上記の設定を手作業で行う必要はあ りません。

辞書を軽量化しよう

太田純さん*6作のソ フトウェアEPWUTILに含まれる squueze コマンドと NTDPD付属の ebzip コマンドを併用すれば電子ブック・EPWING の辞書をぐっと 小さくできます。特にハードディスクの容量が限られているノート PCでは重宝します。

squeeze

squeeze は書籍ファイルから図版や音声のデータ、条件検索・複合 検索のインデックスなどを削除することによって辞書を軽量化しま す。当然、削除されたデータは利用できなくなりますが、NDTPDで は元からこれらデータを扱えないため、何も損することはありませ ん。*7

squeeze はEPWING V4以降の圧縮書籍には対応していません。動作 確認済の辞書と適用不可能な辞書のリストはEPWUTIL付属の文書 epwutil.docに記載されています。

squeeze を使うにはまず EPWUTIL を入手する必要があります。 EPWUTILの最新版は <ftp://ftp.nerimadors.or.jp/pub/epwutil/> から入手でき ます。本稿執筆時点では v1.0 が最新です。インストールの手順は 次の通りです。


    % mkdir epwutil
    % cp epwutil-1.0.tar.gz epwutil
    % cd epwutil
    % gzip -dc epwutil-1.0.tar.gz |tar xf -
    % make -f makefile.unx
    % su
    Password: (rootのパスワードを入力)
    # cp bookinfo catdump squeeze /usr/local/bin
    # exit

インストールが終わったら、書籍ファイル (電子ブックなら start, EPWINGなら honmon) の置かれているディレクトリに移動し、 次のように実行します。


    # squeeze start start.out  (EPWING なら honmonを指定)
    入力ファイル = start
    出力ファイル = start.out
    
    《再配置プラン》
    
    ID 開始ブロック 終了ブロック    サイズ  再配置先
        :
      (中略)
        :
    終了しました
    # ls -l start start.out   (効果を確認する)
    -rw-r--r--   1 user     group    133193728 Jul 19 10:02 start
    -rw-r--r--   1 user     group     88719360 Jul 19 10:10 start.out
    # mv start start.orig     (オリジナルのファイルを残しておく)
    # mv start.out start

この例では電子ブック版のジーニアス英和・和英辞典*8の書籍ファイルを対象に実行 しています。結果は、オリジナル約 127MBのファイルを約 84MBに 軽量化できました。なお、 squeezeの処理時間は、マシンの性能と 辞書データの大きさによりますが、通常、数分程度かかります。

ebzip

ebzipは NDTPD に付属しているコマンドです。 ebzip を使うには 辞書データ一式を格納したディレクトリ (電子ブックならcatalog, EPWINGならcatalogsファイルが置かれている) に移動して次のよう に実行します。


    # ebzip
    ==> compress /usr/local/share/eb/data/genius/genius/start <==
    output to ./genius/start.ebz
     2.4% done (2097152 / 88719360 bytes)
     4.7% done (4194304 / 88719360 bytes)
     7.1% done (6291456 / 88719360 bytes)
         :
      (中略)
         :
    completed (88719360 / 88719360 bytes)
    88719360 -> 32418589 bytes (36.5%)
         :
      (後略)
         :

この例ではさきほど squeeze で書籍ファイルを軽量化した電子ブッ ク版のジーニアス英和・和英辞典の辞書データを対象に実行してい ます。結果は、84MBの start ファイルを 31MBに圧縮で きました。オリジナルの約 127MBに比べると実に 100MB 近くも節約できたことになります。なお、ebzipの処理時間は、マシ ンの性能と辞書データの大きさよりますが、通常、十数分程度かか ります。

squeeze と ebzip の処理が終了したら、 コマンドラインから


    # /usr/local/sbin/ndtpcontrol restart

と実行して、 ndtpd を再スタートさせ、軽量化された辞書を正し く扱えるか確認します。BookView から当該の辞書を選択して、う まく検索できれば成功です。動作を確認したら、バックアップ用に 残しておいた start.orig ファイルを削除しましょう。

CSRD

CSRD は小学館から発売されているランダムハウス英語辞典Windows 版*9 を UNIX/MS-DOS 上から利用するためのソフトウェアです。太田 純さんによって開発されました。

ランダムハウス英語辞典Windows版は独自形式を採用しているため (困ったことです)、NDTPDで扱うことはできません。太田さんは辞 書データを解析しながら CSRD を作成したそうです。

CSRDには次のような特徴があります。

  1. コマンドラインから簡単に英和大辞典が引ける
  2. 単語の完全・前方・後方一致検索、ワイルドカード検索が可能
  3. キーワードとして日本語を入力して検索できる (和英機能)
  4. 複数の英単語を指定して熟語・用例を検索できる
  5. 音声データ、画像データには対応していない

ランダムハウス英語辞典は収録語数34万5千を誇る大辞典です。紙 のランダムハウス英和大辞典第2版は重量約 3.5 kgととんでもなく 重たく、気軽に引ける辞書ではありませんが、CSRDを使えばコマン ドラインから瞬時に検索できます。当然ですが、CSRDを利用するに はランダムハウス英語辞典Windows版を購入する必要があります。

インストール

CSRDの最新版は<http://openlab.ring.gr.jp/edict/csrd/> から入手できま す。本稿執筆時点では v1.0 が最新です。インストールの手順は次の通りです。


    % gzip -dc csrd-1.0.tar.gz |tar xf -
    % cd csrd-1.0
    % make -f makefile.unx
    % su
    Password: (rootのパスワードを入力)
    # cp csrd /usr/local/bin
    # exit

インストールが終わったら、ランダムハウス英語辞典の CD-ROMを マウントして (ここでは /cdrom にマウントしたとします) 、csrd コマンドで検索が行えることを確認します。CSRDのソースを展開し たディレクトリから次のコマンドを実行して結果が返ってくれば成 功です。この例では "gnu" を引いています。


    % csrd -w60 -fcsrd.fmt -gcsrd.gai -d/cdrom/data gnu 
    □ gnu [nju´:,nu:]
    
    ■n.
    (pl. gnus,《特に集合的》gnu)
    ヌー,ウシカモシカ:アフリカ東/南部産ウシ科ヌー属 Connochaetes
     の大形動物の総称;ふつうオグロヌー(brindled gnu) C.taurinus 
    を指し,近縁種のオジロヌー(white-tailed gnu) C.gnou をも指す;
    wildebeest ともいう.
    [1777.<コイコイ(Khoikhoi), 最初の記録では t'gnu だが,おそら
    く -n<G0-fb>「黒い」と同一(もともとヌーの黒い体色を指して名
    づけられたものだから)]

csrdのコマンドラインオプションを [表 4]にまとめ ておきました。

表4 csrdのコマンドラインオプション


    -d<辞書DIR>            辞書データがあるディレクトを指定する
    -f>書式ファイル>       表示書式ファイルを指定する
    -g<外字ファイル>       外字代替表記ファイルを指定する
    -w<桁数>               出力行幅を指定する (-w0: 改行なし(標準))
    -s<非表示項目>         特定項目を非表示にする
                             -st: 意味, -se: 用例, -si: 成句,
                             -so: 類語, -sa: すべて
    -b                     発音記号列を点訳する (-bx: 大カッコ記号を表示しない)
    -a                     不完全一致でも項目内容を表示する
    -v                     辞書データのバージョンを表示する
    -c                     日本語コード (-cj:JIS, -ce:EUC(標準), -cs:シフトJIS)
    -i 英単語1 英単語2 ... 指定された英単語すべてを含む熟語または用例を検索する

ハードディスクに格納する

ランダムハウス英語辞典の辞書データをハードディスクに格納する には/cdrom/data ディレクトリから [リスト 2] のファイルをハードディスク上の任意のディレクトリ (たとえば /usr/local/share/eb/data/srd)にコピーします。全体で約262MB *10です。

リスト2 必要なファイル

     en.dat    miden.txt
     enf.idx   midtr.txt
     enr.idx   tr.dat
     id.dat    trf.idx
     id.idx    trr.idx
     main.txt

辞書データを格納したディレクトリには、CSRD付属の表示書式ファ イル csrd.fmt と外字代替表記ファイル csrd.gai を一緒にコピー しておくとよいでしょう。

便利な使い方

環境変数CSRDにコマンドラインオプションの値を設定しておけば、 csrdコマンドの実行時にいつも決まった引数を指定する手間が省け ます。

環境変数CSRDの設定例


    sh系:
    export CSRD="-d/usr/local/share/eb/data/srd -w60 -g/usr/local/share/eb/data/srd/csrd.gai -f/usr/local/share/eb/data/srd/csrd.fmt"

    csh系:
    setenv CSRD "-d/usr/local/share/eb/data/srd -w60 -g/usr/local/share/eb/data/srd/csrd.gai -f/usr/local/share/eb/data/srd/csrd.fmt"

ランダムハウス英語辞典は和英辞典の代わりとしても利用できます。 これは、解説文中の特定の訳語に検索用のインデックスがつけられ ているためです。次の例では「タヌキ」を引いていま す。


    % csrd 'タヌキ'
    □ racco´on do`g
    【1】タヌキ Nyctereutes procyonoides:東部アジア産のイヌ科 Ca
    nidae の野獣;毛皮や色合いがアライグマに似る.
    【2】=Coonhound.
    [1868]

また、複数の英単語を指定して熟語・用例 (用例は17万5千文) を 検索することもできます。csrd に -i オプションを指定して、そ の後ろに英単語を空白区切りで並べます。 次の例では "take advantage of" を引いています。


    % csrd -i take advantage of
    take advantage of an opportunity 好機に乗じる (ad・van・tage,
     n.3)
    take full [or unfair] advantage of …を十分[不当に]利用する 
    (ad・van・tage, n.3)
    take an unfair advantage of a person 不当なやり方で人に一杯
    食わせる. (u`n・fa´ir, adj.1)

Lookup

Lookupは Emacs 上でさまざまな種類の辞書を引くための統合検索イン ターフェイスです。西田圭介さんによって開発されました。現在は 数人の有志によって共同で開発が行われています。[図 10]

図10 Lookupの Webページ
[Lookupの Webページ]

Lookupには次のような特徴があります。

  1. Emacs上でカーソル位置の単語を瞬時に辞書引きできる
  2. 複数の辞書をまとめて検索できる
  3. 電子ブック・EPWING の辞書が引ける
    NDTPDまたは eblook*11 と組み合わせます
  4. 電子ブック・EPWING だけでなく、様々な辞書が検索できる
    <http://www.dict.org/> で配布されている辞書など
  5. 操作が簡単でてきぱき検索できる
  6. SDICと同等の派生語・語形変化の処理ができる
  7. 英単語の間違った綴りをある程度まで自動補正できる
    stuppid を stupid に補正してくれます
  8. Emacs 20やXEmacs なら外字をビットマップで表示できる*12
  9. 辞書のグループ化ができる
  10. ランダムハウス英語辞典を検索するインターフェイスが付属してい る
    csrdコマンドと組み合わせます

インストール

Lookupの最新版は<http://openlab.ring.gr.jp/lookup/> から入手できます。 本稿執筆時点では v1.1 が最新です。インストールの手順は次の通 りです。


    % gzip -dc lookup-1.1.tar.gz |tar xf -
    % cd lookup-1.1
    % ./configure
    % make
    % su
    Password: (rootのパスワードを入力)
    # make install
    # exit

セットアップ

まず、 ~/.emacs に次の設定を追加します。


    (autoload 'lookup "lookup" nil t)         ; lookup をautoloadする
    (autoload 'lookup-pattern "lookup" nil t) ; lookup-pattern をautoloadする
    (global-set-key "\C-cL" 'lookup-pattern)  ; キー操作を定義

次に、 ~/.lookup の設定を行います。NDTP経由で電子ブック・ EPWINGの辞書を検索するなら、最低限、次の設定が必要です。

    ; 検索エイジェントの指定 - NDTP経由
    (setq lookup-search-agents '((ndtp "localhost")))

lookup-search-agents では複数の検索エイジェント (検索を行う ための部品) を指定可能です。たとえば次のような設定が行えます。


    ; 検索エイジェントの指定
    (setq lookup-search-agents 
         '(
           (ndtp "localhost")                     ; NDTP経由
           (ndsrd "/usr/local/share/eb/data/srd"  ; ランダムハウス英語辞典
              :fmt "/usr/local/share/eb/data/srd/csrd.fmt"
              :gai "/usr/local/share/eb/data/srd/csrd.gai")
           (ndkks)                                ; 漢字かな辞典
           (ndspell)                              ; スペルチェッカー
          ))

この例では NDTP経由の検索とともに、ランダムハウス英語辞典 (csrdコマンドが必要)、漢字かな辞典 (kakasi*13コマンドが必要)、スペルチェッ カー (ispell*14が必要) を 指定しています。

~/.lookup では他にも[リスト 3] のような設定 が行えます。

リスト3 ~/.lookupの設定例


    ; 辞書グループの設定 (グループ名は自由に設定できる)
    (setq lookup-search-modules
          '(
            ("english"     ; 英語辞典グループ
             "ndtp+localhost:GENIUS/GENIUS"
             "ndspell"
             )
            ("japanese"    ; 国語辞典グループ
             "ndtp+localhost:KOUJIEN/KOUJIEN"
             )
            ("hyakkajiten" ; 百科事典グループ
             "ndtp+localhost:DAIHYAKKA/DHK01" 
             )
            ("all" "")     ; すべての辞書
            ))
    
    ; 英和辞書に stemmer (語形変化の自動調節機) を設定
    (lookup-set-dictionary-option 
         "ndtp+localhost:GENIUS/GENIUS" ':stemmer 'stem-english)
    
    ; ポイント位置の日本語を取り込む (kakasiコマンドが必要)
    (setq lookup-use-kakasi t)
    
    ; 外字をビットマップで表示する
    (setq lookup-use-bitmap t)

使い方

設定が終わったら、 Emacs を立ち上げ、 M-x lookup と入力して、 Lookupを呼び出します。最初に呼び出したときは辞書選択バッファが表示されま す[図 11]。このバッファでは m キーで辞書を 選択 (*が選択を表す)、u キーで辞書を非選択に設 定できます。fキーで検索です。また、?キーを叩 けばキー操作一覧を表示できます。[表 5]

表5 Lookup のキー操作


    f    新たな単語を検索する
    SPC  本文バッファを前方へスクロールする
    n    次の項目へ移動する
    p    前の項目へ移動する
    v    概観モード
    o    バッファを最大化する
    s    本文を前方へインクリメンタルサーチする
    i    項目の情報を表示する
    t    整形処理を切り替える
    w    内容をキルリングに保存する
    M    辞書のメニューを表示する
    L    リファレンスの一覧を表示する
    S    辞書選択モード
    r    検索開始バッファへ移動する
    h    本文バッファへ移動する
    g    検索をやり直す
    M-n  次の検索履歴へ移動する
    M-p  前の検索履歴へ移動する
    M-f  次の辞書グループへ移動する
    M-b  前の辞書グループへ移動する
    q    Lookup から抜ける
    Q    Lookup を終了する
    R    Lookup を再起動する
    ?    ヘルプを表示する

図11 辞書選択
[辞書選択]

Lookup でも SDICと同じようにカーソル位置の単語を簡単なキー操 作で瞬時に検索できます。先ほど設定した~/.emacs では Ctrl-c L にそのキー操作を割り当てています。 [図 12] はカーソル位置の単語 "debugger" を 検索した結果です。

図12 検索結果
[Lookup 検索結果]

Lookup は選択中のすべての辞書に対して串刺しに検索を行うため、 複数の辞書を容易に引き比べることができます。また、この例では lookup-set-dictionary-option で設定した stem-english が働い て、"debugger" が載っていなかった辞書については自動的に debug に補正して検索をかけています。

以上、ざっと駆け足でしたが、 Lookup の使い方を紹介しました。 Lookup は辞書引きの快適さをとことん追求した、使えば使うほど 指になじむ道具です。筆者は Lookup なしの生活など考えられない ほどになってしまいました。

おわりに

ここ半年ほどの間に、NDTPD が EPWINGの圧縮書籍に対応したり、 EPWUTIL, CSRD が公開されたりと、UNIX上の辞書環境はたいへん充 実してきました。最近では根本隆さんが開発を進めている GTKベイ スの辞書検索ツール EbDic[図 13]*15 が電子ブックの音声再生に 対応するなど、ますますの盛り上がりをみせています。本稿がその 気運をより一層、高めるきっかけとなれば幸いです。

図13 EbDic の動作画面
ebdic.png

コラム: 電子辞書メーリングリスト

筆者は電子辞書に関する情報交換を目的としたメーリングリストを 運営しています。主に UNIX環境での話題を扱っています。興味の ある方は <http://openlab.ring.gr.jp/edict/> を参照してください。これまでに、

といった話題が取り上げられています。また、成果物として電子辞 書関連のリンク集がまとめられています。<http://openlab.ring.gr.jp/edict/links.html>

参考文献

  1. 「電子辞書/事典パワフル活用法」, 太田純 + 大原雄介, DOS/V magazine 1999年3月15日号
  2. 「FreeBSDでモバイルしよう - 電子ブック辞書を使いこなす」, 時乗洋昭, SoftwareDesign 1998年12月号

注釈

  1. 柳瀬尚紀著『辞書はジョイスフル』(新潮文庫) 34ページより
  2. 筆者は試したことがありませんが、英辞郎・和英辞郎を利用することもできるようです
  3. もし derived という項目が辞書にあればそちらを優先して表示します
  4. ここで設定した題名が使われる機会はほとんどありません。あ まりまじめに題名を考える必要はないでしょう。
  5. 電子ブックに含まれる sound というファイルはフォーマット が特殊なため、ほとんどの OS でコピーに失敗します。しかし、 NDTPDでは 使用しないため問題ありません。
  6. 筆者は電子辞書の師匠として太田純さんを尊敬しています :-)
  7. 複合検索・条件検索ができないのは非常に残念ですが
  8. <http://akashia.est.co.jp/tsubame/detail.asp?sku=10164>
  9. <http://skygarden.shogakukan.co.jp/skygarden/owa/sosbooks_isbn?e_id=1547365&id=906864> 価格は15,000円
  10. ちなみに、 Linux で e2compr <http://www.netspace.net.au/~reiter/e2compr/>を使うと約95MBに圧縮できます。 (gzip-9レベル)
  11. eblookは本稿では取り上げません。参考文献2で解説されてい ます
  12. Emacs 20 では bitmap-mule <ftp://ftp.jpl.org/pub/elisp/bitmap/> が必要です。 XEmacs では特別な準備は必要ありません。
  13. <http://kakasi.namazu.org/> から入手できます。
  14. <ftp://core.ring.gr.jp/pub/GNU/ispell/> から入手できます
  15. EbDic の最新版は <http://www2c.biglobe.ne.jp/~tnemoto/programs/index.cgi> から入手できます

Satoru Takabayashi