Eliminar comportamiento automatico corregido

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