Maison >développement back-end >Tutoriel Python >Compter la fréquence des mots dans un fichier à l'aide de Python

Compter la fréquence des mots dans un fichier à l'aide de Python

Jennifer Aniston
Jennifer Anistonoriginal
2025-03-06 11:59:11670parcourir

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

  1. 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()
  2. 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)
  3. 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
  4. 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.

Counting Word Frequency in a File Using Python

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.

Counting Word Frequency in a File Using Python

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.

Counting Word Frequency in a File Using Python

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!

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
Article précédent:Gestion des erreurs et journalisation en pythonArticle suivant:Aucun