JSPM

text-sound-similarity-improved

1.0.7
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 15
  • Score
    100M100P100Q41629F
  • License MIT

Library used to find degrees of similarity between text's phonetics. Uses double-methaphone and accounts for numbers.

Package Exports

  • text-sound-similarity-improved

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (text-sound-similarity-improved) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Text sound similarity Improved

I tried using the text-sound-similarity package but it didnt take numbers into account. Also, it used Metaphone 1 and I thought it would be an improvement to use Metaphone 2. Both packages are very similar.

Finds degree of similarity between text's phonetics, based on Metaphone 2 and [Dice's Coefficient]. (https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient) algorithms. It also accounts for numbers.

Most of the code was based of this package which didnt fit my needs because I needed numbers.

Install

npm install text-sound-similarity-improved

Usage

import { compareTwoTexts } from "text-sound-similarity-improved";

compareTwoTexts("lost", "loose"); // 0.6666666666666666

API

Requiring the module gives an object with two methods:

compareTwoTexts(text1, text2)

Returns a fraction between 0 and 1, which indicates the degree of similarity between phonemes of the two texts. 0 indicates completely different texts, 1 indicates identical texts

Arguments
  1. text1 (string): The first text
  2. text2 (string): The second text

Order does not make a difference.

Returns

(number): A fraction from 0 to 1, both inclusive. Higher number indicates more similarity.

Examples
import { compareTwoTexts } from "text-sound-similarity-improved";

compareTwoTexts("My name is Laura", "Her name is laura"); //0.7272727272727273

findBestMatch(mainTexts, targetTexts)

Compares each string in mainTexts against each string in targetTexts and returns the most similar pair.

Arguments
  1. mainTexts (Array<string>): The string list to match each target string against.
  2. targetTexts (Array<string>): Each string in this array will be matched against each string in mainTexts.
Returns

(Object): An object with the following properties:

  • text: Best match main string
  • target: Best match target string
  • rating: Similarity rating of them
Examples
import { findBestMatch } from "text-sound-similarity-improved";

findBestMatch(["ponnie 4", "pawn e5"], ["pawn e4", "pawn e5", "e4"]);

/*
  Returns:
  {
      text: 'pawn e5',
      target: 'pawn e5',
      rating: 1
    }
*/