Built-in cognitive skills for text and image processing during indexing (Azure Cognitive Search)
In this article, you learn about the cognitive skills provided with Azure Cognitive Search that you can include in a skillset to extract content and structure. A cognitive skill is a module or operation that transforms content in some way. Often, it is a component that extracts data or infers structure, and therefore augments our understanding of the input data. Almost always, the output is text-based. A skillset is collection of skills that define the enrichment pipeline.
As you expand scope by increasing the frequency of processing, adding more documents, or adding more AI algorithms, you will need to attach a billable Cognitive Services resource. Charges accrue when calling APIs in Cognitive Services, and for image extraction as part of the document-cracking stage in Azure Cognitive Search. There are no charges for text extraction from documents.
The incremental enrichment (preview) feature allows you to provide a cache that enables the indexer to be more efficient at running only the cognitive skills that are necessary if you modify your skillset in the future, saving you time and money.
Several skills are flexible in what they consume or produce. In general, most skills are based on pre-trained models, which means you cannot train the model using your own training data. The following table enumerates and describes the skills provided by Microsoft.
|Microsoft.Skills.Text.CustomEntityLookupSkill||Looks for text from a custom, user-defined list of words and phrases.|
|Microsoft.Skills.Text.KeyPhraseSkill||This skill uses a pretrained model to detect important phrases based on term placement, linguistic rules, proximity to other terms, and how unusual the term is within the source data.|
|Microsoft.Skills.Text.LanguageDetectionSkill||This skill uses a pretrained model to detect which language is used (one language ID per document). When multiple languages are used within the same text segments, the output is the LCID of the predominantly used language.|
|Microsoft.Skills.Text.MergeSkill||Consolidates text from a collection of fields into a single field.|
|Microsoft.Skills.Text.EntityRecognitionSkill||This skill uses a pretrained model to establish entities for a fixed set of categories: people, location, organization, emails, URLs, datetime fields.|
|Microsoft.Skills.Text.PIIDetectionSkill||This skill uses a pretrained model to extract personally identifiable information from a given text. The skill also gives various options for masking the detected PII entities in the text.|
|Microsoft.Skills.Text.SentimentSkill||This skill uses a pretrained model to score positive or negative sentiment on a record by record basis. The score is between 0 and 1. Neutral scores occur for both the null case when sentiment cannot be detected, and for text that is considered neutral.|
|Microsoft.Skills.Text.SplitSkill||Splits text into pages so that you can enrich or augment content incrementally.|
|Microsoft.Skills.Text.TranslationSkill||This skill uses a pretrained model to translate the input text into a variety of languages for normalization or localization use cases.|
|Microsoft.Skills.Vision.ImageAnalysisSkill||This skill uses an image detection algorithm to identify the content of an image and generate a text description.|
|Microsoft.Skills.Vision.OcrSkill||Optical character recognition.|
|Microsoft.Skills.Util.ConditionalSkill||Allows filtering, assigning a default value, and merging data based on a condition.|
|Microsoft.Skills.Util.DocumentExtractionSkill||Extracts content from a file within the enrichment pipeline.|
|Microsoft.Skills.Util.ShaperSkill||Maps output to a complex type (a multi-part data type, which might be used for a full name, a multi-line address, or a combination of last name and a personal identifier.)|
|Microsoft.Skills.Custom.WebApiSkill||Allows extensibility of an AI enrichment pipeline by making an HTTP call into a custom Web API|
For guidance on creating a custom skill, see How to define a custom interface and Example: Creating a custom skill for AI enrichment.