Intentions are potential actions that a person may take, and is expressing in written content. These are commonly seen in call center logs or customer survey comments or other consumer-generated media (CGM). The identification of intentions expressed in content has been added as a new feature to the Salience API with the release of Salience 6. At release time, the set of intentions that can be identified are buy, sell, quit, and recommend.
“I’m going to go buy the New Flotsam 5000 as soon as it’s released in stores on Wednesday.”
The consumer (“I”) is expressing an intended action (“buy”) with respect to a particular item (“Flotsam 5000”).
A full intention consists of a speaker, the type of intention and the object of their intention, but Salience will also extract intentions that only have a subset of the possible pieces. In this example:
“@AcmeProducts Buy better parts for my computer or get a new mic”
The statement is being made to
"@AcmeProducts" by an unnamed speaker, as a “buy” intention and Salience will report the "(speaker)" intends to “buy” “better parts”.
Salience 6 adds a new method to the document-level API, which returns a new type of results structure. The results structure identifies each intention, whatever pieces of the intention could be identified along with the actual text of the intention. See the API Reference section below for more details.
The feature is also configured using a handful of new datafiles in the data directory. You can configure existing intentions as well as define new intentions. See the Data Directory Reference section below for more details.
The tools and approaches for tuning intentions depend on what kind of tuning is needed to achieve the desired extraction.
Case 1: It’s missing an intention
Case 2: It’s returning intentions that it shouldn’t
Case 3: I want to create a new intention type
The C API, as well as each of the integration wrappers listed below return a list of SalienceIntention objects. The exact characteristics are dependent on the development language listed in the table, but the basic information returned to describe an Intention are the same across the various supported development languages. Click the development language in the table below for full API method documentation.
Note: the configuration ID is related to another new feature introduced in Salience 6, <multiple user directories>.
The structure used to return information about a detected intention will contain the following information:
|(string) Type||The classification of the intention detected (buy, quit, etc.)|
|(string) What||The object of the intention (if detected)|
|(string) Who||The author of the intention (if detected)|
|(string) Evidence||The phrase which expressed the intention|
|(object) What||A structure/object containing positional information within the document of the object of the intention|
|(object) Who||A structure/object containing positional information within the document of the author of the intention|
|(object) Evidence||A structure/object containing positional information within the document of the phrase expressing the intention|
The data directory for Salience 6 contains a new subfolder for datafiles for intentions. These datafiles can be overridden within a user directory to customize intention detection.
|Indicator.bin||A machine learning model supporting intention detection||N|
|Intentions.dat||Core specification of the supported intentions||Y|
|Intention_verbs.dat||Verb forms and synonyms for supported intentions||Y|
|Restrictions.ptn||Patterns to filter raw intention detection to improve reported results||Y|
|Product.dat||A datafile provided to support out-of-box patterns in restrictions.ptn||Y|
This datafile defines the intention types that can be detected, as well as instructions to Salience about how the intention is detected.
The number for model-based intentions is a threshold with a range of 0 to 1. In order for an intention to be extracted, its score must pass the defined threshold.
Intentions can also be defined via query:
buy<tab>Lexalytics OR Salience
Note that this query-based definition would be additive to any model definitions provided previously in the file.
This datafile defines verb forms and synonyms to aid in intention detection.
want<tab>buy need to have<tab>buy like to have<tab>buy for sale<tab>sell
Note that by default, Salience only identifies positive intentions, not “don’t buy”. If you specifically want to find negated intentions, use the “!” character.
Why doesn’t intention_verbs.dat contain all the verb forms for the default intentions? Not all verb forms convey an intention, past tense verb forms may convey a completed intention.
This datafile provides additional pattern-based support for filtering detected intentions.
buy<tab>who<tab>![~products.dat] buy<tab>who<tab>I|me|us|we buy<tab>what<tab>(NNP) sell<tab>evidence<tab>have<tab>for sale sell<tab>evidence<tab>have<tab>!for lunch buy<tab>what<tab>…list of my products...
The format for restrictions.ptn is as follows:
|2||who, what, or evidence||N|
|3||Optionally starts with a blacklist, then lists of terms||Y|
|4||Modifier to third column||Y|
The who or what can be any pattern or additionally: (you), (speaker) or (empty).