OpenAmplify

OpenAmplify 1.1 Documentation

OpenAmplify Version 1.1 API Documentation.

Table of Contents

An Introduction to OpenAmplify (FAQ).
1. OpenAmplify Overview
1.1. OpenAmplify Overview
1.1.1. Objectives of OpenAmplify
1.1.2. Analyses
2. Signal Descriptions
2.1. The Topic Analysis
2.1.1. Topic Analysis Structure
2.1.1.1. Example input
2.1.1.2. Example output
2.1.2. Topics - descriptive information for a TopicResult.
2.1.2.1. Interpretation Guidelines
2.1.2.2. Example Input
2.1.2.3. Example output
2.1.3. Polarity - a measurement of the positive/negative perception of a topic in the text.
2.1.3.1. Interpretation Guidelines
2.1.3.2. Example Input
2.1.3.3. Example output
2.1.4. Topic Guidance - a measurement of the degree to which guidance or advice is being offered or requested on a topic in the text.
2.1.4.1. Interpretation Guidelines
2.1.4.2. Example Input
2.1.4.3. Example output
2.1.5. Proper Nouns - A ranked list of proper nouns appearing in the text.
2.1.5.1. Interpretation Guidelines
2.1.5.2. Example Input
2.1.5.3. Example output
2.1.6. Locations - a ranked list of locations appearing in the text.
2.1.6.1. Interpretation Guidelines
2.1.6.2. Example Input
2.1.6.3. Example output
2.2. The Action Analysis
2.2.1. Action Analysis Structure
2.2.1.1. Example input
2.2.1.2. Example output
2.2.2. Action - an action that has been, is being, or will be taken.
2.2.2.1. Interpretation Guidelines
2.2.2.2. Example Input
2.2.2.3. Example output
2.2.3. ActionType - a classification of an action into a useful category.
2.2.3.1. Interpretation Guidelines
2.2.3.2. Example Input
2.2.3.3. Example output
2.2.4. Decisiveness - the likelihood that an action will be taken.
2.2.4.1. Interpretation Guidelines
2.2.4.2. Example Input
2.2.4.3. Example output
2.2.5. Temporality - the temporal references linked to an action.
2.2.5.1. Interpretation Guidelines
2.2.5.2. Example Input
2.2.5.3. Example output
2.2.6. Action Guidance - a measurement of the degree to which guidance or advice is being offered or requested on an action in the text.
2.2.6.1. Interpretation Guidelines
2.2.6.2. Example Input
2.2.6.3. Example output
2.3. The Style Analysis
2.3.1. Style Analysis Structure
2.3.1.1. Example input
2.3.1.2. Example output
2.3.2. Flamboyance - a measurement of the degree to which the style used in the text is elaborate or "flowery".
2.3.2.1. Interpretation Guidelines
2.3.2.2. Example Input
2.3.2.3. Example output
2.3.3. Slang - a measurement of the degree to which slang words are used in the text.
2.3.3.1. Interpretation Guidelines
2.3.3.2. Example Input
2.3.3.3. Example output
2.4. The Demographic Analysis
2.4.1. Demographic Analysis Structure
2.4.1.1. Example input
2.4.1.2. Example output
2.4.2. Age - an estimate of the age range of the author/audience of the text.
2.4.2.1. Interpretation Guidelines
2.4.2.2. Example Input
2.4.2.3. Example output
2.4.3. Gender - a calculation of the probable gender of the author/audience of the text.
2.4.3.1. Interpretation Guidelines
2.4.3.2. Example Input
2.4.3.3. Example output
2.4.4. Education - a calculation of the probable education level of the intended audience of the text.
2.4.4.1. Interpretation Guidelines
2.4.4.2. Example Input
2.4.4.3. Example output
2.4.5. Language - a calculation of the language that the text is written in.
2.4.5.1. Interpretation Guidelines
2.4.5.2. Example Input
2.4.5.3. Example output
2.5. The Topic Intentions Analysis
2.5.1. Topic Intentions Analysis Structure
2.5.1.1. Example input
2.5.1.2. Example output
2.5.2. Topics - descriptive information for a TopicIntentionResulty.
2.5.2.1. Interpretation Guidelines
2.5.2.2. Example Input
2.5.2.3. Example output
2.5.3. Polarity - a measurement of the positive/negative perception of a topic in the text.
2.5.3.1. Interpretation Guidelines
2.5.3.2. Example Input
2.5.3.3. Example output
2.5.4. Topic Guidance - a measurement of the degree to which guidance or advice is being offered or requested on a topic in the text.
2.5.4.1. Interpretation Guidelines
2.5.4.2. Example Input
2.5.4.3. Example output
2.5.5. Proper Nouns - A ranked list of proper nouns appearing in the text.
2.5.5.1. Interpretation Guidelines
2.5.5.2. Example Input
2.5.5.3. Example output
2.5.6. Locations - a ranked list of locations appearing in the text.
2.5.6.1. Interpretation Guidelines
2.5.6.2. Example Input
2.5.6.3. Example output
3. The OpenAmplify Public API
3.1. OpenAmplify Transaction Concept.
3.2. Input API
3.2.1. Exhaustive Request Format
3.2.1.1. Examples
3.2.2. Search Request Format
3.2.2.1. Examples

An Introduction to OpenAmplify (FAQ).

What is OpenAmplify?

OpenAmplify is a web service based upon patented linguistic technology. This technology, sometimes described as Natural Language Processing (NLP), permits OpenAmplify to automatically analyze any textual information and surface its meaning: not just simple things like topics, but the emotions, styles, actions, intentions, and even clues as to the demographics of the author or intended audience. We call the resulting information signals, because they are indicative and predictive of attitudes, behavior and characteristics.

How Do I Use OpenAmplify?

OpenAmplify is intended to be easily integrated into your applications. The Open API supports SOAP, REST and other standards. Output is in XML format, and organized to be easily traversed. The API itself is simple: little more than your API key and the text to be processed are needed to get results. Exception handling is via standard HTTP error messages. Users can come up the curve quickly, obtain useful results without undue labor, and integrate the platform smoothly into their workflow.

How Can OpenAmplify be Used?

As the "Meaning Platform", OpenAmplify is intended to not be specific to a particular industry or community of users. Rather, our long-term mission is to surface every shred of meaning from a text: OpenAmplify 1.0 takes some very substantial steps towards fulfilling that mission. We're actually counting on you to tell us how OpenAmplify can be used (although, of course, we have some ideas of our own.)

What is the Role of the OpenAmplify Developer Community?

Our non-application-specific approach is undertaken in large part because we believe that the developer community, in all its scale and diversity, is far more capable of devising creative uses of the platform than we could on our own. We are excited to think that OpenAmplify could contribute to applications that we cannot even conceive of. We have spoken to online advertisers, Internet security consultants, sociolinguists, help desk designers...you name it. All understand the simple cornerstone of OpenAmplify's value proposition: the more you understand your content, the more you can do with it. We will actively encourage creative development around OpenAmplify through the community, with bounties and through aggressive, internal development efforts. Things move fast around here.

