ローマ字ひらがな変換ライブラリ suikyo

suikyo 「水鏡」とは

suikyo は決定性オートマトンに基づいて, 文字列の変換を行うライブラリです. 主には「ローマ字ひらがな変換」に使用されます. 例えば "suikyou" という 文字列から "すいきょう" と変換を行なったり, 逆に "すいきょう" から "suikyou" に変換することが可能です.

変換を行うためのルールを表すフォーマットについての詳細は後述しますが, canna の .kpdef フォーマットとほぼ同様です. そのため .kpdef フォーマットに よる変換ルールをそのまま利用できます.

最新版

各言語用ライブラリ

suikyo は 2005-01-11 の時点で, 以下の言語用ライブラリがあります. 各言語別の説明は以下のリンクからのページにあります.

インストール

パッケージ

Debian, RPM, Gentoo, FreeBSD, Fink, PINEAPPLE, KNOPPIX 等のパッケージを 準備していただきました. 詳しくは PRIME のインストールページをご覧ください.

ダウンロード

http://prime.sourceforge.jp/src/ から suikyo のアーカイブをダウンロードしてください.

CVS 版ダウンロード

SourceForge.jp から, CVS 版のダウンロード が可能です. 以下のように実行してダウンロードしてください. パスワード入力時には, 単純にエンターキーだけを入力してください.

cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/prime login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/prime co suikyo

インストール

configure でファイルパス等の設定を行ったあと, make, make install で インストール可能です. CVS 版では autogen.sh を最初に実行する必要があります.

./autogen.sh (CVS 版のみ必要)
./configure
make
make install

アンインストール

アーカイブを展開したディレクトリで "make uninstall" を実行すれば, アンインストールされます.

configure のオプション

configure では以下の設定が行えます.

--prefix
インストールは指定したディレクトリ以下に行われます.
デフォルト値は /usr/local です.
--datadir
実行環境に依存しないデータをインストールするディレクトリです.
デフォルト値は (prefix)/share です.
--with-rubydir
ruby のライブラリがインストールされるディレクトリです. このディレクトリ以下に suikyo のライブラリがインストールされます.
デフォルト値は Ruby の sitelibdir です.
--with-emacs-sitelispdir
elips ライブラリのインストール先です. このディレクトリの下に サブディレクトリ suikyo を作成してインストールします.
デフォルト値は (datadir)/emacs/site-lisp です.
--with-emacs-initdir
prime-el の初期設定用ファイルが置かれるディレクトリです.
デフォルト値は (emacs-sitelispdir) です.
--with-suikyo-initfile
suikyo の初期設定用ファイル名です.
デフォルト値は init-suikyo.el です.
--with-suikyo-tabledir
suikyo の変換テーブルが置かれるディレクトリです.
デフォルト値は (datadir)/suikyo/conv-table です.
--with-suikyo-docdir
suikyo のドキュメントが置かれるディレクトリです.
デフォルト値は (datadir)/doc/suikyo です.

変換ルールのフォーマット

基本的なルール

基本的な変換ルールは, 以下に示すように, タブまたは空白で区切られた 2つもしくは 3つの項目から構成されます. ( 実際のファイル)

a	あ
ta	た
tt	っ	t

1つ目の項目が「入力データ」, 2つ目の項目が「変換データ」, 3つ目の項目が「保留データ」です. 入力データを変換データに置き換える というのが基本的なルールになります.

3つ目の保留データがある場合, 変換後, 保留データが未変換の文字列の先頭に 追加されます. 例えば "tta" と入力した場合, "tt" が "っ" に変換されて "t" が書き戻されて, 未変換の文字列は "ta" になります. その後, "ta" が "た" に変換されて, 最終的に "tta" が "った" に変換されます.

コメント記号

行頭が '#' で始まる 1行, または行頭が '/*' で始まり '*/' を含む行までを コメントとして扱います. '/*' も行頭で始まる必要があり, また '*/' 以降の 文字列もコメントして扱われてしまうので注意して下さい.

canna の .kpdef フォーマットでは '#ifdef' などにより条件分岐が可能ですが, suikyo では条件分岐はできません. '#ifdef' もただのコメントとして 扱われます.

実用には問題ないと判断したので, いい加減なコメントの仕様になっています. そのうち適切に修正する予定ですが, 現時点での優先順位は低いです.

特殊文字

バックスラッシュ (または円記号) '\' は特殊文字です. '\' に続く文字との組み合わせによって, さまざまな意味を表します.

記号意味
\\ バックスラッシュ '\' を表します.
\# シャープ '#' を表します.
\0 空文字 '' を表します. 便宜上用意してありますが, 何も書かなくても同じ意味になります.
\xNN 16 進数 NN で示された文字を表します. 例えば '\x22' なら, ダブルクウォーテーション '"' になります.

変換ルールの削除

入力データのみの項目は、変換ルールの削除を行います。例えば、

a
  

という項目があれば、「a → あ」という変換ルールを取り消すことが可能です。 入力データの後にタブ文字はあってもなくても構いません。

空白による入力区切り

バージョン 1.3.0 より, 空白 (" ", 0x20) が入力の区切りとなりました. 具体的には, ローマ字変換において, "n" の変換結果は "n" のままになり, "n " と空白を加えると "ん" と変換されるようになりました. "n" のままでは "na (な)" と続く可能があるからです.

テーブルファイル名

2004-12-04 現在, 以下の変換用テーブルが用意されています.

ファイル名機能
romaji ローマ字ひらがな
romaji_reverse ひらがなローマ字
romaji-hepburn_reverse ひらがなローマ字 (ヘボン式)
kana かな配列ひらがな
kana_reverse ひらがなかな配列
egg-mark egg記号入力記号
egg-mark_reverse 記号egg記号入力
ascii-wideascii ASCII全角ASCII
wideascii-ascii 全角ASCIIASCII
hiragana-katakana ひらがなカタカナ
katakana-hiragana カタカナひらがな
hiragana-halfkatakana ひらがな半角カタカナ
halfkatakana-hiragana 半角カタカナひらがな
katakana-halfkatakana カタカナ半角カタカナ
halfkatakana-katakana 半角カタカナカタカナ
romaji-kana ローマ字ひらがな (obsolete)
kana-romaji ひらがなローマ字 (obsolete)
skk-mark SKK記号入力記号
skk-mark_reverse 記号SKK記号入力
azik azik入力ひらがな
azik_reverse ひらがなazik入力
azik-all ローマ字 + azik 拡張ひらがな
azik-all_reverse ひらがなローマ字 + azik 拡張
tcode T-Code文字
tcode_reverse 文字T-Code
tcode-dvorak T-Code文字 (Dvorak 配列)
tcode-dvorak_reverse 文字T-Code (Dvorak 配列)
tcode TUT-Code文字
tcode_reverse 文字TUT-Code
kuten 区点コード文字
kuten_reverse 文字区点コード

T-Code 用のテーブルは, 高橋直人さんから御提供いただきました. ありがとうございます.

TUT-Code 用のテーブルは, TUT-code HomePageから御提供いただきました. ありがとうございます. このテーブルのライセンスは TUT-Code のライセンスに従います.

更新履歴

Ver 2.1.0(2005-03-29)
Ver 2.0.1.2(2005-01-16)
Ver 2.0.1.1(2005-01-13)
Ver 2.0.1(2005-01-11)
Ver 2.0.0.1(2004-12-13)
Ver 2.0.0(2004-12-09)
Ver 1.3.3(2004-08-29)
Ver 1.3.2(2004-02-29)
Ver 1.3.1(2004-01-31)
Ver 1.3.0(2004-01-10)
Ver 1.2.1
かな入力, AZIK, SKK記号, Egg記号, T-code, T-code (Dvorak配列) のデータ追加
Ver 1.2.0
Ver 1.1.2(2003-05-16)
Ver 1.1.1(2003-05-07)
Ver 1.1.0(2003-04-25)
Ver 1.0.1(2002-11-26)
Ver 1.0.0(2002-11-23)

小松 弘幸 <komatsu@taiyaki.org>
$Id: index.html,v 1.18 2005/03/29 02:07:09 komatsu Exp $