Feature description: Intentions

What are intentions?

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.

For example:

“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”.

Why would I use intentions?

Lead Generation
Use the "buy" intention to identify prospects who are looking to buy what you are selling.
Decrease customer churn
Use the "quit" intention to identify customers at risk of leaving and intervene before they do.

How do I extract intentions from content and what results do I get?

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.

Can I customize intentions?

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.

How would I tune intentions?

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

Intention recall can be increased by specifying additional verb forms and verb synonyms in the datafile intention_verbs.dat.
Recall can also be increased by lowering the threshold for matching an intention.

Case 2: It’s returning intentions that it shouldn’t

Intention precision can be improved by adding restrictions in the datafile restrictions.ptn or by increasing the threshold for matching an intention.

Case 3: I want to create a new intention type

Creating a new intention type requires additions to all three of the customizable datafiles that power intentions. First, the new intention must be defined in the datafile intentions.dat. Only new intention types defined by query can be added. Next, verb forms that are common with the new intention need to be added to intention_verbs.dat. Lastly, where necessary, filtering to improve precision on the returned intentions can be employed through additions to restrictions.ptn.

API Reference

The Intentions API method

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.

C LEXALYTICS_C_API int lxaGetIntentions(SalienceSession* pSession, SalienceIntentionList *pResults, const char *acConfigurationID);
.Net (C#) List<SalienceIntention> GetDocumentIntentions(String id="")
Java public java.util.Vector<Intention> getDocumentIntentions()
public java.util.Vector<Intention> getDocumentIntentions(sConfigurationID)
python salience6.getDocumentIntentions(oSession, acConfigurationID)

Note: the configuration ID is related to another new feature introduced in Salience 6, <multiple user directories>.

The SalienceIntention result structure

The structure used to return information about a detected intention will contain the following information:

Item Description
(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

Back to top

Data Directory Reference

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.

Path: data/salience/intentions

File Description Customizable?
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

Intentions.dat

This datafile defines the intention types that can be detected, as well as instructions to Salience about how the intention is detected.

buy<tab>model(0.5)
sell<tab>model(0.9)

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.

Intention_verbs.dat

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.

Restrictions.ptn

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:

Column Description Optional?
1 Intention N
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).

(you) matches no-subject imperative sentences, like "buy this product!"
(speaker) matches no-subject non-imperative sentences, like "can't wait to get one!"
(empty) matches no object sentences, like "I would return"

Back to top