真字 0.2.1

* 真字とは

隠れマルコフモデルを用いた仮名漢字変換エンジンです。コードのかなりの部
分が茶筅に由来しています。Eggを通じてEmacs上で利用できます。またuim
1.0以上で利用することができます。長文の入力を精度よく変換することが目
標です。

このほかに、関数型言語OCamlとCで書かれていること、Schemeで拡張可能なこ
とが特徴です。


* ライセンス

真字はフリーソフトウェアです。Free Software Foundationが発行したGLP
2.0またはそれ以上のバージョンの元で自由に再配布や改変ができます。2.0以
上のどのバージョンを選ぶかは自由です。詳しくはCOPYINGというファイルを
見てください。

また、茶筅に由来するコードのライセンスはCOPYING.chasenを御覧ください。

* 著作権について

真字の著作権は、山形頼之(yoriyuki@users.sourceforge.jp)、奈良先端科学
技術大学（茶筅部分）、Christoph Bauer(schocaディレクトリ以下)、その他
(ocamlgraphディレクトリ以下)に属します。詳しくは各ファイルの著作権表示
を御覧ください。

* インストール

必要なソフトウェア
1. OCaml (http://www.caml.org) バージョン3.07またはそれ以上
2. gdbm 1.8.2またはそれ以上
3. findlib (http://www.ocaml-programming.de/programming/findlib.html)

Linuxであればいずれもたいていのディストリビューションに含まれています。

まず、mana-<version>.tar.bz2とmanadic-<version>.tar.bz2をダウンロード
し、展開してください。古いバージョンのための辞書しかない見当たらない場
合は、もっとも新しいバージョンをお使いください。

展開されたmana-<version>ディレクトリのmanaサブディレクトリにある
conf.mlを編集します。mana-prelude.scm(manaの起動時に読み込まれるScheme
ファイル)の位置を示すprelude変数の値を
	/usr/local/src/misc/mana/trunk/mana/mana-prelude.scma
から適切な値に変更してください。

つぎにmana-<version>ディレクトリに移り、
 ./configure
make
(管理者権限を得て)
make install
してください。つぎにmanadic-<version>ディレクトリに移り、やはり
 ./configure
make
(管理者権限を得て)
make install
とします。

最後にmana/mana-prelude.scmをconfig.mlで指定したpreludeの位置に置きま
す。

これでインストールができました。

* API

バイナリmanaはSchemeのインタープリタです。Schemeの標準関数の他に、以下
の関数が実装されています。文字コードはEUC-JPが仮定されています。

(mana-parse <ひらがな表記文字列> <始状態> <解析開始位置> <長さ>)
	与えられた文字列を解析し、解析情報を格納した値を返します。戻り値は
	現状では操作メソッドを格納したベクターです。

(mana-best-path-from-parse_obj <解析情報> <始状態> <解析開始位置>)
	mana-parseが返した解析情報を元に、最適な解析結果を返します。解
	析結果は(<形態素> <位置> <長さ> <連接後の状態> <コスト>)のリス
	トとして表されます。 

(mana-best-path <ひらがな表記文字列> <始状態> <解析開始位置> <長さ>)
	与えられた文字列を解析し、最適な解析結果を返します。解析結果の
	表現はmana-best-path-from-parse_objと同じです。

(mana-list-candidates-from-parse_obj  <解析情報> <始状態> <位置> <形態
素長>)
	変換候補のリスト(<形態素> <連接後の状態> <コスト>)を返します。

(mana-list-candidates <ひらがな表記文字列> <始状態> <解析開始位置> <文
節長> <長さ>)
	変換候補のリスト(<形態素>,<連接後の状態> <コスト>)を返します。

(mana-learn-from-parse_obj <解析情報> <始状態> <位置> <パス>)
	<始状態> <位置>から始まる変換が<パス>であることを学習します。<
	パス>は(<形態素の漢字表記> <位置> <形態素の平仮名表記の長さ>)
	のリストです。

(mana-learn-from-parse_obj <ひらがな表記文字列> <始状態> <位置> <パス>)
	上と同じですが、解析情報の代わりに平仮名表記を引数に取ります。

(mana-add-new-word <書き> <読み(平仮名表記)>)
	新しい単語を漢字表記<書き>、読みを<読み(平仮名表記)>で登録しま
	す。

* たまごでの利用

まず、<真字ソースの展開ディレクトリ>/elisp/egg-mana.elをEmacsのロード
パスが通っているところに置きます。

さらに、.emacsに次を追加する必要があります。

(load "egg-mana.el")
(autoload 'egg-acticvate-mana "egg-mana.el"
"Activate MANA backend of Tamago 4." t)
(register-input-method
"japanese-egg-mana" "Japanese" 'egg-activate-mana
"あ.." "Romaji -> Kanji&Kana"
'its-select-hiragana)

デフォルトのインプットメソッドにするには、さらに次を追加します。

(set-input-method "japanese-egg-mana")

* uimでの利用

manaモジュールを利用してください。

http://anthy.sourceforge.jp/cgi-bin/hikija/hiki.cgi?FrontPage

* 単語登録と個人辞書

egg-toroku-*を用いて新しい単語を個人辞書に登録できます。

個人辞書は$HOME/.manadicに格納されます。

* TODO

逐次変換、共起性、コードの整理

* 連絡先

バグ報告
https://sourceforge.jp/tracker/?atid=5373&group_id=1419&func=browse

開発メーリングリスト
 shinji-devel@lists.sourceforge.jp

作者への個人的な連絡
yoriyuki@users.sourceforge.jp
バグ報告や使い方の質問はバグトラッカや開発メーリングリストで行ってください。