JairoCesar commited on
Commit
bad46ba
·
verified ·
1 Parent(s): e8ddadc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +56 -24
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
- "problemas de equilibrio y coordinación",
63
- "inestabilidad al caminar",
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
- "hinchazón": ["hinchazón", "distensión", "estomago se infla", "inflamado", "inflado", "infla", "hincha"],
76
- "dolor de cabeza": ["dolor de cabeza", "cefalea", "migraña"],
77
- "gases": ["gases", "flatulencia", "ventosidades"],
78
- "diarrea": ["diarrea", "deposiciones liquidas"],
79
- "dolor": ["dolor", "molestia", "duele", "ardor"],
80
- "fatiga": ["fatiga", "cansancio", "agotamiento"],
81
- "náuseas": ["náuseas", "mareo", "ganas de vomitar"],
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()