diff --git a/sdk/textanalytics/azure-ai-textanalytics/README.md b/sdk/textanalytics/azure-ai-textanalytics/README.md index 4ba8571db019a..65f362911893c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/README.md +++ b/sdk/textanalytics/azure-ai-textanalytics/README.md @@ -132,6 +132,7 @@ cognitive services. ```az cognitiveservices account keys list --name "resource-name" --resource-group "resource-group-name"``` Use the key as the credential parameter to authenticate the client: + ```java TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey("subscription-key") @@ -158,6 +159,7 @@ cognitive services. AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET Use the returned token credential to authenticate the client: + ```java TextAnalyticsClient client = new TextAnalyticsClientBuilder() .endpoint("https://servicename.cognitiveservices.azure.com/") @@ -171,6 +173,7 @@ analyze sentiment, recognize entities, detect language, and extract key phrases To create a client object, you will need the cognitive services or text analytics endpoint to your resource and a subscription key that allows you access: + ```java // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() @@ -243,6 +246,7 @@ The following sections provide several code snippets covering some of the most c Text analytics support both synchronous and asynchronous client creation by using `TextAnalyticsClientBuilder`, + ``` java // An example of creating a synchronous client TextAnalyticsClient client = new TextAnalyticsClientBuilder() @@ -250,7 +254,7 @@ TextAnalyticsClient client = new TextAnalyticsClientBuilder() .endpoint("https://servicename.cognitiveservices.azure.com/") .buildClient(); ``` - + ``` java // An example of creating an asynchronous client TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() @@ -260,8 +264,7 @@ TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() ``` ### Detect language -Detect language in a batch of documents. - + ```java TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey("subscription-key") @@ -270,8 +273,8 @@ TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() String inputText = "Bonjour tout le monde"; -for(DetectedLanguage detectedLanguage : client.detectLanguage(text, "US").getDetectedLanguages()) { - System.out.printf("Other detected languages: %s, ISO 6391 Name: %s, Score: %s.%n", +for (DetectedLanguage detectedLanguage : textAnalyticsClient.detectLanguage(inputText).getDetectedLanguages()) { + System.out.printf("Detected languages name: %s, ISO 6391 Name: %s, Score: %s.%n", detectedLanguage.getName(), detectedLanguage.getIso6391Name(), detectedLanguage.getScore()); @@ -279,7 +282,7 @@ for(DetectedLanguage detectedLanguage : client.detectLanguage(text, "US").getDet ``` ### Recognize entity - + ```java TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey("subscription-key") @@ -301,6 +304,7 @@ for (NamedEntity entity : client.recognizeEntities(text).getNamedEntities()) { ``` ### Recognize PII(Personally Identifiable Information) entity + ```java TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey("subscription-key") @@ -310,17 +314,19 @@ TextAnalyticsClient client = new TextAnalyticsClientBuilder() // The text that need be analysed. String text = "My SSN is 555-55-5555"; -for (NamedEntity entity : client.recognizePiiEntities(text).getNamedEntities()) { +for (NamedEntity entity : textAnalyticsClient.recognizePiiEntities(text).getNamedEntities()) { System.out.printf( "Recognized PII Entity: %s, Type: %s, Subtype: %s, Score: %s.%n", entity.getText(), entity.getType(), entity.getSubtype(), - entity.getScore())); + entity.getScore()); } ``` ### Recognize linked entity + + ```java TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey("subscription-key") @@ -330,15 +336,17 @@ TextAnalyticsClient client = new TextAnalyticsClientBuilder() // The text that need be analysed. String text = "Old Faithful is a geyser at Yellowstone Park."; -for (LinkedEntity linkedEntity : client.recognizeLinkedEntities(text).getLinkedEntities()) { - System.out.printf("Recognized Linked NamedEntity: %s, URL: %s, Data Source: %s.%n", +for (LinkedEntity linkedEntity : textAnalyticsClient.recognizeLinkedEntities(text).getLinkedEntities()) { + System.out.printf("Recognized Linked Entity: %s, Url: %s, Data Source: %s.%n", linkedEntity.getName(), - linkedEntity.getUri(), + linkedEntity.getUrl(), linkedEntity.getDataSource()); } ``` ### Analyze sentiment + + ```java TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey("subscription-key") diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java index 1f494bd955326..66339c3867bd4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java @@ -5,7 +5,6 @@ import com.azure.ai.textanalytics.models.TextSentiment; -import java.util.List; import java.util.concurrent.TimeUnit; /** diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java new file mode 100644 index 0000000000000..000af9428b7a7 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.ai.textanalytics; + +import com.azure.ai.textanalytics.models.DetectedLanguage; +import com.azure.ai.textanalytics.models.LinkedEntity; +import com.azure.ai.textanalytics.models.NamedEntity; +import com.azure.ai.textanalytics.models.TextSentiment; + +/** + * WARNING: MODIFYING THIS FILE WILL REQUIRE CORRESPONDING UPDATES TO README.md FILE. LINE NUMBERS ARE USED TO EXTRACT + * APPROPRIATE CODE SEGMENTS FROM THIS FILE. ADD NEW CODE AT THE BOTTOM TO AVOID CHANGING LINE NUMBERS OF EXISTING CODE + * SAMPLES. + * + * Class containing code snippets that will be injected to README.md. + */ +public class ReadmeSamples { + private static final String SUBSCRIPTION_KEY = null; + private static final String ENDPOINT = null; + + /** + * Code snippet for getting sync client using subscription key authentication. + * + */ + public void useSubscriptionKeySyncClient() { + TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(SUBSCRIPTION_KEY) + .endpoint(ENDPOINT) + .buildClient(); + } + + /** + * Code snippet for getting async client using subscription key authentication. + * + */ + public void useSubscriptionKeyAsyncClient() { + TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(SUBSCRIPTION_KEY) + .endpoint(ENDPOINT) + .buildAsyncClient(); + } + + /** + * Code snippet for getting async client using AAD authentication. + * + */ + public void useAadAsyncClient() { + TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(SUBSCRIPTION_KEY) + .endpoint(ENDPOINT) + .buildAsyncClient(); + } + + /** + * Code snippet for detecting language in a text. + * + */ + public void detectLanguages() { + TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(SUBSCRIPTION_KEY) + .endpoint(ENDPOINT) + .buildClient(); + + String inputText = "Bonjour tout le monde"; + + for (DetectedLanguage detectedLanguage : textAnalyticsClient.detectLanguage(inputText).getDetectedLanguages()) { + System.out.printf("Detected languages name: %s, ISO 6391 Name: %s, Score: %s.%n", + detectedLanguage.getName(), + detectedLanguage.getIso6391Name(), + detectedLanguage.getScore()); + } + } + + /** + * Code snippet for recognizing named entity in a text. + * + */ + public void recognizeNamedEntity() { + TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(SUBSCRIPTION_KEY) + .endpoint(ENDPOINT) + .buildClient(); + + String text = "Satya Nadella is the CEO of Microsoft"; + + for (NamedEntity entity : textAnalyticsClient.recognizeEntities(text).getNamedEntities()) { + System.out.printf( + "Recognized Named Entity: %s, Type: %s, Subtype: %s, Score: %s.%n", + entity.getText(), + entity.getType(), + entity.getSubtype(), + entity.getScore()); + } + } + + /** + * Code snippet for recognizing pii entity in a text. + * + */ + public void recognizePiiEntity() { + TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(SUBSCRIPTION_KEY) + .endpoint(ENDPOINT) + .buildClient(); + + // The text that need be analysed. + String text = "My SSN is 555-55-5555"; + + for (NamedEntity entity : textAnalyticsClient.recognizePiiEntities(text).getNamedEntities()) { + System.out.printf( + "Recognized PII Entity: %s, Type: %s, Subtype: %s, Score: %s.%n", + entity.getText(), + entity.getType(), + entity.getSubtype(), + entity.getScore()); + } + } + + /** + * Code snippet for recognizing linked entity in a text. + * + */ + public void recognizeLinkedEntity() { + TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(SUBSCRIPTION_KEY) + .endpoint(ENDPOINT) + .buildClient(); + + // The text that need be analysed. + String text = "Old Faithful is a geyser at Yellowstone Park."; + + for (LinkedEntity linkedEntity : textAnalyticsClient.recognizeLinkedEntities(text).getLinkedEntities()) { + System.out.printf("Recognized Linked Entity: %s, Url: %s, Data Source: %s.%n", + linkedEntity.getName(), + linkedEntity.getUrl(), + linkedEntity.getDataSource()); + } + } + + /** + * Code snippet for analyzing sentiment of a text. + * + */ + public void analyzeSentiment() { + TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(SUBSCRIPTION_KEY) + .endpoint(ENDPOINT) + .buildClient(); + + String text = "The hotel was dark and unclean."; + + for (TextSentiment textSentiment : textAnalyticsClient.analyzeSentiment(text).getSentenceSentiments()) { + System.out.printf( + "Analyzed Sentence Sentiment class: %s.%n", + textSentiment.getTextSentimentClass()); + } + } +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java index afd58791a33a4..3186b57f3cf92 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java @@ -33,7 +33,7 @@ public static void main(String[] args) { System.out.printf( "Recognized personal identifiable information entity: %s, entity type: %s, entity subtype: %s, offset: %s, length: %s, score: %s.%n", entity.getText(), - entity.getType() , + entity.getType(), entity.getSubtype() == null || entity.getSubtype().isEmpty() ? "N/A" : entity.getSubtype(), entity.getOffset(), entity.getLength(), diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java index 268575bc93497..7adf9ebc0dbd3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java @@ -24,4 +24,6 @@ public TextAnalyticsClient createTextAnalyticsClient() { // END: com.azure.ai.textanalytics.TextAnalyticsClient.instantiation return textAnalyticsClient; } + + }