当前位置:网站首页>L'outil de nettoyage des données flashtext améliore directement l'efficacité de plusieurs dizaines de fois

L'outil de nettoyage des données flashtext améliore directement l'efficacité de plusieurs dizaines de fois

2022-06-26 22:10:00 Python camp

En général, le filtrage à petite échelle des données、Le plus souvent utilisé dans le processus de nettoyage est l'expression régulière,Mais à mesure que la taille des données augmente,L'expression régulière semble un peu trop faible.

【Lire l'article complet】

Expression régulière dans un 10k Trouver dans le Thésaurus de 15k L'heure des mots clés est presque 0.165 Secondes.Mais pour Flashtext En ce qui concerne 0.002 Secondes.Donc,,Sur cette question FlashtextEst à peu près plus rapide que l'expression régulière 82 X.

file

D'après la comparaison des performances de l'exemple ci - dessus, Comme nous avons besoin de plus en plus de caractères , La vitesse de traitement des expressions régulières augmente presque linéairement .Et pourtant,Flashtext Presque une constante .

1、Préparez - vous.flashtextEnvironnement

AdoptionpipPour installerflashtext, Ou d'une autre manière , Ici, la station miroir de l'Université Tsinghua est utilisée par défaut .

pip install flashtext -i https://pypi.tuna.tsinghua.edu.cn/simple

Prêt.flashtextAprès l'environnement,Regarde ça.flashtext Processus d'utilisation important , Pour nous aider à mieux nettoyer les données .

2、Ajouter un mot - clé

Les mots - clés sont ajoutés au thésaurus par un seul mot - clé ,Utiliseradd_keyword Fonction pour ajouter . Le premier paramètre indique le mot - clé à ajouter , Le deuxième paramètre est représenté par l'alias du premier mot - clé , Afficher sous forme d'alias si le mot - clé est trouvé , Si le deuxième paramètre n'est pas utilisé comme alias, le nom original est toujours affiché .

from flashtext import KeywordProcessor

#  Initialisation du processeur de thésaurus critique 

processor = KeywordProcessor()

#  Ajouter des mots clés de façon régulière 

processor.add_keyword('Python')

#  Ajouter des mots clés par alias 

processor.add_keyword('Scala', 'Java')

De cette façon, les mots clés requis ont été ajoutés au processeur de thésaurus de deux façons différentes .

3、Extraire les mots clés

Ajouter des mots clés à l'étape précédente , Il y a déjà des informations avec des mots clés dans le thésaurus ,Réutiliserextract_keywords Extraire les mots clés et .

#  Extraire les informations du mot - clé dans une chaîne 

found = processor.extract_keywords('I like Python and Scala.')

# Résultats

print(found)

# ['Python', 'Java']

Les résultats sont arrivés, Comme prévu ,EtScala Aussi montré pour Java.

4、Remplacer les mots clés

Les mots - clés de remplacement sont utilisés pour replace_keywordsFonctions, Pourvu que les mots du thésaurus qui ont un alias puissent être remplacés ,Comme au - dessusScala Est montré comme JavaC'est pareil.

Remplacer dans une chaîne ScalaMots clés,Parce queScala L'alias correspondant est Java, Donc, dans une chaîne Scala Devrait être remplacé par Java.

replaced = processor.replace_keywords('I like Scala.')

# Résultats

print(replaced)

# I like Java.

# Scala  Si c'était le cas Java.

5、 Obtenir tous les mots clés

Parfois,,InKeywordProcessor .Quels mots - clés ont été ajoutés au processeur de thésaurus peuvent ne pas se souvenir clairement ,Disponible en ce momentget_all_keywords Fonction pour obtenir tous les mots clés actuels .

all_keywords = processor.get_all_keywords()

# Résultats

print(all_keywords)

# {'python': 'Python', 'scala': 'Java'}

6、 Ajouter des mots clés en vrac

Quand le thésaurus a besoin de plus de mots clés , Vous pouvez ajouter des lots par liste ou par Dictionnaire .Les fonctions correspondantes sont respectivementadd_keywords_from_list、add_keywords_from_dictFonctions.

#  Initialiser un dictionnaire en le faisant ajouter en vrac 

dict_ = {
    'java': ['java_ee', 'java_se', 'java_me'],
    'python': ['pandas', 'all']
}

#  Ajouter des mots - clés par lots au moyen d'un dictionnaire 

processor.add_keywords_from_dict(dict_)

#  Faire correspondre les mots - clés des mots - clés ajoutés par lots 

result = processor.extract_keywords('looking for java_ee and pandas.')

# Résultats

print(result)

# ['java', 'python']

#  Ajouter des mots clés en vrac par liste 

processor.add_keywords_from_list(['scala', 'python', 'scala', 'go'])

# Adoptionget_all_keywords Regardez tous les mots clés 

all_keywords = processor.get_all_keywords()

# Résultats

print(all_keywords)

# {'python': 'python', 'pandas': 'python', 'scala': 'scala', 'java_ee': 'java', 'java_se': 'java', 'java_me': 'java', 'all': 'python', 'go': 'go'}

Découvrez que tous les mots clés ont été ajoutés au Thésaurus , Et les répétitions ne seront pas ajoutées à nouveau .

7、 Supprimer les mots clés par lots

Il existe également deux façons de supprimer les mots clés d'un processeur de thésaurus par lots ,L'un est une liste、L'autre est un dictionnaire..Les fonctions correspondantes sont respectivementremove_keywords_from_list、remove_keywords_from_dictFonctions.

#  Supprimer par lots les mots clés de la liste 

processor.remove_keywords_from_list(['python','java_ee','java_me'])

#  Supprimer par lots les mots clés du Dictionnaire 

processor.remove_keywords_from_dict({'python': ['pandas','all']})

# Adoptionget_all_keywords Regardez tous les mots clés 

all_keywords = processor.get_all_keywords()

# Résultats

print(all_keywords)

# {'scala': 'scala', 'java_se': 'java', 'go': 'go'}

Il a été constaté que tous les mots clés à supprimer ont été supprimés .

8、Comparaison de l'efficacité de l'exécution

Pour une meilleure présentation ,J'ai trouvé deuxflashtext Les graphiques de comparaison de l'efficacité dans la recherche et le remplacement de mots clés peuvent être vus en un coup d'oeil .

flashtext、 Comparaison de l'efficacité de recherche des expressions régulières

file

flashtext、 Regular expression Search Replacement Comparison

file

【Le passé est merveilleux】

file

UnhelpFonction résoluepython Voir tous les documents pour ...

python Exception personnalisée/raiseException au mot - clé lancé

python Processus de production de lecteurs de musique locaux (Joindre le code source complet)

Outils automatisés:PyAutoGUI Contrôle de la souris et du clavier , Un instrument tranchant pour libérer les mains !

Tu as vu le gâteau d'anniversaire du singe programmé ?

原网站

版权声明
本文为[Python camp]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/177/202206262208571164.html