0

リアルタイム チャット クライアントからメッセージを取得する方法を設定しました。これらのメッセージ (大量のテキスト) を取得し、これらのメッセージのいずれかにキー フレーズが含まれているかどうかを確認したいと考えています。それらにキー フレーズが含まれている場合は、count 変数に 1 を追加するだけです。

現在、私はこのようにしています(「良い」、「はい」、「いい」がキーワードです)

for (var i = 0; i < data.msgs.length; i++)
{
    str = data.msgs[i].msg.toLowerCase();
    if (str.search("good") != -1 || str.search("yes") != -1 || str.search("nice") != -1)
    {
         count = count + 1;
    }
}

この方法は機能しますが、あまりきれいではありません。約 100 の異なるキー フレーズを追加する予定ですが、これがばかげていることは容易にわかります。また、新しいキー フレーズを追加するのは面倒で面倒です。

一致を検索できるキー フレーズのある種のデータベースを作成するより良い方法があるかどうか疑問に思っています。フレーズの追加と削除が簡単にできるものが望ましいです。

ありがとう。

4

1 に答える 1

0
var keys = ['good', 'yes', 'nice'];
for (var i = 0; i < data.msgs.length; i++)
{
    str = data.msgs[i].msg.toLowerCase();
    for(var j=0; j < keys.length; j++){
         if(str.indexOf(keys[j]) !== -1){
            count++;
            //could also return here if you want to break the function after a find
          }
    }
}

JSON ファイルから「キー」をロードして解析することもできます。

于 2015-06-03T04:21:13.210 に答える