$kNotwork: README.jp,v 1.2 2002/09/28 05:21:06 gotoken Exp $
Ruby/KAKASI 拡張モジュール
by ごとけん (30 Jul 1999)
1. はじめに
このモジュールは、高橋裕信さんの作成されたソフトウェアKAKASIをrubyから
用いるためのものです。KAKASIとは漢字かなまじり文をひらがな文やローマ字
文に変換することを目的として作成したプログラムと辞書の総称です。文字種
(半角カナ等)や文字コードの変換も行えます。
KAKASIはSKKの辞書を用いて漢字の読みを求めます(KaKaSiはSKKの逆)。また、
KAKASIは他の多くの public な辞書も使用することもできます。これらについ
てはKAKASIのソースアーカイブに含まれるdoc/JISYOというファイルを参照し
て下さい。また KAKASI の公式サイト
も御覧下さい。
2. 使い方
今のところkakasiというモジュール関数のみをもつKakasiというモジュールし
かありません。
2.1 例
require "kakasi"
include Kakasi
puts kakasi("-oeuc -JH -HK", "案山子なのです") #=> "かかしナノデス"
2.2 引数の意味
第1引数はKAKASIに与えるオプション文字列です。オプションには利用する辞
書も指定できます。詳しくは KAKASI のマニュアルを参照してください。
第2引数は変換対象となる文字列です。引数が String でない場合は例外を上
げます。
なお、内部では第一引数が前回の呼び出しと異なるときのみKAKASIを初期化す
ることで高速化を図っています。
3. インストール
3.1 libkakasi.aのインストール
最新のkakasiを ftp://kakasi.namazu.org/pub/kakasi/ から入手します。
kakasiのアーカイブは kakasi-2.x.y.tar.gz という名前(x.yはマイナーバー
ジョン)が付いており、これを展開すると kakasi-2.x.y というディレクトリ
ができます。このディレクトリに cd したあと典型的には以下のようにインス
トールします:
./configure
make
(ここで必要に応じてインストールする権限のあるユーザになる)
make install
3.2 モジュールの作成とインストール
まずこのディレクトリに cd でもどって来ます。もし libkakasi.h や
libkakasi.a が cpp や ld に見つけられない場所にあるなら、extconf.rb を
書き換えてパスを教えて下さい。そして、
ruby extconf.rb && make
でコンパイルできます。必要に応じてインストールする権限のあるユーザになっ
て make install を実行すればインストール完了です。
4. 利用について
4.1 著作権
(C) Copyright 1999,2000 GOTO Kentaro
Ruby/Kakasi拡張モジュールは後藤謙太郎が著作権をもつフリーソフトウェア
です。
4.2 配布と利用の条件
Ruby 本体に準拠します。Ruby 本体と一緒に配布される README.jp もしくは
その英訳である README に書かれた配布条件にしたがって下さい。Rubyの配布
条件には選択肢としてGPLを用いることもできます。
Ruby/KAKASIは「のこウェア」とします。すなわち、強制はしませんが、この
モジュールを気に入ったら谷山浩子さんの曲を聞いてください。谷山浩子ホー
ムページ
4.3 注意
KAKASIとそのパッチは GNU Public License で配布されていますのでこれらに
ついてはそれぞれに付属する COPYING 等にしたがって下さい。特にコンパイ
ルしたものを再配布する場合はお気をつけ下さい。
5. 連絡先
コメント、バグレポートは歓迎します。gotoken@notwork.org までどうぞ。
6. 謝辞
SKKの作者である佐藤雅彦先生をはじめ、KAKASIの作者である高橋裕信さん、
わかち書きパッチを作成された馬場肇さん、そしてライブラリ化パッチを作成
された野首貴嗣さんがいなければこのモジュールは作れませんでした。感謝し
ます。また、ruby-listに「ディスクがあふれた」って書いたら速攻でハード
ディスクを提供して下さった塩谷雅人さんどうもありがとうございます。最後
になっちゃったけど、Rubyの作者であるまつもとゆきひろさんと、いつもメー
リングリストでお世話になっているRubyistのみなさんにも感謝します。それ
と西さん、前田さん、やまださん、パッチありがとう。
7. 蛇足
http://kakasi.namazu.org には「SKK - simple kana kanji converter」と書
かれていますが、3つのコンビネータS、K、Iの間に成り立つ有名な関係式に
SKK == I と言うのがあって、I は恒等変換に相当することから SKK は意味を
変えないというジョークだと思います。が、僕がそう思うだけでウソかも知れ
ません :-)