es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo encontrar una lista de palabras en un corpus utilizando NLTK? No puedo encontrar la frecuencia de las palabras.

He descargado un corpus y tokenizado las palabras. Tengo una lista de los personajes principales y quiero saber cuántas veces aparece cada nombre en el corpus. He intentado usar una función de frecuencia con un diccionario, pero no sé cómo obtener el recuento de nombres.

targeturl0 = ‘http://www.gutenberg.org/files/135/135-0.txt’
book
raw = urlopen(targeturl0).read().decode(‘utf-8’)
word
tokens = wordtokenize(bookraw)

character_list = [‘Myriel’,’Bishop’,’Baptistine’,’Magloire’,’Cravatte’,’Valjean’,’Gervais’,’Fantine’,’Tholomyès’
,’Blachevelle’,’Dahlia’,’Fameuil’,’Favourite’,’Listolier’,’Zéphine’,’Cosette’,’Thénardier’,
‘Éponine’,’Azelma’,’Javert’,’Fauchelevent’,’Bamatabois’,’Champmathieu’,
‘Brevet’,’Simplice’,’Chenildieu’,’Cochepaille’,’Innocente’,’Reverend’,’Ascension’,’Crucifixion’,
‘Gavroche’,’Magnon’,
‘Gillenormand’,’Marius’,’Colonel’,’Mabeuf’,’Enjolras’,’Combeferre’,’Prouvaire’,
‘Feuilly’,’Courfeyrac’,’Bahorel’,’Lesgle’,’Joly’,’Grantaire’,’Patron-Minette’,’Brujon’,
‘Toussaint’]

fdistmis = FreqDist(wordtokens)

filteredwordfreq = dict((characterlist, freq) for characterlist, freq in fdist_mis.items())

Cuando exploro filteredwordfreq, solo devuelve todos los tokens de palabras en lugar de un diccionario de personajes únicos y sus ocurrencias. ¿Alguna ayuda? Muchas gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener un diccionario de los caracteres únicos y sus ocurrencias, es necesario iterar a través de la variable character_list y obtener la frecuencia de cada carácter utilizando el objeto fdist_mis.

    Así es como puede modificar su código para lograr esto:

    fdist_mis = FreqDist(word_tokens)
    
    filtered_word_freq = {}
    for character in character_list:
        if character in fdist_mis:
            filtered_word_freq[character] = fdist_mis[character]
    
    print(filtered_word_freq)
    

    Este código creará un diccionario vacío filtered_word_freq, iterará a través de la variable character_list y comprobará si cada carácter existe en el objeto fdist_mis. Si existe, agregará el carácter y su frecuencia al diccionario filtered_word_freq. Finalmente, imprimirá el diccionario que contiene los caracteres únicos y sus ocurrencias.

Comments are closed.