fccoelho commited on
Commit
ce1d11e
·
1 Parent(s): fc7ec2a

refactor: remover validações e filtros redundantes na extração de referências

Browse files
Files changed (1) hide show
  1. app.py +2 -24
app.py CHANGED
@@ -170,14 +170,7 @@ def extract_references_with_regex(text):
170
  journal = groups[3].strip()
171
  volume = ""
172
 
173
- # Validações adicionais
174
- # Verificar se tem pelo menos um autor válido
175
- if not re.search(r'[A-Z][a-z]+', authors):
176
- continue
177
 
178
- # Verificar se o título não é muito curto
179
- if len(title) < 10:
180
- continue
181
 
182
  # Verificar se não é uma linha de cabeçalho ou rodapé
183
  if re.search(r'(page|vol|volume|number|issue)\s*\d+', journal, re.IGNORECASE):
@@ -214,22 +207,7 @@ def extract_references_with_regex(text):
214
 
215
  references.append(reference)
216
 
217
- # Remover duplicatas baseadas no título e ano
218
- seen_refs = set()
219
- unique_references = []
220
-
221
- for ref in references:
222
- # Criar chave única baseada em título e ano
223
- key = (ref["title"].lower().strip()[:50], ref["year"])
224
-
225
- if key not in seen_refs:
226
- seen_refs.add(key)
227
- unique_references.append(ref)
228
-
229
- # Ordenar por ano (mais recente primeiro)
230
- unique_references.sort(key=lambda x: x.get("year", "0"), reverse=True)
231
-
232
- return unique_references[:100] # Limitar a 100 referências
233
 
234
  except Exception as e:
235
  return [{"error": f"Erro na extração por regex: {str(e)}"}]
@@ -243,7 +221,7 @@ def create_highlighted_text(text, regex_references):
243
 
244
  # Padrões para destacar (mesmos da extração)
245
  patterns = [
246
- r'^\d+\.\s*([A-Z][A-Za-z\s,&.-]*?et\s+al\.?|[A-Z][A-Za-z\s,&.-]+?)\.\s*([^.]+?)\.\s*([^.]+?)\s+(\d+),?\s*[\d–-]+\s*\((\d{4})\)\.',
247
  r'^([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
248
  r'^\[\d+\]\s*([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
249
  r'^([A-Z][A-Za-z\s,&.-]+?)\s+\((\d{4}[a-z]?)\)[.,]\s*([^.]+?)[.,]\s*([^.]+?)\.?\s*$',
 
170
  journal = groups[3].strip()
171
  volume = ""
172
 
 
 
 
 
173
 
 
 
 
174
 
175
  # Verificar se não é uma linha de cabeçalho ou rodapé
176
  if re.search(r'(page|vol|volume|number|issue)\s*\d+', journal, re.IGNORECASE):
 
207
 
208
  references.append(reference)
209
 
210
+ return references
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
211
 
212
  except Exception as e:
213
  return [{"error": f"Erro na extração por regex: {str(e)}"}]
 
221
 
222
  # Padrões para destacar (mesmos da extração)
223
  patterns = [
224
+ r'^\d+\.\s*([A-Z][A-Za-z\s,&.-]*?(et\s+al\.)*?|[A-Z][A-Za-z\s,&.-:\d\?]+?\(\);)\.\s*([^.]+?)\.\s*([^.]+?)\s+(\d+),?\s*[\d–-]+\s*\((\d{4})\)\.\s*$',
225
  r'^([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
226
  r'^\[\d+\]\s*([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
227
  r'^([A-Z][A-Za-z\s,&.-]+?)\s+\((\d{4}[a-z]?)\)[.,]\s*([^.]+?)[.,]\s*([^.]+?)\.?\s*$',