Tldr
Text summarizer for golang using LexRank
Install / Use
/learn @didasy/TldrREADME
tldr
When you are too lazy to read the entire text
What?
tldr is a golang package to summarize a text automatically using lexrank algorithm.
How?
There are two main steps in lexrank, weighing, and ranking. tldr have two weighing and two ranking algorithm included, they are Jaccard coeficient and Hamming distance, then PageRank and centrality, respectively. The default settings use Hamming distance and pagerank.
Is This Fast?
$ go test -bench . -benchmem -benchtime 5s -cpu 4
Running Suite: Tldr Suite
=========================
Random Seed: 1759506557
Will run 8 of 8 specs
••••••••
Ran 8 of 8 Specs in 0.012 seconds
SUCCESS! -- 8 Passed | 0 Failed | 0 Pending | 0 Skipped
goos: linux
goarch: amd64
pkg: github.com/didasy/tldr
cpu: AMD Ryzen 5 5600G with Radeon Graphics
BenchmarkSummarizeCentralityHamming-4 5877 896338 ns/op 177320 B/op 1898 allocs/op
BenchmarkSummarizeCentralityJaccard-4 6562 885374 ns/op 177221 B/op 1898 allocs/op
BenchmarkSummarizePagerankHamming-4 5832 962000 ns/op 200830 B/op 2086 allocs/op
BenchmarkSummarizePagerankJaccard-4 5949 962579 ns/op 200865 B/op 2086 allocs/op
PASS
ok github.com/didasy/tldr 22.840s
So, not bad huh?
Installation
go get github.com/didasy/tldr
Example
package main
import (
"fmt"
"io/ioutil"
"github.com/didasy/tldr"
)
func main() {
intoSentences := 3
textB, _ := ioutil.ReadFile("./sample.txt")
text := string(textB)
bag := tldr.New()
result, _ := bag.Summarize(text, intoSentences)
fmt.Println(result)
}
Testing
To test, just run go test, but you need to have gomega and ginkgo installed.
Dependencies?
tldr depends on pagerank package, and you can install it with go get github.com/alixaxel/pagerank.
License?
Check the LICENSE file. tldr: MIT.
Have fun!
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
xurl
347.6kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
