Update app.py
Browse files
app.py
CHANGED
|
@@ -22,10 +22,12 @@ def cargar_dataset(filename="datos_alojamientos.txt"):
|
|
| 22 |
def limpiar_texto(texto):
|
| 23 |
return re.sub(r'\s+', ' ', texto.strip().lower())
|
| 24 |
|
| 25 |
-
# Funci贸n para extraer valores
|
| 26 |
-
def obtener_valor(texto, patron
|
| 27 |
match = re.search(patron, texto, re.IGNORECASE | re.MULTILINE)
|
| 28 |
-
|
|
|
|
|
|
|
| 29 |
|
| 30 |
# Funci贸n para extraer la lista de servicios correctamente
|
| 31 |
def obtener_servicios(texto):
|
|
@@ -49,7 +51,7 @@ def responder_pregunta(pregunta, historial):
|
|
| 49 |
resultados = []
|
| 50 |
cantidad_solicitada = next((int(p) for p in pregunta.split() if p.isdigit()), None)
|
| 51 |
|
| 52 |
-
#
|
| 53 |
palabras_clave_servicios = [
|
| 54 |
"wi fi", "directv", "ropa blanca", "amueblado", "equipado", "habitaci贸n",
|
| 55 |
"cocina", "comedor", "ba帽o", "sommier", "cama", "vajilla completa", "heladera con freezer",
|
|
@@ -68,7 +70,7 @@ def responder_pregunta(pregunta, historial):
|
|
| 68 |
random.shuffle(resultados) # 馃敟 Ordena aleatoriamente los resultados
|
| 69 |
mostrar_resultados = resultados[:2] # Muestra al menos 2 alojamientos
|
| 70 |
resultados_previos = resultados[2:] # Guarda los resultados restantes para "ver m谩s"
|
| 71 |
-
|
| 72 |
historial += "\n\n" + "\n\n---\n\n".join(formatear_alojamiento(aloj) for aloj in mostrar_resultados)
|
| 73 |
|
| 74 |
if len(resultados_previos) > 0:
|
|
@@ -95,12 +97,12 @@ def ver_mas(historial):
|
|
| 95 |
|
| 96 |
# Funci贸n para formatear la informaci贸n de los alojamientos correctamente
|
| 97 |
def formatear_alojamiento(texto):
|
| 98 |
-
nombre = obtener_valor(texto, r"nombre:\s*(.+)")
|
| 99 |
-
direccion = obtener_valor(texto, r"direcci贸n:\s*(.+)")
|
| 100 |
-
telefono = obtener_valor(texto, r"tel茅fono:\s*(.+)")
|
| 101 |
-
plazas = obtener_valor(texto, r"plazas:\s*(.+)")
|
| 102 |
-
mascotas = "S铆" if "mascotas\s*:\s*s铆"
|
| 103 |
-
wifi = "S铆" if "wifi\s*:\s*s铆"
|
| 104 |
servicios = obtener_servicios(texto)
|
| 105 |
|
| 106 |
return f"""馃彔 Nombre: {nombre}
|
|
|
|
| 22 |
def limpiar_texto(texto):
|
| 23 |
return re.sub(r'\s+', ' ', texto.strip().lower())
|
| 24 |
|
| 25 |
+
# Funci贸n para extraer valores correctamente sin dejar "No especificado"
|
| 26 |
+
def obtener_valor(texto, patron):
|
| 27 |
match = re.search(patron, texto, re.IGNORECASE | re.MULTILINE)
|
| 28 |
+
if match:
|
| 29 |
+
return match.group(1).strip()
|
| 30 |
+
return None # Retorna None si no encuentra coincidencia
|
| 31 |
|
| 32 |
# Funci贸n para extraer la lista de servicios correctamente
|
| 33 |
def obtener_servicios(texto):
|
|
|
|
| 51 |
resultados = []
|
| 52 |
cantidad_solicitada = next((int(p) for p in pregunta.split() if p.isdigit()), None)
|
| 53 |
|
| 54 |
+
# Lista de palabras clave
|
| 55 |
palabras_clave_servicios = [
|
| 56 |
"wi fi", "directv", "ropa blanca", "amueblado", "equipado", "habitaci贸n",
|
| 57 |
"cocina", "comedor", "ba帽o", "sommier", "cama", "vajilla completa", "heladera con freezer",
|
|
|
|
| 70 |
random.shuffle(resultados) # 馃敟 Ordena aleatoriamente los resultados
|
| 71 |
mostrar_resultados = resultados[:2] # Muestra al menos 2 alojamientos
|
| 72 |
resultados_previos = resultados[2:] # Guarda los resultados restantes para "ver m谩s"
|
| 73 |
+
|
| 74 |
historial += "\n\n" + "\n\n---\n\n".join(formatear_alojamiento(aloj) for aloj in mostrar_resultados)
|
| 75 |
|
| 76 |
if len(resultados_previos) > 0:
|
|
|
|
| 97 |
|
| 98 |
# Funci贸n para formatear la informaci贸n de los alojamientos correctamente
|
| 99 |
def formatear_alojamiento(texto):
|
| 100 |
+
nombre = obtener_valor(texto, r"nombre:\s*(.+)") or "No disponible"
|
| 101 |
+
direccion = obtener_valor(texto, r"direcci贸n:\s*(.+)") or "No disponible"
|
| 102 |
+
telefono = obtener_valor(texto, r"tel茅fono:\s*(.+)") or "No disponible"
|
| 103 |
+
plazas = obtener_valor(texto, r"plazas:\s*(.+)") or "No disponible"
|
| 104 |
+
mascotas = "S铆" if re.search(r"mascotas\s*:\s*s铆", texto, re.IGNORECASE) else "No"
|
| 105 |
+
wifi = "S铆" if re.search(r"wifi\s*:\s*s铆", texto, re.IGNORECASE) else "No"
|
| 106 |
servicios = obtener_servicios(texto)
|
| 107 |
|
| 108 |
return f"""馃彔 Nombre: {nombre}
|