python --- Top k palabras de alta frecuencia

Top k palabras de alta frecuencia

Para una lista de palabras que no esté vacía, devuelva las primeras _k_ palabras que aparecen con mayor frecuencia.
Las respuestas devueltas deben ordenarse por frecuencia de palabras de mayor a menor. Si diferentes palabras tienen la misma frecuencia, se ordenan alfabéticamente.

import numpy as np
def result_1(str_list,k):
    str_list_set=np.sort(list(set(str_list)))
    str_list_set_number=[0 for i in range(len(str_list_set))]
    str_dict=dict(zip(str_list_set,str_list_set_number))
    for str1 in str_list:
        if str1 in str_list_set:
            str_dict[str1]+=1
    keys=[]
    values=[]
    for key,value in str_dict.items():
        keys.append(key)
        values.append(value)
    values_idx=np.argsort(values)
    keys=np.array(keys)
    values=np.array(values)
    return keys[values_idx[-k:]],values[values_idx[-k:]]

if __name__ == '__main__':
    str_list=['i','love','leetcode','i','love','coding']
    k=2
    str1,idx_list=result_1(str_list,k)
    print(str1,idx_list)

Supongo que te gusta

Origin blog.csdn.net/qestion_yz_10086/article/details/107952092
Recomendado
Clasificación