Encuentra la frecuencia de cada palabra en una string en Python

Escriba un código Python para encontrar la frecuencia de cada palabra en una string dada.

Ejemplos:

Input :  str[] = "Apple Mango Orange Mango Guava Guava Mango" 
Output : frequency of Apple is : 1
         frequency of Mango is : 3
         frequency of Orange is : 1
         frequency of Guava is : 2

Input :  str = "Train Bus Bus Train Taxi Aeroplane Taxi Bus"
Output : frequency of Train is : 2
         frequency of Bus is : 3
         frequency of Taxi is : 2
         frequency of Aeroplane is : 1

Enfoque 1 usando list():
1. Divida la string en una lista que contenga las palabras usando la función de división (es decir, string.split()) en python con espacio delimitador.

Note:
string_name.split(separator) method is used to split the string 
by specified separator(delimiter) into the list.
If delimiter is not provided then white space is a separator. 

For example:
CODE   : str='This is my book'
         str.split()
OUTPUT : ['This', 'is', 'my', 'book']

2. Inicialice una nueva lista vacía.
3. Ahora agregue la palabra a la nueva lista de la string anterior si esa palabra no está presente en la nueva lista.
4. Repita la nueva lista y use la función de conteo (es decir, string.count(newstring[iteration])) para encontrar la frecuencia de palabra en cada iteración.

Note:
string_name.count(substring) is used to find no. of occurrence of 
substring in a given string.

For example:
CODE   : str='Apple Mango Apple'
         str.count('Apple')
         str2='Apple'
         str.count(str2)
OUTPUT : 2
         2

Python3

# Python code to find frequency of each word
def freq(str):
  
    # break the string into list of words 
    str = str.split()         
    str2 = []
  
    # loop till string values present in list str
    for i in str:             
  
        # checking for the duplicacy
        if i not in str2:
  
            # insert value in str2
            str2.append(i) 
              
    for i in range(0, len(str2)):
  
        # count the frequency of each word(present 
        # in str2) in str and print
        print('Frequency of', str2[i], 'is :', str.count(str2[i]))    
  
def main():
    str ='apple mango apple orange orange apple guava mango mango'
    freq(str)                    
  
if __name__=="__main__":
    main()             # call main function

Producción:

Frequency of  apple  is :  3
Frequency of  mango  is :  3
Frequency of  orange  is :  2
Frequency of  guava  is :  1

Enfoque 2 usando set():
1. Divida la string en una lista que contenga las palabras usando la función de división (es decir, string.split()) en python con espacio delimitador.
2. Use el método set() para eliminar un duplicado y dar un conjunto de palabras únicas
3. Repita el conjunto y use la función de conteo (es decir, string.count (nueva string [iteración])) para encontrar la frecuencia de la palabra en cada iteración .

Python3

# Python3 code to find frequency of each word
# function for calculating the frequency
def freq(str):
  
    # break the string into list of words
    str_list = str.split()
  
    # gives set of unique words
    unique_words = set(str_list)
      
    for words in unique_words :
        print('Frequency of ', words , 'is :', str_list.count(words))
  
# driver code
if __name__ == "__main__":
      
    str ='apple mango apple orange orange apple guava mango mango'
      
    # calling the freq function
    freq(str)

Producción:

Frequency of  apple  is :  3
Frequency of  mango  is :  3
Frequency of  orange  is :  2
Frequency of  guava  is :  1


Enfoque 3 (usando el diccionario)

# Find frequency of each word in a string in Python
# using dictionary.
   
def count(elements):
    # check if each word has '.' at its last. If so then ignore '.'
    if elements[-1] == '.':
        elements = elements[0:len(elements) - 1]
   
    # if there exists a key as "elements" then simply
    # increase its value.
    if elements in dictionary:
        dictionary[elements] += 1
   
    # if the dictionary does not have the key as "elements" 
    # then create a key "elements" and assign its value to 1.
    else:
        dictionary.update({elements: 1})
   
   
# driver input to check the program.
   
Sentence = "Apple Mango Orange Mango Guava Guava Mango"
   
# Declare a dictionary
dictionary = {}
   
# split all the word of the string.
lst = Sentence.split()
   
# take each word from lst and pass it to the method count.
for elements in lst:
    count(elements)
   
# print the keys and its corresponding values.
for allKeys in dictionary:
    print ("Frequency of ", allKeys, end = " ")
    print (":", end = " ")
    print (dictionary[allKeys], end = " ")
    print() 
   
# This code is contributed by Ronit Shrivastava.

Publicación traducida automáticamente

Artículo escrito por AashutoshChauhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *