Conta occorenze in Hash

procedura coppie_frequenti() che stampi l’elenco delle coppie di
parole [p1 p2] tali che nell’array la parola p1 sia immediatamente
seguita da p2 almeno 10 volte. L’output dovrebbe essere quindi qualcosa
del tipo:

[diritto di]: 13 volte
[la legge]: 21 volte
[può essere]: 12 volte

Come si fa a contate le occorrenze nell’hash usando come chiave una
coppia di parole (= un array di due elementi contenente le 2 parole).

def coppie_frequenti()
h = Hash.new(0)
File.read(“cost54.txt”).downcase!.each do |i| #ciclo che conta le
h[i]+= 1 #occorrenze in un file di testo. come si trasforma
in
end #ciclo che conta copie di parole

Come posso stampare il risultato del Hash in questo modo:
10 volte: diritti casi loro norme
11 volte: tutela limiti lavoro
12 volte: cittadini
13 volte: delle alle
14 volte: ogni tutti
16 volte: hanno sono legge.
19 volte: essere
20 volte: dalla
22 volte: repubblica alla
27 volte: diritto
28 volte: legge
34 volte: della
54 volte: art

avvendo mi stampato questo:
10 volte: norme
10 volte: loro
10 volte: diritti
10 volte: casi
11 volte: lavoro
11 volte: tutela
11 volte: limiti
12 volte: cittadini
13 volte: alle
13 volte: delle
14 volte: ogni
14 volte: tutti
16 volte: hanno
16 volte: sono
16 volte: legge.
19 volte: essere
20 volte: dalla
22 volte: alla
22 volte: repubblica
27 volte: diritto
28 volte: legge
34 volte: della
54 volte: art.

il cosice:
def parole_frequenti2()
h = Hash.new(0)
File.read(“cost54.txt”).downcase!.split(" ").each do |i| #ciclo che
conta le occorrenze in un file di testo
h[i] += 1
end

h.delete_if { |key,val| key.size <= 3 or val < 10}
h.sort { |key,val| key[1] <=> val[1] }.each {|key, val| puts “#{val}
volte: #{key}” }
array1=h.to_a

n=10
while n <= 54
#cosa dovrei metere dentro il ciclo per ottenere il risultato???
n+=1
end
end

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs