Maison > Article > développement back-end > 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.
(Occurrence of X word / Total words) * 100
Utilisez les fonctions sum(), Counter(), join() et split()
Utilisez les fonctions join(), split() et count()
Utilisez la fonction countOf() du module opérateur.
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 fonctionCounter() 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é.
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.
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)
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}
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.
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)
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}
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)
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}
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!