Integrate Azure Text Analytics API in C#
using Azure;
using Azure.AI.TextAnalytics;
// Retrieve the key and endpoint from environment variables
string key = Environment.GetEnvironmentVariable("AZURE_TEXT_ANALYTICS_KEY");
string endpoint = Environment.GetEnvironmentVariable("AZURE_TEXT_ANALYTICS_ENDPOINT");
var client = new TextAnalyticsClient(new Uri(endpoint), new AzureKeyCredential(key));
Perform Sentiment Analysis
- With the client set up, you can now perform sentiment analysis by calling the appropriate method. Here's how you can analyze the sentiment of a sample text.
string document = "I had a wonderful trip to Seattle last week.";
DocumentSentiment documentSentiment = client.AnalyzeSentiment(document);
Console.WriteLine($"Sentiment: {documentSentiment.Sentiment}\n");
// Output individual sentence sentiments
foreach (var sentenceSentiment in documentSentiment.Sentences)
{
Console.WriteLine($" Sentence: \"{sentenceSentiment.Text}\"");
Console.WriteLine($" Sentiment: {sentenceSentiment.Sentiment}");
Console.WriteLine($" Positive score: {sentenceSentiment.ConfidenceScores.Positive}; " +
$"Neutral score: {sentenceSentiment.ConfidenceScores.Neutral}; " +
$"Negative score: {sentenceSentiment.ConfidenceScores.Negative}.\n");
}
Entity Recognition
- To recognize entities within a string, use the RecognizeEntities method. This helps identify named entities like dates, people, locations, etc.
string entityDocument = "Microsoft was founded by Bill Gates and Paul Allen.";
var response = client.RecognizeEntities(entityDocument);
foreach (var entity in response.Value)
{
Console.WriteLine($"Entity: {entity.Text}, Category: {entity.Category}, SubCategory: {entity.SubCategory}, " +
$"ConfidenceScore: {entity.ConfidenceScore}");
}
Extract Key Phrases
- Use the ExtractKeyPhrases method to identify the key phrases in text. It is useful for summarizing the main points of larger texts.
string keyPhraseDocument = "The food at the restaurant was amazing and the staff were very friendly.";
Response<KeyPhraseCollection> keyPhraseResponse = client.ExtractKeyPhrases(keyPhraseDocument);
Console.WriteLine("Key phrases:");
foreach (string keyPhrase in keyPhraseResponse.Value)
{
Console.WriteLine($" {keyPhrase}");
}
Handling Errors
- Always wrap your API calls in try-catch blocks to handle exceptions, particularly RequestFailedException, to gracefully manage errors like invalid input or exceeded quotas.
try
{
// Assume textAnalyticsClient and inputText are defined
var results = client.ExtractKeyPhrases(inputText);
}
catch (RequestFailedException ex)
{
Console.WriteLine($"Error code: {ex.ErrorCode}");
Console.WriteLine($"Error message: {ex.Message}");
}