@@ -538,31 +538,22 @@ Text Analytics for health is a containerized service that extracts and labels re
538538```
539539
540540### Run multiple actions Asynchronously
541- This functionality allows running multiple actions in one or more documents. Actions include entity recognition, linked entity recognition, key phrase extraction, and Personally Identifiable Information (PII) Recognition. For more information see [ Using analyze] [ analyze_operation_howto ] .
541+ This functionality allows running multiple actions in one or more documents. Actions include entity recognition, linked entity recognition, key phrase extraction, Personally Identifiable Information (PII) Recognition, and sentiment analysis . For more information see [ Using analyze] [ analyze_operation_howto ] .
542542
543543``` C# Snippet:AnalyzeOperationBatchConvenienceAsync
544544 string documentA = @" We love this trail and make the trip every year. The views are breathtaking and well
545545 worth the hike! Yesterday was foggy though, so we missed the spectacular views.
546546 We tried again today and it was amazing. Everyone in my family liked the trail although
547- it was too challenging for the less athletic among us.
548- Not necessarily recommended for small children.
549- A hotel close to the trail offers services for childcare in case you want that." ;
547+ it was too challenging for the less athletic among us." ;
550548
551549 string documentB = @" Last week we stayed at Hotel Foo to celebrate our anniversary. The staff knew about
552550 our anniversary so they helped me organize a little surprise for my partner.
553551 The room was clean and with the decoration I requested. It was perfect!" ;
554552
555- string documentC = @" That was the best day of my life! We went on a 4 day trip where we stayed at Hotel Foo.
556- They had great amenities that included an indoor pool, a spa, and a bar.
557- The spa offered couples massages which were really good.
558- The spa was clean and felt very peaceful. Overall the whole experience was great.
559- We will definitely come back." ;
560-
561553 var batchDocuments = new List <string >
562554 {
563555 documentA ,
564- documentB ,
565- documentC
556+ documentB
566557 };
567558
568559 TextAnalyticsActions actions = new TextAnalyticsActions ()
@@ -571,6 +562,7 @@ This functionality allows running multiple actions in one or more documents. Act
571562 RecognizeEntitiesOptions = new List <RecognizeEntitiesOptions >() { new RecognizeEntitiesOptions () },
572563 RecognizePiiEntitiesOptions = new List <RecognizePiiEntitiesOptions >() { new RecognizePiiEntitiesOptions () },
573564 RecognizeLinkedEntitiesOptions = new List <RecognizeLinkedEntitiesOptions >() { new RecognizeLinkedEntitiesOptions () },
565+ AnalyzeSentimentOptions = new List <AnalyzeSentimentOptions >() { new AnalyzeSentimentOptions () },
574566 DisplayName = " AnalyzeOperationSample"
575567 };
576568
@@ -591,88 +583,117 @@ This functionality allows running multiple actions in one or more documents. Act
591583
592584 await foreach (AnalyzeBatchActionsResult documentsInPage in operation .Value )
593585 {
594- RecognizeEntitiesResultCollection entitiesResult = documentsInPage .RecognizeEntitiesActionsResults .FirstOrDefault ().Result ;
595-
596- ExtractKeyPhrasesResultCollection keyPhrasesResult = documentsInPage .ExtractKeyPhrasesActionsResults .FirstOrDefault ().Result ;
597-
598- RecognizePiiEntitiesResultCollection piiResult = documentsInPage .RecognizePiiEntitiesActionsResults .FirstOrDefault ().Result ;
599-
600- RecognizeLinkedEntitiesResultCollection linkedEntitiesResult = documentsInPage .RecognizeLinkedEntitiesActionsResults .FirstOrDefault ().Result ;
586+ IReadOnlyCollection < ExtractKeyPhrasesActionResult > keyPhrasesActionsResults = documentsInPage .ExtractKeyPhrasesActionsResults ;
587+ IReadOnlyCollection < RecognizeEntitiesActionResult > entitiesActionsResults = documentsInPage .RecognizeEntitiesActionsResults ;
588+ IReadOnlyCollection < RecognizePiiEntitiesActionResult > piiActionsResults = documentsInPage .RecognizePiiEntitiesActionsResults ;
589+ IReadOnlyCollection < RecognizeLinkedEntitiesActionResult > entityLinkingActionsResults = documentsInPage .RecognizeLinkedEntitiesActionsResults ;
590+ IReadOnlyCollection < AnalyzeSentimentActionResult > analyzeSentimentActionsResults = documentsInPage .AnalyzeSentimentActionsResults ;
601591
602592 Console .WriteLine (" Recognized Entities" );
603-
604- foreach (RecognizeEntitiesResult result in entitiesResult )
593+ int docNumber = 1 ;
594+ foreach (RecognizeEntitiesActionResult entitiesActionResults in entitiesActionsResults )
605595 {
606- Console .WriteLine ($" Recognized the following {result .Entities .Count } entities:" );
607-
608- foreach (CategorizedEntity entity in result .Entities )
596+ foreach (RecognizeEntitiesResult result in entitiesActionResults .Result )
609597 {
610- Console .WriteLine ($" Entity: {entity .Text }" );
611- Console .WriteLine ($" Category: {entity .Category }" );
612- Console .WriteLine ($" Offset: {entity .Offset }" );
613- Console .WriteLine ($" Length: {entity .Length }" );
614- Console .WriteLine ($" ConfidenceScore: {entity .ConfidenceScore }" );
615- Console .WriteLine ($" SubCategory: {entity .SubCategory }" );
598+ Console .WriteLine ($" Document #{docNumber ++ }" );
599+ Console .WriteLine ($" Recognized the following {result .Entities .Count } entities:" );
600+
601+ foreach (CategorizedEntity entity in result .Entities )
602+ {
603+ Console .WriteLine ($" Entity: {entity .Text }" );
604+ Console .WriteLine ($" Category: {entity .Category }" );
605+ Console .WriteLine ($" Offset: {entity .Offset }" );
606+ Console .WriteLine ($" Length: {entity .Length }" );
607+ Console .WriteLine ($" ConfidenceScore: {entity .ConfidenceScore }" );
608+ Console .WriteLine ($" SubCategory: {entity .SubCategory }" );
609+ }
610+ Console .WriteLine (" " );
616611 }
617- Console .WriteLine (" " );
618612 }
619613
620614 Console .WriteLine (" Recognized PII Entities" );
621-
622- foreach (RecognizePiiEntitiesResult result in piiResult )
615+ docNumber = 1 ;
616+ foreach (RecognizePiiEntitiesActionResult piiActionResults in piiActionsResults )
623617 {
624- Console .WriteLine ($" Recognized the following {result .Entities .Count } PII entities:" );
625-
626- foreach (PiiEntity entity in result .Entities )
618+ foreach (RecognizePiiEntitiesResult result in piiActionResults .Result )
627619 {
628- Console .WriteLine ($" Entity: {entity .Text }" );
629- Console .WriteLine ($" Category: {entity .Category }" );
630- Console .WriteLine ($" Offset: {entity .Offset }" );
631- Console .WriteLine ($" Length: {entity .Length }" );
632- Console .WriteLine ($" ConfidenceScore: {entity .ConfidenceScore }" );
633- Console .WriteLine ($" SubCategory: {entity .SubCategory }" );
620+ Console .WriteLine ($" Document #{docNumber ++ }" );
621+ Console .WriteLine ($" Recognized the following {result .Entities .Count } PII entities:" );
622+
623+ foreach (PiiEntity entity in result .Entities )
624+ {
625+ Console .WriteLine ($" Entity: {entity .Text }" );
626+ Console .WriteLine ($" Category: {entity .Category }" );
627+ Console .WriteLine ($" Offset: {entity .Offset }" );
628+ Console .WriteLine ($" Length: {entity .Length }" );
629+ Console .WriteLine ($" ConfidenceScore: {entity .ConfidenceScore }" );
630+ Console .WriteLine ($" SubCategory: {entity .SubCategory }" );
631+ }
632+ Console .WriteLine (" " );
634633 }
635- Console .WriteLine (" " );
636634 }
637635
638636 Console .WriteLine (" Key Phrases" );
639-
640- foreach (ExtractKeyPhrasesResult result in keyPhrasesResult )
637+ docNumber = 1 ;
638+ foreach (ExtractKeyPhrasesActionResult keyPhrasesActionResult in keyPhrasesActionsResults )
641639 {
642- Console .WriteLine ($" Recognized the following {result .KeyPhrases .Count } Keyphrases:" );
643-
644- foreach (string keyphrase in result .KeyPhrases )
640+ foreach (ExtractKeyPhrasesResult result in keyPhrasesActionResult .Result )
645641 {
646- Console .WriteLine ($" {keyphrase }" );
642+ Console .WriteLine ($" Document #{docNumber ++ }" );
643+ Console .WriteLine ($" Recognized the following {result .KeyPhrases .Count } Keyphrases:" );
644+
645+ foreach (string keyphrase in result .KeyPhrases )
646+ {
647+ Console .WriteLine ($" {keyphrase }" );
648+ }
649+ Console .WriteLine (" " );
647650 }
648- Console .WriteLine (" " );
649651 }
650652
651653 Console .WriteLine (" Recognized Linked Entities" );
652-
653- foreach (RecognizeLinkedEntitiesResult result in linkedEntitiesResult )
654+ docNumber = 1 ;
655+ foreach (RecognizeLinkedEntitiesActionResult linkedEntitiesActionResults in entityLinkingActionsResults )
654656 {
655- Console .WriteLine ($" Recognized the following {result .Entities .Count } linked entities:" );
656-
657- foreach (LinkedEntity entity in result .Entities )
657+ foreach (RecognizeLinkedEntitiesResult result in linkedEntitiesActionResults .Result )
658658 {
659- Console .WriteLine ($" Entity: {entity .Name }" );
660- Console .WriteLine ($" DataSource: {entity .DataSource }" );
661- Console .WriteLine ($" DataSource EntityId: {entity .DataSourceEntityId }" );
662- Console .WriteLine ($" Language: {entity .Language }" );
663- Console .WriteLine ($" DataSource Url: {entity .Url }" );
664-
665- Console .WriteLine ($" Total Matches: {entity .Matches .Count ()}" );
666- foreach (LinkedEntityMatch match in entity .Matches )
659+ Console .WriteLine ($" Document #{docNumber ++ }" );
660+ Console .WriteLine ($" Recognized the following {result .Entities .Count } linked entities:" );
661+
662+ foreach (LinkedEntity entity in result .Entities )
667663 {
668- Console .WriteLine ($" Match Text: {match .Text }" );
669- Console .WriteLine ($" ConfidenceScore: {match .ConfidenceScore }" );
670- Console .WriteLine ($" Offset: {match .Offset }" );
671- Console .WriteLine ($" Length: {match .Length }" );
664+ Console .WriteLine ($" Entity: {entity .Name }" );
665+ Console .WriteLine ($" DataSource: {entity .DataSource }" );
666+ Console .WriteLine ($" DataSource EntityId: {entity .DataSourceEntityId }" );
667+ Console .WriteLine ($" Language: {entity .Language }" );
668+ Console .WriteLine ($" DataSource Url: {entity .Url }" );
669+
670+ Console .WriteLine ($" Total Matches: {entity .Matches .Count ()}" );
671+ foreach (LinkedEntityMatch match in entity .Matches )
672+ {
673+ Console .WriteLine ($" Match Text: {match .Text }" );
674+ Console .WriteLine ($" ConfidenceScore: {match .ConfidenceScore }" );
675+ Console .WriteLine ($" Offset: {match .Offset }" );
676+ Console .WriteLine ($" Length: {match .Length }" );
677+ }
678+ Console .WriteLine (" " );
672679 }
673680 Console .WriteLine (" " );
674681 }
675- Console .WriteLine (" " );
682+ }
683+
684+ Console .WriteLine (" Analyze Sentiment" );
685+ docNumber = 1 ;
686+ foreach (AnalyzeSentimentActionResult analyzeSentimentActionsResult in analyzeSentimentActionsResults )
687+ {
688+ foreach (AnalyzeSentimentResult result in analyzeSentimentActionsResult .Result )
689+ {
690+ Console .WriteLine ($" Document #{docNumber ++ }" );
691+ Console .WriteLine ($" Sentiment is {result .DocumentSentiment .Sentiment }, with confidence scores: " );
692+ Console .WriteLine ($" Positive confidence score: {result .DocumentSentiment .ConfidenceScores .Positive }." );
693+ Console .WriteLine ($" Neutral confidence score: {result .DocumentSentiment .ConfidenceScores .Neutral }." );
694+ Console .WriteLine ($" Negative confidence score: {result .DocumentSentiment .ConfidenceScores .Negative }." );
695+ Console .WriteLine (" " );
696+ }
676697 }
677698 }
678699}
@@ -746,7 +767,7 @@ Samples are provided for each main functional area, and for each area, samples a
746767- [ Recognize PII Entities] [ recognize_pii_entities_sample ]
747768- [ Recognize Linked Entities] [ recognize_linked_entities_sample ]
748769- [ Recognize Healthcare Entities] [ recognize_healthcare_sample ]
749- - [ Run Analyze Operation ] [ analyze_operation_sample ]
770+ - [ Run multiple actions ] [ analyze_operation_sample ]
750771
751772### Advanced samples
752773- [ Analyze Sentiment with Opinion Mining] [ analyze_sentiment_opinion_mining_sample ]
0 commit comments