CJKSplitter と UnicodeBlockTokenizer
異種格闘技戦というか一回戦;;
python 2.4 になると CJKCodecs が組み込みですが、兄弟のような名前の CJKSplitter はどんなもんなんだろうか? python2.3 環境で試してみました。
cjksplitter-0_7_1.tgz を解凍して実験。 zope モジュールを使うのでパスも通します。
$ cd CJKSplitter/
$ export PYTHONPATH="/usr/lib/zope/lib/python"
$ python
>>> from CJKSplitter import CJKSplitter
>>> u = unicode("漢字とカナabcだー!!oz,012 ^^ そんな※(−−;)", 'euc-jp')
>>> for x in CJKSplitter().process([u]):
... print x.encode('euc-jp')
...
漢字
字と
と
abc
だ
oz
012
そん
んな
な
>>>
う〜ん、README.txt に書いてある通りでした。
漢字は 2 文字づつ、しかも重複して分割する。
日本語の場合には仕様が合わないと思う。
追記: ごめんなさい。これは無知を背景にした脊髄反射的な誤解ですね。 フカマチさんの日記 (2006/01/06) にとても判り易い説明があります。
それではと、 UnicodeBlockTokenizer を試してみた。
こちらは普通の python モジュールとして実行、
$ python
>>> import unicodeblock_tokenizer
>>> u = unicode("漢字とカナabcだー!!oz,012 ^^ そんな※(−−;)", 'euc-jp')
>>> for x in unicodeblock_tokenizer.tokenize(u):
... print x.encode('euc-jp')
...
漢字
と
カナ
abc
だ
ー
!!oz,012
^^
そんな
※
(
−−
;
)
>>>
ロ−カルなプログラマとしては素直なこちらを使いたい気持ち。ascii 文字列に関しては再度 splitter をかければ良いし、他の漢字圏の文法は知りませんから。
"CJKSplitter と UnicodeBlockTokenizer" を、みな読む
—
posted by owa at 22:57
| Comments (0)
| Trackbacks (0)