update
This commit is contained in:
@@ -106,7 +106,7 @@ def _nummerierte_abschnitte(p: str) -> dict[int, str]:
|
||||
def _recherche_plan(p: str) -> str:
|
||||
runde = re.search(r"\(Runde (\d+)\)", p)
|
||||
r = runde.group(1) if runde else "1"
|
||||
m = re.search(r"BLICKWINKEL:\n(.*?)\n\nBereits", p, re.DOTALL)
|
||||
m = re.search(r"BLICKWINKEL:\n(.*?)\n\nBISHERIGE", p, re.DOTALL)
|
||||
lenses = re.findall(r"^- (\w+)$", m.group(1) if m else "", re.MULTILINE)
|
||||
return "\n".join(f"===QUERY===\nLENS: {l}\nTEXT: thema {l} r{r} nr{i}"
|
||||
for l in (lenses or ["x"]) for i in (1, 2))
|
||||
@@ -150,13 +150,13 @@ def _atom_extraktion(p: str) -> str:
|
||||
|
||||
|
||||
def _anker_fix(p: str) -> str:
|
||||
return "\n".join(f"===FIX===\nID: {i}\nZITAT: VERWERFEN"
|
||||
return "\n".join(f"===FIX===\nID: {i}\nZITAT: KEINER"
|
||||
for i, _ in _ids_liste(_abschnitt(p, "ATOME")))
|
||||
|
||||
|
||||
def _dedup_urteil(p: str) -> str:
|
||||
out = []
|
||||
for m in re.finditer(r"PAAR (\d+):\nA\[\d+\] ([^:]+):.*?\nB\[\d+\] ([^:]+):",
|
||||
for m in re.finditer(r"PAAR (\d+):\nA: \[\d+\] ([^:]+):.*?\nB: \[\d+\] ([^:]+):",
|
||||
p, re.DOTALL):
|
||||
nr, ta, tb = m.group(1), m.group(2).strip(), m.group(3).strip()
|
||||
paar = frozenset({ta, tb})
|
||||
@@ -189,7 +189,7 @@ def _luecke_nachextraktion(p: str) -> str:
|
||||
out.append(f"===ATOM===\nSOLL: {sid}\nTITEL: {t}\nTYP: {typ}\n"
|
||||
f"DEFINITION: {d}\nZITAT: {s}")
|
||||
else:
|
||||
out.append(f"===NICHTS===\nSOLL: {sid}")
|
||||
out.append(f"===LEER===\nSOLL: {sid}")
|
||||
return "\n".join(out)
|
||||
|
||||
|
||||
@@ -217,7 +217,7 @@ def _lernziele(p: str) -> str:
|
||||
|
||||
|
||||
def _bausteine(p: str) -> str:
|
||||
ids = [str(i) for i, _ in _ids_liste(_abschnitt(p, "ATOME (in Quellreihenfolge)"))]
|
||||
ids = [str(i) for i, _ in _ids_liste(_abschnitt(p, "ATOME"))]
|
||||
return f"===BAUSTEIN===\nTITEL: Baustein\nATOME: {','.join(ids)}"
|
||||
|
||||
|
||||
@@ -234,7 +234,7 @@ def _themen_schnitt(p: str) -> str:
|
||||
|
||||
|
||||
def _ordnung(p: str) -> str:
|
||||
prior = re.search(r"übernehmen\): ([\d,]+)", p)
|
||||
prior = re.search(r"^PRIOR: ([\d,]+)$", p, re.MULTILINE)
|
||||
return f"===ORDNUNG===\nIDS: {prior.group(1) if prior else ''}"
|
||||
|
||||
|
||||
@@ -251,15 +251,15 @@ def _writer(p: str) -> str:
|
||||
|
||||
|
||||
def _kapitel_intro(p: str) -> str:
|
||||
kap = re.search(r"Kapitel „(.+?)\"", p)
|
||||
kap = re.search(r"^KAPITEL: (.+)$", p, re.MULTILINE)
|
||||
return (f"===INTRO===\nDieses Kapitel behandelt {kap.group(1) if kap else 'X'}. "
|
||||
"Es baut auf dem bisher Gelernten auf.")
|
||||
|
||||
|
||||
def _guide_pruefung(p: str) -> str:
|
||||
ids = re.findall(r"^=== SECTION (\d+) ===$", p, re.MULTILINE)
|
||||
return "\n".join(f"===OK===\nSECTION: {i}"
|
||||
for i in dict.fromkeys(ids)) or "===OK===\nSECTION: 0"
|
||||
return "\n".join(f"===LEER===\nSECTION: {i}"
|
||||
for i in dict.fromkeys(ids)) or "===LEER===\nSECTION: 0"
|
||||
|
||||
|
||||
def _guide_fix(p: str) -> str:
|
||||
@@ -273,7 +273,7 @@ def _guide_fix(p: str) -> str:
|
||||
|
||||
def _redundanz_urteil(p: str) -> str:
|
||||
out = []
|
||||
for m in re.finditer(r"PAAR (\d+):\nKapitel A: (.*)\nKapitel B: (.*)", p):
|
||||
for m in re.finditer(r"PAAR (\d+):\nA: (.*)\nB: (.*)", p):
|
||||
redundant = "Fehler lassen sich nie ganz vermeiden" in m.group(2)
|
||||
out.append(f"===URTEIL===\nPAAR: {m.group(1)}\n"
|
||||
f"URTEIL: {'redundant' if redundant else 'didaktisch_gewollt'}")
|
||||
@@ -284,9 +284,10 @@ _HANDLER = {
|
||||
"recherche-plan": _recherche_plan,
|
||||
"soll-extraktion": _soll_extraktion,
|
||||
"soll-konsens": _soll_konsens,
|
||||
"soll-beleg": lambda p: "===BELEG===\nID: 0\nBELEG: KEIN BELEG",
|
||||
"quellen-relevanz": lambda p: "===RELEVANT===\nIDS: " + ",".join(
|
||||
m for m in re.findall(r"^\[(\d+)\]", p, re.MULTILINE)),
|
||||
"quellen-urteil": lambda p: ("===URTEIL===\nNUETZLICH: nein\nGRUND: Werbung"
|
||||
if "Werbeliste" in p else
|
||||
"===URTEIL===\nNUETZLICH: ja\nGRUND: lehrt"),
|
||||
"lektorat": lambda p: "===LEER===\nOK: ja",
|
||||
"atom-extraktion": _atom_extraktion,
|
||||
"anker-fix": _anker_fix,
|
||||
"dedup-urteil": _dedup_urteil,
|
||||
|
||||
Reference in New Issue
Block a user