#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Tue Oct 23 10:56:23 2018 @author: andrea """ ''' Input: una stringa Output: una lista di parole Eccezioni: nessuna Effetti collaterali: nessuno Per spezzare in parole un testo trasformo tutti i caratteri non alfabetici in spazi split del risultato ''' def parole1(testo): trasformato = [] for c in testo: if c.isalpha(): trasformato.append(c) else: trasformato.append(' ') testo_pulito = ''.join(trasformato) return testo_pulito.split() def parole(testo): trasformato = [ c if c.isalpha() else ' ' for c in testo ] testo_pulito = ''.join(trasformato) return testo_pulito.split() def conta_parole(lista_parole, query): return { p : lista_parole.count(p) for p in query } def load_parole(filename, enc): with open(filename, encoding=enc) as f: testo = f.read().lower() return parole(testo) def percentuali(parole, query): N = len(parole) return { p: round(n/N, 4)*100 for p, n in conta_parole(parole, query).items() } def peso_file(filename, enc, query): paroline = load_parole(filename, enc) perc = percentuali(paroline, query) #print(filename, perc) return sum(perc.values()) def cerca_files(files, query, enc): return { fn : peso_file(fn, enc, query) for fn in files }