Overview
This exercise demonstrates how to analyze text using Azure AI Language, including language detection, sentiment analysis, key phrase extraction, and entity recognition.
Steps & Configuration Details
1. Provision an Azure AI Language Resource
- Open Azure Portal (https://portal.azure.com) and sign in.
- Select Create a resource → Search for Language Service → Click Create.
- Configuration Items:
- Subscription: Your Azure subscription.
- Resource Group: Select or create a resource group.
- Region: Choose any available region.
- Name: Enter a unique name.
- Pricing Tier:
F0 (Free)
orS (Standard)
. - Responsible AI Notice: Agree.
After provisioning, navigate to Keys and Endpoint in the Resource Management section.
2. Clone the Repository
- Open Azure Cloud Shell in the Azure Portal.
- Select PowerShell as the environment.
- Run the following commands:
rm -r mslearn-ai-language -f git clone https://github.com/microsoftlearning/mslearn-ai-language mslearn-ai-language cd mslearn-ai-language/Labfiles/01-analyze-text
3. Configure Your Application
- Navigate to the correct folder:
cd C-Sharp/text-analysis # For C# cd Python/text-analysis # For Python
- Install dependencies:
- C#:
dotnet add package Azure.AI.TextAnalytics --version 5.3.0
- Python:
python -m venv labenv ./labenv/bin/Activate.ps1 pip install -r requirements.txt azure-ai-textanalytics==5.3.0
- C#:
- Open the configuration file:
- C#:
appsettings.json
- Python:
.env
- C#:
- Update Configuration Values:
- Azure AI Language Endpoint
- API Key
- Save the configuration file.
4. Implement Text Analysis
- Open the code file:
- C#:
Program.cs
- Python:
text-analysis.py
- C#:
- Add references:
- C#:
using Azure; using Azure.AI.TextAnalytics;
- Python:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics import TextAnalyticsClient
- C#:
- Create the AI Language client:
- C#:
AzureKeyCredential credentials = new AzureKeyCredential(aiSvcKey); Uri endpoint = new Uri(aiSvcEndpoint); TextAnalyticsClient aiClient = new TextAnalyticsClient(endpoint, credentials);
- Python:
credential = AzureKeyCredential(ai_key) ai_client = TextAnalyticsClient(endpoint=ai_endpoint, credential=credential)
- C#:
5. Detect Language
- C#:
DetectedLanguage detectedLanguage = aiClient.DetectLanguage(text); Console.WriteLine($"\nLanguage: {detectedLanguage.Name}");
- Python:
detectedLanguage = ai_client.detect_language(documents=[text])[0] print('\nLanguage: {}'.format(detectedLanguage.primary_language.name))
6. Evaluate Sentiment
- C#:
DocumentSentiment sentimentAnalysis = aiClient.AnalyzeSentiment(text); Console.WriteLine($"\nSentiment: {sentimentAnalysis.Sentiment}");
- Python:
sentimentAnalysis = ai_client.analyze_sentiment(documents=[text])[0] print("\nSentiment: {}".format(sentimentAnalysis.sentiment))
7. Extract Key Phrases
- C#:
KeyPhraseCollection phrases = aiClient.ExtractKeyPhrases(text); if (phrases.Count > 0) { Console.WriteLine("\nKey Phrases:"); foreach (string phrase in phrases) { Console.WriteLine($"\t{phrase}"); } }
- Python:
phrases = ai_client.extract_key_phrases(documents=[text])[0].key_phrases if len(phrases) > 0: print("\nKey Phrases:") for phrase in phrases: print('\t{}'.format(phrase))
8. Recognize Entities
- C#:
CategorizedEntityCollection entities = aiClient.RecognizeEntities(text); if (entities.Count > 0) { Console.WriteLine("\nEntities:"); foreach (CategorizedEntity entity in entities) { Console.WriteLine($"\t{entity.Text} ({entity.Category})"); } }
- Python:
entities = ai_client.recognize_entities(documents=[text])[0].entities if len(entities) > 0: print("\nEntities") for entity in entities: print('\t{} ({})'.format(entity.text, entity.category))
9. Extract Linked Entities
- C#:
LinkedEntityCollection linkedEntities = aiClient.RecognizeLinkedEntities(text); if (linkedEntities.Count > 0) { Console.WriteLine("\nLinks:"); foreach (LinkedEntity linkedEntity in linkedEntities) { Console.WriteLine($"\t{linkedEntity.Name} ({linkedEntity.Url})"); } }
- Python:
entities = ai_client.recognize_linked_entities(documents=[text])[0].entities if len(entities) > 0: print("\nLinks") for linked_entity in entities: print('\t{} ({})'.format(linked_entity.name, linked_entity.url))
10. Run Your Application
- C#:
dotnet run
- Python:
python text-analysis.py
- Observe the output, which should display detected language, sentiment, key phrases, and entities.
11. Clean Up
- Delete Azure resources to avoid unnecessary costs:
- Open Azure Portal (https://portal.azure.com).
- Navigate to Resource Groups.
- Select the resource group and click Delete.
This summary captures the essential steps while highlighting all configuration items and code references required for analyzing text using Azure AI Language.