The Sentiment Analysis module is able to calculate the sentiment based on the AFINN. Languages accepted:
- eu: Basque
- bn: Bengali
- ca: Catalan
- en: English
- es: Spanish
- nl: Dutch
- fr: French
- it: Italian
- de: German
- gl: Galician
- da: Danish
- fi: Finnish
- ru: Russian
- pt: Portuguese
| Language | AFINN | Senticon | Pattern | Negations |
|---|---|---|---|---|
| Basque | X | |||
| Bengali | X | |||
| Catalan | X | |||
| Danish | X | |||
| Dutch | X | X | ||
| English | X | X | X | X |
| French | X | |||
| Galician | X | |||
| Italian | X | |||
| Spanish | X | X | X | |
| German | X | X | ||
| Finnish | X | |||
| Russian | X | |||
| Portuguese | X | X |
By default Senticon is used if possible, otherwise AFINN, and last one Pattern:
| Language | AFINN | Senticon | Pattern |
|---|---|---|---|
| Bengali | X | ||
| Basque | X | ||
| Catalan | X | ||
| Dutch | X | ||
| English | X | ||
| French | X | ||
| Galician | X | ||
| Italian | X | ||
| Spanish | X | ||
| German | X |
You can use a SentimentAnalyzer if you want to manage only one language:
const { SentimentAnalyzer } = require('node-nlp');
const sentiment = new SentimentAnalyzer({ language: 'en' });
sentiment
.getSentiment('I like cats')
.then(result => console.log(result));
// { score: 0.313,
// numWords: 3,
// numHits: 1,
// comparative: 0.10433333333333333,
// type: 'senticon',
// language: 'en' }
sentiment
.getSentiment('cats are stupid')
.then(result => console.log(result));
// { score: -0.458,
// numWords: 3,
// numHits: 1,
// comparative: -0.15266666666666667,
// type: 'senticon',
// language: 'en' }Or you can use the SentimentManager if you want to manage several languages:
const { SentimentManager } = require('node-nlp');
const sentiment = new SentimentManager();
sentiment
.process('en', 'I like cats')
.then(result => console.log(result));
// { score: 0.313,
// numWords: 3,
// numHits: 1,
// comparative: 0.10433333333333333,
// type: 'senticon',
// language: 'en' }
sentiment
.process('es', 'Los gatitos son amor')
.then(result => console.log(result));
// { score: 0.278,
// comparative: 0.0695,
// vote: 'positive',
// numWords: 4,
// numHits: 1,
// type: 'senticon',
// language: 'es' }