Posts

Tuning an entity matcher: fix the candidate search before the weights - 2

Image
An entity matcher decides whether two listings describe the same real-world business. Once it runs, it produces a list of likely pairs, and someone notices a match it missed. The usual response is to lower the threshold or change the weights. Neither helps when the missing listing never reached the scorer. entitopia is an open-source project for this kind of matching on Elasticsearch. One of its sample projects reads the US register of motor carriers, about 2.1 million companies. It looks for carriers that a regulator shut down and that may have reopened under a new name. Another looks for duplicate listings among 5,419 Medicare hospitals. The carrier matcher runs in two stages: A candidate search fetches up to 500 listings that might be the same business as each shut-down carrier. A Python scorer compares each candidate with the shut-down carrier field by field and combines the results into one pair score. The settings that c...

Use Elasticsearch to Match Organizations and people when the Data differs Deliberately or Accidentally - 1

Image
Entity resolution determines whether two listings in your systems are the same real-world business. Two things make it hard: data quality and human ingenuity. A sales team finds the same customer on two accounts: QUILLBY FREIGHT LLC on one and QUILBY FREIGHT INC on the other. Both sit at the same street, written two ways. A buyer's vendor list carries one supplier three times. A regulator wants to know whether a trucking company it shut down has reopened under a new name. That company may be working to avoid detection. Either way, the names and addresses rarely match letter for letter. entitopia is an open-source project for this kind of entity resolution on Elasticsearch. Two sample projects test the idea on public data. One reads the US register of motor carriers, about 2.1 million companies, and looks for carriers that reopened under a new identity. The other reads the Medicare list of 5,419 hospitals and looks for duplicate listings. Both pro...

Pimoroni Badger 2350 as a Badgeware E-Ink Mood Display

Image
Badger 2350 Mood Display Mood Badger is a visual communication aid for neurodivergent children. It turns a Pimoroni Badger 2350 e-ink badge into a mood display: the child presses a button to show how they feel, with a picture and a word, so they can share their emotional state without having to say it. The e-ink screen keeps showing the mood even while the badge is asleep. MoodBadger 2350 is a port of MoodBadger by Simon Painter, written for the original Badger 2040. Three Mood Sets Three mood sets are included in the application: Faces, Thumbs, Weather.  These are the same three mood sets that are included in MoodBadger for the 2040 Controls Badger 2350 devices come with User Buttons.  Three are laid out across the bottom labeled A, B, and C. They are often used as selectors or navigation. Two buttons are along the right-hand side. They are often used as up and down or scroll buttons. The right-hand ...

My blog whispered 'genius'. Turning the content into a video shouted 'chaotic dreck'

Image
 Your content is only as good as it presents 💬 I've had plenty of blog articles that I thought were good enough to put out on the Internet. It was only after I tried to use them as a basis for a video that I realized how chaotic or incomplete they were. AI-Assisted Timeline 2 hours wall clock getting an LLM to create outlines for 6 blog articles 1 hour to generate a blog article from the outline 2 wall clock hours of iteration and ideation and proofreading 4 days of coffee decompression Return to project 6 wall clock hours of iteration with the AI and proofreading Published the article. Immediately found problems 2 wall clock hours of iteration and republished 1 day later LLM found problems while working on other article. 1 wall clock hour of proofreading and iteration 4 days of other stuff including coffee decompression Started video recording Unrecorded hours of swearing 1 wall clock hour of iteration and republished Unrecorded hours of moaning and banging head on table. 2 wall ...

On Ollama, memory type and runner decide whether a new conversation reuses the cached prompt - 8

Image
This article was revised with later test data. Earlier figures and tables on this page were replaced. Each Ollama runner keeps a prefix cache that can skip re-evaluating a shared system prompt. Nine of seventeen local builds reused the cached system prompt on nearly every new conversation. Four others re-evaluated a 1,024-token batch of it each time. Four more re-evaluated all of it once per system prompt, up to 37 seconds on the largest. The model's memory type and runner set the group, not the prompt. In freemansoft/Flutter-AdaptiveCards a demonstration Dart chat server asks a local Ollama model for an answer as Adaptive Card JSON. That is a strict, closed-vocabulary schema, which a Flutter app renders as interactive UI. The card system prompt that describes the element vocabulary runs to about 3,800 to 4,400 tokens, by the model's tokenizer. The chat server replays up to ten prior exchanges on every turn. Each Ollama runner keeps a prefix cache, so a request whose open...