JairoCesar commited on
Commit
ac4d63c
·
verified ·
1 Parent(s): 8c300be

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +169 -47
app.py CHANGED
@@ -63,38 +63,62 @@ alimentos_data, lista_condiciones, foodb_index = load_data()
63
 
64
  # --- DICCIONARIOS DE MAPEADO (EXPANDIDOS Y CORREGIDOS) ---
65
  FOOD_TO_COMPOUND_MAP = {
66
- "pan": ["gluten"], "trigo": ["gluten"], "harina": ["gluten"], "cebada": ["gluten"], "centeno": ["gluten"], "pasta": ["gluten"], "galletas": ["gluten"], "avena": ["gluten"], "pizza": ["gluten"], "torta": ["gluten"], "pastel": ["gluten"], "cerveza": ["gluten", "histamina", "tiramina", "purinas"],
 
 
 
 
67
  "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"],
68
- "manzana": ["salicilatos", "fructosa"], "pera": ["fructosa", "polioles"], "mango": ["fructosa"], "cereza": ["fructosa", "salicilatos"], "sandía": ["fructosa"], "almendras": ["salicilatos", "arginina", "oxalatos"], "uvas": ["salicilatos", "fructosa"], "pasas": ["salicilatos", "fructosa"], "naranja": ["salicilatos", "ácidos"], "limón": ["salicilatos", "ácidos"], "fresa": ["salicilatos"], "arándano": ["salicilatos"],
69
- "brócoli": ["salicilatos", "goitrógenos", "fodmaps"], "coliflor": ["goitrógenos", "fodmaps"], "repollo": ["goitrógenos", "fodmaps"], "col": ["goitrógenos", "fodmaps"], "cúrcuma": ["salicilatos"],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  "azucar": ["azúcar", "fructosa"], "dulces": ["azúcar"], "refrescos": ["azúcar", "fructosa"], "gaseosas": ["azúcar", "fructosa"], "miel": ["fructosa", "fodmaps"], "jarabe de maiz": ["fructosa"],
71
- "vino tinto": ["histamina", "tiramina", "sulfitos"], "vino rojo": ["histamina", "tiramina", "sulfitos"], "vino": ["histamina", "tiramina", "sulfitos"], "chocolate": ["cafeína", "tiramina", "níquel", "arginina", "oxalatos"],
72
- "embutidos": ["histamina", "tiramina", "nitritos"], "pescado enlatado": ["histamina"], "atún en lata": ["histamina"], "sardinas": ["histamina", "purinas"], "tomate": ["histamina", "solaninas", "lectinas"],
73
- "aguacate": ["fodmaps", "polioles", "histamina"], "cebolla": ["fodmaps", "fructanos"], "ajo": ["fodmaps", "fructanos"], "legumbres": ["fodmaps", "gos", "lectinas", "fitatos"], "lentejas": ["fodmaps", "gos", "lectinas"], "garbanzos": ["fodmaps", "gos", "lectinas"], "frijoles": ["fodmaps", "gos", "lectinas"],
74
- "carne": ["alfa-gal", "purinas", "hierro", "histamina"], "carnes rojas": ["purinas", "alfa-gal", "hierro"], "hígado": ["purinas", "hierro", "vitamina a"],
75
- "mariscos": ["purinas", "sulfitos", "alérgenos", "yodo", "níquel"], "huevo": ["alérgenos"], "soya": ["alérgenos", "fitatos", "goitrógenos"], "soja": ["alérgenos", "fitatos", "goitrógenos"],
76
- "café": ["cafeína", "ácidos"], "té": ["cafeína", "taninos", "oxalatos"], "nueces": ["arginina", "salicilatos", "níquel", "oxalatos"], "maní": ["alérgenos", "arginina", "lectinas", "aflatoxinas"], "cacahuetes": ["alérgenos", "arginina", "lectinas", "aflatoxinas"],
77
- "pimiento": ["solaninas", "lectinas"], "berenjena": ["solaninas", "lectinas"], "patata": ["solaninas", "lectinas"],
78
- "espinaca": ["oxalatos", "histamina", "goitrógenos"],
79
- "remolacha": ["oxalatos", "fodmaps", "gos"],
80
- "champiñón": ["fodmaps", "polioles"],
81
- "espárrago": ["fodmaps", "fructanos", "purinas"],
82
- "alcachofa": ["fodmaps", "fructanos"],
83
- "plátano": ["tiramina", "histamina"],
84
- "piña": ["salicilatos", "ácidos"],
85
- "kiwi": ["salicilatos", "alérgenos"],
86
- "ciruela": ["fodmaps", "polioles"],
87
  "edulcorantes": ["polioles", "fodmaps"],
