Maison >développement back-end >Tutoriel Python >Compter la fréquence des mots dans un fichier à l'aide de Python
Ce tutoriel vous montre comment déterminer rapidement le sujet principal d'un document en analysant la fréquence des mots à l'aide de Python. Compter manuellement les occurrences des mots est fastidieux; Cette approche automatisée simplifie le processus.
Nous utiliserons un exemple de fichier texte, test.txt
(téléchargez-le, mais ne regardez pas!), Pour illustrer. L'objectif est de deviner le sujet du tutoriel basé sur la fréquence des mots.
Comprendre les expressions régulières
Ce processus utilise des expressions régulières (regex). S'il n'est pas familier, un regex est une séquence de caractères définissant un modèle de recherche pour la correspondance de chaîne (comme "trouver et remplacer"). Pour une plongée plus profonde, reportez-vous à un tutoriel regex dédié.
Construire le programme
Lisez le fichier: Le programme commence par lire le fichier texte dans une chaîne:
document_text = open('test.txt', 'r') text_string = document_text.read().lower()
Expression régulière: Un regex filtre les mots avec 3 à 15 caractères:
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)
Fréquence des mots: Un dictionnaire suit les fréquences des mots:
frequency = {} for word in match_pattern: count = frequency.get(word, 0) frequency[word] = count + 1
Sortie: Le programme imprime ensuite chaque mot et sa fréquence:
frequency_list = frequency.keys() for word in frequency_list: print(word, frequency[word])
Programme complet
Voici le code python combiné:
import re frequency = {} document_text = open('test.txt', 'r') text_string = document_text.read().lower() match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string) for word in match_pattern: count = frequency.get(word, 0) frequency[word] = count + 1 frequency_list = frequency.keys() for word in frequency_list: print(word, frequency[word])
Exécution Ceci publiera une liste de fréquences de mots. Le mot le plus fréquent indique le sujet du tutoriel original.
Gestion des fichiers texte plus grands
Pour les fichiers plus grands, le tri du dictionnaire de fréquence simplifie la recherche des mots les plus fréquents:
import re frequency = {} document_text = open('dracula.txt', 'r') # Example: dracula.txt text_string = document_text.read().lower() match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string) for word in match_pattern: count = frequency.get(word, 0) frequency[word] = count + 1 most_frequent = dict(sorted(frequency.items(), key=lambda elem: elem[1], reverse=True)) most_frequent_count = most_frequent.keys() for word in most_frequent_count: print(word, most_frequent[word])
Cela publie une liste triée, avec les mots les plus fréquents apparaissant en premier.
excluant les mots communs
pour affiner l'analyse, exclure des mots communs comme "le" "et," etc., en utilisant une liste noire:
import re frequency = {} document_text = open('dracula.txt', 'r') text_string = document_text.read().lower() match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string) blacklisted = ['the', 'and', 'for', 'that', 'which'] for word in match_pattern: if word not in blacklisted: count = frequency.get(word, 0) frequency[word] = count + 1 most_frequent = dict(sorted(frequency.items(), key=lambda elem: elem[1], reverse=True)) most_frequent_count = most_frequent.keys() for word in most_frequent_count: print(word, most_frequent[word])
Cela fournit une analyse plus ciblée.
Ce script Python amélioré offre une méthode robuste pour analyser le texte et identifier des sujets clés basés sur la fréquence des mots. N'oubliez pas d'adapter la liste noire et les critères de longueur de mots pour répondre à vos besoins spécifiques.
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!