Preprocesamiento terminado

parent a9beee39
class Cesta:
def __init__(self, registros, directorios):
def __init__(self, directorios, sesiones, tam, i):
# Atributos
self.sesion = None
self.pagina = None
self.sesion = sesiones[i]
self.pagina = directorios[i]
self.directorios = directorios
self.flags = None
self.flags = []
self.obtenerFlags(sesiones, tam)
def obtenerFlags(self, sesiones, tam):
# Se rellenan los flags segun si son de la misma sesion o no para cada directorio
for i in range(tam):
if sesiones[i] == self.sesion: # Hay que obtener distribuciones de frecuencia aquí o no ############################3
self.flags.append(True)
else:
self.flags.append(False)
# Se obtienen los directorios aquellos que cumplen el umbral
def obtenerDirectorios(registros, umbral):
directorios = []
contadores = []
sesiones = []
# Obtenemos los registros diferentes con sus contadores
for r in registros:
if r.url not in directorios:
directorios.append(r.url)
contadores.append(1)
sesiones.append(r.idSesion)
else:
pos = directorios.index(r.url)
contadores[pos] += 1
directorios, contadores = quitarExcluidos(directorios, contadores, umbral)
directorios, contadores, sesiones = quitarExcluidos(directorios, contadores, sesiones, umbral)
return directorios, contadores
return directorios, contadores, sesiones
# Se quitan los directorios que no vamos a incluir
def quitarExcluidos(directorios, contadores, umbral):
def quitarExcluidos(directorios, contadores, sesiones, umbral):
excluidos = []
# Indicamos aquellas que no superan el umbral
......@@ -41,13 +53,28 @@ def quitarExcluidos(directorios, contadores, umbral):
for i in excluidos:
directorios.pop(i - sacados)
contadores.pop(i - sacados)
sesiones.pop(i - sacados)
sacados += 1
return directorios, contadores
return directorios, contadores, sesiones
# Se obtiene la cesta transformada final
def obtenerCestaTransformada(registros, directorios):
# Se obtiene la cesta transformada final con toda la informacion de cada pagina
def obtenerCestaTransformada(directorios, sesiones):
tam = len(directorios)
cesta = []
print("Bro")
# Se generan todas las variables
for i in range(tam):
cesta.append(Cesta(directorios, sesiones, tam, i))
# Se reducen a una por sesion
sesionesUsadas = []
for c in cesta:
if c.sesion not in sesionesUsadas: # Si no ha sido escogida todavía, se usa
sesionesUsadas.append(c.sesion)
else: # Si no se elimina
cesta.remove(c)
return cesta
......@@ -11,9 +11,9 @@ FACTOR_UMBRAL = 0.5
def printRegistro(registros):
print("Resultados: ")
print("RESULTADOS: ")
informe = (
" - Registro {} -\nHost Remoto: {}\nFecha: {}\nMetodo de Petición: {}\nURL: {}\nProtocolo: {}\nStatus Code: {}\n"
" - REGISTRO {} -\nHost Remoto: {}\nFecha: {}\nMetodo de Petición: {}\nURL: {}\nProtocolo: {}\nStatus Code: {}\n"
"Volumen de Transferencia: {}Marca de Tiempo: {}\nId Usuario: {}\nId Sesion: {}\n"
)
......@@ -26,11 +26,9 @@ def printRegistro(registros):
def printDirectorios(d, cont, num_dir, num_reg):
print("Directorios más solicitados: ")
print("DIRECTORIOS MÁS SOLICITADOS (<0.5%): ")
barra = "="
informe = (
" - VALOR {} -\nDirectorio: {}\nP(%): {}\n Cuenta: {}\nProporción: [{}]\n"
)
informe = (" - VALOR {} -\nDirectorio: {}\nP(%): {}\nCuenta: {}\nProporción: [{}]\n")
# Se imprime el total de directorios incluidos
total = 0
......@@ -46,7 +44,15 @@ def printDirectorios(d, cont, num_dir, num_reg):
print(informe.format(i + 1, d[i], '%.2f' % (c * 100 / num_reg), c, barra))
def printCestaTransformada(c):
def printCestaTransformada(cesta):
print("CESTA TRANSFORMADA: ")
informe = ("Sesion: {}\nPagina: {}\n")
flags = ("{}: {}")
for c in cesta:
print(informe.format(c.sesion, c.pagina))
for i in range(len(c.directorios)):
print(flags.format(c.directorios[i], c.flags[i]))
return
......@@ -57,10 +63,10 @@ printRegistro(r)
# Se obtienen los directorios con contadores y la cesta
umbral = int(num_reg * FACTOR_UMBRAL / 100)
d, cont = obtenerDirectorios(r, umbral)
d, cont, ses = obtenerDirectorios(r, umbral)
num_dir = len(d)
printDirectorios(d, cont, num_dir, num_reg)
# Obtiene cesta transformada y la muestra
cesta = obtenerCestaTransformada(r, d)
cesta = obtenerCestaTransformada(d, ses)
printCestaTransformada(cesta)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment