text-sound-similarity-improved
v1.0.7
Published
Library used to find degrees of similarity between text's phonetics. Uses double-methaphone and accounts for numbers.
Downloads
5
Maintainers
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
text1 (string)
: The first texttext2 (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
mainTexts (Array<string>)
: The string list to match each target string against.targetTexts (Array<string>)
: Each string in this array will be matched against each string inmainTexts
.
Returns
(Object)
: An object with the following properties:
text
: Best match main stringtarget
: Best match target stringrating
: 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
}
*/