昨日のポストの続きです.今回の辞書ファイルは UTF-8 でエンコードされており,これは Windows ではあまり使われない文字コードなので使い方がわかりにくいと心配しています.以下に超省略形ながらも使い方を書いてみますので,参考にしてください.
(1) Ruby の入手とインストール
まずは Ruby インタープリタが必要です.ここから取ってきてください.Ruby には 1.8 系列と 1.9 系列の二通りがありますが,Refsort/Ruby は Ruby 1.9.1 以降の仕様を前提としているため,必ず 1.9 系列(現時点での最新版は 1.9.3-p194)のインストーラをダウンロードし,起動してください.インストール画面で "Add Ruby executables to your PATH" に必ずチェックを入れてください.Refsort を使うためだけに Ruby をインストールするのであれば,"Associate .rb and .rbw files with this Ruby installation" にはチェックを入れないことをお勧めします.
(2) Refsort/Ruby の入手
このブログの右側に "自作ソフト" というコラムがあり,そこに "Refsort/Ruby v2.43" という最新版がアップされていますので,それをクリックしてダウンロードしてください.Zip 形式を解凍すると,ドキュメントと Ruby スクリプトである "refsort.rb" が取り出せます.これが Refsort/Ruby の本体なので,これを適当なディレクトリに置いておきます.
(3) JPBirdList の入手
同じく自作ソフトの中に "日本鳥類辞書 v7.00" というファイルがありますので,これをダウンロードして解凍すると "JPBirdList_v70.ref" というファイルが取り出せます.これが UTF-8 でエンコードされた日本鳥類目録 v7 の辞書ファイル本体です.UTF-8 が読めるエディタで内容を確認してください.このファイルの改行コードは CR/LF ではなく LF ですので,Windows のアクセサリにあるメモ帳で読むと,複数の行がつながって見えてしまうのが玉に瑕.秀丸などでは何の問題もなく読み書きできます.この辞書ファイルも適当な場所に置いておけばよいのですが,Refsort/Ruby と同じディレクトリに置いたほうが便利でしょう.
(4) 入力ファイルの準備
並べ替えを行いたい鳥名リストを作成します.すでに作成してあるリストも流用できます.まず行わなければならないことは,エディタでファイルの文字コードを UTF-8 に変更することです.改行コードは CR/LF でも LF でも構いません.そして,もうひとつ大事なことは,先頭の行に
#!E -*- coding: UTF-8 -*-
というおまじないのオプション行を付加することです.これにより Refsort は入力ファイルの文字コードを判断します.あとは適当に,例えば,
#!E -*- coding: UTF-8 -*-
#
ツグミ # 雑木林の落ち葉の上
スズメ # 民家の庭
ジョウビタキ # ♂ 土手の薮
マガモ # 約 50 羽
カルガモ # 100 羽以上
ヒドリガモ # 約 50 羽
オナガガモ # 約 100 羽
ハシビロガモ # ♂♀
セグロセキレイ
トビ # 河原の上空
アオジ # 川の土手の薮の中
アトリ # あまりよく見えなかった
ユリカモメ # 約 20 羽
カイツブリ # 堰堤の上流部
モズ # ♂の高鳴き
というようなファイル,例えば test_u.txt を作成します.
(5) Refsort の実行
Ruby をインストールすると,Windows のスタートメニューの中に "Ruby 1.9.3-p194" というフォルダが出来ていますので,その中にある "Start Command Prompt with Ruby" を選択すると,コマンドプロンプトが立ちあがります.
ruby -v
とコマンドを打ち込んで,
ruby 1.9.3p194 (2012-04-20) [i386-mingw32]
とバージョン番号が返ってくることを確認してください.次に,Refsort 本体や 入力ファイルを置いたディレクトリに移動します.そして,いよいよ以下のコマンドを打ち込みます.
ruby refsort.rb -f JPBirdList_v70.ref -r 2 test_u.txt > result.txt
すると画面には,
!R 46: -R "," redefined
JPBirdList_v70.ref: total of 1193 records
tamagawa_u.txt: total of 15 records
tamagawa_u.txt: total of 15 identified records
tamagawa_u.txt: total of 15 unique records
というメッセージが出され,リダイレクトされた出力ファイル result.txt をエディタなどで見ると,
ヒドリガモ # 約 50 羽
マガモ # 約 50 羽
カルガモ # 100 羽以上
ハシビロガモ # ♂♀
オナガガモ # 約 100 羽
カイツブリ # 堰堤の上流部
ユリカモメ # 約 20 羽
トビ # 河原の上空
モズ # ♂の高鳴き
ツグミ # 雑木林の落ち葉の上
ジョウビタキ # ♂ 土手の薮
スズメ # 民家の庭
セグロセキレイ
アトリ # あまりよく見えなかった
アオジ # 川の土手の薮の中
という内容であることがわかります.これが日本鳥類目録第7版に則って並べ替えた結果です.さらに詳しく見るために,-mn というオプションを加えて実行してみます.
ruby refsort.rb -f JPBirdList_v70.ref -r 2 -mn test_u.txt > result.txt
結果は以下のようになります.
[ANSERIFORMES; カモ目]
[Anatidae; カモ科]
[Anas; マガモ属] # "Linnaeus"
1 ヒドリガモ # 約 50 羽
2 マガモ # 約 50 羽
3 カルガモ # 100 羽以上
4 ハシビロガモ # ♂♀
5 オナガガモ # 約 100 羽
[PODICIPEDIFORMES; カイツブリ目]
[Podicipedidae; カイツブリ科]
[Tachybaptus; カイツブリ属] # "Reichenbach"
6 カイツブリ # 堰堤の上流部
[CHARADRIIFORMES; チドリ目]
[Laridae; カモメ科]
[Larus; カモメ属] # "Linnaeus"
7 ユリカモメ # 約 20 羽
[ACCIPITRIFORMES; タカ目]
[Accipitridae; タカ科]
[Milvus; トビ属] # "Lacépède"
8 トビ # 河原の上空
[PASSERIFORMES; スズメ目]
[Laniidae; モズ科]
[Lanius; モズ属] # "Linnaeus"
9 モズ # ♂の高鳴き
[Muscicapidae; ヒタキ科]
[Turdus; ツグミ属] # "Linnaeus"
10 ツグミ # 雑木林の落ち葉の上
[Phoenicurus; ジョウビタキ属] # "Forster"
11 ジョウビタキ # ♂ 土手の薮
[Passeridae; スズメ科]
[Passer; スズメ属] # "Brisson"
12 スズメ # 民家の庭
[Motacillidae; セキレイ科]
[Motacilla; セキレイ属] # "Linnaeus"
13 セグロセキレイ
[Fringillidae; アトリ科]
[Fringilla; アトリ属] # "Linnaeus"
14 アトリ # あまりよく見えなかった
[Emberizidae; ホオジロ科]
[Emberiza; ホオジロ属] # "Linnaeus"
15 アオジ # 川の土手の薮の中
新しい分類体系に慣れないうちは,この -m オプションを付けるとよいでしょう.
もう一つ,上記リストの "トビ属" のコメントフィールドに Authority が記載されていますが,これはアクセントを含む "Lacépède" という文字列です.これは Shift-JIS や Windows-31J では表現できません.このためにわざわざ UTF-8 を使っているのですが,普段使いには Authority は必要ないという意見もあるでしょう.その場合には文字コードをわざわざ UTF-8 にする必要はなく,Windows-31J で十分なので,Windows との相性は抜群に良くなります.そのような辞書ファイルも準備してアップしたいと思います.
最近のコメント