Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -363,6 +363,10 @@ def extract_speed_from_text(full_text: str):
|
|
| 363 |
if not full_text:
|
| 364 |
return np.nan
|
| 365 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 366 |
patterns = [
|
| 367 |
r"VMA\s*(\d+(?:[.,]\d+)?)\s*kmh",
|
| 368 |
r"VMA\s*(\d+(?:[.,]\d+)?)\s*km/h",
|
|
@@ -371,10 +375,20 @@ def extract_speed_from_text(full_text: str):
|
|
| 371 |
]
|
| 372 |
|
| 373 |
for pattern in patterns:
|
| 374 |
-
m = re.search(pattern,
|
| 375 |
if m:
|
| 376 |
return float(m.group(1).replace(",", "."))
|
| 377 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 378 |
return np.nan
|
| 379 |
|
| 380 |
def parse_zebris_pdf(uploaded_pdf):
|
|
|
|
| 363 |
if not full_text:
|
| 364 |
return np.nan
|
| 365 |
|
| 366 |
+
text = full_text.replace("\xa0", " ")
|
| 367 |
+
text = re.sub(r"\s+", " ", text)
|
| 368 |
+
|
| 369 |
+
# Cas propres
|
| 370 |
patterns = [
|
| 371 |
r"VMA\s*(\d+(?:[.,]\d+)?)\s*kmh",
|
| 372 |
r"VMA\s*(\d+(?:[.,]\d+)?)\s*km/h",
|
|
|
|
| 375 |
]
|
| 376 |
|
| 377 |
for pattern in patterns:
|
| 378 |
+
m = re.search(pattern, text, flags=re.I)
|
| 379 |
if m:
|
| 380 |
return float(m.group(1).replace(",", "."))
|
| 381 |
|
| 382 |
+
# Cas OCR cassé observé : "A Mmh14Vk"
|
| 383 |
+
m = re.search(r"Mmh\s*(\d+(?:[.,]\d+)?)\s*Vk", text, flags=re.I)
|
| 384 |
+
if m:
|
| 385 |
+
return float(m.group(1).replace(",", "."))
|
| 386 |
+
|
| 387 |
+
# Variante encore plus souple
|
| 388 |
+
m = re.search(r"[Mm]\w{0,3}\s*(\d+(?:[.,]\d+)?)\s*[Vv][Kk]", text)
|
| 389 |
+
if m:
|
| 390 |
+
return float(m.group(1).replace(",", "."))
|
| 391 |
+
|
| 392 |
return np.nan
|
| 393 |
|
| 394 |
def parse_zebris_pdf(uploaded_pdf):
|