npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

starlight-classifier

v1.0.0

Published

A simple text classification library for Starlight using TF-IDF and Naive Bayes.

Downloads

113

Readme

Starlight Classifier

Starlight Classifier is a lightweight text classification library for Starlight, built on top of starlight-vec and starlight-ml. It uses TF-IDF vectorization and a simple Naive Bayes approach for classifying documents quickly and efficiently.


Features

  • Vectorizes text using TF-IDF (via starlight-vec)
  • Simple Naive Bayes classifier for text
  • Predict labels for single or multiple documents
  • Works seamlessly with Starlight ML ecosystem
  • Customizable stopwords support

Installation

npm install starlight-classifier starlight-vec starlight-ml

Usage

Importing

import { NaiveBayesClassifier, classify } from "starlight-classifier";
import * as ml from "starlight-ml";

Example

// Sample documents
const docs = [
  "I love machine learning",
  "Starlight ML is amazing",
  "Python is great for AI",
  "I enjoy coding in JavaScript"
];

// Corresponding labels
const labels = ["tech", "tech", "tech", "programming"];

// Stopwords (optional)
const stopwords = ["is", "in"];

// Train classifier
const clf = classify(docs, labels, stopwords);

// Predict a new document
const newDoc = "I love AI and machine learning";
const prediction = clf.predict(newDoc);

console.log("Predicted class:", prediction); // e.g., "tech"

// Predict multiple documents
const batch = ["I code every day", "Starlight ML is cool"];
const batchPredictions = clf.predictBatch(batch);

console.log("Batch predictions:", batchPredictions);

Advanced Usage

import { NaiveBayesClassifier } from "starlight-classifier";

// Create classifier with stopwords
const clf = new NaiveBayesClassifier(["is", "and"]);

// Fit on documents
clf.fit(docs, labels);

// Transform and analyze similarity
const vec1 = clf.vectorizer.transform(docs[0]);
const vec2 = clf.vectorizer.transform(docs[1]);
const similarity = NaiveBayesClassifier.cosine(vec1, vec2);

console.log("Cosine similarity between doc1 and doc2:", similarity);

API

NaiveBayesClassifier(stopwords = [])

  • Creates a classifier instance.
  • stopwords — optional array of words to ignore during vectorization.

fit(docs, labels)

  • Train classifier on an array of documents with corresponding labels.

predict(doc)

  • Predict the class of a single document.

predictBatch(docs)

  • Predict the classes for multiple documents.

classify(docs, labels, stopwords)

  • Convenience function: creates a classifier, fits it, and returns it.

Dependencies


License

MIT © Dominex Macedon