D
Daniel Jovanovski
1)
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=C3=B2 essere]: 12 volte
Come si fa a contate le occorrenze nell'hash usando come chiave una
coppia di parole (=3D un array di due elementi contenente le 2 parole).
def coppie_frequenti()
h =3D Hash.new(0)
File.read("cost54.txt").downcase!.each do |i| #ciclo che conta le
h+=3D 1 #occorrenze in un file di testo. come si trasforma
in
end #ciclo che conta copie di parole
2)
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 =3D Hash.new(0)
File.read("cost54.txt").downcase!.split(" ").each do |i| #ciclo che
conta le occorrenze in un file di testo
h +=3D 1
end
h.delete_if { |key,val| key.size <=3D 3 or val < 10}
h.sort { |key,val| key[1] <=3D> val[1] }.each {|key, val| puts "#{val}=
volte: #{key}" }
array1=3Dh.to_a
n=3D10
while n <=3D 54
#cosa dovrei metere dentro il ciclo per ottenere il risultato???
n+=3D1
end
end
-- =
Posted via http://www.ruby-forum.com/.=
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=C3=B2 essere]: 12 volte
Come si fa a contate le occorrenze nell'hash usando come chiave una
coppia di parole (=3D un array di due elementi contenente le 2 parole).
def coppie_frequenti()
h =3D Hash.new(0)
File.read("cost54.txt").downcase!.each do |i| #ciclo che conta le
h+=3D 1 #occorrenze in un file di testo. come si trasforma
in
end #ciclo che conta copie di parole
2)
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 =3D Hash.new(0)
File.read("cost54.txt").downcase!.split(" ").each do |i| #ciclo che
conta le occorrenze in un file di testo
h +=3D 1
end
h.delete_if { |key,val| key.size <=3D 3 or val < 10}
h.sort { |key,val| key[1] <=3D> val[1] }.each {|key, val| puts "#{val}=
volte: #{key}" }
array1=3Dh.to_a
n=3D10
while n <=3D 54
#cosa dovrei metere dentro il ciclo per ottenere il risultato???
n+=3D1
end
end
-- =
Posted via http://www.ruby-forum.com/.=