quitar comportamiento automatico hecho

parent 2f6fb66d
# Default ignored files
/shelf/
/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/codigo.iml" filepath="$PROJECT_DIR$/.idea/codigo.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file
......@@ -19,7 +19,7 @@ def getDuracionSesion(id, registrosOrdenados):
def estadisticasDuracionSesiones(registros):
# Ordeno las tuplas por registros
# Ordeno las tuplas por sesion
reg = ordenarPorSesion(registros)
# Miro los distintos ids de Sesion que hay
distintos = getDistintasSesiones(registros)
......
from idsUsuarioSesion import ordenaRegistros
from Filtros import getDistintasSesiones
#Pasado el id de sesion y la pagina, se suma el tiempo que ha pasado el usuario desde que accedio a la pagina hasta que
#cambio de pagina
def getTiempoEnPagina(id,pagina,registros):
s=0#<-- Suma de los tiempos pasados entre paginas
for i in range(len(registros)-1):
if registros[i].url==pagina and registros[i].idSesion==id and registros[i+1].idSesion==id:
s+=abs(registros[i+1].marcaTiempo-registros[i].marcaTiempo)
return s
from Filtros import getTiempoEnPagina
from Filtros import getDistintasPaginas
def analisisTiempoMedioPorPagina(registros):
#Ordeno los registros por sesion
......@@ -17,10 +9,7 @@ def analisisTiempoMedioPorPagina(registros):
#Obtengo los id de las sesiones existentes
idsExistentes=getDistintasSesiones(reg)
#Obtengo las distintas paginas existentes
paginas=set()
for r in registros:
paginas.add(r.url)
paginas=list(paginas)
paginas=getDistintasPaginas()
#Creo una lista para guardar el tiempo medio que han pasado los usuarios en las paginas
tiempos=[]#El indice del vector tiempos es igual al indice vector paginas
max=-1
......
......@@ -11,3 +11,44 @@ def getDistintasSesiones(registros):
s.add(r.idSesion)
return list(s)
def getDistintasPaginas(registros):
paginas = set()
for r in registros:
paginas.add(r.url)
paginas = list(paginas)
#Pasado el id de sesion y la pagina, se suma el tiempo que ha pasado el usuario desde que accedio a la pagina hasta que
#cambio de pagina
def getTiempoEnPagina(id,pagina,registros):
s=0#<-- Suma de los tiempos pasados entre paginas
for i in range(len(registros)-1):
if registros[i].url==pagina and registros[i].idSesion==id and registros[i+1].idSesion==id:
s+=abs(registros[i+1].marcaTiempo-registros[i].marcaTiempo)
return s
#Elimina las sesiones que han invertido menos de 0,5 segundos en el acceso
def eliminarComportamientoAutomatico(registros):
#Ordeno por sesion
reg=ordenarPorSesion(registros)
sesionActual=reg[0].idSesion
iMin=-1
iMax=-1
idSesionesNoValidas=set ()
for i in range(len(reg)):
if reg[i].idSesion==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].marcaTiempo-reg[iMin].marcaTiempo)
if tiempo < 0.5:
idSesionesNoValidas.add(sesionActual)
sesionActual=reg[i].idSesion
#Me quedo con los registros con ids validos
ret=[]
for r in reg:
if r.idSesion not in idSesionesNoValidas:
ret.append(r)
return ret
......@@ -3,6 +3,7 @@ from idsUsuarioSesion import ordenaRegistros
from Filtros import ordenarPorSesion
from Cesta import obtenerDirectorios
from Cesta import obtenerCestaTransformada
from Filtros import eliminarComportamientoAutomatico
from AnalisisTMedioPagina import analisisTiempoMedioPorPagina
RUTA_ARCHIVO = "../access_log_Aug95_reducido"
......@@ -76,11 +77,3 @@ printDirectorios(d, cont, num_dir, num_reg)
cesta = obtenerCestaTransformada(d, ses)
printCestaTransformada(cesta)
'''
paginas,tiempos,hist=analisisTiempoMedioPorPagina(r)
for i in range(len(paginas)):
print(paginas[i]," ",tiempos[i])
print(hist)
No preview for this file type
No preview for this file type
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