.. index:: Paraula més repetida d'un texte Paraula més repetida d'un texte --------------------------------------- *Valor* més "gran" en un diccionari ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ La funció *par_freq_dicc(dPars)* donat un diccionari *dPars* on les claus són paraules i els valors són enters que representen el número de vegades que han aparegut en un texte, obté i retorna la paraula més repetida i el número de vegades que es repeteix. Si n'hi ha més d'una retorna la paraula *lexicogràficament més petita*. Se suposa que el diccionari no és buit. .. code-block:: python3 >>> d = { 'hola': 3, 'adeu': 4, 'tal': 2, 'ada': 1, 'qual': 4 } >>> par_freq_dicc(d) ('adeu', 4) A continuació hi han dues posibles solucions: - Opció A. Recórrer el diccionari amb un *for clau in dicc*: .. literalinclude:: par_mes_repetida.py :language: python3 :lines: 1, 7-13 - Opció B. Ordenar **TOTA** la llista de parelles *(clave, valor)* per *valor*: .. literalinclude:: par_mes_repetida.py :language: python3 :lines: 16-19,25-34 | Diccionari de freqüència de paraules d'un string ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dissenya una funció *par_freq_string(s)* que donat un string *s*, trobi la paraula més repetida, i retorni quina és i quin és el número de vegades que es repeteix. Si n'hi ha més d'una retorna la paraula més petita. Pots suposar que el string *s* conté com a mínim una paraula. .. code-block:: python3 >>> par_freq_string('Príamo y un viejo heraldo se dirigen hacia el \ campamento aqueo: en el camino encuentran a \ Hermes (enviado por Zeus), que los ayuda a \ pasar inadvertidos hasta la tienda de \ Aquiles. Príamo ruega a Aquiles le entregue \ el cadáver de Héctor y ofrece regalos, que \ Aquiles conmovido acepta. Luego Príamo pide a \ Aquiles un lecho para que lo acoja el sueño, \ y el hijo de Peleo ordena que se dispongan \ dos lechos; uno para Príamo y otro para su \ heraldo. Después, Aquiles da, por petición \ del anciano Príamo, once días para los \ funerales de Héctor, de modo que el duodécimo \ día los troyanos volverían a pelear') ('el', 6) Completa el codi de la funció que tens a continuació: .. literalinclude:: par_mes_repetida.py :language: python3 :lines: 37,57-62,67 | Diccionari de freqüència de paraules d'un fitxer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dissenya una funció *par_freq_fitxer(nomFitxer)* que donat el nom d'un fitxer *nomFitxer*, trobi la paraula més repetida al texte del fitxer, i retorni quina és i quin és el número de vegades que es repeteix. Si n'hi ha més d'una retorna la paraula més petita. Pots suposar que el texte del fitxer *nomFitxer* conté com a mínim una paraula. S'ha de fer servir la funció anterior *par_freq_string*. El fitxer :download:`suzanne.txt` conté la `lletra de la cançó Suzanne `_ de `Leonard Cohen `_, i el fitxer :download:`miranda.txt` el texte del `tema Priscilla `_ de `Miranda Lambert `_. .. code-block:: python3 >>> par_freq_fitxer('suzanne.txt') ('And', 20) >>> par_freq_fitxer('miranda.txt') ('to', 26) A continuació hi ha una posible solució: .. literalinclude:: par_mes_repetida.py :language: python3 :lines: 71,78-83