Vérifiez si les caractères sont similaires en Python

Comme le dit le titre J'ai essayé d'en faire une mesure anti-spam Une fonction qui renvoie True si elle chevauche le nombre spécifié de caractères Le code source des spaghettis me pardonne Vous ne pourrez peut-être pas l'utiliser autant w Après la mise sous tension, modifiez pour en créer un nouveau

code

Sortez caractère par caractère et ajoutez-le à celui pour le comparer et vérifier s'il existe

Celui que j'ai fait en premier

def similer(b,a,m):
    al = list(a)
    cc = ""
    cu = 0
    co = 0
    cuo = 0
    for c in al:
        co += 1
        for ck in al:
            cuo += 1
            if cuo-1 < co-1:
                continue
            cc = cc + ck
            cu += 1
            if cu == m:
                break
        if cu == m:
            if cc in b:
                return True
        cc = ""
        cuo = 0
        cu = 0
    return False
#Code source de spaghetti w
#Peut-être que cela peut être rendu plus compact, mais pardonnez-moi s'il vous plaît
#C'était un problème

Celui fait par une autre personne dans la section commentaire (note supplémentaire)

Celui-ci est extrêmement facile à comprendre et compact J'ai appris quelque chose Merci

def similer(b,a,m):
    return any(a[i:i+m] in b for i in range(len(a) - m))
#Prenez-le avec une tranche et confirmez-le et revenez avec n'importe quel
#Ce sera une excellente étude

Exemple d'utilisation

similaire (caractère à vérifier, caractère à vérifier, longueur des mots à vérifier s'il est usé) Peut être utilisé dans.

Spam

Un message de spam qui envoie un message avec des caractères aléatoires qui était une certaine discussion. «True» est de retour.

b = """Bonjour. C'est Flage Chat
嘮"""
a = """Bonjour. C'est Flage Chat
蕻"""

print(similer(b,a,5))
# True

Message ordinaire

False est de retour car ce n'est pas du spam.

b = """i-FILTRE faux positif w"""
a = """A été mis il y a longtemps"""

print(similer(b,a,5))
# False

Regardez si vous essayez d'utiliser

Remarque! Lorsque vous l'utilisez dans une application de chat, vérifiez-la plusieurs fois ou à plusieurs reprises. Si vous l'envoyez avec le nom d'une personne, il sera considéré à tort comme du spam. Parfois, les phrases courtes ne peuvent pas être détectées. Répétons-le en augmentant le dernier argument de la fonction dans l'ordre.

Exemple de faux positif

Si vous comparez quelque chose comme ça, ce sera Vrai sous le nom d'une personne nommée tasuren.

b = """Est-ce que Tasuren l'a fait?"""
a = """Parce que Tassuren a fait hugahuga"""

print(similer(b,a,5))
# True

Donc Lorsque «True» est renvoyé comme spam cinq fois de suite lors de l'envoi d'un message cinq fois C'est un spam! Il vaut mieux donner l'impression de vous le faire savoir.

la fin

C'est la fin!

Recommended Posts

Vérifiez si les caractères sont similaires en Python
Vérifiez si l'URL existe en Python
[python] Comment vérifier si la clé existe dans le dictionnaire
Vérifiez le comportement du destroyer en Python
python Remarque: déterminez si l'argument de ligne de commande est dans la liste
Vérifiez si le hachage de mot de passe généré par PHP correspond en Python
Comment vérifier si le contenu du dictionnaire est le même en Python par valeur de hachage
Déterminer s'il y a des oiseaux dans l'image
Vérifiez si la colonne attendue existe dans Pandas DataFrame
Vérifiez s'il s'agit d'Unix dans le langage de script
Décale la chaîne de l'alphabet de N caractères en Python
Vérifiez s'il s'agit d'Unix dans le langage de script
Utilisation de l'application LibreOffice en Python (1) Où sont les macros?
Vérifiez la nature atrophique de la distribution de probabilité en Python
Trouver des erreurs en Python
[Python] Vérifiez les bibliothèques installées
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Assurez-vous que tous les éléments de la liste sont les mêmes en Python
Vérifiez le fonctionnement de Python pour .NET dans chaque environnement
Maîtrisez le type avec Python? (Quand faire la vérification de type)
Rechercher les fuites de mémoire dans Python
[Python] Vérifiez le répertoire actuel, déplacez le répertoire
Obtenir l'API arXiv en Python
Rechercher des commandes externes avec python
Vérifiez le comportement lors de l'attribution de Python
Python dans le navigateur: la recommandation de Brython
Enregistrez le fichier binaire en Python
Frappez l'API Sesami en Python
Obtenez le chemin du bureau en Python
Obtenez le chemin du script en Python
Dans la commande python, python pointe vers python3.8
Implémenter le modèle Singleton en Python
Afficher des caractères comme AA en python
Vérifiez et déplacez le répertoire en Python
Accédez à l'API Web en Python
Vérifiez le résumé des données dans CASTable
J'ai écrit la file d'attente en Python
Calculer le mois précédent en Python
Examiner la classe d'un objet avec python
Obtenez le chemin du bureau en Python
Obtenez le nom d'hôte en Python
Accéder à l'API Twitter avec Python
La première étape de Python Matplotlib
J'ai écrit la pile en Python
Maîtriser le module lowref en Python
Comptez bien le nombre de caractères thaïlandais et arabes en Python
Vérifiez si le fichier de paramètres est lu de manière simple à comprendre
Comment vérifier la taille de la mémoire d'une variable en Python
python: utilisez les variables définies dans le format de chaîne telles quelles
Supprimer un caractère spécifique en Python s'il s'agit du dernier
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Déterminer si tous les éléments de la liste sont présents dans la clé dict
Vérifiez si vous pouvez vous connecter à un port TCP en Python
Vérification de la théorie selon laquelle "Python et Swift sont assez similaires"
Assurez-vous que python peut convertir / convertir une chaîne de caractères en int
[Golang] Vérifiez si une chaîne de caractères spécifique est incluse dans la chaîne de caractères
Si vous pensez que la personne que vous mettez avec pip ne fonctionne pas → Utilisez-vous python3 par hasard?
Apprenez le modèle de conception "Prototype" avec Python
Remplissez la chaîne avec des zéros en python et comptez certains caractères de la chaîne
Apprenez le modèle de conception "Builder" avec Python