1.0.7 • Published 6 years ago

text-sound-similarity-improved v1.0.7

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

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
    }
*/