88
- "salmón": ["purinas", "histamina"],
89
- "anchoas": ["purinas", "histamina"],
90
- "quinoa": ["saponinas", "oxalatos", "fitatos"],
91
- "sésamo": ["alérgenos", "oxalatos", "fitatos"],
92
- "anacardo": ["alérgenos", "fodmaps", "gos", "fructanos", "oxalatos"],
93
- "pistacho": ["alérgenos", "fodmaps", "fructanos"],
94
  "chucrut": ["histamina", "tiramina"],
95
- "vinagre": ["histamina", "sulfitos"],
96
- "mostaza": ["salicilatos", "goitrógenos"],
97
- "calabaza": ["salicilatos"]
98
  }
99
 
100
  CONDITION_SYNONYMS = {
@@ -111,35 +135,133 @@ CONDITION_SYNONYMS = {
111
  }
112
 
113
  FOOD_NAME_TO_FOODB_KEY = {
114
- "pan": ["bread"], "pasta": ["pasta"], "galleta": ["cookie"], "pizza": ["pizza"], "cebada": ["barley"], "centeno": ["rye"],
115
- "leche": ["milk"], "queso": ["cheese"], "huevo": ["egg"], "carne": ["beef", "pork", "lamb", "meat"], "ternera": ["beef"], "cerdo": ["pork"], "cordero": ["lamb"], "pollo": ["chicken"],
116
- "manzana": ["apple"], "naranja": ["orange"], "uva": ["grape"], "plátano": ["banana"], "aguacate": ["avocado"], "limón": ["lemon"], "fresa": ["strawberry"], "pera": ["pear"], "mango": ["mango"],
117
- "tomate": ["tomato"], "patata": ["potato"], "cebolla": ["onion"], "ajo": ["garlic"], "espinaca": ["spinach"], "zanahoria": ["carrot"], "pimiento": ["bell pepper"], "brócoli": ["broccoli"],
118
- "vino": ["wine", "red wine", "white wine"], "cerveza": ["beer"], "café": ["coffee"], "chocolate": ["chocolate"], "miel": ["honey"], "té": ["tea"],
119
- "almendra": ["almond"], "nuez": ["walnut"], "cacahuete": ["peanut"], "arroz": ["rice"], "maíz": ["corn"], "lenteja": ["lentil"], "frijol": ["bean"],
120
- "pescado": ["fish"], "atún": ["tuna"], "salmón": ["salmon"], "marisco": ["shellfish"], "camarón": ["shrimp"], "sardina": ["sardine"],
121
- "coliflor": ["cauliflower"],
122
- "repollo": ["cabbage"],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  "berenjena": ["eggplant", "aubergine"],
 
124
  "calabacín": ["zucchini", "courgette"],
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  "pepino": ["cucumber"],
126
- "sandía": ["watermelon"],
127
- "cereza": ["cherry"],
 
 
 
 
 
 
 
 
 
 
128
  "arándano": ["blueberry"],
 
 
 
129
  "frambuesa": ["raspberry"],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  "piña": ["pineapple"],
131
- "kiwi": ["kiwifruit"],
132
- "champiñón": ["mushroom"],
133
- "garbanzo": ["chickpea"],
134
- "soja": ["soy", "soybean"],
135
- "quinoa": ["quinoa"],
136
- "avena": ["oat", "oats"],
 
 
 
 
 
 
 
 
 
137
  "pavo": ["turkey"],
138
- "aceituna": ["olive"],
 
 
 
 
 
 
 
 
139
  "anacardo": ["cashew"],
140
- "pistacho": ["pistachio"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  }
142
 
 
143
  # --- LÓGICA DE BÚSQUEDA Y ANÁLISIS ---
144
  # (Todas las funciones auxiliares se mantienen igual que en la versión anterior)
145
  def sanitize_text(text):
 
63
 
64
  # --- DICCIONARIOS DE MAPEADO (EXPANDIDOS Y CORREGIDOS) ---
65
  FOOD_TO_COMPOUND_MAP = {
66
+ # --- CEREALES Y GRANOS ---
67
+ "pan": ["gluten"], "trigo": ["gluten"], "harina": ["gluten"], "cebada": ["gluten"], "centeno": ["gluten"], "pasta": ["gluten"], "galletas": ["gluten"], "pizza": ["gluten"], "torta": ["gluten"], "pastel": ["gluten"], "avena": ["gluten"], # Avena es sensible para celíacos por contaminación cruzada y avenina
68
+ "maíz": ["lectinas", "aflatoxinas"], "arroz": ["lectinas"], "quinoa": ["saponinas", "oxalatos", "fitatos"], "trigo sarraceno": ["oxalatos"], "alforfón": ["oxalatos"],
69
+
70
+ # --- LÁCTEOS Y DERIVADOS ---
71
  "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"],
72
+
73
+ # --- VEGETALES ---
74
+ "tomate": ["histamina", "solaninas", "lectinas"], "pimiento": ["solaninas", "lectinas", "capsaicina"], "berenjena": ["solaninas", "lectinas", "histamina"], "patata": ["solaninas", "lectinas"],
75
+ "cebolla": ["fodmaps", "fructanos"], "ajo": ["fodmaps", "fructanos"],
76
+ "brócoli": ["salicilatos", "goitrógenos", "fodmaps", "fructanos"], "coliflor": ["goitrógenos", "fodmaps", "polioles"], "repollo": ["goitrógenos", "fodmaps", "fructanos"], "col": ["goitrógenos", "fodmaps", "fructanos"],
77
+ "espinaca": ["oxalatos", "histamina", "goitrógenos"], "acelga": ["oxalatos"], "remolacha": ["oxalatos", "fodmaps", "gos"],
78
+ "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"],
79
+ "soja": ["alérgenos", "fitatos", "goitrógenos", "lectinas"], "soya": ["alérgenos", "fitatos", "goitrógenos", "lectinas"], "tofu": ["fitatos", "goitrógenos", "lectinas"], "edamame": ["fitatos", "goitrógenos", "lectinas"],
80
+ "aguacate": ["fodmaps", "polioles", "histamina"],
81
+ "calabaza": ["salicilatos", "oxalatos", "lectinas", "fodmaps", "fructanos", "gos", "polioles"], "calabacín": ["lectinas", "fodmaps", "fructanos"],
82
+ "champiñón": ["fodmaps", "polioles"], "setas": ["fodmaps", "polioles"],
83
+ "espárrago": ["fodmaps", "fructanos", "purinas"], "alcachofa": ["fodmaps", "fructanos"],
84
+ "pepino": ["lectinas"], "zanahoria": ["salicilatos"], "apio": ["fodmaps", "polioles"],
85
+
86
+ # --- FRUTAS ---
87
+ "manzana": ["salicilatos", "fructosa", "fodmaps", "polioles"], "pera": ["fructosa", "fodmaps", "polioles"], "mango": ["fructosa", "fodmaps"], "cereza": ["fructosa", "salicilatos", "fodmaps", "polioles"], "sandía": ["fructosa", "fodmaps"],
88
+ "uvas": ["salicilatos", "fructosa"], "pasas": ["salicilatos", "fructosa", "histamina"], "dátil": ["fructosa", "fodmaps", "fructanos"], "higo": ["fructosa", "fodmaps", "fructanos"],
89
+ "naranja": ["salicilatos", "ácidos"], "limón": ["salicilatos", "ácidos"], "pomelo": ["salicilatos", "ácidos"], "mandarina": ["salicilatos", "ácidos"],
90
+ "fresa": ["salicilatos", "histamina"], "arándano": ["salicilatos"], "frambuesa": ["salicilatos"], "mora": ["salicilatos"],
91
+ "plátano": ["tiramina", "histamina"], "piña": ["salicilatos", "ácidos", "histamina"], "kiwi": ["salicilatos", "alérgenos", "histamina"],
92
+ "ciruela": ["fodmaps", "polioles"], "melocotón": ["fodmaps", "polioles"], "albaricoque": ["fodmaps", "polioles"], "nectarina": ["fodmaps", "polioles"],
93
+ "melón": ["fructosa", "fodmaps"], "papaya": ["histamina"],
94
+
95
+ # --- PROTEÍNAS (CARNES, PESCADOS, HUEVOS) ---
96
+ "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"],
97
+ "pollo": ["purinas"], "pavo": ["purinas"],
98
+ "huevo": ["alérgenos"],
99
+ "pescado": ["histamina", "purinas"], "pescado enlatado": ["histamina"], "atún en lata": ["histamina"], "salmón": ["purinas", "histamina"], "sardinas": ["histamina", "purinas"], "anchoas": ["purinas", "histamina"],
100
+ "mariscos": ["purinas", "sulfitos", "alérgenos", "yodo", "níquel"], "camarón": ["alérgenos", "yodo"], "gamba": ["alérgenos", "yodo"],
101
+
102
+ # --- FRUTOS SECOS Y SEMILLAS ---
103
+ "nueces": ["arginina", "salicilatos", "níquel", "oxalatos", "fitatos"], "almendras": ["salicilatos", "arginina", "oxalatos", "fitatos"],
104
+ "maní": ["alérgenos", "arginina", "lectinas", "aflatoxinas"], "cacahuetes": ["alérgenos", "arginina", "lectinas", "aflatoxinas"],
105
+ "anacardo": ["alérgenos", "fodmaps", "gos", "fructanos", "oxalatos"], "pistacho": ["alérgenos", "fodmaps", "fructanos"],
106
+ "avellana": ["alérgenos", "oxalatos", "fitatos"],
107
+ "sésamo": ["alérgenos", "oxalatos", "fitatos"], "chía": ["fitatos", "oxalatos"], "lino": ["fitatos"],
108
+
109
+ # --- BEBIDAS Y DULCES ---
110
+ "café": ["cafeína", "ácidos"], "té": ["cafeína", "taninos", "oxalatos"],
111
+ "cerveza": ["gluten", "histamina", "tiramina", "purinas"], "vino": ["histamina", "tiramina", "sulfitos"], "vino tinto": ["histamina", "tiramina", "sulfitos"], "vino rojo": ["histamina", "tiramina", "sulfitos"],
112
+ "chocolate": ["cafeína", "tiramina", "níquel", "arginina", "oxalatos"],
113
  "azucar": ["azúcar", "fructosa"], "dulces": ["azúcar"], "refrescos": ["azúcar", "fructosa"], "gaseosas": ["azúcar", "fructosa"], "miel": ["fructosa", "fodmaps"], "jarabe de maiz": ["fructosa"],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  "edulcorantes": ["polioles", "fodmaps"],
