Maison >développement back-end >tutoriel php >Fonctions de filtrage de mots clés et de révision de contenu dans le système de chat en temps réel PHP

Fonctions de filtrage de mots clés et de révision de contenu dans le système de chat en temps réel PHP

PHPz
PHPzoriginal
2023-08-25 16:10:51764parcourir

Fonctions de filtrage de mots clés et de révision de contenu dans le système de chat en temps réel PHP

Fonctionnalités de filtrage de mots clés et de modération de contenu dans le système de chat en direct PHP

Dans les réseaux sociaux modernes et les applications de chat en direct, les fonctionnalités de filtrage de mots clés et de modération de contenu deviennent de plus en plus importantes. Ces fonctionnalités peuvent aider à protéger les utilisateurs contre les contenus inappropriés et les messages malveillants. Cet article expliquera comment utiliser le langage PHP pour implémenter un système de discussion simple en temps réel et ajouter des fonctions de filtrage de mots clés et de révision de contenu.

  1. Créer une base de données du système de discussion

Tout d'abord, nous devons créer une base de données MySQL pour enregistrer les messages de discussion. Vous pouvez utiliser le code suivant pour créer une base de données nommée « chat_system » et créer une table nommée « messages » dans la base de données.

<?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. Création d'une interface de chat

Ensuite, nous créons une interface de chat HTML simple qui permet aux utilisateurs d'envoyer et de recevoir des messages. Vous pouvez utiliser le code suivant comme modèle de base.

<!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. Implémenter la fonction de chat en temps réel

En utilisant Vue.js et la bibliothèque Axios, nous pouvons implémenter une fonction de chat en temps réel. Créez un fichier appelé "chat.js" et ajoutez le code suivant. Ce code utilisera WebSocket pour communiquer avec le serveur en temps réel et afficher les messages reçus sur l'interface de chat.

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. Ajouter des fonctions de filtrage de mots clés et de modération de contenu

Après avoir reçu le message envoyé par l'utilisateur, nous devons vérifier si le message contient de mauvais mots clés. Vous pouvez utiliser des expressions régulières pour faire correspondre le texte du message et remplacer les mauvais mots-clés par des astérisques « * ». Cela peut être fait côté serveur.

Mettez à jour le fichier chat.js et ajoutez le code suivant :

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;
}

Ce code appellera la fonction filterKeywords après réception du message pour vérifier si le texte du message contient des mots-clés et les remplacera par le même nombre d'astérisques "*". La liste de mots clés peut être élargie en fonction des besoins réels.

  1. Fonction de révision de contenu

En plus du filtrage par mots clés, nous pouvons également utiliser des API de révision de contenu tierces pour obtenir une révision de contenu plus efficace. Ces API peuvent détecter divers contenus inappropriés tels que les abus, la pornographie, la violence, etc. grâce à l'analyse de texte et aux algorithmes d'apprentissage automatique.

Ici, nous prenons comme exemple « Tencent Cloud Content Audit API » pour obtenir les résultats de l'audit en envoyant des requêtes HTTP à l'interface API. Tout d’abord, vous devez vous inscrire et obtenir l’ID d’application et la clé d’application de l’API.

Mettez à jour le fichier chat.js et ajoutez le code suivant :

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;
}

Ce code utilisera la bibliothèque axios pour envoyer une requête POST à ​​l'API Tencent Cloud Content Review après avoir vérifié le filtrage des mots clés, et passera le texte du message en paramètre à l'API. Si le score d'audit renvoyé par l'API dépasse le seuil (ici fixé à 0,6), le contenu est considéré comme contenant de mauvaises informations et une boîte d'avertissement apparaîtra pour avertir l'utilisateur.

Ce qui précède est un exemple d'utilisation du langage PHP pour implémenter un système de chat en temps réel et ajouter des fonctions de filtrage de mots clés et de révision de contenu. Cet exemple n'est qu'une simple démonstration, et les applications réelles peuvent nécessiter une logique plus complexe et plus complète pour protéger les utilisateurs contre le contenu inapproprié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn