Filter sentence completeness before changing case or punctuation

This commit is contained in:
Andras Schmelczer 2026-10-27 20:03:16 +00:00
commit 4b156e1286
2 changed files with 15 additions and 3 deletions

View file

@ -55,14 +55,16 @@ def get_sentences(
return sentence.strip()
sentences = [
process(tokenizer.to_text(sentence)) for sentence in segment(token_stream)
tokenizer.to_text(sentence).strip() for sentence in segment(token_stream)
]
if ignore_partial:
sentences = [
sentence
for sentence in sentences
if sentence[0].isupper() and sentence[-1] in sentence_ending_punctuations
if sentence
and sentence[0].isupper()
and sentence[-1] in sentence_ending_punctuations
]
return sentences
return [process(sentence) for sentence in sentences]

View file

@ -57,3 +57,13 @@ def test_empty() -> None:
assert get_sentences("", ignore_partial=True) == []
assert get_sentences("", true_case=True) == []
assert get_sentences("", remove_punctuation=True) == []
def test_completeness_is_checked_before_optional_transformations() -> None:
assert get_sentences("Hello world.", ignore_partial=True, true_case=True) == [
"hello world."
]
assert get_sentences(
"Hello world.", ignore_partial=True, remove_punctuation=True
) == ["Hello world"]
assert get_sentences("...", ignore_partial=True, remove_punctuation=True) == []