public NaturalLanguageData AnalyzeMessage(Chat chat) { var document = new Document(chat.message); var sentences = new List <ChatModels.Sentence>(); foreach (var s in document.Sentences) { var sentence = new ChatModels.Sentence(); sentence.tokens = new List <Token>(); for (var index = 0; index < s.Words.Count; index++) { var token = new Token(); token.POSTag = s.PosTags.ToList()[index]; token.Lexeme = s.Lemmas.ToList()[index]; token.Stem = s.Lemmas.ToList()[index]; sentence.tokens.Add(token); } sentence.interrogative = isInterrogative(s); sentence.chunks = new List <Chunk>(); sentence.triplets = new Triplets(); sentences.Add(sentence); } var naturalLanguageData = new NaturalLanguageData(); naturalLanguageData.sentences = sentences; return(naturalLanguageData); }
public List <ChatModels.Sentence> AnalyzeMessage(string message) { var sentences = new List <ChatModels.Sentence>(); if (message == null) { message = string.Empty; } var document = new Document(message); foreach (var stanfordSentence in document.Sentences) { var source = stanfordSentence.ToString(); var tokens = _tokenService.GetTokens(stanfordSentence); var openieTriples = new List <OpenieTriple>(); try { openieTriples = _openieService.GetOpenieTriples(stanfordSentence.OpenIe); } catch (UnhandledLibraryException simpleNlpException) { openieTriples = new List <OpenieTriple>(); } var sentenceType = _sentenceTypeService.GetSentenceType(tokens); var subject = _subjectService.GetSubject(openieTriples, tokens, sentenceType); var sentenceObject = _objectService.GetObject(openieTriples, tokens, sentenceType); var predicate = _predicateService.GetPredicate(openieTriples, tokens, sentenceType); var analyzedSentence = new ChatModels.Sentence { Source = source, Sentiment = _sentimentAnalyzationService.GetSentiment(source), Tokens = tokens, OpenieTriples = openieTriples, SentenceType = sentenceType, Voice = _voiceService.GetVoice(tokens), Subject = subject, Object = sentenceObject, Predicate = predicate, }; sentences.Add(analyzedSentence); } return(sentences); }