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): ...@@ -19,7 +19,7 @@ def getDuracionSesion(id, registrosOrdenados):
def estadisticasDuracionSesiones(registros): def estadisticasDuracionSesiones(registros):
# Ordeno las tuplas por registros # Ordeno las tuplas por sesion
reg = ordenarPorSesion(registros) reg = ordenarPorSesion(registros)
# Miro los distintos ids de Sesion que hay # Miro los distintos ids de Sesion que hay
distintos = getDistintasSesiones(registros) distintos = getDistintasSesiones(registros)
......
from idsUsuarioSesion import ordenaRegistros from idsUsuarioSesion import ordenaRegistros
from Filtros import getDistintasSesiones from Filtros import getDistintasSesiones
from Filtros import getTiempoEnPagina
from Filtros import getDistintasPaginas
#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
def analisisTiempoMedioPorPagina(registros): def analisisTiempoMedioPorPagina(registros):
#Ordeno los registros por sesion #Ordeno los registros por sesion
...@@ -17,10 +9,7 @@ def analisisTiempoMedioPorPagina(registros): ...@@ -17,10 +9,7 @@ def analisisTiempoMedioPorPagina(registros):
#Obtengo los id de las sesiones existentes #Obtengo los id de las sesiones existentes
idsExistentes=getDistintasSesiones(reg) idsExistentes=getDistintasSesiones(reg)
#Obtengo las distintas paginas existentes #Obtengo las distintas paginas existentes
paginas=set() paginas=getDistintasPaginas()
for r in registros:
paginas.add(r.url)
paginas=list(paginas)
#Creo una lista para guardar el tiempo medio que han pasado los usuarios en las paginas #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 tiempos=[]#El indice del vector tiempos es igual al indice vector paginas
max=-1 max=-1
......
...@@ -11,3 +11,44 @@ def getDistintasSesiones(registros): ...@@ -11,3 +11,44 @@ def getDistintasSesiones(registros):
s.add(r.idSesion) s.add(r.idSesion)
return list(s) 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 ...@@ -3,6 +3,7 @@ from idsUsuarioSesion import ordenaRegistros
from Filtros import ordenarPorSesion from Filtros import ordenarPorSesion
from Cesta import obtenerDirectorios from Cesta import obtenerDirectorios
from Cesta import obtenerCestaTransformada from Cesta import obtenerCestaTransformada
from Filtros import eliminarComportamientoAutomatico
from AnalisisTMedioPagina import analisisTiempoMedioPorPagina from AnalisisTMedioPagina import analisisTiempoMedioPorPagina
RUTA_ARCHIVO = "../access_log_Aug95_reducido" RUTA_ARCHIVO = "../access_log_Aug95_reducido"
...@@ -76,11 +77,3 @@ printDirectorios(d, cont, num_dir, num_reg) ...@@ -76,11 +77,3 @@ printDirectorios(d, cont, num_dir, num_reg)
cesta = obtenerCestaTransformada(d, ses) cesta = obtenerCestaTransformada(d, ses)
printCestaTransformada(cesta) 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