public List <ConversationSubject> GetSubjects(AnalyzedChat response) { var subjects = new List <ConversationSubject>(); if (response.naturalLanguageData.sentences == null) { return(subjects); } foreach (var sentence in response.naturalLanguageData.sentences) { var token = sentence.Subject; if (token != null && !string.IsNullOrWhiteSpace(token.Lemmas)) { var index = subjects.FindIndex(s => s.Lemmas == token.Lemmas); if (index >= 0) { subjects[index].OccurenceCount++; } else { var subject = new ConversationSubject { OccurenceCount = 1, Lemmas = token.Lemmas }; subjects.Add(subject); } } } return(subjects); }
public List <ConversationSubject> GetSubjects(AnalyzedChat response) { var subjects = new List <ConversationSubject>(); foreach (var sentence in response.naturalLanguageData.sentences) { foreach (var token in sentence.tokens) { if (token.POSTag == "NN" || token.POSTag == "NNP" || token.POSTag == "NNS" || token.POSTag == "NNPS") { var index = subjects.FindIndex(s => s.subjectWords.Contains(token.Stem)); if (index >= 0) { subjects[index].occurenceCount++; } else { var subject = new ConversationSubject(); subject.occurenceCount = 1; subject.subjectWords = new List <string>(); subject.subjectWords.Add(token.Stem); subjects.Add(subject); } } } } return(subjects); }