ホームページ >バックエンド開発 >PHPチュートリアル >PHPリアルタイムチャットシステムのキーワードフィルタリング機能とコンテンツレビュー機能
PHP ライブ チャット システムのキーワード フィルタリングとコンテンツ モデレーション機能
現代のソーシャル ネットワークやリアルタイム チャット アプリケーションでは、キーワード フィルタリングとコンテンツ モデレーション機能がますます重要になっています。より重要。これらの機能は、不適切なコンテンツや悪意のあるメッセージからユーザーを保護するのに役立ちます。この記事では、PHP 言語を使用して簡単なリアルタイム チャット システムを実装し、キーワード フィルタリングやコンテンツ レビュー機能を追加する方法を紹介します。
まず、チャット メッセージを保存するための 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(); ?>
次に、ユーザーがメッセージを送受信できるようにする単純な 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>
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(); } }; }); } });
ユーザーから送信されたメッセージを受信した後、メッセージに不正なキーワードが含まれているかどうかを確認する必要があります。正規表現を使用してメッセージ テキストを照合し、不適切なキーワードをアスタリスク「*」に置き換えることができます。これはサーバー側で行うことができます。
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 関数を呼び出し、メッセージ テキストにキーワードが含まれているかどうかを確認し、それらを置き換えます。アスタリスク「*」の数。キーワード リストは、実際のニーズに応じて拡張できます。
キーワード フィルタリングに加えて、サードパーティのコンテンツ レビュー 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 サイトの他の関連記事を参照してください。