Spaces:
Building
Building
File size: 1,614 Bytes
08b3daf | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | import re
from typing import Any
from .text_utils import get_pages_by_type, normalize_text
def extract_procedures(pages: list[dict[str, Any]]) -> list[dict[str, Any]]:
procedures = []
procedure_types = [
"ktx_admission_procedure",
"faculty_student_services",
]
for content_type in procedure_types:
related_pages = get_pages_by_type(pages, content_type)
if not related_pages:
continue
full_text = "\n\n".join(
normalize_text(page.get("text", "")) for page in related_pages
)
source_pages = [page["page_number"] for page in related_pages]
if content_type == "ktx_admission_procedure":
procedure_name = "Quy trình xét sinh viên vào ở Ký túc xá"
else:
procedure_name = "Một số công việc của các khoa liên quan đến sinh viên"
steps_detected = []
for line in full_text.splitlines():
line = line.strip()
if (
re.match(r"^\d+\.", line)
or line.startswith("-")
or line.startswith("–")
):
steps_detected.append(line)
procedures.append(
{
"procedure_id": content_type,
"procedure_name": procedure_name,
"content_type": content_type,
"source_pages": source_pages,
"steps_detected": steps_detected,
"raw_text": full_text,
"review_status": "auto_extracted",
}
)
return procedures
|