string-similarity-coloring

Color a given set of N strings into a set of M<N color classes

Usage no npm install needed!

<script type="module">
  import stringSimilarityColoring from 'https://cdn.skypack.dev/string-similarity-coloring';
</script>

README

String Similarity Coloring

This package includes a set of heuristics to map a set of N strings to a set of M<N colors. There are two supported themes: colorbrewer and patternfly4.

Getting Started

npm install string-similarity-coloring

To choose between the two themes, specify via the theme option to the main exported function. For example, in the following example, we chose to use the colorbrewer theme.

import ssc from 'string-similarity-coloring'

// returns an array of color-class assignments,
// parallel to the input array of strings
ssc(['apache-coyote', 'apache', 'nginx 1',
     'nginx 2', 'nginx', 'microsoft a'],
    { theme: 'colorbrewer' })
[
 { primary: 0, secondary: 0, color: '#2166AB' },
 { primary: 0, secondary: 2, color: '#91C4DE' },
 { primary: 1, secondary: 0, color: '#B4182B' },
 { primary: 1, secondary: 3, color: '#FDDCC9' },
 { primary: 1, secondary: 3, color: '#FDDCC9' },
 { primary: 2, secondary: 0, color: '#762A83' }
]

Where primary is the primary classification of the string, and secondary is a secondary classification, based on distance of this string from the string that defines the primary. If you want to use your own color assignments, you can use the primary and secondary. Otherwise, you can use the color scheme provided in the response.


Magic from IBM Research.