こんにちは、深町です。
> ejSplitter-0.3.1.tar.gz として、公開しました。
> http://www005.upp.so-net.ne.jp/nakagami/tips/ZCTextIndex.html#
> ejSplitter
>
> これでよろしいでしょうか?---->All
http://www.atransia.co.jp/home/Purloined に入れてみました。
ついでに、ejSplitter は 「ポー」の場合「ー」がつながってくれずに「ポ」「ー」
のように分割
されてしまうのが気に入らなかったので、(「ページ」などもそうなのですが)
文脈依存のコードを入れてみました。
何をしたかというと、全角の「〜」「ー」の場合は、前の文字と同じ文字種別という
ことで
扱う ZEN_DEPEND という種別を作り、前の文字が全角ひらがなか、カタカナだった
ら、
それにしたがうというものです。同じように半角バージョンを入れてもいいかもしれ
ません。
これをやらないでばらけたままだと、よけいなものがマッチしてしまうことがあるの
が
気に入らなかったわけです。あとは、切り方としてもなんですし。
ただ、よけいなものがマッチしても、たくさん検索結果に出てきた方がいいというの
であれば、入れる必要はないですが(笑)
ejSplitter は、こうしたヒューリスティックルールをもっと追加していけば、
理屈上もっと賢くすることができると思います。
diff -r ejSplitter.orig/SplitJapanese.py ejSplitter/SplitJapanese.py
39a40,46
> if new_state == char_map.ZEN_DEPEND:
> if char_state == char_map.ZEN_KANA
> or char_state == char_map.ZEN_HIRA:
> new_state = char_state
> else:
> new_state = char_map.DELM
>
48a56
>
diff -r ejSplitter.orig/char_map.py ejSplitter/char_map.py
35a36
> ZEN_DEPEND = 6 # context dependent zenkaku character
74a76,78
> #ZEN_DEPEND
> depend_codes = [0xFF5E, 0x30FC]
>
108a113,117
> #ZEN_DEPEND
> for chcode in depend_codes:
> char_class[chcode] = ZEN_DEPEND
>
>
--
Kazuya Fukamachi
http://www.atransia.co.jp/home/ZenKai/
日記 http://www.atransia.co.jp/home/fukamachi
COREBlog使用中 http://www.atransia.co.jp/home/Purloined