10円はげ系女子ブログ。

大して役にも立たないWEBの情報と、私生活の事を只陳ねる猫かぶりブログ。

NEW !
テーマ:

一応bata版。精度的にはほぼ80%以上捕まえられる感じ。もう一段階、良く見るフレーズあたりでフィルタリングしちゃえば、さらに9割弱はいけるんじゃないかなと。

とりあえず温床化してる記事のピックアップ。

http://ameblo.jp/miumiu3tek/entry-11833676995.html#cbox

http://ameblo.jp/miumiu3tek/entry-11837390982.html#cbox

http://ameblo.jp/miumiu3tek/entry-11756229055.html#cbox

引っ掛け網は、類似値を超えた場合にポイントとして加算。その結果によってウンコ化が決まる。この値の設定次第ではもっとうまく噛み合うかも。逆にやる気のないスパムは弾けません。巻き添えはどうしても避けようがないので、2次被害として楽しむものです。

うんこのひみつ。

similar_text

コメント内容のマッチングで利用したのはsimilar_text。元々はPHPの関数で、2つのStringを比較してどれだけ類似性があるか値を返す関数です。

similar.js
~~
    similar_str: function(text1, len1, text2, len2) {
        var pos1 = 0,
            pos2 = 0,
            max = 0,
            i, j, l;

        for (i = 0; i < len1; ++i) {
            for (j = 0; j < len2; ++j) {
                for (l = 0;
                    (i + l < len1) && (j + l < len2) &&
                    (text1.charAt(i + l) == text2.charAt(j + l)); ++l);
                if (l > max) {
                    max = l;
                    pos1 = i;
                    pos2 = j;
                }
            }
        }

        return {
            'pos1': pos1,
            'pos2': pos2,
            'max': max
        };
    },
    similar_char: function(text1, len1, text2, len2) {
        var r = this.similar_str(text1, len1, text2, len2),
            sum = r.max;
        if (sum) {
            if (r.pos1 && r.pos2) {
                sum += this.similar_char(text1, r.pos1, text2, r.pos2);
            }
            if ((r.pos1 + r.max < len1) && (r.pos2 + r.max < len2)) {
                sum += this.similar_char(
                    text1.substr(r.pos1 + r.max),
                    len1 - r.pos1 - r.max,
                    text2.substr(r.pos2 + r.max),
                    len2 - r.pos2 - r.max);
            }
        }
        return sum;
    },
    similar_text: function(text1, text2) {
        var sim = this.similar_char(text1, text1.length, text2, text2.length);
        return {
            'similar': sim,
            'percent': sim * 200.0 / (text1.length + text2.length)
        };
    }
~~
AD
いいね!した人  |  コメント(5)

[PR]気になるキーワード