2006年8月28日

[Namazu-devel-ja 1186] Re: 文字 N-gram ぽい実験 (Re: フレーズ検索って N-gram ですよね

寺西です。

Tadamasa Teranishi wrote:
>
> Tadamasa Teranishi wrote:
> >
> > バグだらけでした。修正版です。
>

> さらにバグってまして...修正版です。
>
> * UTF-8 4バイト 対応です。

my $ct = 0;
$tmp =~
s/([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf][\x80-\xef]|[\xf0-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf])/$ct++;
'';/egs;
my $res = length($tmp);
if ($res < $minres || ($res == $minres && $ct < $maxct)) {

というところは

my $ct = ($tmp =~
s/([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})//gs);
my $res = length($tmp);
if ($ct > 0 &&
(($res < $minres || ($res == $minres && $ct < $maxct))) {

というようにより簡単に書けますね。
$ct が 0 なら1文字もマッチしないので、これは条件から外した方が
よさそうです。

# そろそろ使えそうかな?
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E

_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja

投稿者 xml-rpc : 2006年8月28日 19:59
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/45019
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。