# compute-cosine-similarity

1.1.0 • Public • Published

# Cosine Similarity

Computes the cosine similarity between two arrays.

Cosine similarity defines vector similarity in terms of the angle separating two vectors.

## Installation

`\$ npm install compute-cosine-similarity`

For use in the browser, use browserify.

## Usage

`var similarity = require( 'compute-cosine-similarity' );`

#### similarity( x, y[, accessor] )

Computes the cosine similarity between two `arrays`.

```var x = [ 5, 23, 2, 5, 9 ],
y = [ 3, 21, 2, 5, 14 ];

var s = similarity( x, y );
// returns ~0.975```

For object `arrays`, provide an accessor `function` for accessing `numeric` values.

```var x = [
{'x':2},
{'x':4},
{'x':5}
];

var y = [
[1,3],
[2,1],
[3,5]
];

function getValue( d, i, j ) {
if ( j === 0 ) {
return d.x;
}
return d[ 1 ];
}

var s = similarity( x, y, getValue );
// returns ~0.882```

The accessor `function` is provided three arguments:

• d: current datum.
• i: current datum index.
• j: array index; e.g., array `x` has index `0`, and array `y` has index `1`.

If provided empty `arrays`, the function returns `null`.

## Examples

```var similarity = require( 'compute-cosine-similarity' );

var x = new Array( 100 ),
y = new Array( 100 ),
s;

for ( var i = 0; i < x.length; i++ ) {
x[ i ] = Math.round( Math.random()*100 );
y[ i ] = Math.round( Math.random()*100 );
}
s = similarity( x, y );

console.log( s );```

To run the example code from the top-level application directory,

`\$ node ./examples/index.js`

## Tests

### Unit

Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:

`\$ make test`

All new feature development should have corresponding unit tests to validate correct functionality.

### Test Coverage

This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:

`\$ make test-cov`

Istanbul creates a `./reports/coverage` directory. To access an HTML version of the report,

`\$ make view-cov`

## Package Sidebar

### Install

`npm i compute-cosine-similarity`

### Repository

github.com/compute-io/cosine-similarity

32,823

1.1.0

none

9.22 kB

5