What About SemWeb?

Think of OpenAmplify as an extension to the Semantic Web. However, whereas most SemWeb work up to now has been about classifying things, OpenAmplify is about understanding things. Each is useful on its own, but the combination is unbeatable.

Does OpenAmplify Gather Personal Information?

Absolutely not. OpenAmplify is designed to be a platform for external development, not a database-building opportunity. We have no interest in the text being processed; in truth, we don't even want to know. You can check our Privacy Policy for the details, but here's the gist of it.

The concept is simple: text in, signals out. We persist nothing except your account information, which we need to provide the OpenAmplify service. We build no databases of preferences or behavior, and neither seek nor recognize any personal information in the content OpenAmplify processes. Text in, signals out, tally the transaction and move on. This simplicity enhances performance and reliability, keeps the platform maintainable and scalable, and contains costs. It also makes it easier to add new functionality, which we will do constantly and impactfully. And, of course, it takes us right out of the privacy thing, which is just how we like it.

Does Using OpenAmplify Cost Money?

Anyone can use OpenAmplify free of charge up to 1,000 transactions per day; simply register for an account and obtain an API key. Above that limit, OpenAmplify transactions cost money. Initially, your development account will have a hard limit: once you hit 1,000 transactions, additional transactions will be refused. Establishment of a commercial account will open up that limit, and transactions will be metered. If you wish to discuss commercial terms, we'd love to hear from you at accounts@openamplify.com.

Can I Use OpenAmplify for Commercial Purposes?

Absolutely; in fact, we encourage it. Within your account limits, use OpenAmplify in any (legal and morally defensible) way you see fit. If you're making money from it, we're delighted; if your app is for more altruistic purposes, we're equally delighted. In either case, we'd like to know what you're doing, and will help you increase awareness of your application. Everyone is served as the platform gains acceptance.

Can I Help to Improve OpenAmplify?

Again, absolutely. The contact us page is especially good means of doing that, and developers, linguists, businesspeople and all others interested are encouraged to tell us what they'd like to see OpenAmplify do, do better, or not do at all. As we said above, things move fast around here: we intend to bring new and improved functionality to the platform frequently and impactfully. Help us get it right.

Part 1.  OpenAmplify Overview

Chapter 1.1.  OpenAmplify Overview

1.1.1.  Objectives of OpenAmplify

OpenAmplify has as its main objectives the following:

  • To analyze any provided text, structured or unstructured, without the need for training or special vocabularies

  • To return a set of so-called signals, which are structured representations of text meaning, intent, style and other characteristics

  • To deliver the signals ranked and organized in a useful manner

  • To deliver the signals in a industry-standard format

  • To permit the user to gain rapid and actionable insight into the content, its authors and audiences.

1.1.2.  Analyses

OpenAmplify delivers its signals in the context of four analyses which can be requested separately or as a group. The four analyses are:

  • The Topic Analysis: returns topical signals about the text, including polarity (positive/negative perception of each topic) and guidance (degree to which guidance is sought or offered about each topic). Topics may be related to each other, and OpenAmplify will attempt to detect those relationships (for example, that pizza and salad are both foods) and report them, ranked by likelihood. In addition, proper names and referenced locations are returned by the topic analysis.

  • The Action Analysis: returns signals related to actions detected in the text. Associated with each action will be a measure of decisiveness (how likely the action is to be taken), guidance (whether guidance is sought or offered on taking the action) and temporality (when the action may take place).

  • The Style Analysis: returns stylistic signals about the text. Initially, this analysis will return flamboyancy (a measure of how "flowery" the writing style is), and slang (degree to which slang vocabulary is used).

  • The Demographic Analysis: returns the likely age, gender and education level signals of the text's author or audience.

Pages in section (2) describe each signal in more detail. Section (3) describes how to use the API to request and return the various analyses.

Part 2.  Signal Descriptions

This section of the API documentation describes each signal from a functional point of view.

Table of Contents

2.1. The Topic Analysis
2.1.1. Topic Analysis Structure
2.1.1.1. Example input
2.1.1.2. Example output
2.1.2. Topics - descriptive information for a TopicResult.
2.1.2.1. Interpretation Guidelines
2.1.2.2. Example Input
2.1.2.3. Example output
2.1.3. Polarity - a measurement of the positive/negative perception of a topic in the text.
2.1.3.1. Interpretation Guidelines
2.1.3.2. Example Input
2.1.3.3. Example output
2.1.4. Topic Guidance - a measurement of the degree to which guidance or advice is being offered or requested on a topic in the text.
2.1.4.1. Interpretation Guidelines
2.1.4.2. Example Input
2.1.4.3. Example output
2.1.5. Proper Nouns - A ranked list of proper nouns appearing in the text.
2.1.5.1. Interpretation Guidelines
2.1.5.2. Example Input
2.1.5.3. Example output
2.1.6. Locations - a ranked list of locations appearing in the text.
2.1.6.1. Interpretation Guidelines
2.1.6.2. Example Input
2.1.6.3. Example output
2.2. The Action Analysis
2.2.1. Action Analysis Structure
2.2.1.1. Example input
2.2.1.2. Example output
2.2.2. Action - an action that has been, is being, or will be taken.
2.2.2.1. Interpretation Guidelines
2.2.2.2. Example Input
2.2.2.3. Example output
2.2.3. ActionType - a classification of an action into a useful category.
2.2.3.1. Interpretation Guidelines
2.2.3.2. Example Input
2.2.3.3. Example output
2.2.4. Decisiveness - the likelihood that an action will be taken.
2.2.4.1. Interpretation Guidelines
2.2.4.2. Example Input
2.2.4.3. Example output
2.2.5. Temporality - the temporal references linked to an action.
2.2.5.1. Interpretation Guidelines
2.2.5.2. Example Input
2.2.5.3. Example output
2.2.6. Action Guidance - a measurement of the degree to which guidance or advice is being offered or requested on an action in the text.
2.2.6.1. Interpretation Guidelines
2.2.6.2. Example Input
2.2.6.3. Example output
2.3. The Style Analysis
2.3.1. Style Analysis Structure
2.3.1.1. Example input
2.3.1.2. Example output
2.3.2. Flamboyance - a measurement of the degree to which the style used in the text is elaborate or "flowery".
2.3.2.1. Interpretation Guidelines
2.3.2.2. Example Input
2.3.2.3. Example output
2.3.3. Slang - a measurement of the degree to which slang words are used in the text.
2.3.3.1. Interpretation Guidelines
2.3.3.2. Example Input
2.3.3.3. Example output
2.4. The Demographic Analysis
2.4.1. Demographic Analysis Structure
2.4.1.1. Example input
2.4.1.2. Example output
2.4.2. Age - an estimate of the age range of the author/audience of the text.
2.4.2.1. Interpretation Guidelines
2.4.2.2. Example Input
2.4.2.3. Example output
2.4.3. Gender - a calculation of the probable gender of the author/audience of the text.
2.4.3.1. Interpretation Guidelines
2.4.3.2. Example Input
2.4.3.3. Example output
2.4.4. Education - a calculation of the probable education level of the intended audience of the text.
2.4.4.1. Interpretation Guidelines
2.4.4.2. Example Input
2.4.4.3. Example output
2.4.5. Language - a calculation of the language that the text is written in.
2.4.5.1. Interpretation Guidelines
2.4.5.2. Example Input
2.4.5.3. Example output
2.5. The Topic Intentions Analysis
2.5.1. Topic Intentions Analysis Structure
2.5.1.1. Example input
2.5.1.2. Example output
2.5.2. Topics - descriptive information for a TopicIntentionResulty.
2.5.2.1. Interpretation Guidelines
2.5.2.2. Example Input
2.5.2.3. Example output
2.5.3. Polarity - a measurement of the positive/negative perception of a topic in the text.
2.5.3.1. Interpretation Guidelines
2.5.3.2. Example Input
2.5.3.3. Example output
2.5.4. Topic Guidance - a measurement of the degree to which guidance or advice is being offered or requested on a topic in the text.
2.5.4.1. Interpretation Guidelines
2.5.4.2. Example Input
2.5.4.3. Example output
2.5.5. Proper Nouns - A ranked list of proper nouns appearing in the text.
2.5.5.1. Interpretation Guidelines
2.5.5.2. Example Input
2.5.5.3. Example output
2.5.6. Locations - a ranked list of locations appearing in the text.
2.5.6.1. Interpretation Guidelines
2.5.6.2. Example Input
2.5.6.3. Example output

Chapter 2.1.  The Topic Analysis

The topic analysis delivers a set of signals that describe the topical content of a text. Unlike simple "keyword" extraction systems, OpenAmplify actually understands the text, so the syntactic roles of words can be considered in determining topics: subjects and objects, for example, may have special topical significance. OpenAmplify can also make deeper judgments about topics based upon linguistic understanding: for example, whether the topic is being described in positive or negative terms ("Polarity").

2.1.1.  Topic Analysis Structure

The topic analysis is returned as a tag set <Topics></Topics>. The tag set includes <Domains>, <TopTopics>, <ProperNouns> and <Locations>.

<Domains>

Includes information that shows relationships between topics. Domains may include subdomains, and subdomains will include specific topics encountered in the text. Domain output is ranked by highest weight. The top three domains are reported

<TopTopics>

Includes specific information for the topics, each of which is represented by a <TopicResult> tag set. In general, TopTopics are presented in weighted order, descending.

TopTopics may include entries that appear in other tag sets: for example, "Boston" will appear as a TopTopic, a ProperNoun, and a Location.

Within each TopicResult tag set will be included a descriptive <Topic> tag set, and a number of subsidiary signals: <Polarity>, <OfferingGuidance> and <RequestingGuidance>.

<ProperNouns>

Includes identified proper nouns, presented according to the 15/20 rule. ProperNouns may appear in other tag sets. ProperNoun output includes <Polarity>, <OfferingGuidance> and <RequestingGuidance>;

<Locations>

Includes identified physical locations, presented according to the 15/20 rule. Locations may appear in other tag sets. No subsidiary signals are included with locations.

2.1.1.1.  Example input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.1.1.2.  Example output

            <ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
<DomainResult>
<Domain>
<Name>Sports</Name>
<Value>10.000000</Value>
</Domain>
<Subdomains>
<SubdomainResult>
<Subdomain>
<Name/>
<Value>0.000000</Value>
</Subdomain>
<Scores>
<TopicResult>
<Topic>
<Name>baseball</Name>
<Value>10.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.150000</Value>
</Max>
</Polarity>
<OfferingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
</Scores>
</SubdomainResult>
</Subdomains>
</DomainResult>
</Domains>
<TopTopics>
<TopicResult>
<Topic>
<Name>baseball</Name>
<Value>10.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.150000</Value>
</Max>
</Polarity>
<OfferingGuidance>
<Name>To Some Extent</Name>
<Value>2.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
<TopicResult>
<Topic>
<Name>James Benthall</Name>
<Value>7.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Positive</Name>
<Value>0.265955</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.265955</Value>
</Max>
</Polarity>
<OfferingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
<TopicResult>
<Topic>
<Name>Boston</Name>
<Value>4.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Positive</Name>
<Value>0.797865</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.797865</Value>
</Max>
</Polarity>
<OfferingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
</TopTopics>
<ProperNouns>
<TopicResult>
<Topic>
<Name>James Benthall</Name>
<Value>7.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Positive</Name>
<Value>0.265955</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.265955</Value>
</Max>
</Polarity>
<OfferingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
</ProperNouns>
<Locations>
<Result>
<Name>Boston</Name>
<Value>4.000000</Value>
</Result>
</Locations>
</Topics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.1.2.  Topics - descriptive information for a TopicResult.

A topic is a noun from the text.

In the XML

Name

The topic (e.g. Baseball).

Value

The prominence of the word in the text.

Topics are linguistically identified according to their roles in the text, and therefore are more indicative of the text's meaning than simple keywords ranked by frequency. A complex weighting algorithm is used to determine the most important subjects, and the effect of plurals, etc., is eliminated to reduce noise. The resulting simple topics are then used to traverse an ontology, which relates simple topics to each other: skiing and swimming would be related to each other as sports. These higher-level topics (domains) are also reported, with their aggregated rankings, in the signal output. The net result is a rich data structure of topical information based upon the roles, relevance and domain weight of subjects in the text. In addition, topics that can be identified as locations and/or proper names are so designated.

2.1.2.1.  Interpretation Guidelines

The Topic Value contains the weighted rank of the Topic in the text. All Topics are returned in descending order by Value. Where multiple Topics have equal weight in the text, they are sorted alphabetically (not by order of appearance).

2.1.2.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.1.2.3.  Example output

<AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
<TopicResult>
<Topic>
<Name>baseball</Name>
<Value>10.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.150000</Value>
</Max>
</Polarity>
<OfferingGuidance>
<Name>To Some Extent</Name>
<Value>2.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
.
.
.
</TopTopics>
<ProperNouns>
.
.
.
</ProperNouns>
<Locations>
<Result>
<Name>Boston</Name>
<Value>4.000000</Value>
</Result>
</Locations>
</Topics>
.
.
.
</AmplifyReturn>
</AmplifyResponse>

2.1.3.  Polarity - a measurement of the positive/negative perception of a topic in the text.

Polarity is the attitude expressed towards a Topic in the text.

Topical information is of limited value without the sentiment data that focuses it. The Polarity signal detects the degree to which perception of a topic is positive or negative, on a scale of -1.0 (very negative) to very positive (+1.0). Polarity is derived from a combination of linguistic features and takes account of negations and even multiple negations. The mean polarity (see below) is calculated from the individual polarity scores calculated from every instance of a given topic in the input text. Some rounding of the mean score is performed. Minimum polarity is the lowest encountered single polarity score for the topic; maximum polarity is the highest encountered.

2.1.3.1.  Interpretation Guidelines

Polarity is presented as three structures, "min", "max" and "mean". This is implemented so that various interpretations of polarity can be used in end user applications. For example, for a topic "peanut butter", the end user might decide that even if the overall (mean) polarity is positive, any negative mention (min) disqualifies certain action. Polarity therefore provides great flexibility in sentiment analysis.

Each structure is expressed both as a textual ("Name") and scalar ("Value") value in the output.

Value to Name mappings

  • value < 0 » "Negative"

  • value = 0 » "Neutral"

  • value > 0 » "Positive"

Scalar values range from -1.0 to +1.0, with 0.0 the neutral value. The scalar value permits more granular interpretation of the Polarity signal.

2.1.3.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.1.3.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
<TopicResult>
<Topic>
<Name>baseball</Name>
<Value>10.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.150000</Value>
</Max>
</Polarity>
.
.
.
</TopicResult>
</TopTopics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.1.4.  Topic Guidance - a measurement of the degree to which guidance or advice is being offered or requested on a topic in the text.

Guidance can be sought or offered; the signal returns both measurements. A topic that returns, for example, a strong value for seeking guidance may be used to infer an opportunity for providing advice. A text where multiple topics are all returning high values for offering guidance may be inferred to be instructional or inspirational in nature. Guidance is a rich signal whose creative use, especially in combination with other signals such as action and temporality, can offer deep insight into needs and motivations.

2.1.4.1.  Interpretation Guidelines

Guidance is returned as two output nodes, OfferingGuidance and RequestingGuidance. Each returns both "Name" and "Value".

Value to Name mapping:

  • value = 1 » "Not At All"

  • value = 2 » "To Some Extent"

  • value = 3 » "A Lot"

2.1.4.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.1.4.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
<TopicResult>
<Topic>
<Name>baseball</Name>
<Value>10.000000</Value>
</Topic>
<Polarity>
.
.
.
</Polarity>
<OfferingGuidance>
<Name>To Some Extent</Name>
<Value>2.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
.
.
.
</TopTopics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.1.5.  Proper Nouns - A ranked list of proper nouns appearing in the text.

Proper nouns are presented as discrete output within the Topics tree. Therefore, they participate in the domain weighting, but are output separately for ease of identification and use.

2.1.5.1.  Interpretation Guidelines

No special guidelines.

2.1.5.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.1.5.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
.
.
.
</TopTopics>
<ProperNouns>
<TopicResult>
<Topic>
<Name>James Benthall</Name>
<Value>7.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Positive</Name>
<Value>0.265955</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.265955</Value>
</Max>
</Polarity>
<OfferingGuidance>
<Name>No At All</Name>
<Value>1.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
</ProperNouns>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.1.6.  Locations - a ranked list of locations appearing in the text.

Locations are presented as discrete output within the Topics tree. Therefore, they participate in the domain weighting, but are output separately for ease of identification and use.

2.1.6.1.  Interpretation Guidelines

No special guidelines.

2.1.6.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.1.6.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
.
.
.
</TopTopics>
<ProperNouns>
.
.
.
</ProperNouns>
<Locations>
<Result>
<Name>Boston</Name>
<Value>4.000000</Value>
</Result>
</Locations>
</Topics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

Chapter 2.2.  The Action Analysis

The action analysis delivers a set of signals that describe the actions that have been, are being, or may be undertaken in the text. Actions are presented not just as simple verbs, but in combination with their objects ("buy a car"). Tenses are analyzed and presented, along with any specific temporal references ("this week" or "at Easter") and other information. Guidance indicators and measurements of probability of action are also included.

2.2.1.  Action Analysis Structure

The topic analysis is returned as a tag set <Actions></Actions>. The tag set includes <Scores>, which in turn will contain one or more instances of <ActionResult>. Each ActionResult contains the following tag sets:

<Action>

Describes the action (example: give a dollar) and its weight in the text.

<ActionType>

Classifies the action into a useful category to reduce the diversity of actions ("acquire", "buy" and "purchase" become "buy").

<Decisiveness>

Is a measure of how likely the action is to take place.

<Temporality>

Includes any temporal references to the action, and can include specific times or dates ("this Christmas") or tense indicators ("Future").

<OfferingGuidance> and <RequestingGuidance>

Provide estimates of the degree to which the text is offering or requesting guidance, respectively, in relation to the action.

2.2.1.1.  Example input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.2.1.2.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
<TopActions>
<ActionResult>
<Action>
<Name>appear in Boston</Name>
<Value>4.000000</Value>
</Action>
<ActionType>
<Result>
<Name>other</Name>
<Value>1.000000</Value>
</Result>
</ActionType>
<Decisiveness>
<Name>Low</Name>
<Value>1.000000</Value>
</Decisiveness>
<TemporalityResult>
<Temporality>
<Name>Present</Name>
<Value>3.000000</Value>
</Temporality>
</TemporalityResult>
<OfferingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</ActionResult>
<ActionResult>
<Action>
<Name>donate a few dollars</Name>
<Value>3.000000</Value>
</Action>
<ActionType>
<Result>
<Name>buy</Name>
<Value>3.000000</Value>
</Result>
</ActionType>
<Decisiveness>
<Name>Medium</Name>
<Value>3.000000</Value>
</Decisiveness>
<TemporalityResult>
<Temporality>
<Name>Present</Name>
<Value>3.000000</Value>
</Temporality>
</TemporalityResult>
<OfferingGuidance>
<Name>A Lot</Name>
<Value>3.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</ActionResult>
</TopActions>
</Actions>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.2.2.  Action - an action that has been, is being, or will be taken.

Actions are verb-based constructs, excluding such stative verbs as "to be" and "to have"; the intent is to surface actions being taken or considered. OpenAmplify returns not just the verb but the object of the verb: for example, "eat a pie." This is more useful than just a list of verbs. In addition, OpenAmplify reports actions in the base (infinitive) form, so that "said hello" will be signaled as "say hello".

Each Action is returned in a tag set <ActionResult>. ActionResult contains the <Action> tag, as well as the supporting signals <Decisiveness>, <Temporality>, <OfferingGuidance> and <RequestingGuidance>.

The <Action> tag set includes two tags, <Name> and <Value>. Name contains the verbiage of the action, for example, "cross the bridge". Value contains the weighted rank of the action in the text. All Actions are returned in descending order by Value.

2.2.2.1.  Interpretation Guidelines

The Action Value contains the weighted rank of the Action in the text. All Actions are returned in descending order by Value. Where multiple Actions have equal weight in the text, they are sorted alphabetically (not by order of appearance).

All output is in lowercase letters.

2.2.2.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.2.2.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
<TopActions>
<ActionResult>
<Action>
<Name>donate a few dollars</Name>
<Value>3.000000</Value>
</Action>
<ActionType>
<Result>
<Name>buy</Name>
<Value>3.000000</Value>
</Result>
</ActionType>
<Decisiveness>
<Name>Medium</Name>
<Value>3.000000</Value>
</Decisiveness>
<Temporality>
<TemporalityResult>
<Name>Present</Name>
<Value>3.000000</Value>
</TemporalityResult>
</Temporality>
<OfferingGuidance>
<Name>A Lot</Name>
<Value>3.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</ActionResult>
</TopActions>
</Actions>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.2.3.  ActionType - a classification of an action into a useful category.

Because actions are based upon verbs, the range of values that can be returned is very broad. This may render it difficult to predicate automated decisions upon actions. OpenAmplify therefore classifies actions into ActionTypes. For example, the actions "construct", "develop", and "mock up" all conceptually equate to "build".

Each ActionType is returned in a tag set <ActionType>. ActionType contains one or more <Result> tags. Each <Result> tag contains a <Name> and <Value> tag.

2.2.3.1.  Interpretation Guidelines

The ActionType tagset includes one or more instance of <Result>, each of which includes two tags, <Name> and <Value>. <Name> contains the the type (or verb category) of the action. Currently it can assume one of the following values:

  • Admire
  • Advice
  • Assess
  • Attack
  • Attend
  • Believe
  • Buy
  • Choose
  • Collaborate
  • Communicate
  • Compete
  • Consume
  • Create
  • Damage
  • Debate
  • Decide
  • Dislike
  • Dress
  • Educate
  • Emote
  • Give
  • Groom
  • Help
  • Impel
  • Lead
  • Learn
  • Like
  • Move
  • Penalize
  • Persuade
  • Pursuing
  • Repair
  • Request
  • Reward
  • Say
  • SeekAdvice
  • Sell
  • Socialize
  • Travel
  • Use
  • Vote
  • Want

or

  • other - the default class; used whenever actions don't fall under any of the above.

The Action type Value contains the aggregated value of the Actions under this ActionType.

Future releases of OpenAmplify will include more ActionType classes, as we distill new useful types from the extremely broad spectrum of verbs that currently are classified under the default class "other".

2.2.3.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.2.3.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
<Scores>
<ActionResult>
<Action>
<Name>donate a few dollars</Name>
<Value>3.000000</Value>
</Action>
<ActionType>
<Result>
<Name>buy</Name>
<Value>3.000000</Value>
</Result>
</ActionType>
.
.
.
</ActionResult>
</Scores>
</Actions>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.2.4.  Decisiveness - the likelihood that an action will be taken.

Identified actions are enhanced by a sense of how likely the action is to occur. Linguistic techniques can frequently surface an accurate measurement of such likelihood, and OpenAmplify provides this measurement in the signal.

2.2.4.1.  Interpretation Guidelines

The <Decisiveness> tag set includes two tags, <Name> and <Value>

Value to Name mappings

  • value < 0 » "NA"

  • value 0-1 » "Low"

  • value 1.000001 - 2 » "Medium Low"

  • value 2.000001 - 3 » "Medium"

  • value 3.000001 - 4 » "Medium High"

  • value 4.000001 - 5 » "High"

2.2.4.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.2.4.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
<Scores>
<ActionResult>
<Action>
<Name>appear in Boston</Name>
<Value>4.000000</Value>
</Action>
<ActionType>
.
.
.
</ActionType>
<Decisiveness>
<Name>Low</Name>
<Value>1.000000</Value>
</Decisiveness>
.
.
.
</ActionResult>
</Scores>
</Actions>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.2.5.  Temporality - the temporal references linked to an action.

An action can be better understood if the temporal references to the action can be surfaced. OpenAmplify can identify such temporal references in a number of ways. Temporality reports temporal references in two categories:

  • Explicit temporal references: examples would be "next week" or "this Christmas";

  • Tense: Past, Present or Future

2.2.5.1.  Interpretation Guidelines

The <Temporality> tag set includes one or more instance of <TemporalityResult>, each of which includes two tags, <Name> and <Value>

Value to Name mappings

  • value = 0 » "NA"

  • value = 1 » "Past"

  • value = 2 » "Recent Past"

  • value = 3 » "Present"

  • value = 4 » "Future"

The Value is only applicable when the result signals the tense (the time frame) and can have the values: 1.0, 2.0, 3.0 or 4.0, corresponding to “Past”, “Recent Past”, “Present” or “Future”. When used within an explicit temporal reference such as "today", Value is meaningless, the value is then 0 and is thus just a placeholder.

2.2.5.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.2.5.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
<Scores>
<ActionResult>
<Action>
<Name>appear in Boston</Name>
<Value>4.000000</Value>
</Action>
<ActionType>
.
.
.
</ActionType>
<Decisiveness>
.
.
.
</Decisiveness>
<TemporalityResult>
<Temporality>
<Name>Present</Name>
<Value>3.000000</Value>
</Temporality>
</TemporalityResult>
.
.
.
</ActionResult>
.
.
.
</Scores>
</Actions>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.2.6.  Action Guidance - a measurement of the degree to which guidance or advice is being offered or requested on an action in the text.

Guidance can be sought or offered; the signal returns both measurements. A action that returns, for example, a strong value for seeking guidance may be used to infer an opportunity for providing advice. A text where multiple actions are all returning high values for offering guidance may be inferred to be instructional or inspirational in nature. Guidance is a rich signal whose creative use, especially in combination with other signals such as topic and polarity, can offer deep insight into needs and motivations.

2.2.6.1.  Interpretation Guidelines

Guidance is returned as two output nodes, OfferingGuidance and RequestingGuidance. Each returns both a textual ("Name") and scalar ("Value") value.

Value to Name mappings

  • value = 1 » "Not At All"

  • value = 2 » "To Some Extent"

  • value = 3 » "A Lot"

2.2.6.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.2.6.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
<Scores>
<ActionResult>
<Action>
<Name>donate a few dollars</Name>
<Value>3.000000</Value>
</Action>
.
.
.
</ActionType>
<Decisiveness>
.
.
.
</Decisiveness>
<Temporality>
.
.
.
</Temporality>
<OfferingGuidance>
<Name>A Lot</Name>
<Value>3.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</ActionResult>
</Scores>
</Actions>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

Chapter 2.3.  The Style Analysis

The style analysis applies linguistic techniques to the measurement of text-level stylistic characteristics. In this release, signals are produced for Flamboyancy and Slang.

2.3.1.  Style Analysis Structure

The demographic analysis is returned as a tag set <Styles></Styles>. The tag set includes <Flamboyance> and <Slang>.

2.3.1.1.  Example input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.3.1.2.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
.
.
.
</Actions>
<Demographics>
.
.
.
</Demographics>
<Styles>
<Slang>
<Name>No Slang</Name>
<Value>0.000000</Value>
</Slang>
<Flamboyance>
<Name>Not Flamboyant</Name>
<Value>1.000000</Value>
</Flamboyance>
</Styles>
</AmplifyReturn>
</ns1:AmplifyResponse>

2.3.2.  Flamboyance - a measurement of the degree to which the style used in the text is elaborate or "flowery".

To avoid subjectivity, this measurement is based not just upon vocabulary but also upon linguistic markers and constructs. Flamboyance can be used, as examples, for determination of text genre (example: technical documentation tends not to be flamboyant in style), or for characterization of the target audience (example: targets of sales literature tend to expect somewhat flowery language in the materials they read).

2.3.2.1.  Interpretation Guidelines

Flamboyance is expressed both as a textual ("Name") and scalar ("Value") value in the output.

Value to Name mappings:

  • value = 1 » "Not Flamboyant"

  • value = 2 » "Not Very Flamboyant"

  • value = 3 » "Somewhat Flamboyant"

  • value = 4 » "Flamboyant"

  • value = 5 » "Very Flamboyant"

2.3.2.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.3.2.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
.
.
.
</Actions>
<Demographics>
.
.
.
</Demographics>
<Styles>
<Slang>
.
.
.
</Slang>
<Flamboyance>
<Name>Not Flamboyant</Name>
<Value>1.000000</Value>
</Flamboyance>
</Styles>
</AmplifyReturn>
</ns1:AmplifyResponse>


2.3.3.  Slang - a measurement of the degree to which slang words are used in the text.

This signal can be useful in asserting the characteristics of the author or intended audience. Vocabulary contributes heavily to the measurement of slang usage, although other linguistic constructs are also measured.

2.3.3.1.  Interpretation Guidelines

Slang is expressed both as a textual ("Name") and scalar ("Value") value in the output. The Value roughly indicates the percentage (0-100) of slang words in the text.

Value to Name mappings:

  • value >= 3 » "Slang"

  • value < 3 » "No Slang"

2.3.3.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.3.3.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
.
.
.
</Actions>
<Demographics>
.
.
.
</Demographics>
<Styles>
<Slang>
<Name>No Slang</Name>
<Value>0.000000</Value>
</Slang>
.
.
.
</Styles>
</AmplifyReturn>
</ns1:AmplifyResponse>

Chapter 2.4.  The Demographic Analysis

The demographic analysis applies linguistic techniques to the estimation of text-level demographic signals. In this release, signals are produced for Age, Gender and Education Level of the text. Depending upon the context and intent of the text, these signals may apply to the author(s), the intended audience, or both. Demographic applications of linguistic techniques will receive a lot of attention in upcoming releases of OpenAmplify .

2.4.1.  Demographic Analysis Structure

The demographic analysis is returned as a tag set <Demographics></Demographics>. The tag set includes <Age>, <Gender> and <Education>.

2.4.1.1.  Example input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.4.1.2.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
.
.
.
</Actions>
<Demographics>
<Age>
<Name>Senior</Name>
<Value>0.027241</Value>
</Age>
<Gender>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Gender>
<Education>
<Name>College</Name>
<Value>3.000000</Value>
</Education>
<Language>
<Name>English</Name>
<Value>21.335</Value>
</Language>
</Demographics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.4.2.  Age - an estimate of the age range of the author/audience of the text.

Stylistic markers and vocabulary are among the numerous elements that can be used to try to infer age from textual content. The Age signal applies linguistic analysis to the text and returns its best guess of the probable age range of the author or intended audience.

2.4.2.1.  Interpretation Guidelines

Age is expressed both as a textual ("Name") and scalar ("Value") value in the output.

Value to Name mappings

  • value < (-.02) » "Young"

  • value (-.02) - .02 » "Adult"

  • value > .02 » "Senior"

2.4.2.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.4.2.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
.
.
.
</Actions>
<Demographics>
<Age>
<Name>Senior</Name>
<Value>0.027241</Value>
</Age>
.
.
.
</Demographics>
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.4.3.  Gender - a calculation of the probable gender of the author/audience of the text.

Stylistic markers, topics and vocabulary are among the numerous elements that can be used to try to infer gender from textual content. The Gender signal applies linguistic analysis to the text and returns its best guess of the probable gender of the author or intended audience.

2.4.3.1.  Interpretation Guidelines

The Gender signal reports OpenAmplify's estimate of the author's gender. Within the Gender signal, Name gives a textual indication of the gender, and Value indicates OpenAmplify's degree of certainty about its estimate.

Name values

  • Female

  • Male

  • Neutral

Scalar values range from 0.0 to +1.0 with 0 representing no certainty and 1 representing a great deal of certainty.

2.4.3.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.4.3.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
.
.
.
</Actions>
<Demographics>
<Age>
.
.
</Age>
<Gender>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Gender>
.
.
.
</Demographics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>


2.4.4.  Education - a calculation of the probable education level of the intended audience of the text.

Stylistic markers, topics and vocabulary are among the numerous elements that can be used to try to infer education level from textual content. The Education signal applies linguistic analysis to the text and returns its best guess of the probable education level of the author or intended audience.

2.4.4.1.  Interpretation Guidelines

Education is expressed both as a textual ("Name") and scalar ("Value") value in the output.

Value to Name mappings

  • value = 0 » "Undecided"

  • value = 1 » "Pre-Secondary"

  • value = 2 » "Secondary"

  • value = 3 » "College"

  • value = 4 » "Post Graduate"

2.4.4.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.4.4.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
.
.
.
</Actions>
<Demographics>
<Age>
.
.
.
</Age>
<Gender>
.
.
.
</Gender>
<Education>
<Name>College</Name>
<Value>3.000000</Value>
</Education>
</Demographics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.4.5.  Language - a calculation of the language that the text is written in.

The Language signal applies linguistic analysis to the text and returns its best guess of the language that the text is written in.

2.4.5.1.  Interpretation Guidelines

Language is expressed both as a textual ("Name") and scalar ("Value") value in the output. The Value indicates the certainty that the text is in the indicated language.

2.4.5.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.4.5.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
.
.
.
</Actions>
<Demographics>
<Age>
.
.
.
</Age>
<Gender>
.
.
.
</Gender>
<Education>
.
.
.
</Education>
<Language>
<Name>English</Name>
<Value>21.335</Value>
</Language>
</Demographics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

Chapter 2.5.  The Topic Intentions Analysis

The topic intentions analysis delivers a set of signals that describe the intent of the text's author with respect to the topical content of a text.

2.5.1.  Topic Intentions Analysis Structure

The topic intentions analysis is returned as a tag set <Topic Intentions></Topic Intentions>. The tag set includes <Domains>, <TopTopics>, <ProperNouns> and <Locations>.

<Domains>

Includes information that shows relationships between topics. Domains may include subdomains, and subdomains will include specific topics encountered in the text. Domain output is ranked by highest weight. The top three domains are reported

<TopTopics>

Includes specific information for the topics, each of which is represented by a <TopicIntentionResulty> tag set. In general, TopTopics are presented in weighted order, descending.

TopTopics may include entries that appear in other tag sets: for example, "Boston" will appear as a TopTopic, a ProperNoun, and a Location.

Within each TopicIntentionResult tag set will be included a descriptive <Topic> tag set, and a number of subsidiary signals: <Polarity>, <OfferingGuidance>, <RequestingGuidance>, and <TopicIntention>.

<ProperNouns>

Includes identified proper nouns, presented according to the 15/20 rule. ProperNouns may appear in other tag sets. ProperNoun output includes <Polarity>, <OfferingGuidance> and <RequestingGuidance>;

<Locations>

Includes identified physical locations, presented according to the 15/20 rule. Locations may appear in other tag sets. No subsidiary signals are included with locations.

2.5.1.1.  Example input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.5.1.2.  Example output

            <AmplifyResponse>
<AmplifyReturn>
<Topics>
.
.
.
</Topics>
<Actions>
.
.
.
</Actions>
<TopicIntentions>
<Domains />
<TopTopics>
<TopicIntentionResult>
<Topic>
</Topic>
<Polarity>
</Polarity>
<OfferingGuidance>
</OfferingGuidance>
<RequestingGuidance>
</RequestingGuidance>
<TopicIntention>
<TopicActionTypeResult>
<ActionType>
<Name>give</Name>
<Value>2.000000</Value>
</ActionType>
<TopicRoles>
<TopicRoleResult>
<TopicRole>
<Name>Subject</Name>
<Value>2.000000</Value>
</TopicRole>
<Decisiveness>
<Name>Low</Name>
<Value>1.000000</Value>
</Decisiveness>
<TemporalityResult>
<Temporality>
<Name>Present</Name>
<Value>3.000000</Value>
</Temporality>
</TemporalityResult>
<OfferingGuidance>
<Name>To Some Extent</Name>
<Value>2.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicRoleResult>
</TopicRoles>
</TopicActionTypeResult>
</TopicIntention>
</TopicIntentionResult>
<TopicIntentionResult>
.
.
.
</TopicIntentionResult>
<TopicIntentionResult>
.
.
.
</TopicIntentionResult>
</TopTopics>
<ProperNouns>
.
.
.
</ProperNouns>
<Locations>
.
.
.
</Locations>
</TopicIntentions>
<Demographics>
.
.
.
</Demographics>
<Styles>
.
.
.
</Styles>
</AmplifyReturn>
</AmplifyResponse>

2.5.2.  Topics - descriptive information for a TopicIntentionResulty.

A topic is a noun from the text.

In the XML

Name

The topic (e.g. Baseball).

Value

The prominence of the word in the text.

Topics are linguistically identified according to their roles in the text, and therefore are more indicative of the text's meaning than simple keywords ranked by frequency. A complex weighting algorithm is used to determine the most important subjects, and the effect of plurals, etc., is eliminated to reduce noise. The resulting simple topics are then used to traverse an ontology, which relates simple topics to each other: skiing and swimming would be related to each other as sports. These higher-level topics (domains) are also reported, with their aggregated rankings, in the signal output. The net result is a rich data structure of topical information based upon the roles, relevance and domain weight of subjects in the text. In addition, topics that can be identified as locations and/or proper names are so designated.

2.5.2.1.  Interpretation Guidelines

The Topic Value contains the weighted rank of the Topic in the text. All Topics are returned in descending order by Value. Where multiple Topics have equal weight in the text, they are sorted alphabetically (not by order of appearance).

2.5.2.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.5.2.3.  Example output

<AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
<TopicResult>
<Topic>
<Name>baseball</Name>
<Value>10.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.150000</Value>
</Max>
</Polarity>
<OfferingGuidance>
<Name>To Some Extent</Name>
<Value>2.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
.
.
.
</TopTopics>
<ProperNouns>
.
.
.
</ProperNouns>
<Locations>
<Result>
<Name>Boston</Name>
<Value>4.000000</Value>
</Result>
</Locations>
</Topics>
.
.
.
</AmplifyReturn>
</AmplifyResponse>

2.5.3.  Polarity - a measurement of the positive/negative perception of a topic in the text.

Polarity is the attitude expressed towards a Topic in the text.

Topical information is of limited value without the sentiment data that focuses it. The Polarity signal detects the degree to which perception of a topic is positive or negative, on a scale of -1.0 (very negative) to very positive (+1.0). Polarity is derived from a combination of linguistic features and takes account of negations and even multiple negations. The mean polarity (see below) is calculated from the individual polarity scores calculated from every instance of a given topic in the input text. Some rounding of the mean score is performed. Minimum polarity is the lowest encountered single polarity score for the topic; maximum polarity is the highest encountered.

2.5.3.1.  Interpretation Guidelines

Polarity is presented as three structures, "min", "max" and "mean". This is implemented so that various interpretations of polarity can be used in end user applications. For example, for a topic "peanut butter", the end user might decide that even if the overall (mean) polarity is positive, any negative mention (min) disqualifies certain action. Polarity therefore provides great flexibility in sentiment analysis.

Each structure is expressed both as a textual ("Name") and scalar ("Value") value in the output.

Value to Name mappings

  • value < 0 » "Negative"

  • value = 0 » "Neutral"

  • value > 0 » "Positive"

Scalar values range from -1.0 to +1.0, with 0.0 the neutral value. The scalar value permits more granular interpretation of the Polarity signal.

2.5.3.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.5.3.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
<TopicResult>
<Topic>
<Name>baseball</Name>
<Value>10.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.150000</Value>
</Max>
</Polarity>
.
.
.
</TopicResult>
</TopTopics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.5.4.  Topic Guidance - a measurement of the degree to which guidance or advice is being offered or requested on a topic in the text.

Guidance can be sought or offered; the signal returns both measurements. A topic that returns, for example, a strong value for seeking guidance may be used to infer an opportunity for providing advice. A text where multiple topics are all returning high values for offering guidance may be inferred to be instructional or inspirational in nature. Guidance is a rich signal whose creative use, especially in combination with other signals such as action and temporality, can offer deep insight into needs and motivations.

2.5.4.1.  Interpretation Guidelines

Guidance is returned as two output nodes, OfferingGuidance and RequestingGuidance. Each returns both "Name" and "Value".

Value to Name mapping:

  • value = 1 » "Not At All"

  • value = 2 » "To Some Extent"

  • value = 3 » "A Lot"

2.5.4.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.5.4.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
<TopicResult>
<Topic>
<Name>baseball</Name>
<Value>10.000000</Value>
</Topic>
<Polarity>
.
.
.
</Polarity>
<OfferingGuidance>
<Name>To Some Extent</Name>
<Value>2.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
.
.
.
</TopTopics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.5.5.  Proper Nouns - A ranked list of proper nouns appearing in the text.

Proper nouns are presented as discrete output within the Topics tree. Therefore, they participate in the domain weighting, but are output separately for ease of identification and use.

2.5.5.1.  Interpretation Guidelines

No special guidelines.

2.5.5.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.5.5.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
.
.
.
</TopTopics>
<ProperNouns>
<TopicResult>
<Topic>
<Name>James Benthall</Name>
<Value>7.000000</Value>
</Topic>
<Polarity>
<Min>
<Name>Neutral</Name>
<Value>0.000000</Value>
</Min>
<Mean>
<Name>Positive</Name>
<Value>0.265955</Value>
</Mean>
<Max>
<Name>Positive</Name>
<Value>0.265955</Value>
</Max>
</Polarity>
<OfferingGuidance>
<Name>No At All</Name>
<Value>1.000000</Value>
</OfferingGuidance>
<RequestingGuidance>
<Name>Not At All</Name>
<Value>1.000000</Value>
</RequestingGuidance>
</TopicResult>
</ProperNouns>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

2.5.6.  Locations - a ranked list of locations appearing in the text.

Locations are presented as discrete output within the Topics tree. Therefore, they participate in the domain weighting, but are output separately for ease of identification and use.

2.5.6.1.  Interpretation Guidelines

No special guidelines.

2.5.6.2.  Example Input

Baseball is stepping up. James Benthall appeared today in Boston at a benefit event, and noted the need for direct action. He proposed that every person present donate to the relief fund. "You should donate a few dollars, at the very least, to show that baseball gives back to the community."

2.5.6.3.  Example output

<ns1:AmplifyResponse>
<AmplifyReturn>
<Topics>
<Domains>
.
.
.
</Domains>
<TopTopics>
.
.
.
</TopTopics>
<ProperNouns>
.
.
.
</ProperNouns>
<Locations>
<Result>
<Name>Boston</Name>
<Value>4.000000</Value>
</Result>
</Locations>
</Topics>
.
.
.
</AmplifyReturn>
</ns1:AmplifyResponse>

Part 3.  The OpenAmplify Public API

OpenAmplify is architected to be an open commercial service. As a platform, it offers any developer the ability to submit any English-language content for analysis, and the ability to receive a rich analysis of meaning in a scalable, machine-usable XML format. This functionality is exposed via a published API, accessible via SOAP and REST interfaces.

This section of the documentation will describe the API in two subsections:

The Transaction Concept

Describes how an OpenAmplify request is handled, and the transactional impact of that handling.

The Input API

The syntax and procedures required to submit a text for OpenAmplify analysis

Note that descriptions of the API output are provided in the Signal Descriptions section of this documentation.

Chapter 3.1.  OpenAmplify Transaction Concept.

Each request made to OpenAmplify may result in one or more transactions. Transactions are mapped to the amount of work being performed, load being handled, and value being delivered.

Transactions are evaluated upon the following factors:

Analysis Request

A single Analysis results in a single transaction. Analysis=all results in two transactions.

Spider Request

A request made using sourceURL= results in the retrieval of the specified document from its URL. An additional transaction is charged for this operation.

Document Size

A request made against more than 2.5k of stripped text is charged an additional transaction.

Thus, it is possible, for a request that spiders a large document and specifies analysis=all, to be assessed 4 transactions. This would mean that a standard developer account would be limited to 250 such analyses per day.

Commercial accounts with specialized, custom functionality may be assessed other transaction charges on a case by case basis.

Chapter 3.2.  Input API

Requests to OpenAmplify can be made either via HTTP POST or SOAP. The wsdl is located here. SOAP parameter value pairs are as described in the HTTP syntax that follows. HTTP requests should be formatted as an HTTP Form, per the syntax described in this section. For developer transactions, requests should be submitted to:

	http://portaltnx.openamplify.com/AmplifyWeb_v11/AmplifyThis      

OpenAmplify requests may assume two forms: an exhaustive format and a search format

  • Exhaustive Request: analyze the entire input text, surfacing all signal values;

  • Search Request: analyze the input text in the context of provided search terms, returning only signals related to those terms.

Following subsections detail these two request formats in detail.

3.2.1.  Exhaustive Request Format

The exhaustive search format returns desired signals based upon exhaustive analysis of the entire input text. Requests follow the following syntax:

	  http://portaltnx.openamplify.com/AmplifyWeb_v11/AmplifyThis?analysis={[all]
[topics]
[actions]
[demographics]
[styles]
&apiKey=apikey
[&outputformat=[][dart][json]]
{&[sourceurl=url]
[&inputtext=urlencoded_input_text]}

where:

subdomain

is assigned per customer or usage organization

analysis

is the type of signals requested. Values are case-insensitive:

all

returns all available signals

topics

returns the Topic group (Topics, Guidance, Polarity)

actions

returns the Actions group (Actions, Guidance, Decisiveness)

demographics

returns Age and Gender signals

styles

returns Flamboyance and Slang signals

apikey

is an OpenAmplify-assigned API key value for authentication purposes

outputformat

sets the format of the returned results, and can be blank (returns XML output), dart or json. Default is XML output

sourceurl

if specified, requests OpenAmplify to spider the single page located at the specified URL. Mutually exclusive with inputtext

inputtext

if specified, permits the inclusion of a URLEncoded text to be analyzed. Mutually exclusive with sourceurl

3.2.1.1.  Examples

	   http://portaltnx.openamplify.com/AmplifyWeb_v11/AmplifyThis?analysis=all&apikey=12345&inputtext=This%20is%20a%20test%20text&outputformat=dart

This would return all available signals in Doubleclick DART format against the input text "This is a test"

	   http://portaltnx.openamplify.com/AmplifyWeb_v11/AmplifyThis?analysis=topics&apikey=12345&sourceurl= http%3A%2F%2Fwww.cnn.com%2Farticles%2Ffictional.html

This would return the Topics analysis in XML format (default) for the text found at http://www.cnn.com/articles/fictional.html

3.2.2.  Search Request Format

The search request format generates an analysis of the input text and only returns signals that apply to the specified search terms. This format is therefore useful when only specific, contextual output is sought. Requests follow the following syntax:

	  http://portaltnx.openamplify.com/AmplifyWeb_v11/AmplifyThis?analysis=search
&apiKey=apikey
[&outputformat=[][dart][json]]
{&[sourceurl=url]
[&inputtext=urlencoded_input_text]}
searchterms=searchTermList

Where

subdomain

is assigned per customer or usage organization

analysis

is set to the case-insensitive value search

apikey

is an OpenAmplify-assigned API key value for authentication purposes

outputformat

sets the format of the returned results, and can be blank (returns XML output), dart or json. Default is XML output

sourceurl

if specified, requests OpenAmplify to spider the single page located at the specified URL. Mutually exclusive with inputtext

inputtext

if specified, permits the inclusion of a URLEncoded text to be analyzed. Mutually exclusive with sourceurl

searchTerms

permits the specification of the terms of the search.

  • Each search term can be specified as a single word or as a group of words enclosed in quotes.

  • Search terms should be delimited with whitespace; for example dog cat "tree frog"

  • Each Search term can be lowercase or uppercase. If specified as lowercase, all forms of the term will match the search ("hotel" will match "hotel" or "Hotel"). Uppercase search terms are matched exactly.

  • Search terms are treated as an OR list

 

3.2.2.1.  Examples

	    http://portaltnx.openamplify.com/AmplifyWeb_v11/AmplifyThis?Analysis=Search&apikey=12345&searchTerms=football&InputText=This%20is%20a%20text%20about%20Football&outputformat=json

This would return all signals related to “football” in any spelling, against the input text provided, in json format

	    http://portaltnx.openamplify.com/AmplifyWeb_v11/AmplifyThis?analysis=search&apikey=12345&searchterms=obama%20clinton%20McCain?sourceurl= http%3A%2F%2Fwww.cnn.com%2Farticles%2Ffictional.html

This would return all signals related to “obama” or "clinton" (in any form, including “Obama”), and all signals relating to "McCain" (in that specific spelling) from the document at the URL specified, in XML format