Eliminar comportamiento automatico corregido

parent fdc2b91f
No preview for this file type
......@@ -45,28 +45,27 @@ def getTiempoEnPagina(id, pagina, registros):
# Elimina las sesiones que han invertido menos de 0,5 segundos en el acceso
def eliminarComportamientoAutomatico(registros, umbral):
# Ordeno por sesion
reg = ordenarPorSesion(registros)
def eliminarComportamientoAutomatico(reg, umbral):
sesiones = {}
c = 0
sesionActual = reg[0].ID_Sesion
iMin = -1
iMax = -1
idSesionesNoValidas = set()
for i in range(len(reg)):
if reg[i].ID_Sesion == sesionActual:
if iMin == -1:
iMin = i
else:
iMax = i
else:
if iMin != iMax: # <--- Si ha visitado mas de dos paginas en la sesion miro el tiempo
tiempo = abs(reg[iMax].Marca_Tiempo - reg[iMin].Marca_Tiempo)
if tiempo < umbral:
idSesionesNoValidas.add(sesionActual)
sesionActual = reg[i].ID_Sesion
# Me quedo con los registros con ids validos
ret = []
for r in reg:
if r.ID_Sesion not in idSesionesNoValidas:
ret.append(r)
return ret
indicePrimero = 0
while c < len(reg):
if sesionActual != reg[c].ID_Sesion:
if indicePrimero != c:
sesiones[sesionActual] = abs(reg[c].Marca_Tiempo - reg[indicePrimero].Marca_Tiempo) / (c - indicePrimero)
sesionActual = reg[c].ID_Sesion
indicePrimero = c
c += 1
numSesiones=len(sesiones)
for i in range(1,numSesiones):
dur=float(sesiones[i])
if dur<=umbral:
j=0
while j < len(reg):
if reg[j].ID_Sesion==i:
reg.pop(j)
else:
j+=1
return reg
......@@ -73,6 +73,7 @@ def fElimCAuto():
except:
UMBRAL_T = 1
v.cerrarVentana()
global REG
if len(REG) > 0:
REG = eliminarComportamientoAutomatico(REG, UMBRAL_T)
insertaRegistros()
......
......@@ -5,7 +5,6 @@ import operator
class TablaSesionesMenorTMedioPag:
def __init__(self, reg):
#reg=ordenarPorSesion(reg)
sesiones={}
c=0
sesionActual=reg[0].ID_Sesion
......@@ -13,9 +12,12 @@ class TablaSesionesMenorTMedioPag:
while c < len(reg):
if sesionActual!=reg[c].ID_Sesion:
if indicePrimero!=c:
sesiones[sesionActual]=(reg[c].Marca_Tiempo-reg[indicePrimero].Marca_Tiempo)/(c-indicePrimero)
sesionActual=reg[c].ID_Sesion
indicePrimero=c
sesiones[sesionActual]=abs(reg[c].Marca_Tiempo-reg[indicePrimero].Marca_Tiempo)/(c-indicePrimero)
sesionActual=reg[c].ID_Sesion
indicePrimero=c
elif c < len(reg)-1:
sesionActual = reg[c+1].ID_Sesion
indicePrimero = c+1
c+=1
sesiones = sorted(sesiones.items(), key=operator.itemgetter(1))
......
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