Advertisement
elcocodrilotito

Práctica 1

Mar 13th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.06 KB | None | 0 0
  1. #Daniel Bedialauneta y Athenea Beltrán
  2. #Práctica 1
  3. from string import punctuation
  4. from math import sqrt
  5. def histograma(email):
  6.     letras="abcdefghijklmnopqrstuvwxyz"
  7.     d=dict()
  8.     fp=open(email,"r",encoding='utf-8')
  9.     linea=fp.readline()
  10.     while linea!="\n":
  11.         linea=fp.readline()
  12.     linea=fp.readline()
  13.     while linea:
  14.         for i in linea.split():
  15.             i=i.lower().strip(punctuation)
  16.             if i=="":
  17.                 continue
  18.             bien=True
  19.             for j in i:
  20.                 if j not in letras:
  21.                     bien=False
  22.                     break
  23.             if bien:
  24.                 if i in d:
  25.                     d[i]+=1
  26.                 else:
  27.                     d[i]=1
  28.         linea=fp.readline()
  29.     return d
  30.  
  31. def suma_histogramas(dp,d): #dp=diccionario principal (diccionario suma), d=diccionario parcial
  32.     for i in d:
  33.         if i in dp:
  34.             dp[i]+=d[i]
  35.         else:
  36.             dp[i]=d[i]
  37.     return dp
  38.  
  39. def normalizacion(d): #d=diccionario
  40.     sumatorio=0
  41.     for i in d:
  42.         sumatorio+=d[i]
  43.     for i in d:
  44.         d[i]=d[i]/sumatorio
  45.     return d
  46.  
  47. def frecuentes(d):
  48.     media=0
  49.     sumatorio=0
  50.     for i in d:
  51.         sumatorio+=d[i]
  52.     media=sumatorio/len(d)
  53.     lista=[]
  54.     for i in d:
  55.         if d[i]>=3*media:
  56.             lista.append(i)
  57.     return lista
  58.    
  59. def raras(d,n=4):
  60.     lista=[]
  61.     for i in d:
  62.         if d[i]<=n:
  63.             lista.append(i)
  64.     return lista
  65.  
  66. def borrar_palabras(d,lista1,lista2):
  67.     for i in lista1+lista2:
  68.         if i in d:
  69.             del d[i]
  70.     return d
  71.  
  72. def d_euclidea(hx,hc,suma):
  73.     for w in hx:
  74.         if w in c:
  75.             suma-=hc[w]**2
  76.             suma+=(hx[w]-hc[w])**2
  77.         else:
  78.             suma+=hx[w]**2
  79.     return sqrt(suma)
  80.  
  81. def d_superposicion(hx,hc):
  82.     suma=0
  83.     for w in hx:
  84.         if w in hc:
  85.             suma=suma+min(hx[w],hc[w])
  86.     return 1-suma
  87.  
  88. def d_correlacion(hx,hc):
  89.     suma=0
  90.     for w in hx:
  91.         if w in hc:
  92.             suma+=hx[w]*hc[w]
  93.     return 1-suma
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement