	   KAKASI-2.2.5 用「わかち書き」パッチ ドキュメント

			       馬場 肇
	     京都大学理学部宇宙物理学教室 博士課程一回生
		 E-Mail: baba@kusastro.kyoto-u.ac.jp
			     1997年9月2日


(c) Copyright 1996-1997 Hajime BABA.  All rights reserved.

これは、漢字かな交じり文をある程度意味のある「わかち書き」にするために、
KAKASI に当てるためのパッチです。


 1. このパッチの説明 

漢字かな交じり文をひらがな文やローマ字文に書き下すソフトウェアに、筑波
インターネットクラブの高橋裕信さんが作成された KAKASI がありますが、こ
れにこのパッチを当てることによって意味のある「わかち書き」を実現します。

同様のソフトウェアに、京都大学工学部の長尾研究室及び奈良先端科学技術大
学院大学の松本研究室で開発されている JUMAN/ChaSen というものがあります。
こちらの方は「形態素解析」を行ないますので、より緻密な構文解析をするこ
とができます。できるのですが、私の本来の目的には高度過ぎて少し合いませ
んでしたので、より簡便な手段である、KAKASIの改造という方法を取ることに
しました。

しかし、簡便とはいっても、ちゃんと辞書を検索した上で「わかち書き」を行
ないますので(バックトラックを行なわない『単純最長一致法』と呼ばれる手
法を用いているのとほぼ同様の効果を持っています)、それなりになかなか賢
いです。ひらがな部分を除けば、大体において満足できる結果になっているも
のとおもわれます。

もともと私は、このパッチを全文検索システムソフトウェア freeWAIS-sf の
日本語化の一環として作成しました。従って、他にはあまり使い道のないパッ
チなのかも知れませんが、まあ笑って許してやって下さい。(^_^)

＃ 追記: ソニー(株)の検索CGIエンジンのSSEがこのパッチを採用しました。
＃ パッチ作成当時(1996年7月)にはおもってもみなかった事です。(^_^;)



 2. コンパイル・インストール

KAKASI 本体を入手してこのパッチを当てた後は、 KAKASI 附属の README.jpn 
に従ってコンパイル・インストールして下さい。わかち書きオプションとして、
-w オプションが追加されます。

他のオプションは変更していませんので、元のものと同じように動作します。



 3. 使用例

実際に、どのようになるかという例を示します。

  KAKASI は漢字かなまじり文をひらがな文やローマ字文に変換する
  ことを目的として作成したプログラムと辞書の総称です 。

という文(KAKASI の README の冒頭文)を KAKASI に入力したとすると、

  % kakasi -w < README
  KAKASI は 漢字 かなまじり 文 をひらがな 文 や ローマ 字 文 に 変換 する
   ことを 目的 として 作成 した プログラム と 辞書 の 総称 です 。

のように、単語ごとにスペースで分割された「わかち書き」になります。

このパッチを見た時一番最初におもうのは、KAKASI 標準の -s オプションと
何が違うのかということでしょう。以下のサンプル文でその違いを示します。
(文章の内容には特に意味はありません)

  % cat test.doc
  私は京都大学理学部宇宙物理学教室修士課程二回生の馬場肇です。
  大会申し込みの締め切りの直前に受け付けを済ませました。

  % kakasi -s < test.doc
  私 は 京都大学理学部宇宙物理学教室修士課程二回生 の 馬場肇 です 。
   大会申 し 込 みの 締 め 切 りの 直前 に 受 け 付 けを 済 ませました 。

  % kakasi -w < test.doc
  私 は 京都大学 理学部 宇宙物理 学 教室 修士課程 二回 生の 馬場 肇 です 。
   大会 申し込み の 締め切り の 直前 に 受け付け を 済ま せました 。

このように、-w オプションでは -s オプションに比べて意味のある単語ごと
に「わかち書き」が行なわれていることがわかります。




 4. 解説

-w オプションは、-JH -s オプションを指定した時の動作と似ています。

  % kakasi -JH -s < test.doc
  わたし は きょうとだいがく りがくぶ うちゅうぶつり がく きょうしつ \
   しゅうしかてい にかい せい の ばば はじめ です 。
   たいかい もうしこみ の しめきり の ちょくぜん に うけつけ を すま \
   せました 。

これの、ひらがなに書き下さないバージョンが -w オプションの原型です。実
際には、文字種に応じて処理をするように細かな修正を加えています。

KAKASI は辞書を引いた上で単語を決めていますので、単語の境界を単純に文
字状態(ASCII・ひらがな・カタカナ・全角記号・漢字)の変化とした場合(-s)
に比べれば、-w オプションはだいぶ賢いです。むろんカンペキとはいきませ
んが、freeWAIS-sf や SSE で使うことを前提に考えると、お手軽な割にはこ
れでもナカナカ使えるものとおもいます。

特に、「申し込み」のような、かなと漢字の混ざった複合語をひとつの単語と
して認識させることができますので、使い方によってはかなり強力になります。
また、「京都大学理学部」は「京都大学」と「理学部」の二つの単語に認識し
ますので、漢字ばかりの文章でもソコソコ単語を拾うことができます。

人名や専門用語などで「わかち書き」がうまく行なわれない場合があるのは、
それらの単語が KAKASI の辞書に登録されていないためです。従って、辞書を
鍛えれば良いことになります。実際の運用上は、必ず鍛えた方が良いでしょう。
KAKASI は、わずかな変換手続きを踏むだけで Wnn の pubdic を始めとした一
般に流通しているフリーの辞書が利用できますので、辞書の強化は容易だとお
もいます。具体的な強化方法は、 KAKASI に附属している JISYO というファ
イルを参照して下さい。

実際に使う時には -c オプションが大変有効です。できるだけ付けるようにす
る方が良いものとおもわれます。



 5. 制限・コメント

・単語確定にちゃんと辞書を引く分、動作はあまり速くありません。
・ひらがな(カタカナ)ばかりの文章には依然として弱いです。
・余計な空白が多く(特に行頭に)入りますがこれは仕様です。誰か直して下さい。
・-c オプションは漢字の単語にしか効きません。カタカナ語が文末で区切ら
  れてしまっている場合には単語も切られてしまいます。この点を誰か直して
  下さい。



 6. ChangeLog

たかだか、こんな小さなパッチに ChangeLog など要らないだろうとおもって
いたのですが、まあ、しょうもないバグがあったりするものです。(T_T)

・8月29日版では、E2.c のバグを修正したパッチをマージした(courtesy by 
みちむこ＠ソニーさん)のと、wx2-conv.c の関数の型宣言を少し修正しました。

・それ以前には、5月6日に、カタカナの小さい 'ュ' および普通の 'ユ' を
含むカタカナ語が不正に区切られてしまうと言うバグを修正しました。



このパッチは、freeWAIS-sf-2.1.2 日本語化パッチキットのサブセット的なも
のです。いずれのパッチも、最新版は以下の URL:

  http://www.kusastro.kyoto-u.ac.jp/~baba/wais/index.html

から得ることができます。このページは必要に応じて適宜更新されます。ここ
では、本ドキュメントに含まれていない情報について詳しく触れていますので、
全文検索に興味のある方もない方も、ぜひ一度ご覧頂ければとおもいます。

このパッチの利用条件は、元の KAKASI パッケージと同様、GPL に従うことと
します。また、何か便利な使い方を考えた方は、ぜひとも教えて下さい。
--
馬場  肇 ( Hajime BABA )                  E-mail: baba@kusastro.kyoto-u.ac.jp
京都大学理学部宇宙物理学教室 博士課程一回生
--