Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -57,33 +57,65 @@ alimentos_data, foodb_index = load_data()
|
|
| 57 |
FOOD_TO_COMPOUND_MAP = { "pan": ["gluten"], "trigo": ["gluten"], "harina": ["gluten"], "cebada": ["gluten"], "centeno": ["gluten"], "pasta": ["gluten"], "galletas": ["gluten"], "pizza": ["gluten"], "torta": ["gluten"], "pastel": ["gluten"], "avena": ["gluten"], "maíz": ["lectinas", "aflatoxinas"], "arroz": ["lectinas"], "quinoa": ["saponinas", "oxalatos", "fitatos"], "trigo sarraceno": ["oxalatos"], "alforfón": ["oxalatos"], "leche": ["lácteos", "caseína", "lactosa"], "queso": ["lácteos", "caseína", "lactosa", "histamina", "tiramina"], "yogur": ["lácteos", "caseína", "lactosa"], "mantequilla": ["lácteos", "caseína", "lactosa"], "crema": ["lácteos"], "helado": ["lácteos"], "tomate": ["histamina", "solaninas", "lectinas"], "pimiento": ["solaninas", "lectinas", "capsaicina"], "berenjena": ["solaninas", "lectinas", "histamina"], "patata": ["solaninas", "lectinas"], "cebolla": ["fodmaps", "fructanos"], "ajo": ["fodmaps", "fructanos"], "brócoli": ["salicilatos", "goitrógenos", "fodmaps", "fructanos"], "coliflor": ["goitrógenos", "fodmaps", "polioles"], "repollo": ["goitrógenos", "fodmaps", "fructanos"], "col": ["goitrógenos", "fodmaps", "fructanos"], "espinaca": ["oxalatos", "histamina", "goitrógenos"], "acelga": ["oxalatos"], "remolacha": ["oxalatos", "fodmaps", "gos"], "legumbres": ["fodmaps", "gos", "lectinas", "fitatos"], "lentejas": ["fodmaps", "gos", "lectinas", "fitatos"], "garbanzos": ["fodmaps", "gos", "lectinas", "fitatos"], "frijoles": ["fodmaps", "gos", "lectinas", "fitatos"], "guisantes": ["fodmaps", "gos", "lectinas", "fitatos"], "soja": ["alérgenos", "fitatos", "goitrógenos", "lectinas"], "soya": ["alérgenos", "fitatos", "goitrógenos", "lectinas"], "tofu": ["fitatos", "goitrógenos", "lectinas"], "edamame": ["fitatos", "goitrógenos", "lectinas"], "aguacate": ["fodmaps", "polioles", "histamina"], "calabaza": ["salicilatos", "oxalatos", "lectinas", "fodmaps", "fructanos", "gos", "polioles"], "calabacín": ["lectinas", "fodmaps", "fructanos"], "champiñón": ["fodmaps", "polioles"], "setas": ["fodmaps", "polioles"], "espárrago": ["fodmaps", "fructanos", "purinas"], "alcachofa": ["fodmaps", "fructanos"], "pepino": ["lectinas"], "zanahoria": ["salicilatos"], "apio": ["fodmaps", "polioles"], "manzana": ["salicilatos", "fructosa", "fodmaps", "polioles"], "pera": ["fructosa", "fodmaps", "polioles"], "mango": ["fructosa", "fodmaps"], "cereza": ["fructosa", "salicilatos", "fodmaps", "polioles"], "sandía": ["fructosa", "fodmaps"], "uvas": ["salicilatos", "fructosa"], "pasas": ["salicilatos", "fructosa", "histamina"], "dátil": ["fructosa", "fodmaps", "fructanos"], "higo": ["fructosa", "fodmaps", "fructanos"], "naranja": ["salicilatos", "ácidos"], "limón": ["salicilatos", "ácidos"], "pomelo": ["salicilatos", "ácidos"], "mandarina": ["salicilatos", "ácidos"], "fresa": ["salicilatos", "histamina"], "arándano": ["salicilatos"], "frambuesa": ["salicilatos"], "mora": ["salicilatos"], "plátano": ["tiramina", "histamina"], "piña": ["salicilatos", "ácidos", "histamina"], "kiwi": ["salicilatos", "alérgenos", "histamina"], "ciruela": ["fodmaps", "polioles"], "melocotón": ["fodmaps", "polioles"], "albaricoque": ["fodmaps", "polioles"], "nectarina": ["fodmaps", "polioles"], "melón": ["fructosa", "fodmaps"], "papaya": ["histamina"], "carne": ["alfa-gal", "purinas", "hierro", "histamina"], "carnes rojas": ["purinas", "alfa-gal", "hierro"], "hígado": ["purinas", "hierro", "vitamina a"], "embutidos": ["histamina", "tiramina", "nitritos"], "salchicha": ["histamina", "tiramina", "nitritos"], "pollo": ["purinas"], "pavo": ["purinas"], "huevo": ["alérgenos"], "pescado": ["histamina", "purinas"], "pescado enlatado": ["histamina"], "atún en lata": ["histamina"], "salmón": ["purinas", "histamina"], "sardinas": ["histamina", "purinas"], "anchoas": ["purinas", "histamina"], "mariscos": ["purinas", "sulfitos", "alérgenos", "yodo", "níquel"], "camarón": ["alérgenos", "yodo"], "gamba": ["alérgenos", "yodo"], "nueces": ["arginina", "salicilatos", "níquel", "oxalatos", "fitatos"], "almendras": ["salicilatos", "arginina", "oxalatos", "fitatos"], "maní": ["alérgenos", "arginina", "lectinas", "aflatoxinas"], "cacahuetes": ["alérgenos", "arginina", "lectinas", "aflatoxinas"], "anacardo": ["alérgenos", "fodmaps", "gos", "fructanos", "oxalatos"], "pistacho": ["alérgenos", "fodmaps", "fructanos"], "avellana": ["alérgenos", "oxalatos", "fitatos"], "sésamo": ["alérgenos", "oxalatos", "fitatos"], "chía": ["fitatos", "oxalatos"], "lino": ["fitatos"], "café": ["cafeína", "ácidos"], "té": ["cafeína", "taninos", "oxalatos"], "cerveza": ["gluten", "histamina", "tiramina", "purinas"], "vino": ["histamina", "tiramina", "sulfitos"], "vino tinto": ["histamina", "tiramina", "sulfitos"], "vino rojo": ["histamina", "tiramina", "sulfitos"], "chocolate": ["cafeína", "tiramina", "níquel", "arginina", "oxalatos"], "azucar": ["azúcar", "fructosa"], "dulces": ["azúcar"], "refrescos": ["azúcar", "fructosa"], "gaseosas": ["azúcar", "fructosa"], "miel": ["fructosa", "fodmaps"], "jarabe de maiz": ["fructosa"], "edulcorantes": ["polioles", "fodmaps"], "cúrcuma": ["salicilatos"], "jengibre": ["salicilatos"], "chucrut": ["histamina", "tiramina"], "vinagre": ["histamina", "sulfitos"], "mostaza": ["salicilatos", "goitrógenos"], "aceitunas": ["histamina", "salicilatos"], "caldo": ["histamina", "glutamato"]}
|
| 58 |
|
| 59 |
SYMPTOM_KEYWORD_MAP = {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
"ataxia": [
|
| 61 |
-
"pérdida de equilibrio y coordinación",
|
| 62 |
-
"
|
| 63 |
-
"
|
| 64 |
-
"caminar inestable",
|
| 65 |
-
"pérdida del equilibrio",
|
| 66 |
-
"falta de equilibrio",
|
| 67 |
-
"pérdida de coordinación",
|
| 68 |
-
"falta de coordinación",
|
| 69 |
-
"movimientos torpes",
|
| 70 |
-
"incoordinación",
|
| 71 |
-
"inestabilidad",
|
| 72 |
-
"torpeza",
|
| 73 |
-
"ataxia"
|
| 74 |
],
|
| 75 |
-
"
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
"
|
| 81 |
-
"
|
| 82 |
-
"vómitos": ["vómitos", "vomitar"],
|
| 83 |
-
"erupción": ["erupción", "ronchas", "urticaria", "sarpullido", "granitos"],
|
| 84 |
-
"acidez": ["acidez", "reflujo", "ardor de estómago", "agruras"]
|
| 85 |
-
}
|
| 86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
def sanitize_text(text):
|
| 88 |
if not text: return ""
|
| 89 |
return re.sub(r'[.,;()]', '', text).lower().strip()
|
|
|
|
| 57 |
FOOD_TO_COMPOUND_MAP = { "pan": ["gluten"], "trigo": ["gluten"], "harina": ["gluten"], "cebada": ["gluten"], "centeno": ["gluten"], "pasta": ["gluten"], "galletas": ["gluten"], "pizza": ["gluten"], "torta": ["gluten"], "pastel": ["gluten"], "avena": ["gluten"], "maíz": ["lectinas", "aflatoxinas"], "arroz": ["lectinas"], "quinoa": ["saponinas", "oxalatos", "fitatos"], "trigo sarraceno": ["oxalatos"], "alforfón": ["oxalatos"], "leche": ["lácteos", "caseína", "lactosa"], "queso": ["lácteos", "caseína", "lactosa", "histamina", "tiramina"], "yogur": ["lácteos", "caseína", "lactosa"], "mantequilla": ["lácteos", "caseína", "lactosa"], "crema": ["lácteos"], "helado": ["lácteos"], "tomate": ["histamina", "solaninas", "lectinas"], "pimiento": ["solaninas", "lectinas", "capsaicina"], "berenjena": ["solaninas", "lectinas", "histamina"], "patata": ["solaninas", "lectinas"], "cebolla": ["fodmaps", "fructanos"], "ajo": ["fodmaps", "fructanos"], "brócoli": ["salicilatos", "goitrógenos", "fodmaps", "fructanos"], "coliflor": ["goitrógenos", "fodmaps", "polioles"], "repollo": ["goitrógenos", "fodmaps", "fructanos"], "col": ["goitrógenos", "fodmaps", "fructanos"], "espinaca": ["oxalatos", "histamina", "goitrógenos"], "acelga": ["oxalatos"], "remolacha": ["oxalatos", "fodmaps", "gos"], "legumbres": ["fodmaps", "gos", "lectinas", "fitatos"], "lentejas": ["fodmaps", "gos", "lectinas", "fitatos"], "garbanzos": ["fodmaps", "gos", "lectinas", "fitatos"], "frijoles": ["fodmaps", "gos", "lectinas", "fitatos"], "guisantes": ["fodmaps", "gos", "lectinas", "fitatos"], "soja": ["alérgenos", "fitatos", "goitrógenos", "lectinas"], "soya": ["alérgenos", "fitatos", "goitrógenos", "lectinas"], "tofu": ["fitatos", "goitrógenos", "lectinas"], "edamame": ["fitatos", "goitrógenos", "lectinas"], "aguacate": ["fodmaps", "polioles", "histamina"], "calabaza": ["salicilatos", "oxalatos", "lectinas", "fodmaps", "fructanos", "gos", "polioles"], "calabacín": ["lectinas", "fodmaps", "fructanos"], "champiñón": ["fodmaps", "polioles"], "setas": ["fodmaps", "polioles"], "espárrago": ["fodmaps", "fructanos", "purinas"], "alcachofa": ["fodmaps", "fructanos"], "pepino": ["lectinas"], "zanahoria": ["salicilatos"], "apio": ["fodmaps", "polioles"], "manzana": ["salicilatos", "fructosa", "fodmaps", "polioles"], "pera": ["fructosa", "fodmaps", "polioles"], "mango": ["fructosa", "fodmaps"], "cereza": ["fructosa", "salicilatos", "fodmaps", "polioles"], "sandía": ["fructosa", "fodmaps"], "uvas": ["salicilatos", "fructosa"], "pasas": ["salicilatos", "fructosa", "histamina"], "dátil": ["fructosa", "fodmaps", "fructanos"], "higo": ["fructosa", "fodmaps", "fructanos"], "naranja": ["salicilatos", "ácidos"], "limón": ["salicilatos", "ácidos"], "pomelo": ["salicilatos", "ácidos"], "mandarina": ["salicilatos", "ácidos"], "fresa": ["salicilatos", "histamina"], "arándano": ["salicilatos"], "frambuesa": ["salicilatos"], "mora": ["salicilatos"], "plátano": ["tiramina", "histamina"], "piña": ["salicilatos", "ácidos", "histamina"], "kiwi": ["salicilatos", "alérgenos", "histamina"], "ciruela": ["fodmaps", "polioles"], "melocotón": ["fodmaps", "polioles"], "albaricoque": ["fodmaps", "polioles"], "nectarina": ["fodmaps", "polioles"], "melón": ["fructosa", "fodmaps"], "papaya": ["histamina"], "carne": ["alfa-gal", "purinas", "hierro", "histamina"], "carnes rojas": ["purinas", "alfa-gal", "hierro"], "hígado": ["purinas", "hierro", "vitamina a"], "embutidos": ["histamina", "tiramina", "nitritos"], "salchicha": ["histamina", "tiramina", "nitritos"], "pollo": ["purinas"], "pavo": ["purinas"], "huevo": ["alérgenos"], "pescado": ["histamina", "purinas"], "pescado enlatado": ["histamina"], "atún en lata": ["histamina"], "salmón": ["purinas", "histamina"], "sardinas": ["histamina", "purinas"], "anchoas": ["purinas", "histamina"], "mariscos": ["purinas", "sulfitos", "alérgenos", "yodo", "níquel"], "camarón": ["alérgenos", "yodo"], "gamba": ["alérgenos", "yodo"], "nueces": ["arginina", "salicilatos", "níquel", "oxalatos", "fitatos"], "almendras": ["salicilatos", "arginina", "oxalatos", "fitatos"], "maní": ["alérgenos", "arginina", "lectinas", "aflatoxinas"], "cacahuetes": ["alérgenos", "arginina", "lectinas", "aflatoxinas"], "anacardo": ["alérgenos", "fodmaps", "gos", "fructanos", "oxalatos"], "pistacho": ["alérgenos", "fodmaps", "fructanos"], "avellana": ["alérgenos", "oxalatos", "fitatos"], "sésamo": ["alérgenos", "oxalatos", "fitatos"], "chía": ["fitatos", "oxalatos"], "lino": ["fitatos"], "café": ["cafeína", "ácidos"], "té": ["cafeína", "taninos", "oxalatos"], "cerveza": ["gluten", "histamina", "tiramina", "purinas"], "vino": ["histamina", "tiramina", "sulfitos"], "vino tinto": ["histamina", "tiramina", "sulfitos"], "vino rojo": ["histamina", "tiramina", "sulfitos"], "chocolate": ["cafeína", "tiramina", "níquel", "arginina", "oxalatos"], "azucar": ["azúcar", "fructosa"], "dulces": ["azúcar"], "refrescos": ["azúcar", "fructosa"], "gaseosas": ["azúcar", "fructosa"], "miel": ["fructosa", "fodmaps"], "jarabe de maiz": ["fructosa"], "edulcorantes": ["polioles", "fodmaps"], "cúrcuma": ["salicilatos"], "jengibre": ["salicilatos"], "chucrut": ["histamina", "tiramina"], "vinagre": ["histamina", "sulfitos"], "mostaza": ["salicilatos", "goitrógenos"], "aceitunas": ["histamina", "salicilatos"], "caldo": ["histamina", "glutamato"]}
|
| 58 |
|
| 59 |
SYMPTOM_KEYWORD_MAP = {
|
| 60 |
+
|
| 61 |
+
# --- SISTEMA GASTROINTESTINAL (DIGESTIVO) ---
|
| 62 |
+
"dolor abdominal": ["dolor de estómago", "dolor de panza", "dolor abdominal", "retortijones", "cólicos", "calambres abdominales"],
|
| 63 |
+
"hinchazón": ["hinchazón abdominal", "vientre hinchado", "distensión abdominal", "hinchazón", "distensión", "estomago se infla", "inflamado", "inflado", "infla", "hincha"],
|
| 64 |
+
"gases": ["exceso de gases", "muchos gases", "gases", "flatulencia", "ventosidades"],
|
| 65 |
+
"diarrea": ["diarrea crónica", "diarrea persistente", "heces sueltas", "estómago suelto", "diarrea", "deposiciones liquidas"],
|
| 66 |
+
"estreñimiento": ["estreñimiento crónico", "dificultad para evacuar", "no poder ir al baño", "estreñimiento"],
|
| 67 |
+
"acidez": ["acidez estomacal", "reflujo gastroesofágico", "ardor de estómago", "acidez", "reflujo", "agruras"],
|
| 68 |
+
"náuseas": ["náuseas persistentes", "ganas de vomitar", "náuseas", "mareo"],
|
| 69 |
+
"vómitos": ["vómitos recurrentes", "vómitos", "vomitar"],
|
| 70 |
+
"disfagia": ["dificultad para tragar", "problemas al tragar", "se atora la comida", "disfagia"],
|
| 71 |
+
"pérdida de apetito": ["falta de apetito", "no tengo hambre", "pérdida de apetito"],
|
| 72 |
+
|
| 73 |
+
# --- SISTEMA NEUROLÓGICO ---
|
| 74 |
+
"dolor de cabeza": ["dolores de cabeza crónicos", "dolor de cabeza crónico", "dolores de cabeza", "dolor de cabeza", "cefalea", "migraña"],
|
| 75 |
+
"niebla mental": ["niebla mental severa", "dificultad para concentrarse", "falta de claridad mental", "niebla mental", "confusión mental", "mente nublada", "deterioro cognitivo"],
|
| 76 |
"ataxia": [
|
| 77 |
+
"pérdida de equilibrio y coordinación", "problemas de equilibrio y coordinación", "inestabilidad al caminar",
|
| 78 |
+
"caminar inestable", "pérdida del equilibrio", "falta de equilibrio", "pérdida de coordinación",
|
| 79 |
+
"falta de coordinación", "movimientos torpes", "incoordinación", "inestabilidad", "torpeza", "ataxia"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
],
|
| 81 |
+
"neuropatía periférica": [
|
| 82 |
+
"hormigueo en manos y pies", "entumecimiento en manos y pies", "sensación de ardor en los pies",
|
| 83 |
+
"calambres en manos y pies", "sensación de agujas", "hormigueo en las extremidades", "parestesias",
|
| 84 |
+
"entumecimiento", "hormigueo", "neuropatía"
|
| 85 |
+
],
|
| 86 |
+
"mareo/vértigo": ["sensación de que todo da vueltas", "vértigo", "mareos"],
|
| 87 |
+
"convulsiones": ["ataques epilépticos", "convulsiones", "ataques", "epilepsia"],
|
|
|
|
|
|
|
|
|
|
|
|
|
| 88 |
|
| 89 |
+
# --- SISTEMA DERMATOLÓGICO (PIEL) ---
|
| 90 |
+
"erupción": ["dermatitis herpetiforme", "erupción con ampollas", "erupción cutánea", "erupción", "ronchas", "urticaria", "sarpullido", "granitos", "eczema"],
|
| 91 |
+
"picazón": ["picazón intensa", "picor en la piel", "comezón", "picor", "prurito"],
|
| 92 |
+
"piel seca": ["piel seca y escamosa", "piel muy seca", "piel reseca", "ictiosis"],
|
| 93 |
+
"acné": ["acné quístico", "brote de acné", "espinillas", "granos", "acné"],
|
| 94 |
+
|
| 95 |
+
# --- SISTEMA MUSCULOESQUELÉTICO ---
|
| 96 |
+
"dolor articular": ["dolor en las articulaciones", "articulaciones doloridas", "dolores articulares", "artralgia"],
|
| 97 |
+
"dolor muscular": ["dolor muscular generalizado", "dolores musculares", "mialgia"],
|
| 98 |
+
"debilidad muscular": ["falta de fuerza", "debilidad en los músculos", "pérdida de fuerza"],
|
| 99 |
+
"calambres": ["calambres musculares", "espasmos musculares", "calambres"],
|
| 100 |
+
|
| 101 |
+
# --- SÍNTOMAS GENERALES Y CONSTITUCIONALES ---
|
| 102 |
+
"fatiga": ["fatiga crónica", "cansancio extremo", "agotamiento crónico", "falta de energía", "fatiga", "cansancio", "agotamiento"],
|
| 103 |
+
"pérdida de peso": ["pérdida de peso inexplicable", "adelgazamiento involuntario", "pérdida de peso"],
|
| 104 |
+
"fiebre": ["fiebre recurrente", "fiebre baja", "temperatura alta", "fiebre"],
|
| 105 |
+
"malestar general": ["sentirse mal", "cuerpo cortado", "malestar"],
|
| 106 |
+
"inflamación": ["inflamación sistémica", "inflamación general", "inflamación"],
|
| 107 |
+
|
| 108 |
+
# --- SISTEMA RESPIRATORIO Y ALÉRGICO (ORL) ---
|
| 109 |
+
"dificultad para respirar": ["falta de aire", "no poder respirar bien", "disnea"],
|
| 110 |
+
"congestión nasal": ["nariz tapada", "congestión nasal", "rinitis"],
|
| 111 |
+
"tos": ["tos crónica", "tos seca", "tos persistente", "tos"],
|
| 112 |
+
"sibilancias": ["pitido en el pecho", "silbidos al respirar", "sibilancias"],
|
| 113 |
+
|
| 114 |
+
# --- SISTEMA PSICOLÓGICO / ESTADO DE ÁNIMO ---
|
| 115 |
+
"ansiedad": ["ataques de pánico", "nerviosismo", "inquietud", "ansiedad"],
|
| 116 |
+
"irritabilidad": ["cambios de humor", "mal humor", "estar irritable", "irritabilidad"],
|
| 117 |
+
"depresión": ["tristeza persistente", "desánimo", "depresión"]
|
| 118 |
+
}
|
| 119 |
def sanitize_text(text):
|
| 120 |
if not text: return ""
|
| 121 |
return re.sub(r'[.,;()]', '', text).lower().strip()
|