feat: Abkürzungen und Ordnungszahlen beenden keinen Satz
„z. B.“, „d. h.“, „Dr.“, „bzw.“, „ca.“, „e.g.“ und Ordnungszahlen wie „2. Weltkrieg“ oder „am 24.“ gelten bei Satz-, Abschnitts- und Absatzgrenzen nicht mehr als Satzende; „usw.“, „etc.“ und Jahreszahlen weiterhin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
82ce30ca72
commit
f1d2e201df
1 changed files with 46 additions and 6 deletions
|
|
@ -207,6 +207,27 @@ def test_split_sentences_keeps_closing_quotes():
|
|||
assert " ".join(sentences) == text
|
||||
|
||||
|
||||
@pytest.mark.parametrize("text, expected", [
|
||||
("Das gilt z. B. hier. Gut.", ["Das gilt z. B. hier.", "Gut."]),
|
||||
("Das heißt, d. h. nicht. Gut.", ["Das heißt, d. h. nicht.", "Gut."]),
|
||||
("Dr. Müller und Prof. Meier kamen. Gut.", ["Dr. Müller und Prof. Meier kamen.", "Gut."]),
|
||||
("Im 2. Weltkrieg am 3. Oktober. Gut.", ["Im 2. Weltkrieg am 3. Oktober.", "Gut."]),
|
||||
("Das war 1982. Dann kam 1983.", ["Das war 1982.", "Dann kam 1983."]),
|
||||
("Fruit, e.g. apples. And Mr. Smith.", ["Fruit, e.g. apples.", "And Mr. Smith."]),
|
||||
("Äpfel, Birnen usw. Dann mehr.", ["Äpfel, Birnen usw.", "Dann mehr."]),
|
||||
])
|
||||
def test_split_sentences_abbreviations(text, expected):
|
||||
sentences = ak.split_sentences(text)
|
||||
assert sentences == expected
|
||||
assert " ".join(sentences) == text
|
||||
|
||||
|
||||
def test_split_chunks_does_not_end_at_abbreviation(monkeypatch):
|
||||
monkeypatch.setattr(ak, "CHUNK_SIZE", 3)
|
||||
chunks = ak.split_chunks("Eins zwei z. B. drei. Vier fünf sechs.")
|
||||
assert chunks == ["Eins zwei z. B. drei. ", "Vier fünf sechs."]
|
||||
|
||||
|
||||
def test_group_paragraphs():
|
||||
assert ak.group_paragraphs(7, {3, 6}) == [(1, 2), (3, 5), (6, 7)]
|
||||
assert ak.group_paragraphs(3, set()) == [(1, 3)]
|
||||
|
|
|
|||
Loading…
Reference in a new issue