private static string GetSentiment(string text) { try { double score = 0; var apiKey = "Tu api key de azure cognitive service text""; var document = new SentimentDocument() { Id = "OutlookSergio", Text = text, Language = "es" }; var request = new SentimentRequest(); request.Documents.Add(document); var client = new SentimentClient(apiKey); var response = client.GetSentiment(request); foreach (var doc in response.Documents) { score += doc.Score; } score = Math.Round((score / response.Documents.Count), 2) * 100; return score + "%"; } catch(Exception e) { return null; } }
static void Main(string[] args) { var apiKey = "YOUR-TEXT-ANALYTICS-API-SUBSCRIPTION-KEY"; var document = new SentimentDocument() { Id = "YOUR-UNIQUE-ID", Text = "YOUR-TEXT", Language = "en" }; var request = new SentimentRequest(); request.Documents.Add(document); var client = new SentimentClient(apiKey); var response = client.GetSentiment(request); foreach (var doc in response.Documents) { Console.WriteLine(" Document Id: {0}", doc.Id); Console.WriteLine(" Score: {0}%", (doc.Score * 100)); } Console.WriteLine(" Press any key to exit..."); Console.ReadLine(); }
public async void GivenAnyMessageActivity_WhenGetSentimentIsInvoked_ThenScoreIsBeingReturned( ITextAnalyticsClient textAnalyticsClient, IMessageActivity activity, double sentiment) { // Arrange var instrumentation = new SentimentClient(textAnalyticsClient); var response = new HttpOperationResponse <SentimentBatchResult> { Body = new SentimentBatchResult(new[] { new SentimentBatchResultItem(sentiment) }) }; Mock.Get(textAnalyticsClient) .Setup(tac => tac.SentimentWithHttpMessagesAsync( It.IsAny <MultiLanguageBatchInput>(), It.IsAny <Dictionary <string, List <string> > >(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(response)); // Act var score = await instrumentation.GetSentiment(activity) .ConfigureAwait(false); // Assert score.Should().Be(sentiment); }
public async void GivenEmptyMessageActivity_WhenGetSentimentIsInvoked_ThenExceptionIsBeingThrown( ITextAnalyticsClient textAnalyticsClient) { // Arrange var instrumentation = new SentimentClient(textAnalyticsClient); const IMessageActivity emptyMessageActivity = null; // Act // Assert await Assert.ThrowsAsync <ArgumentNullException>(() => instrumentation.GetSentiment(emptyMessageActivity)) .ConfigureAwait(false); }
public static float AnalyzeSentiment(string id, string text, string language) { float score = 0; var document = new SentimentDocument() { Id = id, Text = text, Language = language }; var client = new SentimentClient(Constants.ApiKey) { Url = "https://westeurope.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment" }; var request = new SentimentRequest(); request.Documents.Add(document); try { var response = client.GetSentiment(request); score = response.Documents.First().Score * 100; } catch (Exception ex) { var message = ""; var innerMessage = ""; if (!String.IsNullOrEmpty(ex.Message)) { message = ex.Message; } try { if ((ex.InnerException != null) && (!String.IsNullOrEmpty(ex.InnerException.Message))) { innerMessage = ex.InnerException.Message; } } catch (Exception innerEx) { if ((innerEx.InnerException != null) && (!String.IsNullOrEmpty(innerEx.InnerException.Message))) { innerMessage = innerEx.InnerException.Message; } } Console.WriteLine(String.Format("Error in AnalyzeSentiment: {0}:{1}", message, innerMessage)); } return(score); }
public async void GivenDisposedSentimentClient_WhenGetSentimentIsInvoked_ThenExceptionIsBeingThrown( ITextAnalyticsClient textAnalyticsClient, IMessageActivity activity) { // Arrange var instrumentation = new SentimentClient(textAnalyticsClient); instrumentation.Dispose(); // Act // Assert await Assert.ThrowsAsync <ObjectDisposedException>(() => instrumentation.GetSentiment(activity)) .ConfigureAwait(false); }
static void Main(string[] args) { // MS Cognitive Services API key var apiKeyTextAnalytics = "REPLACE_WITH_API_KEY"; var text = @"A thing of beauty is a joy for ever: Its loveliness increases; it will never Pass into nothingness; but still will keep A bower quiet for us, and a sleep Full of sweet dreams, and health, and quiet breathing."; // GET text sentiment var sentimentDocument = new SentimentDocument() { Id = "Sentiment", Text = text, Language = "en" }; Console.WriteLine("Analyzing {0}", sentimentDocument.Id + ".."); var sentimentRequest = new SentimentRequest(); sentimentRequest.Documents.Add(sentimentDocument); var sentimentClient = new SentimentClient(apiKeyTextAnalytics); var sentimentResponse = sentimentClient.GetSentiment(sentimentRequest); Console.WriteLine(" Score: {0}%", (sentimentResponse.Documents[0].Score * 100) + " [0% - negative, 100% - positive]"); // GET text keyphrases var keyPhraseDocument = new KeyPhraseDocument() { Id = "KeyPhrases", Text = text, Language = "en" }; Console.WriteLine("Recognizing {0}", keyPhraseDocument.Id + ".."); var keyPhraseRequest = new KeyPhraseRequest(); keyPhraseRequest.Documents.Add(keyPhraseDocument); var keyPhraseClient = new KeyPhraseClient(apiKeyTextAnalytics); var keyPhraseResponse = keyPhraseClient.GetKeyPhrases(keyPhraseRequest); foreach (var keyPhrase in keyPhraseResponse.Documents[0].KeyPhrases) { Console.WriteLine(" KeyPhrase: {0}", keyPhrase); } }
public static float AnalyzeSentiment(string id, string text, string language) { float score = 0; var document = new SentimentDocument() { Id = id, Text = text, Language = language }; var client = new SentimentClient(Constants.API_KEY); var request = new SentimentRequest(); request.Documents.Add(document); try { var response = client.GetSentiment(request); score = response.Documents.First().Score * 100; } catch (Exception ex) { var message = ""; var innerMessage = ""; if (!String.IsNullOrEmpty(ex.Message)) { message = ex.Message; } try { if ((ex.InnerException != null) && (!String.IsNullOrEmpty(ex.InnerException.Message))) { innerMessage = ex.InnerException.Message; } } catch (Exception innerEx) { if ((innerEx.InnerException != null) && (!String.IsNullOrEmpty(innerEx.InnerException.Message))) { innerMessage = innerEx.InnerException.Message; } } //Console.WriteLine(String.Format("Error in AnalyzeSentiment: {0}:{1}", message, innerMessage)); } return(score); }
public void Analyse(string gitPath) { var repo = OpenRepository(gitPath); if (repo == null) { return; } System.Console.WriteLine("OK"); var commits = repo.Commits.Where(c => !c.Message.StartsWith("Merge")).Take(20); if (commits.Count() == 0) { System.Console.WriteLine("-- No data --"); } var request = new SentimentRequest(); foreach (var commit in commits) { var document = new SentimentDocument() { Id = commit.Id.Sha, Text = commit.Message, Language = "en" }; request.Documents.Add(document); } var apiKey = System.Configuration.ConfigurationManager.AppSettings["ApiKey"]; var client = new SentimentClient(apiKey); var response = client.GetSentiment(request); var scores = new List <float>(); foreach (var doc in response.Documents) { scores.Add(doc.Score); System.Console.WriteLine($"Id: {doc.Id} | Score: {(doc.Score * 100)}%"); if (doc.Score < 0.3 || 0.8 < doc.Score) { System.Console.WriteLine($"\t --> {request.Documents.FirstOrDefault(d => d.Id == doc.Id).Text}"); } } System.Console.WriteLine($"Average score: {(scores.Average() * 100)}"); }
public void GetSentiment_Positive() { var text = "I had a wonderful experience! The rooms were wonderful and the staff were helpful."; var doc = new SentimentDocument() { Id = "TEST001", Text = text, Language = "en" }; var request = new SentimentRequest(); request.Documents.Add(doc); var client = new SentimentClient(this.apiKey); var response = client.GetSentiment(request); var score = response.Documents[0].Score; Assert.IsTrue(score > 0.5); }
public void GetSentiment_Negative() { var text = "I had a terrible time at the hotel. The staff were rude and the food was awful."; var doc = new SentimentDocument() { Id = "TEST001", Text = text, Language = "en" }; var request = new SentimentRequest(); request.Documents.Add(doc); var client = new SentimentClient(this.apiKey); var response = client.GetSentiment(request); var score = response.Documents[0].Score; Assert.IsTrue(score < 0.5); }
private static void GetSentiment() { var client = new SentimentClient(apiKey); var request = new SentimentRequest(); var document = new SentimentDocument() { Id = "YOUR-UNIQUE-ID", Text = "YOUR-TEXT", Language = "en" }; request.Documents.Add(document); var response = client.GetSentiment(request); foreach (var doc in response.Documents) { Console.WriteLine(" Document Id: {0}", doc.Id); Console.WriteLine(" Score: {0}%", (doc.Score * 100)); } }
static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("Usage: "); Console.WriteLine(" " + System.AppDomain.CurrentDomain.FriendlyName + " <FILENAME> <APIKEY>"); Environment.Exit(1); } string bookfile = args[0]; string apiKey = args[1]; Console.WriteLine("Analyzing book: " + bookfile); EpubBook epubBook = EpubReader.ReadBook(bookfile); string title = epubBook.Title; string author = epubBook.Author; Console.WriteLine("Book title: " + title); Console.WriteLine(); double bookScore = 0.0; int numChapters = 0; foreach (EpubChapter chapter in epubBook.Chapters) { var request = new SentimentRequest(); string chapterTitle = chapter.Title; AppendChapter(ref request, chapter); foreach (EpubChapter subChapter in chapter.SubChapters) { AppendChapter(ref request, subChapter); } var client = new SentimentClient(apiKey); var response = client.GetSentiment(request); foreach (Microsoft.ProjectOxford.Text.Core.DocumentError e in response.Errors) { Console.WriteLine("Errors: " + e.Message); } double score = 0.0; int numScores = 0; foreach (SentimentDocumentResult r in response.Documents) { score += r.Score; numScores++; } score /= numScores; Console.WriteLine(numChapters + ": " + chapterTitle + ", score: " + score); bookScore += score; numChapters++; } bookScore /= numChapters; Console.WriteLine(); Console.WriteLine("Average book sentiment: " + bookScore); }