fschwartzer commited on
Commit
3992853
1 Parent(s): 78ac961

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -0
app.py CHANGED
@@ -2,6 +2,7 @@ import gradio as gr
2
  import requests
3
  import pandas as pd
4
  from difflib import get_close_matches
 
5
 
6
  def fetch_data_to_dataframe(query, limit=50, source="mercadolibre"):
7
  if source == "mercadolibre":
@@ -18,6 +19,14 @@ def fetch_data_to_dataframe(query, limit=50, source="mercadolibre"):
18
  return df
19
  return pd.DataFrame()
20
 
 
 
 
 
 
 
 
 
21
  def filtrar_itens_similares(df, termo_pesquisa, limite=5):
22
  titulos = df['Title'].tolist()
23
  titulos_similares = get_close_matches(termo_pesquisa, titulos, n=limite, cutoff=0.1)
@@ -29,6 +38,7 @@ def integrated_app(query):
29
  if df.empty:
30
  return "Nenhum dado encontrado. Tente uma consulta diferente.", pd.DataFrame()
31
 
 
32
  df_similares = filtrar_itens_similares(df, query)
33
  if df_similares.empty:
34
  return "Nenhum item similar encontrado.", pd.DataFrame()
 
2
  import requests
3
  import pandas as pd
4
  from difflib import get_close_matches
5
+ import re # Importa o módulo de expressões regulares
6
 
7
  def fetch_data_to_dataframe(query, limit=50, source="mercadolibre"):
8
  if source == "mercadolibre":
 
19
  return df
20
  return pd.DataFrame()
21
 
22
+ def refinar_resultados(df):
23
+ # Filtra itens que não contêm "kit" no título e não indicam múltiplas unidades
24
+ df_refinado = df[~df['Title'].str.contains("kit", case=False)]
25
+ # Expressão regular para identificar números seguidos por palavras relacionadas a quantidade
26
+ padrao_unidades = r'\b(\d+)\s*(unidade|unidades|pacote|pacotes|caixa|caixas)\b'
27
+ df_refinado = df_refinado[~df_refinado['Title'].str.contains(padrao_unidades, case=False, regex=True)]
28
+ return df_refinado
29
+
30
  def filtrar_itens_similares(df, termo_pesquisa, limite=5):
31
  titulos = df['Title'].tolist()
32
  titulos_similares = get_close_matches(termo_pesquisa, titulos, n=limite, cutoff=0.1)
 
38
  if df.empty:
39
  return "Nenhum dado encontrado. Tente uma consulta diferente.", pd.DataFrame()
40
 
41
+ df = refinar_resultados(df) # Chama a função de refinamento
42
  df_similares = filtrar_itens_similares(df, query)
43
  if df_similares.empty:
44
  return "Nenhum item similar encontrado.", pd.DataFrame()