分かち書き

分かち書き

 KAKASIとかChaSenとかMeCabを入れるのが面倒だったので作った日本語を分かち書きするコード。

my @CharUtf8 = (
  '[\x{ff10}-\x{ff19}]+',  # [0-9]+
  '[\x{ff21}-\x{ff3a}\x{ff41}-\x{ff5a}]+',  # [a-zA-Z]+
  '\x{3092}',  # を
  '[\p{InHiragana}\x{30fc}]+',  # [ぁ-ん゛゜ゝゞー]+
  '\p{InKatakana}+',  # [ァ-ヶ・ーヽヾ]+
  '(?:\p{Han}\p{InHiragana})',  # 漢字1文字+ひらがな1文字
  '\p{Han}+',  # <漢字>+
);
my $CharUtf8 = "(". join( "|", @CharUtf8) .")";
----
s/$CharUtf8/ $1 /og;

 これでもそれなりになんとかなる、気がする。個人的にPOPFileにパッチをあてて使っているんだけど、KAKASIを使っているときと遜色ないです。

 ひらがなに音引きを入れるべきかとか、カタカナの中黒は外したほうがいいんじゃないかとか、考慮する点はありますけど。

 というか、こういう感じのをCでライブラリになってると使えるんじゃないの? とか思った。自分で書こうとは思わないけど。