ホームページ >バックエンド開発 >PHPチュートリアル >PHPリアルタイムチャットシステムのキーワードフィルタリング機能とコンテンツレビュー機能

PHPリアルタイムチャットシステムのキーワードフィルタリング機能とコンテンツレビュー機能

PHPz
PHPzオリジナル
2023-08-25 16:10:51766ブラウズ

PHPリアルタイムチャットシステムのキーワードフィルタリング機能とコンテンツレビュー機能

PHP ライブ チャット システムのキーワード フィルタリングとコンテンツ モデレーション機能

現代のソーシャル ネットワークやリアルタイム チャット アプリケーションでは、キーワード フィルタリングとコンテンツ モデレーション機能がますます重要になっています。より重要。これらの機能は、不適切なコンテンツや悪意のあるメッセージからユーザーを保護するのに役立ちます。この記事では、PHP 言語を使用して簡単なリアルタイム チャット システムを実装し、キーワード フィルタリングやコンテンツ レビュー機能を追加する方法を紹介します。

  1. チャット システム データベースの作成

まず、チャット メッセージを保存するための MySQL データベースを作成する必要があります。次のコードを使用して、「chat_system」という名前のデータベースを作成し、データベース内に「messages」という名前のテーブルを作成できます。

<?php

$conn = new mysqli("localhost", "root", "password");

$conn->query("CREATE DATABASE IF NOT EXISTS chat_system");

$conn->select_db("chat_system");

$conn->query("CREATE TABLE IF NOT EXISTS messages (
    id INT AUTO_INCREMENT PRIMARY KEY,
    message TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)");

$conn->close();

?>
  1. チャット インターフェイスの作成

次に、ユーザーがメッセージを送受信できるようにする単純な HTML チャット インターフェイスを作成します。次のコードを基本テンプレートとして使用できます。

<!DOCTYPE html>
<html>
<head>
    <title>实时聊天系统</title>
</head>
<body>
    <div id="chat-container">
        <div id="chat-messages"></div>
        <input type="text" id="message-input" placeholder="输入你的消息">
        <button id="send-button">发送</button>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script src="chat.js"></script>
</body>
</html>
  1. リアルタイム チャット機能の実装

Vue.js と Axios ライブラリを使用して、リアルタイム チャット機能を実装できます。 「chat.js」というファイルを作成し、次のコードを追加します。このコードは、WebSocket を使用してサーバーとリアルタイムで通信し、受信したメッセージをチャット インターフェイスに表示します。

var app = new Vue({
    el: '#chat-container',
    data: {
        messages: []
    },
    mounted: function() {
        var self = this;
        var socket = new WebSocket('ws://localhost:8080');

        socket.onmessage = function(event) {
            var message = JSON.parse(event.data);
            self.messages.push(message);
        };

        this.$nextTick(function() {
            var input = document.getElementById('message-input');
            var button = document.getElementById('send-button');

            button.onclick = function() {
                var text = input.value;
                if (text !== '') {
                    socket.send(JSON.stringify({ message: text }));
                    input.value = '';
                }
            };

            input.onkeypress = function(event) {
                if (event.keyCode === 13) {
                    button.click();
                }
            };
        });
    }
});
  1. キーワード フィルタリングとコンテンツ監査機能の追加

ユーザーから送信されたメッセージを受信した後、メッセージに不正なキーワードが含まれているかどうかを確認する必要があります。正規表現を使用してメッセージ テキストを照合し、不適切なキーワードをアスタリスク「*」に置き換えることができます。これはサーバー側で行うことができます。

chat.js ファイルを更新し、次のコードを追加します。

socket.onmessage = function(event) {
    var message = JSON.parse(event.data);
    message.text = self.filterKeywords(message.text);
    self.messages.push(message);
};

filterKeywords: function(text) {
    var keywords = ['关键字1', '关键字2', '关键字3'];
    for (var i = 0; i < keywords.length; i++) {
        var regex = new RegExp(keywords[i], 'gi');
        text = text.replace(regex, '*'.repeat(keywords[i].length));
    }
    return text;
}

このコードは、メッセージの受信後に filterKeywords 関数を呼び出し、メッセージ テキストにキーワードが含まれているかどうかを確認し、それらを置き換えます。アスタリスク「*」の数。キーワード リストは、実際のニーズに応じて拡張できます。

  1. コンテンツ レビュー機能

キーワード フィルタリングに加えて、サードパーティのコンテンツ レビュー API を使用して、より効果的なコンテンツ レビューを実現することもできます。これらの API は、テキスト分析と機械学習アルゴリズムを通じて、虐待、ポルノ、暴力などのさまざまな不適切なコンテンツを検出できます。

ここでは、「Tencent Cloud Content Audit API」を例として、API インターフェースに HTTP リクエストを送信して監査結果を取得します。まず、APIのApp IDとApp Keyを登録して取得する必要があります。

chat.js ファイルを更新し、次のコードを追加します:

filterKeywords: function(text) {
    // 关键字过滤逻辑...

    // 内容审核
    var self = this;
    var appID = 'YOUR_APP_ID';
    var appKey = 'YOUR_APP_KEY';
    var apiUrl = 'https://api.youtu.qq.com/youtu/textapi/textporn';

    axios.post(apiUrl, {
        app_id: appID,
        app_key: appKey,
        text: text
    })
    .then(function(response) {
        if (response.data && response.data.porn_score > 0.6) {
            alert('内容含有不良信息,已被屏蔽');
        }
    })
    .catch(function(error) {
        console.log(error);
    });

    return text;
}

このコードは、キーワード フィルタリングを確認した後、axios ライブラリを使用して Tencent Cloud コンテンツ レビュー API に POST リクエストを送信します。メッセージを送信します。テキストはパラメータとして API に渡されます。 API によって返された監査スコアがしきい値 (ここでは 0.6 に設定) を超える場合、コンテンツには不正な情報が含まれているとみなされ、警告ボックスがポップアップ表示され、ユーザーにプロンプ​​トが表示されます。

上記は、PHP 言語を使用してリアルタイム チャット システムを実装し、キーワード フィルタリングとコンテンツ レビュー機能を追加する方法の例です。この例は単なるデモンストレーションであり、実際のアプリケーションでは、不適切なコンテンツからユーザーを保護するために、より複雑で完全なロジックが必要になる場合があります。

以上がPHPリアルタイムチャットシステムのキーワードフィルタリング機能とコンテンツレビュー機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。