5

アイデアは簡単です。テキストエリアにテキストを入力して「送信」を押すと、繰り返されるフレーズのリストが返されます。フレーズとは、2 つ以上の単語の繰り返しを意味します。私の問題は、これらを検出する方法がわからないことです(一言で言えます)。

$(function() {
    $("#but").click(function() {
        var get = $("#inc").val();
        $("#res").html(get);
        return false;
    });
});

そしてHTML:

<form action="" method="POST">
    <textarea name="inc" id="inc" spellcheck="false"></textarea> <br>
    <input type="submit" id="but" value="Send">
</form>

<div id="res"></div>

問題はもちろん、どこから始めればいいのかわからないことです。何かアイデアはありますか?

例:

パリはフランスの首都であり、最も人口の多い都市です。パリとパリ地方は、フランスの国内総生産の 30% 以上を占め、世界最大の都市 GDP の 1 つです。

4

4 に答える 4

1

http://brettterpstra.com/2011/11/02/word-repetition-checking-with-javascript/をチェックし てください。問題はそれほど単純ではないため、これはあなたがやろうとしていることにおいて本当に役立つかもしれません。与えられた解決策と一緒にこのブログ投稿を見ることをお勧めします。実際には、単語の繰り返しスクリプトです。

于 2013-05-18T21:05:38.913 に答える
0

私はこの JS Fiddle を楽しみのために書きました。そのようなものがすでに存在するかどうかを確認するのは本当に気にしませんでした。私はそれを書きたかったのです。例として役立つはずです。

段落を入力して「分析」を押すだけです。2語以上で構成されたフレーズの出現回数が表示されます。

楽しむ。:-)

その JS Fiddle には次の関数が含まれています。

function analyze_words() {
    document.getElementById('results').innerHTML = '';
    var registry = {};
    var text = document.getElementById('words_input').value;
    var words_splitted = text.split(/[\W]+/);
    var words = [];
    for (var i = 0; i < words_splitted.length; i++) {
        if (words_splitted[i].match(/\w/)) {
            words.push(words_splitted[i].toLowerCase());
        }
    }
    for (var i = 0; i < words.length; i++) {
        var offset = i;
        var length = 1;
        while ((offset + length) < words.length) {
            var phrase = '';
            for (var x = offset; x <= (offset + length); x++) {
                phrase += words[x] + ' ';
            }
            phrase = phrase.replace(/\s$/, '');
            if (!(phrase in registry)) {
                registry[phrase] = 0;
            }
            registry[phrase]++;
            length++;
        }
    }
    for (var phrase in registry) {
        if (registry[phrase] > 1) {
           var div = document.createElement('div');
           div.innerHTML = '"' + phrase + '" appears ' + registry[phrase] + ' times.';
           document.getElementById('results').appendChild(div);
        }
    }
}
于 2013-05-18T21:49:48.610 に答える