Advertisement
elcocodrilotito

pract5 still in dev

Nov 27th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.78 KB | None | 0 0
  1. def tf(qi,x):
  2.     contador=0
  3.     for i in x.split():
  4.         if qi==i:
  5.             contador=contador+1
  6.     return contador
  7.  
  8. def k(q,x):
  9.     contador=0
  10.     for i in q.split():
  11.         if i in x:
  12.             contador=contador+1
  13.     return contador
  14.  
  15. def f1(q,x):
  16.     contador=0
  17.     for qi in q.split():
  18.         contador=contador+tf(qi,x)
  19.     return contador
  20.  
  21. def f2(q,x):
  22.     contador=0
  23.     n=len(x.split())
  24.     for qi in q.split():
  25.         contador=contador+(tf(qi,x))/n
  26.     return contador
  27.  
  28. def f3(q,x):
  29.     producto=1
  30.     for qi in q.split():
  31.         producto=producto*(tf(qi,x))
  32.     return producto
  33.  
  34. def f4(q,x):
  35.     producto=1
  36.     n=len(x.split())
  37.     for qi in q.split():
  38.         producto=producto*tf(qi,x)
  39.     return producto
  40.  
  41. def f5(q,x):
  42.     m=len(q.split())
  43.     return (1/((m-k(q,x)+1)**2))*f1(q,x)
  44.  
  45. def f6(q,x):
  46.     m=len(q.split())
  47.     return (1/((m-k(q,x)+1)**2))*f2(q,x)
  48.  
  49. def frase_similar(t,f,q):
  50.     fp=open(t)
  51.     x=fp.readline()
  52.     maxima=0
  53.     linea=""
  54.     parcial=0
  55.     while x:
  56.         parcial=eval(f)(q,x)
  57.         if parcial>maxima:
  58.             maxima=parcial
  59.             linea=x
  60.         x=fp.readline()
  61.     fp.close()
  62.     if linea=="":
  63.         return False
  64.     else:
  65.         return linea
  66.  
  67.  
  68. t=input("Nombre del archivo: ")
  69. f=input("Función de similitud (f1,f2,f3,f4,f5,f6): ")
  70. q=input("Términos de búsqueda: ")
  71. resultado=frase_similar(t,f,q)
  72. if resultado==False:
  73.     while resultado==False:
  74.         print("No se ha encontrado en el archivo",t,"información relacionada con los términos de busqueda")
  75.         t=input("Nombre del archivo: ")
  76.         f=input("Función de similitud (f1,f2,f3,f4,f5,f6): ")
  77.         q=input("Términos de búsqueda: ")
  78.         resultado=frase_similar(t,f,q)
  79. print(resultado)
  80.  
  81.  
  82. t=input("Nombre del archivo: ")
  83. while t!="":
  84.     f=input("Función de similitud (f1,f2,f3,f4,f5,f6): ")
  85.     while f!="":
  86.         q=input("Términos de búsqueda: ")
  87.         while q!="":
  88.             resultado=frase_similar(t,f,q)
  89.             while resultado==False:
  90.                 print("No se ha encontrado en el archivo",t,"información relacionada con los términos de búsqueda")
  91.                 t=input("Nombre del archivo: ")
  92.                 f=input("Función de similitud (f1,f2,f3,f4,f5,f6): ")
  93.                 q=input("Términos de búsqueda: ")
  94.                 resultado=frase_similar(t,f,q)
  95.             print(resultado)
  96.             q=input("Términos de búsqueda: ")
  97.         f=input("Función de similitud (f1,f2,f3,f4,f5,f6): ")
  98.     t=input("Nombre del archivo: ")
  99.  
  100. #Mi duda es: si el primer t de todos es t="", ¿qué pasa? ¿Se acaba el programa o tiene que trabajar con ese t="" esa primera vez para
  101. #con seguir el primer resultado?
  102. #Si se acaba el programa directamente conservar código
  103. #Si no, piensa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement