Commit Graph
57 Commits
Author SHA1 Message Date
funkpower 05759ab902 bookmeta: the metadata a file already carries, and a question about the rest 2026-09-20 09:41:37 -04:00
funkpower 0b849c39c4 cueseg: chapter by vectors somebody else made, where there are some
The hashed bag of words asks only whether two stretches repeat the same
words, and cannot tell that ships and vessels are one subject. An embedding
can. segment_with takes one vector per window and falls back to the words
when it is given none, or the wrong number of them — a caller that embedded
some other recording's windows is asking about that recording.

windows_of gives the text to embed, in the order the vectors come back in,
so nobody has to reimplement the windowing pass to use this.

Bound in all three languages, and on the command line as --windows and
--embeddings, which pipe through emb. The C ABI version goes to 2:
catena_segment_cues gained an argument.
2026-09-20 09:12:04 -04:00
funkpower dd09499e68 bindings: cueseg, so a transcript can be chaptered in process 2026-09-20 09:00:26 -04:00
funkpower f9f809f701 chunkmd: the half of a word boundary that applies before a digit 2026-09-20 07:18:34 -04:00
funkpower 84d95b1022 mdscrub: a page anchor the engine cannot backtrack on 2026-09-19 21:01:24 -04:00
funkpower 577b381868 bindings: how to verify a swap, without the scaffolding for one 2026-09-19 20:43:16 -04:00
funkpower 645116d5ed shadow: run both implementations over a corpus and diff them 2026-09-19 20:40:15 -04:00
funkpower 31f7c3f87c recipes: the ocr flag depends on which verdict it was 2026-09-19 19:49:20 -04:00
funkpower d47881ef3b idnorm and bibfetch: an identifier read, and a register asked 2026-09-19 19:19:54 -04:00
funkpower 4d14544409 bibclean: an abstract that arrived as an index 2026-09-19 19:09:27 -04:00
funkpower e6c51a5943 parity: the vocabulary rules gained a field 2026-09-19 19:07:43 -04:00
funkpower 484017fc18 vocabmerge: a subject scheme, supplied rather than compiled in 2026-09-19 19:06:57 -04:00
funkpower 05b363ea8a seriesof: the series a book belongs to, and which volume this is 2026-09-19 19:03:47 -04:00
funkpower e9d22ee1fa bindings: typecheck the declarations the package ships 2026-09-19 18:57:24 -04:00
funkpower 48600bd90c bindings: a C ABI and an npm package alongside the wheel 2026-09-19 18:40:08 -04:00
funkpower cf126dddc3 bindings: the libraries in process, for Python 2026-09-19 17:54:18 -04:00
funkpower a80f8a024d chunkmd: say rfind, which is what this was doing 2026-09-19 17:36:18 -04:00
funkpower e811a4d724 ci: authenticate the clone; the repository is private 2026-09-19 17:30:58 -04:00
funkpower b32fc8b6a1 recipes: cut a line about itself 2026-09-19 17:28:04 -04:00
funkpower 8556f7ae84 readme: point at the recipes from under the tools 2026-09-19 17:27:53 -04:00
funkpower acfab066ed docs: recipes, and where these tools meet a database 2026-09-19 17:21:07 -04:00
funkpower 3a7dea7d95 ci: the image the runner already pulls 2026-09-19 17:17:37 -04:00
funkpower ce14545553 ci: ask for the label the runner actually serves 2026-09-19 17:14:10 -04:00
funkpower 9fd654ad5f docs: the manual-page flag, and the records that belong to one tool 2026-09-19 17:06:17 -04:00
funkpower 619672d403 pdfgutter: never rewrite a page tree it cannot account for 2026-09-19 16:51:12 -04:00
funkpower a03dcd400c avplan: paths an encoder can actually read, and a pipeline that runs 2026-09-19 15:31:17 -04:00
funkpower ab33ac4693 every tool writes its own manual page 2026-09-19 15:25:13 -04:00
funkpower df2a62ec84 pdfgutter: drop a doctest marker from prose 2026-09-19 15:20:12 -04:00
funkpower 3c697bee50 pdfgutter: two facing pages photographed as one, found and cut 2026-09-19 15:19:35 -04:00
funkpower 49f12c9718 avplan: whether a recording plays, and the one call that fixes it 2026-09-19 15:07:33 -04:00
funkpower ea0a3694b1 mdsplit: the works inside one file, and the books inside scripture 2026-09-19 14:58:54 -04:00
funkpower fb63b3f9ac note where the records that belong to one tool are described 2026-09-19 14:38:21 -04:00
funkpower 9bf59f6ebb vocabmerge: the near-duplicate headings a catalogue accumulates 2026-09-19 14:37:22 -04:00
funkpower 739e6c82e9 lints 2026-09-19 14:30:22 -04:00
funkpower 3c16892ebf bibclean: a name from the book's own pages, where the record has none 2026-09-19 14:29:12 -04:00
funkpower 14e1fcf3ef bibclean: slugs, and whether the one a record has still names it 2026-09-19 14:23:36 -04:00
funkpower 7fa610c578 each crate carries its own readme, and the contract describes rather than instructs 2026-09-19 14:15:01 -04:00
funkpower 2e2988b1b1 docs: a page for every tool and every library, with real output 2026-09-19 13:09:20 -04:00
funkpower b0743d5bf7 a missing word, a hidden dependency, and a second pass that changed things 2026-09-19 13:00:29 -04:00
funkpower 6e26d5cf4b bibclean: record faults, weighed, with the repairs that need no lookup 2026-09-19 12:50:53 -04:00
funkpower c6575b2d42 emb: lines into vectors, against a server that owns the model 2026-09-19 12:43:20 -04:00
funkpower 1071f0bed3 booksniff, and one place for the parts every tool shares 2026-09-19 12:40:20 -04:00
funkpower 36afe3350b cuepack: cues into passages that keep their timestamps 2026-09-19 12:32:41 -04:00
funkpower b6602ee1e9 rrf: rank fusion without the database 2026-09-19 12:29:54 -04:00
funkpower 339f402610 ported patterns mean in rust what they mean in python 2026-09-19 12:26:41 -04:00
funkpower 17a03b0087 cueseg: topic chapters from a transcript, and a worked pipeline in the readme 2026-09-19 12:21:35 -04:00
funkpower c7d0767376 cuekit and cuenorm: three subtitle formats, one cue stream 2026-09-19 11:54:36 -04:00
funkpower 33c2e40a1a pdftriage: text layer verdicts, including the reflected-font recovery 2026-09-19 11:46:34 -04:00
funkpower bd0ae11d01 mdscrub: decode character references, keep block boundaries, narrow the fence 2026-09-19 11:36:31 -04:00
funkpower 1b3c002b3d mdscrub: residual html, control characters, headings, page markers 2026-09-19 11:30:05 -04:00