115
+
116
+ # --- OTROS Y CONDIMENTOS ---
117
+ "cúrcuma": ["salicilatos"], "jengibre": ["salicilatos"],
 
 
 
118
  "chucrut": ["histamina", "tiramina"],
119
+ "vinagre": ["histamina", "sulfitos"], "mostaza": ["salicilatos", "goitrógenos"],
120
+ "aceitunas": ["histamina", "salicilatos"],
121
+ "caldo": ["histamina", "glutamato"]
122
  }
123
 
124
  CONDITION_SYNONYMS = {
 
135
  }
136
 
137
  FOOD_NAME_TO_FOODB_KEY = {
138
+ # --- CEREALES Y GRANOS ---
139
+ "alforfón": ["buckwheat"],
140
+ "arroz": ["rice"],
141
+ "avena": ["oat", "oats"],
142
+ "cebada": ["barley"],
143
+ "centeno": ["rye"],
144
+ "galleta": ["cookie", "biscuit"],
145
+ "maíz": ["corn", "maize"],
146
+ "pan": ["bread"],
147
+ "pasta": ["pasta"],
148
+ "pizza": ["pizza"],
149
+ "quinoa": ["quinoa"],
150
+ "trigo": ["wheat"],
151
+ "trigo sarraceno": ["buckwheat"],
152
+
153
+ # --- LÁCTEOS Y DERIVADOS ---
154
+ "crema": ["cream"],
155
+ "helado": ["ice cream"],
156
+ "leche": ["milk"],
157
+ "mantequilla": ["butter"],
158
+ "queso": ["cheese"],
159
+ "yogur": ["yogurt", "yoghurt"],
160
+
161
+ # --- VEGETALES ---
162
+ "acelga": ["chard", "swiss chard"],
163
+ "ajo": ["garlic"],
164
+ "alcachofa": ["artichoke"],
165
+ "apio": ["celery"],
166
  "berenjena": ["eggplant", "aubergine"],
167
+ "brócoli": ["broccoli"],
168
  "calabacín": ["zucchini", "courgette"],
169
+ "calabaza": ["pumpkin", "squash"],
170
+ "cebolla": ["onion"],
171
+ "champiñón": ["mushroom"],
172
+ "col": ["cabbage"],
173
+ "coliflor": ["cauliflower"],
174
+ "edamame": ["edamame"],
175
+ "espárrago": ["asparagus"],
176
+ "espinaca": ["spinach"],
177
+ "garbanzo": ["chickpea"],
178
+ "guisante": ["pea", "peas"],
179
+ "frijol": ["bean", "beans"],
180
+ "lenteja": ["lentil"],
181
+ "patata": ["potato"],
182
  "pepino": ["cucumber"],
183
+ "pimiento": ["bell pepper", "pepper"],
184
+ "remolacha": ["beet", "beetroot"],
185
+ "repollo": ["cabbage"],
186
+ "seta": ["mushroom"],
187
+ "soja": ["soy", "soybean"],
188
+ "tofu": ["tofu"],
189
+ "tomate": ["tomato"],
190
+ "zanahoria": ["carrot"],
191
+
192
+ # --- FRUTAS ---
193
+ "aguacate": ["avocado"],
194
+ "albaricoque": ["apricot"],
195
  "arándano": ["blueberry"],
196
+ "cereza": ["cherry"],
197
+ "ciruela": ["plum"],
198
+ "dátil": ["date"],
199
  "frambuesa": ["raspberry"],
200
+ "fresa": ["strawberry"],
201
+ "higo": ["fig"],
202
+ "kiwi": ["kiwi", "kiwifruit"],
203
+ "limón": ["lemon"],
204
+ "mandarina": ["tangerine", "mandarin"],
205
+ "mango": ["mango"],
206
+ "manzana": ["apple"],
207
+ "melocotón": ["peach"],
208
+ "melón": ["melon", "cantaloupe"],
209
+ "mora": ["blackberry"],
210
+ "naranja": ["orange"],
211
+ "nectarina": ["nectarine"],
212
+ "papaya": ["papaya"],
213
+ "pera": ["pear"],
214
  "piña": ["pineapple"],
215
+ "plátano": ["banana"],
216
+ "pomelo": ["grapefruit"],
217
+ "sandía": ["watermelon"],
218
+ "uva": ["grape"],
219
+
220
+ # --- PROTEÍNAS (CARNES, PESCADOS, HUEVOS) ---
221
+ "anchoa": ["anchovy", "anchovies"],
222
+ "atún": ["tuna"],
223
+ "camarón": ["shrimp", "prawn"],
224
+ "carne": ["meat", "beef", "pork", "lamb"],
225
+ "cerdo": ["pork"],
226
+ "cordero": ["lamb"],
227
+ "gamba": ["shrimp", "prawn"],
228
+ "huevo": ["egg"],
229
+ "marisco": ["shellfish", "seafood"],
230
  "pavo": ["turkey"],
231
+ "pescado": ["fish"],
232
+ "pollo": ["chicken"],
233
+ "salchicha": ["sausage"],
234
+ "salmón": ["salmon"],
235
+ "sardina": ["sardine"],
236
+ "ternera": ["beef", "veal"],
237
+
238
+ # --- FRUTOS SECOS Y SEMILLAS ---
239
+ "almendra": ["almond"],
240
  "anacardo": ["cashew"],
241
+ "avellana": ["hazelnut"],
242
+ "cacahuete": ["peanut"],
243
+ "chía": ["chia", "chia seed"],
244
+ "lino": ["flax", "flaxseed", "linseed"],
245
+ "nuez": ["walnut"],
246
+ "pistacho": ["pistachio"],
247
+ "sésamo": ["sesame", "sesame seed"],
248
+
249
+ # --- BEBIDAS, DULCES Y CONDIMENTOS ---
250
+ "aceituna": ["olive"],
251
+ "café": ["coffee"],
252
+ "caldo": ["broth", "stock"],
253
+ "cerveza": ["beer"],
254
+ "chocolate": ["chocolate"],
255
+ "jengibre": ["ginger"],
256
+ "cúrcuma": ["turmeric"],
257
+ "miel": ["honey"],
258
+ "mostaza": ["mustard"],
259
+ "té": ["tea"],
260
+ "vinagre": ["vinegar"],
261
+ "vino": ["wine", "red wine", "white wine"]
262
  }
263
 
264
+
265
  # --- LÓGICA DE BÚSQUEDA Y ANÁLISIS ---
266
  # (Todas las funciones auxiliares se mantienen igual que en la versión anterior)
267
  def sanitize_text(text):