Maison  >  Article  >  développement back-end  >  Programme Python pour obtenir le pourcentage de fréquence des mots

Programme Python pour obtenir le pourcentage de fréquence des mots

王林
王林avant
2023-09-08 18:29:021840parcourir

Programme Python pour obtenir le pourcentage de fréquence des mots

Dans cet article, nous apprendrons comment obtenir la fréquence des mots en pourcentage en Python.

Supposons que nous ayons obtenu une liste d'entrées de chaînes. Maintenant, nous trouverons le pourcentage de chaque mot dans la liste donnée de chaînes d’entrée.

Formule

(Occurrence of X word / Total words) * 100

Méthode à utiliser

  • Utilisez les fonctions sum(), Counter(), join() et split()

  • Utilisez les fonctions join(), split() et count()

  • Utilisez la fonction countOf() du module opérateur.

Méthode 1 : utilisez les fonctions sum(), Counter(), join() et split()

join() est une fonction de chaîne en Python qui est utilisée pour joindre des éléments de séquence séparés par des délimiteurs de chaîne pour former une chaîne.

La fonction

Counter() est une sous-classe qui compte le nombre d'objets hachables. Il crée implicitement une table de hachage d'objets itérables lorsqu'il est appelé/invoqué.

Algorithme (étapes)

Voici les algorithmes/étapes pour effectuer la tâche requise :

  • Utilisez le mot-clé import pour importer la fonction Counter depuis le module de collecte.

  • Créez une variable pour stocker la chaîne input list et imprimez la liste.

  • Utilisez la fonction join() pour joindre tous les éléments de chaîne de la liste d'entrée.

  • Divisez la chaîne concaténée en une liste de mots à l'aide de la fonction split() (divisez la chaîne en une liste. Vous pouvez définir le délimiteur ; le délimiteur par défaut est n'importe quel caractère d'espacement) et obtenez les mots en utilisant le Counter( ) Fonctionne les fréquences sous forme de paires clé-valeur

  • Utilisez la fonction values() pour obtenir toutes les valeurs (fréquence/compte) du compteur et utilisez la fonction sum() pour obtenir leur somme (renvoie la somme de tous les éléments de l'itérable).

  • Utilisez la fonction items() pour obtenir le pourcentage de chaque mot dans les mots du compteur ci-dessus (renvoie un objet de vue, c'est-à-dire qu'il contient les paires clé-valeur du dictionnaire, sous forme de tuples dans une liste).

  • Imprimez le pourcentage de chaque mot dans la liste de saisie.

La traduction chinoise de

Exemple

est :

Exemple

Le programme suivant renvoie le pourcentage de chaque mot dans une liste donnée de chaînes d'entrée à l'aide des fonctions sum(), Counter(), join() et split() –

# importing a Counter function from the collections module
from collections import Counter

# input list of strings
inputList = ["hello tutorialspoint", "python codes", "tutorialspoint for python", "see python codes tutorialspoint"]
print("Input list:\n", inputList)

# Joining all the string elements of the list using the join() function
join_string = " ".join(i for i in inputList)

# splitting the joined string into a list of words and getting the

# frequency of words as key-value pairs using Counter() function

counter_words = Counter(join_string.split())
# getting all the values(frequencies/counts) from counter and

# finding the total sum of them
total_sum = sum(counter_words.values())

# getting the percentage of each word from the above counter words
res_percentage = {key: value / total_sum for key,
value in counter_words.items()}

# printing the percentage of each word from the input list
print("Percentage of each word from the input list:\n", res_percentage)

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

Input list:
['hello tutorialspoint', 'python codes', 'tutorialspoint for python', 'see python codes tutorialspoint']
Percentage of each word from the input list:
{'hello': 0.09090909090909091, 'tutorialspoint': 0.2727272727272727, 'python': 0.2727272727272727, 'codes': 0.18181818181818182, 'for': 0.09090909090909091, 'see': 0.09090909090909091}

Méthode 2 : utilisez les fonctions join(), split() et count()

Algorithme (étapes)

Voici les algorithmes/étapes pour effectuer la tâche requise :

  • Créez un dictionnaire vide pour stocker le pourcentage de résultat/la fréquence des termes.

  • Utilisez for loop pour parcourir la liste de mots.

  • Utilisez l'instruction conditionnelle if pour vérifier si l'élément actuel n'est pas dans la clé du dictionnaire, utilisez la fonction keys().

  • Si la condition ci-dessus est vraie, utilisez la fonction count() pour obtenir le nombre de clés (mot).

  • Divisez-le par le nombre de mots pour obtenir la fréquence actuelle des mots et stockez-le comme clé dans le nouveau dictionnaire créé ci-dessus.

  • Imprimez le pourcentage de chaque mot dans la liste de saisie.

La traduction chinoise de

Exemple

est :

Exemple

Le programme suivant renvoie le pourcentage de chaque mot dans une liste donnée de chaînes d'entrée à l'aide des fonctions join(), split() et count() –

# input list of strings
inputList = ["hello tutorialspoint", "python codes", "tutorialspoint for python", "see python codes tutorialspoint"]

# joining all the elements of the list using join()
join_string = " ".join(i for i in inputList)

# splitting the joined string into a list of words
listOfWords = join_string.split()

# Creating an empty dictionary for storing the resultant percentages
resDict = dict()

# traversing through the list of words
for item in listOfWords:
   
   # checking whether the current element is not in the keys of a dictionary
   if item not in resDict.keys():
      
      # getting the percentage of a current word if the condition is true
      resDict[item] = listOfWords.count(item)/len(listOfWords)

# printing the percentage of each word from the input list
print("Percentage of each word from the input list:\n", resDict)

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

Percentage of each word from the input list:
{'hello': 0.09090909090909091, 'tutorialspoint': 0.2727272727272727, 'python': 0.2727272727272727, 'codes': 0.18181818181818182, 'for': 0.09090909090909091, 'see': 0.09090909090909091}

Méthode 3 : Utiliser la fonction countOf() du module opérateur

La traduction chinoise de

Exemple

est :

Exemple

Le programme suivant utilise la fonction countOf() pour renvoyer le pourcentage de chaque mot dans une liste donnée de chaînes d'entrée -

import operator as op
# input list of strings
inputList = ["hello tutorialspoint", "python codes", "tutorialspoint for python", "see python codes tutorialspoint"]

# joining all the elements of list using join()
join_string = " ".join(i for i in inputList)

# splitting the joined string into list of words
listOfWords = join_string.split()
resDict = dict()
for item in listOfWords:
   
   # checking whether the current element is not in the keys of dictionary
   if item not in resDict.keys():
      resDict[item] = op.countOf(listOfWords,   item)/len(listOfWords)
print("Percentage of each word from the input list:\n", resDict)

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

Percentage of each word from the input list:
{'hello': 0.09090909090909091, 'tutorialspoint': 0.2727272727272727, 'python': 0.2727272727272727, 'codes': 0.18181818181818182, 'for': 0.09090909090909091, 'see': 0.09090909090909091}

Conclusion

Dans cet article, nous avons appris trois méthodes Python différentes pour calculer le pourcentage de fréquence des mots. Nous avons également appris à utiliser la nouvelle fonction countOf() du module opérateur pour obtenir la fréquence d'un élément de liste.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer