外字2006年04月09日 18時44分03秒

外字は全文検索に不向きです。 自由に定義できるため、どのような内容が定義されているのかを知る手段がありません。

しかし、世の中には市販されている有名な外字フォントというものも多々あります。 (外字はコードというよりもフォントに依存すると考えるのが妥当です。)

例えばMacintoshDTPで定番となっている「ビブロスフォント外字セット」

 http://www.biblosfont.co.jp/product.html

もそのひとつです。Windows 版の

 http://www.est.co.jp/fe/kigou/index.html

もあります。

あらかじめビブロスフォントを使用している文書であるとわかっている場合には、これらの外字を全文検索用に別の文字に置き換える等の処理を行えば、全文検索に利用することもできるでしょう。

例えば、

(0) -> 0 や (普) -> 普 といった置換するライブラリです。

かなり限定した用途であり、運用する上で注意しないといけませんが、そういった特殊な用途に特化するのも面白いかもしれません。

ただ、ひとつの文書の中に複数のフォントを切り替えていることは多々あり、それぞれ別の外字が定義されていると、フォントごとにテキストを取り出さないと正しく処理できないので、あくまでも外字の種類は1種類のみといった簡単な対応しかできないでしょう。

同様に CP932 の機種依存文字も変換するライブラリがあれば良いかもしれません。(こちらの方が実用的)

例えば、

(株) -> 株 や 平成(1文字) -> 平成(2文字)

といったよう。

コメント

_ 成瀬 ― 2006年04月09日 20時21分14秒

Unicode の 正規互換分解・結合 あたりはそれに近いことをしてくれますね。
nkf でも検討していないわけでもないですが、Perl でしたら Unicode::Normalization を使うのが現実的かなと。

_ opengl2772 ― 2006年04月09日 23時17分22秒

広い意味ではUnicode の 正規互換分解・結合のような考えです。
nkf の -Z オプションによって記号を正規化して Namazu が使うのも、同様の考えによるものです。

機種依存文字に関して言えば、このようなライブラリはすでにいくつか存在するのではないかと思っています。

CP932->Shift_JISで、変換できない文字を捨てるのではなく、Shift_JISにある文字に変換(正規化)するというのが、表現としては正しいかもしれません。

Unicode の正規化とは少し方向が違うかと思います。(Unicode の正規化に関しては、それはそれでライブラリが欲しいが。)

なお、Perl モジュールはもちろん必要ですが、それだけでは困るので C のライブラリが望ましいです。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://namazu.asablo.jp/blog/2006/04/09/321281/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。