All models
TEXT / SENTIMENT ANALYSIS

Tinge

Read a little between the lines.

Explore positive, negative, and neutral sentiment with a tiny English text classifier.

Artifact size12.4 KB
RunsLocally
Output classes3
Release stageResearch
01 / WHAT IT DOES

One focused task.
A closer look.

Tinge looks for words associated with positive, negative, and neutral sentiment in English. It offers a small, inspectable way to prototype tone-based interfaces. It does not understand a person’s emotions or the full meaning of a sentence.

PositiveNegativeNeutral

Research v0.1.0 · A statistical classifier, not a generative foundation model.

  1. 01

    Extract words

    Lowercase the text and build a bag of words and adjacent word pairs.

  2. 02

    Compare three classes

    Add learned log-likelihoods for positive, negative, and neutral sentiment.

  3. 03

    Return relative scores

    Normalize the class scores and return the top label. Scores are not calibrated confidence.

02 / TRY IT HERE

Get a feel for Tinge.

Actual model inference, inside your browser.
No input is uploaded.

MODEL OUTPUT

Ready when
you are.

Scores are relative model outputs, not calibrated confidence.

Know the boundaries. English only. This bag-of-words baseline does not reliably understand negation, irony, sarcasm, or nuanced context. Never use it to infer a person’s mental state.
03 / IDEAS TO EXPLORE

What could you make?

Starting points for prototypes.
Validate the model for your use case.

01

Explore the tone of short feedback.

Build a feedback explorer where people can review and correct suggested tone labels.

Build with Tinge
02

Sort a personal collection of reviews.

Group a personal collection of short reviews and inspect where the classifier fails.

Build with Tinge
03

Prototype sentiment-aware interfaces.

Learn how word-based sentiment models react to negation, mixed opinions, and unfamiliar phrases.

Build with Tinge
04 / DATA, WITH CONTEXT

What went into Tinge.

Read the model card

Where the examples came from

45 English sentences authored by the coding assistant: 15 positive, 15 negative, and 15 neutral. These are illustrative phrases in the script, not customer reviews, human annotations, or a public sentiment benchmark.

How the split works

The first 13 sentences in each class are used for training; the final two are held out. The six-example test is far too small to establish sentiment quality.

No third-party model weights, external datasets, or user inputs were used to train this version. Training records are kept private. We publish weights, model cards, aggregate results, and the limitations of each release.

TRAINING SUMMARY

Multinomial naïve Bayes · words and word pairs

Weights you can inspect.

Each release includes its model card, measured artifact size, and SHA-256 checksum. Training data and working checkpoints stay private.

Download model card
05 / GETTING STARTED

Build with Tinge.

Full SDK guide

Use the local workspace packages today. These packages have not been published to npm or Maven Central.

Node.js / TypeScript

Run from the repository root, then import the model from a workspace example.

bun install
bun run sdk:build

Kotlin / JVM

With JDK 17+ and Gradle 8.10+, publish the modules to your local Maven repository.

gradle test
gradle publishToMavenLocal
Local Gradle dependency
repositories {
    mavenLocal()
    mavenCentral()
}
dependencies {
    implementation("dev.embermote:tinge:0.1.0")
}

Kotlin/JVM tests pass. Android device validation, Swift, and native Core ML/LiteRT adapters are not available.

import { createModel } from '@embermote/tinge';

const model = createModel();
const input = "The service was excellent and helpful.";

const result = model.predict(input);
console.log(result.label);
// Scores are not calibrated confidence.
Local artifact → local inferenceNo API key.
06 / SPECIFICATIONS

Specs.

Model
Multinomial naïve Bayes · words and word pairs
Input
An English text string, up to 20,000 UTF-16 code units.
Output
A label, ranked scores, and a supported flag. Scores are uncalibrated; supported is not a guarantee that the input is in distribution.
Classes
Positive, Negative, Neutral
On-device size
12.4 KB · downloadable JSON weights · v0.1.0
Size includes
Labels, vocabulary or numeric statistics, and learned weights. Excludes SDK code, application assets, download compression, and runtime memory.
Platforms
Browser and Node.js via TypeScript runtime; Kotlin/JVM via bundled resources.
License
MIT for the original code and research artifacts.
Status
Research baseline · not published to package registries
SHA-256
4d0da8b7a23077c5bdb16c5415cb734a7c39e53e79f71ace1e624387cf34c155
07 / GOOD QUESTIONS

A little more clarity.

Does it understand sarcasm or negation?

Not reliably. Word counts can miss the difference between “good” and “not good,” or between praise and irony. Do not infer mental state from these labels.

Does my input leave the device?

Inference runs locally. The website and artifact download make ordinary network requests, but the demos do not upload your input. Bundled SDK inference does not need an inference server.

Why is the model so small?

Tinge stores a compact statistical representation for a narrow task. Its 12.4 KB artifact is not equivalent to a neural model of a different size, and the file size is not its total runtime memory.

Is the model ready to ship in my product?

This is a research baseline. Independent evaluation, task-specific acceptance criteria, real-device measurements, and release packaging remain necessary before production use.

KEEP EXPLORING

The open notebook.

Inspect the pieces behind this model.