Skip to main content

A fundamental sentence splitter based on spacy.

Project description

Fun Sentence Splitter

A fundamental sentence splitter based on spacy.

Usage

from fun_sentence_splitter import init

splitter = init(spacy_model="de_core_news_sm")

for sentence in splitter("Das ist ein Satz. Und hier noch einer!"):
    print(sentence.text, sentence.span)

init(...) returns a splitter function. Each Sentence exposes .text and .span (a (start, end) index pair into the original text).

Split on line breaks first (e.g. for structured documents) and only run spaCy on longer lines:

splitter = init(
    spacy_model="de_core_news_sm",
    always_split_on_line_breaks=True,
    max_len_before_split=100,
)

Download the language model once: uv run python -m spacy download de_core_news_sm

Requirements

uv.

Local Dev Setup

Install dependencies and download the Spacy language model used in the tests:

uv sync
uv run python -m spacy download de_core_news_sm

Run static checks and tests:

uv run ruff check .
uv run mypy .
uv run pytest --cov=fun_sentence_splitter

Run Evaluation

./evaluate.sh path/to/splits_dir

path/to/splits_dir: directory containing pairs of *.split and *.txt files. .split files contain the expected sentences, each on a separate line. .txt files contain the original text to split.

The evaluation script will automatically update the spacy dependency and download the required language models.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fun_sentence_splitter-0.6.3814.20260724.tar.gz (59.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file fun_sentence_splitter-0.6.3814.20260724.tar.gz.

File metadata

  • Download URL: fun_sentence_splitter-0.6.3814.20260724.tar.gz
  • Upload date:
  • Size: 59.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fun_sentence_splitter-0.6.3814.20260724.tar.gz
Algorithm Hash digest
SHA256 fb2036367cffac3462b2fe152cfed0c7cb715738be220e6332721dbebd7aa7e8
MD5 5cafacbbca03c9a454b60d65df012fb4
BLAKE2b-256 12f2b890ae19987fe584da2e0a2c126918c3a505786408057d6ae9f84f6d2aff

See more details on using hashes here.

File details

Details for the file fun_sentence_splitter-0.6.3814.20260724-py3-none-any.whl.

File metadata

  • Download URL: fun_sentence_splitter-0.6.3814.20260724-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fun_sentence_splitter-0.6.3814.20260724-py3-none-any.whl
Algorithm Hash digest
SHA256 c6a403cef0663196e5f5876c8f3ca768b5a0a80a5010e87a0135ca6953f4703a
MD5 4379892356f5c6f6880809479db45522
BLAKE2b-256 1fcc8d1caa56b61edaf39a976a9c6632363086f4038bdf77e8c4e8f18303e00a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page