Skip to main content

A text splitting tool

Project description

Tixent: A Text Splitting Tool

PyPI PyPI - Version PyPI - Python Version License

CI/CD test lint

Build System Hatch project

Code pre-commit Code style: black Imports: isort Checked with mypy Ruff

Docstrings docformatter numpy


Installation

pip install tixent

Example

Suppose we have a function template that generates a string from a list of texts. Additionally, suppose we have a large list of texts. When you apply that list of texts to the function, it generates a long string.

Tixent can split the string generated by the template function so that the return value of counter for each element is less than a certain number.

Here, counter is a function that maps a string to an integer. Examples of such functions are len, which measures the length of a string, or tiktoken_counter("text-davinci-003"), which measures the number of tokens in a string

from typing import List

from tixent import split, tiktoken_counter


def summarization_template(texts: List[str]) -> str:
    text = " ".join(texts)
    t = "Summarize the following text.\n"
    t += f'Text: """{text}"""'
    return t


texts = [
    "Lorem ipsum dolor sit amet",
    "consectetur adipiscing elit",
    "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",
    "Ut enim ad minim veniam",
    "quis nostrud exercitation ullamco laboris nisi",
    "ut aliquip ex ea commodo consequat",
    "Duis aute irure dolor in reprehenderit in voluptate velit",
    "esse cillum dolore eu fugiat nulla pariatur",
    "Excepteur sint occaecat cupidatat non proident",
    "sunt in culpa qui officia deserunt mollit anim id est laborum",
]
counter = tiktoken_counter("text-davinci-003")
max_count = 60

split_texts = split(texts, summarization_template, counter, max_count)
for text in split_texts:
    count = counter(text)
    assert count <= max_count
    print(f"count: {count}")
    print(text)
    print()
count: 60
Summarize the following text.
Text: """Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua Ut enim ad minim veniam"""

count: 58
Summarize the following text.
Text: """quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat Duis aute irure dolor in reprehenderit in voluptate velit"""

count: 43
Summarize the following text.
Text: """esse cillum dolore eu fugiat nulla pariatur Excepteur sint occaecat cupidatat non proident"""

count: 31
Summarize the following text.
Text: """sunt in culpa qui officia deserunt mollit anim id est laborum"""

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

tixent-0.0.1.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

tixent-0.0.1-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file tixent-0.0.1.tar.gz.

File metadata

  • Download URL: tixent-0.0.1.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.24.1

File hashes

Hashes for tixent-0.0.1.tar.gz
Algorithm Hash digest
SHA256 27680124536388daad8376f8025bfe51968da4323c368410f6af51e9392ce709
MD5 dad3f781b4786c0b1e16a56ea3efad3e
BLAKE2b-256 e9ca627fe7335636fbb337207fd67c77146cd52393efbb2d48799cf7f6799f09

See more details on using hashes here.

File details

Details for the file tixent-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: tixent-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.24.1

File hashes

Hashes for tixent-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 56438989c746e238d181bffbb2dd704d4bce109f509b9d11edab33a5eb1e2f8c
MD5 02e0670386500e03def2cc698f559d68
BLAKE2b-256 3df87fe2a88a586305a41fbac02883c00094aaf12179cb3e65ca6bb4119f32e2

See more details on using hashes here.

Supported by

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