Linuxにはkakashiとか分かち書きしてくれるソフトがあるけど、Windows用でしかも.NETから使えるやつがないかなーと探してたら、ありましたわよ奥さん!
Loose End : Windowsで日本語解析
Windowsにも、Index Serviceと呼ばれる、全文検索エンジンが載っているんですが、こいつの日本語解析エンジンが使えないもんかといろいろ調べてみると、IWordBreakerと呼ばれるライブラリにたどり着いた。
たしかにIndex Serviceってやってるはずですよね。ということで、リンク先のナイスなフォーリナーが作ってたソースを持ってきて試してみました。
分かち書き出来ました!
日本語の分かち書きをするためには、WordBreaker.csの一番下の
[ComImport] [Guid("80A3E9B0-A246-11D3-BB8C-0090272FA362")] //[Guid("369647e0-17b0-11ce-9950-00aa004bbb1f")] //[Guid("9717fc70-c1bc-11d0-9692-00a0c908146e")] public class CWordBreaker { }
となっているのを
[ComImport] [Guid("BE41F4E6-9EAD-498f-A473-F3CA66F9BE8B")] //[Guid("80A3E9B0-A246-11D3-BB8C-0090272FA362")] //[Guid("369647e0-17b0-11ce-9950-00aa004bbb1f")] //[Guid("9717fc70-c1bc-11d0-9692-00a0c908146e")] public class CWordBreaker { }
に変えればOKです。
すばらしい!
こういうの見ると、やっぱC++もやっといた方がいいのかなぁと思ってしまいます。~
COMもよくわからんしなぁ。なんだよIUnknownって(笑)~
サンプルもフレームワーク的な作りになってるのかな?いやWordBreaker自体がそういう使い方をするようになっているのか?~
まだ修行不足で解析には時間がかかりそうです。
NWikiのc#Tipsにも載せましたが、情報元のNautilusさんに感謝を込めてトラックバックしたかったので、こちらにも書きました。
ありがとーございまーす。