Spaces:
Sleeping
Sleeping
Commit
·
b4139b2
1
Parent(s):
9c70697
refactor: atualizar padrão regex para capturar referências numeradas com múltiplos autores
Browse files
app.py
CHANGED
|
@@ -127,8 +127,8 @@ def extract_references_with_regex(text):
|
|
| 127 |
|
| 128 |
# Padrões melhorados para extrair referências individuais
|
| 129 |
patterns = [
|
| 130 |
-
# Padrão 0
|
| 131 |
-
|
| 132 |
|
| 133 |
# Padrão 1: Autor(es). (Ano). Título. Journal/Editora.
|
| 134 |
r'^([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
|
|
@@ -165,9 +165,9 @@ def extract_references_with_regex(text):
|
|
| 165 |
if len(groups) == 6:
|
| 166 |
title = groups[1].strip()
|
| 167 |
journal = groups[2].strip()
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
else:
|
| 172 |
# Para outros padrões (4 grupos)
|
| 173 |
year = groups[1].strip()
|
|
@@ -221,7 +221,7 @@ def create_highlighted_text(text, regex_references):
|
|
| 221 |
|
| 222 |
# Padrões para destacar (mesmos da extração)
|
| 223 |
patterns = [
|
| 224 |
-
r'^\d+\.\s*([A-Za-z\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*$',
|
|
|
|
| 127 |
|
| 128 |
# Padrões melhorados para extrair referências individuais
|
| 129 |
patterns = [
|
| 130 |
+
# Padrão 0: Referências numeradas com autores múltiplos (formato: Número. Autores. Título. Journal info (ano).)
|
| 131 |
+
r'^\d+\.\s*([A-Z][A-Za-z\s,&.-]+?(?:\s&\s[A-Z][A-Za-z\s,&.-]+?)*)\.\s*([^.]+?)\.\s*([^.]+?)\s+(\d+),?\s*([^(]*?)\s*\((\d{4})\)',
|
| 132 |
|
| 133 |
# Padrão 1: Autor(es). (Ano). Título. Journal/Editora.
|
| 134 |
r'^([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
|
|
|
|
| 165 |
if len(groups) == 6:
|
| 166 |
title = groups[1].strip()
|
| 167 |
journal = groups[2].strip()
|
| 168 |
+
volume = groups[3].strip()
|
| 169 |
+
pages = groups[4].strip()
|
| 170 |
+
year = groups[5].strip()
|
| 171 |
else:
|
| 172 |
# Para outros padrões (4 grupos)
|
| 173 |
year = groups[1].strip()
|
|
|
|
| 221 |
|
| 222 |
# Padrões para destacar (mesmos da extração)
|
| 223 |
patterns = [
|
| 224 |
+
r'^\d+\.\s*([A-Z][A-Za-z\s,&.-]+?(?:\s&\s[A-Z][A-Za-z\s,&.-]+?)*)\.\s*([^.]+?)\.\s*([^.]+?)\s+(\d+),?\s*([^(]*?)\s*\((\d{4})\)',
|
| 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*$',
|