polarity

Detect the polarity (sentiment) of text

Usage no npm install needed!

<script type="module">
  import polarity from 'https://cdn.skypack.dev/polarity';
</script>

README

polarity

Build Coverage Downloads Size

Detect the polarity of text, based on afinn-165 and emoji-emotion.

Install

This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.

npm:

npm install polarity

Use

import {polarity} from 'polarity'

polarity(['some', 'positive', 'happy', 'cats'])

Yields:

{
  polarity: 5,
  positivity: 5,
  negativity: 0,
  positive: ['happy', 'positive'],
  negative: []
}
polarity(['darn', 'self-deluded', 'abandoned', 'dogs'])

Yields:

{
  polarity: -4,
  positivity: 0,
  negativity: -4,
  positive: [],
  negative: ['abandoned', 'self-deluded']
}

API

This package exports the following identifiers: polarity, inject, polarities. There is no default export.

polarity(words[, inject])

Get a polarity result from given values, optionally with one time injections.

polarity does not tokenize values. There are better tokenizers around (parse-latin). However, the following will work pretty good:

function tokenize(value) {
  return value.toLowerCase().match(/\S+/g)
}
Parameters
  • words (Array.<string>) — Words to parse
  • inject (Object.<number>, optional) — Custom valences for words
Returns

Object:

  • polarity (number) — Calculated polarity of input
  • positivity (number) — Total positivity
  • negativity (number) — Total negativity
  • positive (Array.<string>) — All positive words
  • negative (Array.<string>) — All negative words

inject(words)

Insert custom values.

polarities

Direct access to the internal values.

Related

  • afinn-96 — AFINN list from 2009, containing 1468 entries
  • afinn-111 — AFINN list from 2011, containing 2477 entries
  • afinn-165 — AFINN list from 2015, containing 3382 entries
  • emoji-emotion — Like AFINN, but for emoji

License

MIT © Titus Wormer