Dictionary Based Sentiment (Documents)
(Operator Toolbox)
Synopsis
This operator creates a sentiment model from an annotated list of words. It expects a list of words with a weight (value) attribute describing how negative or positive a word is. This can later be used in an Apply Dictionary Based Sentiment operator to score tokenized documents. This operator takes a list of Key (nominal) Value (numerical) pairs and translates them into an applicable model.
This operator also supports negations. It is possible to add a negation dictionary to the neg port. If a negation is x words before any given word, its weights will be inverted. x can be defined with the negation window size parameter. It is possible to define the strength of negation using the negation strength option. If this setting is left empty, weights of 1 are used. Note that negation weights are defined as positive numbers.
Additionally to the concept of negativity this operator supports also intensifiers. Intensifier are words which increase or decrease the sentiment of another word. This means you can enhance the sentiment of the word ''good'' with a word like ''very''. If the corresponding weight is smaller than 1 than this is a ''de-intensifier''. An example would be the word ''relatively''. If words are already negated, intensifiers are ignored.
Input
exa (Data table)
Input ExampleSet with a Key and a Value Attribute.
neg (Data table)
Example Set providing a list of negation words like "not" and their weight.
int (Data table)
Example Set providing a list of intensifiers like "very" and their weight.
Output
mod
The resulting model.
ori (Data table)
The passed through input ExampleSet.
Parameters
- key attribute The attribute with the key (word) in it .
- value attribute The attribute with the value (score) in it .
- negation attribute Attribute in the negation ExampleSet which holds the individual words.
- negation strength Attribute in the negation ExampleSet which holds the weight of negation. Weights are defined as positive numbers!
- negation window size Window size for negation. 1 means that the word needs to be directly in front of other words.
- use symmetric negation window If set to true, negation will not just be applied to succeeding, but also to proceeding tokens. This covers sentences like "The crisis is not as bad as forecasted", where you maybe want to invert both crisis and bad.
- use intensifier If set to true, you can define intensifiers
- intensifier word Attribute in the intensifier ExampleSet which holds the individual words.
- intensifier value Attribute in the negation ExampleSet which holds the weight of intensifier. Weights are defined as positive numbers!
- intensifier window size Window size for intensifier. 1 means that the word needs to be directly in front of other words.
- use symmetric intensifier window If set to true, intensifier will not just be applied to succeeding, but also to proceeding tokens.
Tutorial Processes
Generate Dictionary Model on Dummy Data
Generate a dummy dictionary with just two words (good and bad with values 1 and -1) and generate a model based on this data.
Generate Dictionary Model on Dummy Data with Negation
Generate a dummy dictionary with just two words (good and bad with values 1 and -1) and generate a model based on this data. Additionally a negation dictionary is provided. All words with a preceding "not" are inverted in their weights. The model is applied on three documents to display the effect of negations.