Programa de Python para la palabra más frecuente en la lista de strings

Dada la lista de strings, escriba un programa de Python para obtener la palabra con la mayor cantidad de ocurrencias.

Ejemplo:

Entrada : test_list = [“gfg es mejor para geeks”, “geeks love gfg”, “gfg is best”] 
Salida : gfg 
Explicación : gfg ocurre 3 veces, la mayoría en strings en total.

Entrada : test_list = [“geeks love gfg”, “geeks are best”] 
Salida : geeks 
Explicación : geeks ocurre 2 veces, la mayoría en strings en total. 

Método #1: Usando loop + max() + split() + defaultdict()

En esto, realizamos la tarea de obtener cada palabra usando split() , y aumentamos su frecuencia al memorizarla usando defaultdict() . Por último, max() , se usa con el parámetro para obtener el recuento de la string de frecuencia máxima.

Python3

# Python3 code to demonstrate working of
# Most frequent word in Strings List
# Using loop + max() + split() + defaultdict()
from collections import defaultdict
 
# initializing Matrix
test_list = ["gfg is best for geeks", "geeks love gfg", "gfg is best"]
 
# printing original list
print("The original list is : " + str(test_list))
 
temp = defaultdict(int)
 
# memoizing count
for sub in test_list:
    for wrd in sub.split():
        temp[wrd] += 1
 
# getting max frequency
res = max(temp, key=temp.get)
 
# printing result
print("Word with maximum frequency : " + str(res))

Producción:

The original list is : ['gfg is best for geeks', 'geeks love gfg', 'gfg is best']
Word with maximum frequency : gfg

Método n.º 2: Usar comprensión de listas + modo()

En esto, obtenemos todas las palabras usando la comprensión de listas y obtenemos la frecuencia máxima usando mode() .

Python3

# Python3 code to demonstrate working of
# Most frequent word in Strings List
# Using list comprehension + mode()
from statistics import mode
 
# initializing Matrix
test_list = ["gfg is best for geeks", "geeks love gfg", "gfg is best"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# getting all words
temp = [wrd for sub in test_list for wrd in sub.split()]
 
# getting frequency
res = mode(temp)
 
# printing result
print("Word with maximum frequency : " + str(res))

Producción:

The original list is : ['gfg is best for geeks', 'geeks love gfg', 'gfg is best']
Word with maximum frequency : gfg

Método #3: Usando list() y Counter()

  • Agregue todas las palabras a la lista vacía y calcule la frecuencia de todas las palabras usando la función Contador() .
  • Encuentre el conteo máximo e imprima esa clave.

A continuación se muestra la implementación:

Python3

# Python3 code to demonstrate working of
# Most frequent word in Strings List
 
from collections import Counter
 
# function which returns
# most frequent word
def mostFrequentWord(words):
   
    # Taking empty list
    lis = []
    for i in words:
       
        # Getting all words
        for j in i.split():
            lis.append(j)
             
    # Calculating frequency of all words
    freq = Counter(lis)
     
    # find max count and print that key
    max = 0
    for i in freq:
        if(freq[i] > max):
            max = freq[i]
            word = i
            return word
 
 
# Driver code
# initializing strings list
words = ["gfg is best for geeks", "geeks love gfg", "gfg is best"]
 
# printing original list
print("The original list is : " + str(words))
 
# passing this words to mostFrequencyWord function
# printing result
print("Word with maximum frequency : " + mostFrequentWord(words))
# This code is contributed by vikkycirus

Producción:

The original list is : ['gfg is best for geeks', 'geeks love gfg', 'gfg is best']
Word with maximum frequency : gfg

La complejidad de tiempo y espacio para todos los métodos es la misma:

Complejidad temporal: O(n 2 )

Complejidad espacial: O(n)

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *