Text Analytics

An AI service that uncovers insights such as sentiment, entities and key phrases in unstructured text

Extract insights from text

Discover insights in unstructured text using natural language processing (NLP) – no machine learning expertise required. Identify key phrases and entities such as people, places and organisations to understand common topics and trends. Classify medical terminology using domain-specific, pretrained models. Gain a deeper understanding of customer opinions with sentiment analysis. Evaluate text in a wide range of languages.

Broad entity extraction

Identify important concepts in text, including key phrases and named entities, such as people, places and organisations.

Powerful sentiment analysis

Examine what customers are saying about your brand, and detect sentiment around specific topics.

Robust language detection

Evaluate text input in a wide range of languages.

Flexible deployment

Run Text Analytics anywhere – in the cloud, on-premises or at the edge in containers.

  1. Analysed text
  2. JSON
Languages: English (confidence: 100%)
Key phrases: place, online menu, great menu, marvelous food, midtown NYC, week, dinner party, Contoso Steakhouse, pre-order, John Doe, Sirloin steak, chief cook, owner, kitchen, spot, dining, complaint, email
Sentiment:
Document
MIXED
86%
Positive
0%
Neutral
14%
Negative
Sentence 1
POSITIVE
99%
Positive
1%
Neutral
0%
Negative
Sentence 2
POSITIVE
100%
Positive
0%
Neutral
0%
Negative
Sentence 3
POSITIVE
100%
Positive
0%
Neutral
0%
Negative
Sentence 4
POSITIVE
100%
Positive
0%
Neutral
0%
Negative
Sentence 5
POSITIVE
100%
Positive
0%
Neutral
0%
Negative
Sentence 6
NEUTRAL
0%
Positive
100%
Neutral
0%
Negative
Sentence 7
NEGATIVE
0%
Positive
0%
Neutral
100%
Negative
Sentence 8
POSITIVE
100%
Positive
0%
Neutral
0%
Negative
Named Entities: Contoso Steakhouse [Location]
midtown NYC [Location]
last week [DateTime-DateRange]
chief cook [PersonType]
owner [PersonType]
John Doe [Person]
kitchen [Location-Structural]
www.contososteakhouse.com [URL]
312-555-0176 [Phone Number]
email [Skill]
order@contososteakhouse.com [Email]
PII entities: Type: Person
Value: John Doe

Type: URL
Value: www.contososteakhouse.com

Type: Phone Number
Value: 312-555-0176

Type: Email
Value: order@contososteakhouse.com

Linked Entities: We went to Contoso Steakhouse located at midtown NYC last week for a dinner party, and we adore the spot! They provide marvelous food and they have a great menu. The chief cook happens to be the owner (I think his name is John Doe) and he is super nice, coming out of the kitchen and greeted us all. We enjoyed very much dining in the place! The Sirloin steak I ordered was tender and juicy, and the place was impeccably clean. You can even pre-order from their online menu at www.contososteakhouse.com, call 312-555-0176 or send email to order@contososteakhouse.com! The only complaint I have is the food didn't come fast enough. Overall I highly recommend it!
{
  "languageDetection": {
    "documents": [
      {
        "id": "c6048096-59ae-4a2b-abc1-44275bc0f202",
        "detectedLanguages": [
          {
            "name": "English",
            "iso6391Name": "en",
            "score": 1.0
          }
        ]
      }
    ],
    "errors": [],
    "modelversion": "2019-10-01"
  },
  "keyPhrases": {
    "documents": [
      {
        "id": "c6048096-59ae-4a2b-abc1-44275bc0f202",
        "keyPhrases": [
          "place",
          "online menu",
          "great menu",
          "marvelous food",
          "midtown NYC",
          "week",
          "dinner party",
          "Contoso Steakhouse",
          "pre-order",
          "John Doe",
          "Sirloin steak",
          "chief cook",
          "owner",
          "kitchen",
          "spot",
          "dining",
          "complaint",
          "email"
        ]
      }
    ],
    "errors": [],
    "modelversion": "2020-07-01"
  },
  "sentiment": {
    "documents": [
      {
        "id": "c6048096-59ae-4a2b-abc1-44275bc0f202",
        "sentiment": "mixed",
        "documentscores": {
          "positive": 0.86,
          "neutral": 0.0,
          "negative": 0.14
        },
        "sentences": [
          {
            "sentiment": "positive",
            "sentencescores": {
              "positive": 0.99,
              "neutral": 0.01,
              "negative": 0.0
            },
            "offset": 0,
            "length": 105
          },
          {
            "sentiment": "positive",
            "sentencescores": {
              "positive": 1.0,
              "neutral": 0.0,
              "negative": 0.0
            },
            "offset": 106,
            "length": 55
          },
          {
            "sentiment": "positive",
            "sentencescores": {
              "positive": 1.0,
              "neutral": 0.0,
              "negative": 0.0
            },
            "offset": 162,
            "length": 137
          },
          {
            "sentiment": "positive",
            "sentencescores": {
              "positive": 1.0,
              "neutral": 0.0,
              "negative": 0.0
            },
            "offset": 300,
            "length": 41
          },
          {
            "sentiment": "positive",
            "sentencescores": {
              "positive": 1.0,
              "neutral": 0.0,
              "negative": 0.0
            },
            "offset": 342,
            "length": 85
          },
          {
            "sentiment": "neutral",
            "sentencescores": {
              "positive": 0.0,
              "neutral": 1.0,
              "negative": 0.0
            },
            "offset": 428,
            "length": 139
          },
          {
            "sentiment": "negative",
            "sentencescores": {
              "positive": 0.0,
              "neutral": 0.0,
              "negative": 1.0
            },
            "offset": 568,
            "length": 62
          },
          {
            "sentiment": "positive",
            "sentencescores": {
              "positive": 1.0,
              "neutral": 0.0,
              "negative": 0.0
            },
            "offset": 631,
            "length": 30
          }
        ]
      }
    ],
    "errors": [],
    "modelversion": "2020-04-01"
  },
  "entities": {
    "documents": [
      {
        "id": "c6048096-59ae-4a2b-abc1-44275bc0f202",
        "entities": [
          {
            "text": "Contoso Steakhouse",
            "type": "Location",
            "subtype": null,
            "offset": 11,
            "length": 18,
            "score": 0.46
          },
          {
            "text": "midtown NYC",
            "type": "Location",
            "subtype": null,
            "offset": 41,
            "length": 11,
            "score": 0.55
          },
          {
            "text": "last week",
            "type": "DateTime",
            "subtype": "DateRange",
            "offset": 53,
            "length": 9,
            "score": 0.8
          },
          {
            "text": "chief cook",
            "type": "PersonType",
            "subtype": null,
            "offset": 166,
            "length": 10,
            "score": 0.82
          },
          {
            "text": "owner",
            "type": "PersonType",
            "subtype": null,
            "offset": 195,
            "length": 5,
            "score": 0.71
          },
          {
            "text": "John Doe",
            "type": "Person",
            "subtype": null,
            "offset": 222,
            "length": 8,
            "score": 0.94
          },
          {
            "text": "kitchen",
            "type": "Location",
            "subtype": "Structural",
            "offset": 272,
            "length": 7,
            "score": 0.6
          },
          {
            "text": "www.contososteakhouse.com",
            "type": "URL",
            "subtype": null,
            "offset": 477,
            "length": 25,
            "score": 0.8
          },
          {
            "text": "312-555-0176",
            "type": "Phone Number",
            "subtype": null,
            "offset": 509,
            "length": 12,
            "score": 0.8
          },
          {
            "text": "email",
            "type": "Skill",
            "subtype": null,
            "offset": 530,
            "length": 5,
            "score": 0.8
          },
          {
            "text": "order@contososteakhouse.com",
            "type": "Email",
            "subtype": null,
            "offset": 539,
            "length": 27,
            "score": 0.8
          }
        ]
      }
    ],
    "errors": [],
    "modelversion": "2020-04-01"
  },
  "entityLinking": {
    "documents": [
      {
        "id": "c6048096-59ae-4a2b-abc1-44275bc0f202",
        "entities": [
          {
            "name": "Sirloin steak",
            "matches": [
              {
                "text": "Sirloin steak",
                "offset": 346,
                "length": 13,
                "score": 0.69
              }
            ],
            "language": "en",
            "id": "Sirloin steak",
            "url": "https://en.wikipedia.org/wiki/Sirloin_steak",
            "datasource": "Wikipedia"
          },
          {
            "name": "Steakhouse",
            "matches": [
              {
                "text": "Steakhouse",
                "offset": 19,
                "length": 10,
                "score": 0.78
              }
            ],
            "language": "en",
            "id": "Steakhouse",
            "url": "https://en.wikipedia.org/wiki/Steakhouse",
            "datasource": "Wikipedia"
          },
          {
            "name": "John Doe",
            "matches": [
              {
                "text": "John Doe",
                "offset": 222,
                "length": 8,
                "score": 0.01
              }
            ],
            "language": "en",
            "id": "John Doe",
            "url": "https://en.wikipedia.org/wiki/John_Doe",
            "datasource": "Wikipedia"
          },
          {
            "name": "New York City",
            "matches": [
              {
                "text": "NYC",
                "offset": 49,
                "length": 3,
                "score": 0.39
              }
            ],
            "language": "en",
            "id": "New York City",
            "url": "https://en.wikipedia.org/wiki/New_York_City",
            "datasource": "Wikipedia"
          }
        ]
      }
    ],
    "errors": [],
    "modelversion": "2020-02-01"
  },
  "entityPII": {
    "documents": [
      {
        "id": "c6048096-59ae-4a2b-abc1-44275bc0f202",
        "entities": [
          {
            "text": "John Doe",
            "type": "Person",
            "subtype": null,
            "offset": 222,
            "length": "8",
            "score": 0.94
          },
          {
            "text": "www.contososteakhouse.com",
            "type": "URL",
            "subtype": null,
            "offset": 477,
            "length": "25",
            "score": 0.8
          },
          {
            "text": "312-555-0176",
            "type": "Phone Number",
            "subtype": null,
            "offset": 509,
            "length": "12",
            "score": 0.8
          },
          {
            "text": "order@contososteakhouse.com",
            "type": "Email",
            "subtype": null,
            "offset": 539,
            "length": "27",
            "score": 0.8
          }
        ]
      }
    ],
    "errors": [],
    "modelversion": "2020-07-01"
  }
}

Identify and categorise important concepts

Classify a broad range of entities in text, such as people, places, organisations, date/time and percentages, using named entity recognition. Detect and extract 100+ types of personally identifiable information (PII), including protected health information (PHI), in documents.

Extract key phrases in unstructured text

Quickly evaluate and identify the main points in unstructured text. Get a list of relevant phrases that best describe the subject of each record using key phrase extraction. Easily pull and organise information to make sense of important topics and trends.

Better understand customer perception

Detect positive and negative sentiment in social media, customer reviews and other sources to get a pulse on your brand. Use opinion mining to explore customers’ perception of aspects, such as specific attributes of products or services, in text.

Process unstructured medical data

Extract insights from unstructured clinical documents such as doctors’ notes, electronic health records and patient intake forms using the health feature of Text Analytics (gated public preview). Recognise, classify and determine relationships between medical concepts such as diagnosis, symptoms and dosage and frequency of medication.

Detect language of your text

Evaluate text input in a wide range of languages, variants and regional languages using the language detection feature.

Deploy anywhere, from the cloud to the edge

Run Text Analytics wherever your data resides. Build applications that are optimised for both robust cloud capabilities and edge locality using containers.

Comprehensive privacy and security

  • Your data stays yours. Microsoft doesn’t use the training performed on your text to improve models.
  • Choose where Cognitive Services processes your data with containers.
  • Backed by Azure infrastructure, Text Analytics offers enterprise-grade security, availability, compliance and manageability.

Get the power, control and customisation you need with flexible pricing

  • Only pay for what you use, with no upfront costs.
  • With Text Analytics, you pay as you go based on the number of transactions.

Text Analytics resources

Getting started

Trusted by companies of all sizes

KPMG streamlines fraud analytics

KPMG is helping financial institutions save millions in compliance costs with its Customer Risk Analytics solution, which detects specific text patterns and keywords to flag compliance risks.

Read the story

KPMG

Wilson Allen unlocks insights from unstructured data

Wilson Allen created a powerful AI solution that can help law and professional services firms around the world find unprecedented levels of insight in previously siloed and unstructured data.

Read the story

Wilson Allen

IHC empowers service engineers

Royal IHC uses Azure Cognitive Search and Text Analytics to relieve its engineers from time-consuming manual data searches across disparate sources and give them insights on their structured and unstructured data.

Read the story

Royal IHC

La Liga boosts fan engagement

La Liga is engaging hundreds of millions of fans around the world with a personal digital assistant by using Text Analytics to process incoming queries and determine user intents in multiple languages.

Read the story

LaLiga

TIBCO brings root cause analysis to the edge

TIBCO is using Text Analytics and Anomaly Detector to detect and analyse anomalies (sudden changes in data patterns), discover root causes and suggest actions.

Read the story

TIBCO

Kotak Mahindra Bank accelerates productivity

Kotak Asset Management is transforming customer service management by enabling chatbots to easily analyse subject line, customer information and email content to identify sentiment and trigger the next best action.

Read the story

Kotak

Frequently asked questions about Text Analytics

  • Text Analytics detects a wide range of languages, variants and dialects. See the language support documentation for more information.
  • No, the models are pre-trained. Scoring, key phrase extraction and language detection operations are available on uploaded data. To create and host custom models, explore the Language Understanding service.
  • Yes. Sentiment analysis and key phrase extraction are available for a select number of languages, and you may request additional languages in the Text Analytics Forum.
  • Key phrase extraction eliminates non-essential words and standalone adjectives. Adjective-noun combinations, such as “spectacular views” or “foggy weather”, are returned together. Generally, output consists of nouns and objects of the sentence and is listed in order of importance. Importance is measured by the number of times a particular concept is mentioned, or the relation of that element to other elements in the text.
  • Improvements to models and algorithms are announced if the change is major, and added to the service if the update is minor. Over time, you might find that the same text input results in a different sentiment score or key phrase output. This is a normal and intentional consequence of using managed machine learning resources in the cloud.

Get started with Text Analytics