« 日本鳥類目録第7版に準拠したRefsort/Ruby辞書ファイルをリリース | トップページ | 日本鳥類目録第7版準拠のRefsort辞書ファイル(Windows-31J版)をアップしました »

2012/10/08

Refsort/Ruby で JPBirdList を使う方法

昨日のポストの続きです.今回の辞書ファイルは 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 との相性は抜群に良くなります.そのような辞書ファイルも準備してアップしたいと思います.

|

« 日本鳥類目録第7版に準拠したRefsort/Ruby辞書ファイルをリリース | トップページ | 日本鳥類目録第7版準拠のRefsort辞書ファイル(Windows-31J版)をアップしました »

IT関連情報」カテゴリの記事

科学」カテゴリの記事

自然」カテゴリの記事

コメント

ココログって,<pre>タグがすごく使いにくいですね.プログラムソースなどを書こうと思うと,どうやっていいのか良くわかりません.無駄な改行が入り込んでくるし,<tt>で等幅フォントを指定したつもりでも,どうもヘン.

投稿: 俊(とし) | 2012/10/08 15:53

Ruby はつい最近 1.9.3-p286 にアップデートされましたので,こちら宇使うのが安全です.来年には 2.0 がリリースされるはずですが,何かが劇的に変わるということではなさそうなので,このまま自然なアップデートに付き合っていけばよいはずです.

投稿: 俊(とし) | 2012/10/28 08:26

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/54612/55843806

この記事へのトラックバック一覧です: Refsort/Ruby で JPBirdList を使う方法:

« 日本鳥類目録第7版に準拠したRefsort/Ruby辞書ファイルをリリース | トップページ | 日本鳥類目録第7版準拠のRefsort辞書ファイル(Windows-31J版)をアップしました »