jdkato/prose

:book: A Golang library for text processing, including tokenization, part-of-speech tagging, and named-entity extraction.

View on GitHub ↗Jump to charts ↓

jdkato/prose has 3k+ stars and 150+ forks on GitHub, is written in Go, and was last pushed on Jul 29, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 22 minutes ago
Added to GitGenius on September 22nd, 2026
Created on February 17th, 2017
Open Issues & Pull Requests: 20 (+0)
GitHub issues: Enabled
Number of forks: 170
Total Stargazers: 3,091 (+0)
Total Subscribers: 2 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.
Sign in

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

prose is a Go library for natural language processing that provides tokenization, part-of-speech tagging, named-entity extraction, and readability metrics without requiring external dependencies or services.

The library solves the problem of processing English text in Go applications by offering pure Go implementations of core NLP tasks. Its approach emphasizes precision and control: every token, sentence, and entity carries byte offsets into the original source text, and the library never normalizes input before processing, leaving that decision to the caller. This design ensures that offsets remain accurate even with multi-byte characters, repeated words, or irregular whitespace. The tool includes trained models for part-of-speech tagging and entity recognition, but allows selective importing so that unused models do not bloat binaries.

Developers should choose this tool when building Go applications that need reliable English text analysis without external service calls or C bindings. It suits projects where binary size matters, since the Go linker excludes unimported models, and where byte-accurate offsets are important for highlighting or editing workflows. The library's modular design means you can import only the components you need—tokenization alone, or tagging without entity extraction—rather than paying the cost of a full pipeline. The tool is particularly valuable in contexts where text normalization must be explicit and controlled by application code rather than hidden inside the library.

Development activity shows consistent maintenance with regular updates addressing edge cases and performance. The project maintains comprehensive test coverage across its modular components and demonstrates attention to concurrent use, with tokenizers, segmenters, taggers, and extractors all designed as safe for parallel processing. The codebase prioritizes backward compatibility while evolving the API, and documentation includes practical examples showing how to skip unnecessary processing stages and handle cancellation for long-running operations.