private async Task <IEnumerable <AnalysisResult> > GetAnalysisResultsAsync(MultiLanguageBatchInput batchInput)
        {
            KeyPhraseBatchResult keyPhraseBatchResult = await _textAnalyticsAPI.KeyPhrasesAsync(batchInput);

            SentimentBatchResult sentimentBatchResult = await _textAnalyticsAPI.SentimentAsync(batchInput);


            foreach (var keyPhrase in keyPhraseBatchResult.Documents)
            {
                string tweet = batchInput.Documents
                               .Where(d => d.Id == keyPhrase.Id)
                               .Select(t => t.Text)
                               .FirstOrDefault();

                var sentiment = sentimentBatchResult.Documents
                                .Where(s => s.Id == keyPhrase.Id)
                                .FirstOrDefault();

                if (IsSignificant(sentiment.Score) && !keyPhrase.KeyPhrases.Count().Equals(0))
                {
                    AnalysisResult analysisResult = new AnalysisResult
                    {
                        KeyPhrases = keyPhrase.KeyPhrases,
                        Attitude   = DeriveAttitude(sentiment.Score),
                        Tweet      = tweet
                    };

                    _analysisResults.Add(analysisResult);
                }
            }

            return(_analysisResults);
        }
Esempio n. 2
0
 internal async Task <KeyPhraseBatchResult> KeyPhraseCall(ITextAnalyticsAPI client, List <MultiLanguageInput> list)
 {
     return(await client.KeyPhrasesAsync(
                new MultiLanguageBatchInput(list)));
 }