Skip to main content

TextReducer - A Tool for Summarization and Information Extraction

TextReducer is a tool for summarization and information extraction powered by the SentenceTransformer library. Unlike many techniques for extractive summaries, TextReducer has the option for a "target" around which the summary will be focused. This target can be any text prompt, meaning that a user can specify the type of information that they would like to find or summarize, and ignore everything else.

Another key benefits of TextReducer is that rather than extracting the sentences for the summary, it carves away at the original text, removing unnecessary sentences. This leads to more fluent summarizations, and preserves grammatical features like coreference that are often lost in traditional extractive summarization.

gif

For instance, in the sentences "In his free time, John enjoyed playing golf and traveling with his family. He was married with two children, and lived in a suburban area with his wife and kids.", it is imporant that these sentences stay linked together. Otherwise, the coreferent of the word "He" in the second sentence is lost. TextReducer is much better at preserving such related sentences, and is thus a valuable tool for fast, but fluent summarizations of large texts.

The class has several methods:

  • reduce(huge_text, target, num_sents=5) - this method takes in a large text and a target text, and returns a summary of the input text that is most similar to the target text. It first encodes the input text and the target text using the SentenceTransformer's embedding model, then it calculates the cosine similarity between the embeddings of the input text and the target text. It then finds the top num_sents most similar sentences and returns them as a string.
  • summarize(text, num_sents=5) - this method takes in a text and returns a summary of the input text that is most similar to the overall meaning of the text. It first encodes the input text using the SentenceTransformer's embedding model, then it calculates the cosine similarity between the embeddings of the sentences and the text as a whole. It then finds the top num_sents most similar sentences and returns them as a string.
  • reduce_pdf(pdf_path, target, num_sents=5) - this method takes in a pdf file's path, a target text and a number of sentences to be returned, it then reads the pdf, extract the text from it, calls the summarize method and returns the summary.

Installation

To install TextReducer, use pip install targeted_sum

Applications

  • Summarization - Does a good job summarizing large texts while staying lightweight and maintaining coherence.
  • Information Extraction - Good for finding sections of text related to any given text prompt
  • Question Answering - Good for finding sections of text related to any given question. When paired with a QA model, this can be a very powerful tool.
  • GPT3/ChatGPT Prompting - Good for reducing the length of text prompts for GPT3 or ChatGPT. This saves time and money, and improves responses by removing unnecessary content from prompts.

Demo

A Google Colab demo can be found here

Metadata

Release files for targeted-sum 1.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for targeted-sum 1.0.9
File Size Uploaded
targeted_sum-1.0.9.tar.gz 4.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for targeted-sum 1.0.9
File Interpreter ABI Platform
targeted_sum-1.0.9-py3-none-any.whl Python 3 none any Details

Total release size: 9.8 kB

Release files / targeted_sum-1.0.9.tar.gz

Download URL targeted_sum-1.0.9.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7a97683914e9ad3b7a934e83a12b0a2ab08fbbb0006d8873b22634a1a2e581eb
BLAKE2b-256 checksum
How to use checksums
46b8c1d9a18e22024c3316285a59c2e6f4f807056fe068dc1c92db1a981f28e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Release files / targeted_sum-1.0.9-py3-none-any.whl

Download URL targeted_sum-1.0.9-py3-none-any.whl
Size 5.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e15840ff8f28a440ad26a8ea1974ec033d0f7507a78db6683b07fd95613e955
BLAKE2b-256 checksum
How to use checksums
838a74be896ced96404bbe6ff1561d9083eacbfc84fa5ff0238119c10735f6c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Release history Release notifications | RSS feed

This release

1.0.9 This release

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page