DanielRN commited on
Commit
e18bb9f
verified
1 Parent(s): 195641b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -11
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 de manera segura
26
- def obtener_valor(texto, patron, valor_predeterminado="No especificado"):
27
  match = re.search(patron, texto, re.IGNORECASE | re.MULTILINE)
28
- return match.group(1).strip() if match else valor_predeterminado
 
 
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
- # 馃敟 Lista de palabras clave
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铆" in limpiar_texto(texto) else "No"
103
- wifi = "S铆" if "wifi\s*:\s*s铆" in limpiar_texto(texto) else "No"
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}