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 🙏

© 2024 – Pkg Stats / Ryan Hefner

one-more-validation

v1.0.0

Published

validate your input before send it to server

Downloads

119

Readme

one-more-validation - npm Package

The one-more-validation is an npm package that helps validate input strings, such as job titles, task names, or positions, determining if they are relevant and suitable (e.g., 'Java Developer', 'ML Engineer') or irrelevant (e.g., 'xyz', 'I love you'). This package provides a prediction along with a confidence score to indicate how well the input fits the context of a job or position.

Features

  • Validates user-provided input to determine if it is relevant as a job title, task name, or similar.
  • Uses machine learning to provide a confidence score for each input.
  • Works on both the backend (Node.js) and frontend (React.js).
  • Ability to fine-tune with client-specific data for customized predictions.

Installation

Install the package via npm:

npm install one-more-validation

Usage

Here is an example of how to use one-more-validation:

Backend Example (Node.js)

const { classifyInputForClient } = require('one-more-validation');

const clientId = 'client123';
const clientData = [
  { title: 'Software Engineer', label: 'Good Fit' },
  { title: 'Web Developer', label: 'Good Fit' },
  { title: 'xyz', label: 'Irrelevant' }
];

async function runClassification() {
  const input = 'Java Developer';
  const result = await classifyInputForClient(clientId, input, clientData);
  console.log(`Input: "${input}", Result: ${result.result}, Confidence: ${result.confidence}`);
}

runClassification();

Frontend Example (React.js)

import React, { useState } from 'react';
import { classifyInputForClient } from 'one-more-validation';

function JobTitleClassifier() {
  const [input, setInput] = useState('');
  const [result, setResult] = useState(null);

  const clientId = 'client123';
  const clientData = [
    { title: 'Software Engineer', label: 'Good Fit' },
    { title: 'Web Developer', label: 'Good Fit' },
    { title: 'xyz', label: 'Irrelevant' }
  ];

  const handleClassify = async () => {
    const classificationResult = await classifyInputForClient(clientId, input, clientData);
    setResult(classificationResult);
  };

  return (
    <div>
      <h1>Job Title Classifier</h1>
      <input
        type="text"
        value={input}
        onChange={(e) => setInput(e.target.value)}
        placeholder="Enter job title"
      />
      <button onClick={handleClassify}>Classify</button>
      {result && (
        <div>
          <p>Result: {result.result}</p>
          <p>Confidence: {result.confidence}</p>
        </div>
      )}
    </div>
  );
}

export default JobTitleClassifier;

Methods

classifyInputForClient(clientId, input, clientData)

  • clientId (string): Identifier for the client.
  • input (string): The text input to classify (e.g., job title).
  • clientData (array): Client-specific training data for fine-tuning.
  • Returns: An object containing result (classification result: "Good Fit" or "Irrelevant") and confidence (confidence score).

fineTuneModel(clientData, modelSavePath)

  • Fine-tunes the classifier using the provided client-specific data.

saveModelToFileSystem(model, savePath)

  • Saves the fine-tuned model to the file system.

loadModelFromFileSystem(savePath)

  • Loads the fine-tuned model from the file system if it exists.

How It Works

  • The package uses the Universal Sentence Encoder to embed input strings into numerical vectors.
  • A fine-tuned TensorFlow.js model is used to classify whether the input string is relevant or not.
  • The model is trained on client-specific data to improve accuracy, allowing for customization based on client needs.

License

MIT License

Contributions

Contributions are welcome! Feel free to fork the repository and submit a pull request with your improvements or suggestions.

Issues

If you encounter any issues, please open an issue in the GitHub repository.

Author

Amin - Full Stack Developer and Machine Learning Specialist LinkedIn