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)