コード例 #1
0
        public IActionResult SaveTextAnalysisForUser([FromHeader] string userId, [FromHeader] string timestamp, [FromHeader] string date, [FromHeader] string lastKnownLocation, [FromBody] string text)
        {
            TextAnalysis userTextAnalysis   = null;
            var          result             = helperMethods.processedText(text);
            var          textAnalysisResult = textAnalysis(result);

            using (var database = new LiteDatabase(@"TextAnalysis1.db"))
            {
                var usersTextAnalysis = database.GetCollection <TextAnalysis>("UserTextAnalysis");
                var allUsers          = database.GetCollection <User>("User");
                var user = allUsers.FindOne(x => x.userId == userId);
                if (user == null)
                {
                    return(NotFound("The user with id " + userId + " could not be found! Create the user first."));
                }
                else
                {
                    var newUserTextAnalysis = new TextAnalysis
                    {
                        Id                 = Guid.NewGuid().ToString(),
                        userId             = userId,
                        text               = text,
                        textAnalysisResult = textAnalysisResult,
                        timestamp          = timestamp,
                        date               = date,
                        lastKnownLocation  = lastKnownLocation
                    };
                    userTextAnalysis = newUserTextAnalysis;
                    usersTextAnalysis.Insert(newUserTextAnalysis);
                }
                return(Ok("Text analysis information for user with id " + userId + " has been successfully saved in the database."));
            }
        }
コード例 #2
0
        public ActionResult Index(TextAnalysis model = null)
        {
            if (model != null)
            {
                model = new TextAnalysis();
                model.Text = "А й правда, крилатим ґрунту не треба.\n" +
                            "Землі немає, то буде небо.\n\r" +

                            "Немає поля, то буде воля.\n" +
                            "Немає пари, то будуть хмари. \n\r" +

                            "В цьому, напевно, правда пташина...\n" +
                            "А як же людина? А що ж людина? \n\r" +

                            "Живе на землі. Сама не літає.\n" +
                            "А крила має. А крила має! \n\r" +

                            "Вони, ті крила, не з пуху-пір*я,\n" +
                            "А з правди, чесноти і довір*я. \n\r" +

                            "У кого - з вірності у коханні.\n" +
                            "У кого - з вічного поривання. \n\r" +

                            "У кого - з щирості до роботи.\n" +
                            "У кого - з щедрості на турботи. \n\r" +

                            "У кого - з пісні, або з надії,\n" +
                            "Або з поезії, або з мрії. \n\r" +

                            "Людина нібито не літає...\n" +
                            "А крила має. А крила має!";
            }

            return View(model);
        }
コード例 #3
0
        static void Main(string[] args)
        {
            string       json     = @"{'text':'The quick brown fox jumps over the lazy dog!','word_count':9,'mean_word_length':3.888888888888889,'unique_letters':['t','h','e','q','u','i','c','k','b','r','o','w','n','f','x','j','m','p','s','v','l','a','z','y','d','g'],'word_frequencies':{'the':2,'quick':1,'brown':1,'fox':1,'jumps':1,'over':1,'lazy':1,'dog':1}}";
            TextAnalysis analysis = JsonConvert.DeserializeObject <TextAnalysis>(json);

            Console.WriteLine("Executed successfully");
            // TODO: check that analysis contains correct data
        }
コード例 #4
0
        private void MergeClick(object sender, RoutedEventArgs e)
        {
            var selected  = ConnectionList.SelectedItems;
            var unions    = new List <ConnectionUnion>();
            var tempnames = new List <string>();

            foreach (ConnectionUnion item in selected)
            {
                unions.Add(item);
                tempnames.Add(item.Name);
            }

            if (unions.Count != 1)
            {
                var predictedname = TextAnalysis.GetCommonInListOfStrings(tempnames);
                var tempunion     = new ConnectionUnion("new");

                var dialog = new Popups.PopupDialog("Введите имя для нового массива.", predictedname);
                if (dialog.ShowDialog() == true)
                {
                    tempunion.Name = dialog.ResponseText;
                }

                var tempchanellist = new List <Chanel>();

                foreach (var union in unions)
                {
                    foreach (var chanel in union.Chanels)
                    {
                        tempchanellist.Add(chanel);
                    }

                    Connections.Remove(union);
                }

                tempunion.Chanels = tempchanellist.OrderBy(x => x.ConnectionName, new AlphanumComparatorFast()).ToList();
                Connections.Add(tempunion);
                ConnectionList.ItemsSource = null;
                ConnectionList.ItemsSource = Connections;

                var selectedindex = ConnectionList.SelectedIndex;

                SelectedUnion.ItemsSource = null;
                if (selectedindex != -1)
                {
                    SelectedUnion.ItemsSource    = Connections.ElementAt(selectedindex).Chanels;
                    ConnectionList.SelectedIndex = selectedindex;
                }
                else
                {
                    var lastindex = Connections.Count - 1;
                    SelectedUnion.ItemsSource    = Connections.ElementAt(lastindex).Chanels;
                    ConnectionList.SelectedIndex = lastindex;
                }
            }
        }
コード例 #5
0
        public void RunTasks()
        {
            //TaskOne(1000);
            TextAnalysis tasktwo = new TextAnalysis("hello, world!");

            tasktwo.NumberOfDiffCharacters();
            tasktwo.TotalNumberOfCharacters();
            tasktwo.PercentNonCharacters();
            tasktwo.NumberOfSpecificCharacter('l');
        }
コード例 #6
0
        public List <TextAnalisysFormField> AnalyzeSpeechAsync([FromBody] IEnumerable <SpeechAnalisys> speech)
        {
            var text = string.Join(" ",
                                   speech.Select(x =>
            {
                var text = x.Sentence.Replace("St.", "Street");
                if (!text.EndsWith(".") && !text.EndsWith("!") && !text.EndsWith("?"))
                {
                    text += "!";
                }
                return(text);
            }));
            var result = AnalyzeSyntaxHelper.AnalyzeSyntax(text);

            var reverseTokens = TextAnalysisUtils.ReverseRelations(result.Tokens.ToList());

            var sentences         = new List <List <ReversedToken> >();
            var nextSentenceStart = 0;

            while (nextSentenceStart < text.Length)
            {
                var sentence  = TextAnalysisUtils.FindNextSentence(reverseTokens, text, nextSentenceStart);
                var lastToken = sentence.Last();
                nextSentenceStart = lastToken.OriginalToken.Text.BeginOffset + 1;
                sentences.Add(sentence);
            }

            var summaries = new List <SentenceSummary>();

            foreach (var item in sentences.Select((sentence, index) => new { sentence, index }))
            {
                summaries.AddIfNotNull(TextAnalysisLogic.SummarizeFacts(item.sentence, item.index, summaries));
            }

            var extraInfo = new List <SentenceSummary>();

            foreach (var question in summaries.Where(x => x.GeneralQuestion != null || x.SpecialQuestion != null))
            {
                TextAnalysisLogic.AssignAnswer(question, summaries, extraInfo);
            }
            var analysis = new TextAnalysis()
            {
                Summaries = summaries,
                Extras    = extraInfo
            };

            return(TextAnalysisLogic.PlaceAnswers(analysis)); // Map from result
        }
コード例 #7
0
        public async Task CanSerializeBodyRequestCorrectly()
        {
            var stream = new MemoryStream();

            using (var streamPipeWriter = new StreamPipeWriter(stream))
            {
                TextAnalysis.WriteRequest(streamPipeWriter, "This is a body of text\n with a new line");

                await streamPipeWriter.FlushAsync();
            }
            stream.Flush();
            stream.Seek(0, SeekOrigin.Begin);
            var text = new StreamReader(stream, Encoding.UTF8).ReadToEnd();

            text.ShouldBe(@"{""documents"":[{""language"":""en"",""id"":""doc"",""text"":""This is a body of text\n with a new line""}]}");
        }
コード例 #8
0
 public ActionResult Analysis(TextAnalysis model)
 {
     var txt = model.Text;
     txt = Regex.Replace(txt, @"[^\w\s]", string.Empty);
     txt = txt.Replace("\r\n", string.Empty);
     var words = txt.Split();
     var dictionary = new Dictionary<string, int>();
     foreach (var word in words)
     {
         if (dictionary.ContainsKey(word))
         {
             dictionary[word] = dictionary[word] + 1;
         }
         else
         {
             dictionary.Add(word, 1);
         }
     }
     model.Counts = dictionary;
     return View("Index", model);
 }
コード例 #9
0
        static void Main(string[] args)
        {
            var line   = "================================";
            var read   = new TextReader("input.txt");
            var parser = new TextParser(read.Read());
            var text   = parser.Parse();

            Console.WriteLine(text);
            //1     Вывести все предложения заданного текста в порядке возрастания количества слов в каждом из них.
            Console.WriteLine(line);
            foreach (var x in text.SortSentences())
            {
                Console.WriteLine(x);
            }
            //2     Во всех вопросительных предложениях текста найти и напечатать без повторений слова заданной  длины.
            Console.WriteLine(line);
            foreach (var x in text.FindWordsOfPredeterminedLength(7))
            {
                Console.WriteLine(x);
            }
            //3     Из текста удалить все слова заданной длины, начинающиеся на согласную букву.
            Console.WriteLine(line);
            var copyOfText = (Text)text.Clone();

            copyOfText.RemoveWordsWithFirstConsonant(7);
            Console.WriteLine(copyOfText);
            //4      В некотором предложении текста слова заданной длины заменить указанной подстрокой, длина которой может не совпадать с длиной слова.
            Console.WriteLine(line);
            text.ReplaceWords(0, 5, "Stas");
            Console.WriteLine(text);

            TextAnalysis hello = new TextAnalysis(text);

            Console.WriteLine(hello.PrintTable());
            Console.ReadKey();
        }
コード例 #10
0
        public static List <TextAnalisysFormField> PlaceAnswers(TextAnalysis analysis)
        {
            var conversion = new List <TextAnalisysFormField>();

            foreach (var question in analysis.Summaries.Where(x => x.Answer == null))
            {
                if (Constants.NameKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "bio-fullname", Value = question.CombinedAnswerText
                    });
                }
                else if (Constants.AddressKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "bio-address", Value = question.CombinedAnswerText
                    });
                }
                else if (Constants.CityKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "bio-city", Value = question.CombinedAnswerText
                    });
                }
                else if (Constants.StateKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "bio-state", Value = question.CombinedAnswerText
                    });
                }
                else if (Constants.PhoneKeywords.CaseInsensitiveContains(question.KeyWords) && (Constants.RelationshipTypes.CaseInsensitiveContains(question.KeyWords) || question.Names.Any()))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "emergency-phone", Value = question.CombinedAnswerText
                    });
                }
                else if (Constants.PhoneKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "bio-phone", Value = question.CombinedAnswerText
                    });
                }
                else if (Constants.DateKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "bio-dob", Value = question.CombinedAnswerText
                    });
                }
                else if (Constants.ContactKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "emergency-name", Value = question.CombinedAnswerText
                    });
                }
                else if (Constants.RelationshipKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "emergency-relationship", Value = question.CombinedAnswerText
                    });
                }
                else if (Constants.MedicineQuestionKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "medical-medications", Value = GetGeneralQuestionAnswer(question.CombinedAnswerText)
                    });
                }
                else if (Constants.HeadacheQuestionKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "health-headaches", Value = GetGeneralQuestionAnswer(question.CombinedAnswerText)
                    });
                }
                else if (Constants.CancerQuestionKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "health-cancer", Value = GetGeneralQuestionAnswer(question.CombinedAnswerText)
                    });
                }
                else if (Constants.HeartQuestionKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "health-heart", Value = GetGeneralQuestionAnswer(question.CombinedAnswerText)
                    });
                }
                else if (Constants.NumbnessQuestionKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "health-numbness", Value = GetGeneralQuestionAnswer(question.CombinedAnswerText)
                    });
                }
                else if (Constants.DiabetesQuestionKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "health-diabetes", Value = GetGeneralQuestionAnswer(question.CombinedAnswerText)
                    });
                }
                else if (Constants.PressureQuestionKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "health-pressure", Value = GetGeneralQuestionAnswer(question.CombinedAnswerText)
                    });
                }
                else if (Constants.AllergyQuestionKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "health-allergy", Value = GetGeneralQuestionAnswer(question.CombinedAnswerText)
                    });
                }
                else if (Constants.SpineInjuriesQuestionKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "health-neckback", Value = GetGeneralQuestionAnswer(question.CombinedAnswerText)
                    });
                }
                else if (Constants.AppointmentKeywords.CaseInsensitiveContains(question.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "reason-appointment", Value = question.CombinedAnswerText
                    });
                }
            }

            var medicalDetails = new TextAnalisysFormField()
            {
                Key = "medical-details"
            };
            var medicalDetailsText = new StringBuilder();

            foreach (var extra in analysis.Extras)
            {
                if (Constants.CityKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "bio-city", Value = extra.CombinedAnswerText
                    });
                }
                else if (Constants.StateKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "bio-state", Value = extra.CombinedAnswerText
                    });
                }
                else if (Constants.RelationshipKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    conversion.Add(new TextAnalisysFormField()
                    {
                        Key = "emergency-relationship", Value = extra.CombinedAnswerText
                    });
                }
                else if (Constants.MedicineQuestionKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    medicalDetailsText.AppendWithSpace("Medicine: " + extra.CombinedAnswerText);
                }
                else if (Constants.HeadacheQuestionKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    medicalDetailsText.AppendWithSpace("Headache: " + extra.CombinedAnswerText);
                }
                else if (Constants.CancerQuestionKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    medicalDetailsText.AppendWithSpace("Cancer: " + extra.CombinedAnswerText);
                }
                else if (Constants.HeartQuestionKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    medicalDetailsText.AppendWithSpace("Heart/Circulation: " + extra.CombinedAnswerText);
                }
                else if (Constants.NumbnessQuestionKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    medicalDetailsText.AppendWithSpace("Numbness: " + extra.CombinedAnswerText);
                }
                else if (Constants.DiabetesQuestionKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    medicalDetailsText.AppendWithSpace("Diabetes: " + extra.CombinedAnswerText);
                }
                else if (Constants.PressureQuestionKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    medicalDetailsText.AppendWithSpace("Blood Pressure: " + extra.CombinedAnswerText);
                }
                else if (Constants.AllergyQuestionKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    medicalDetailsText.AppendWithSpace("Allergies: " + extra.CombinedAnswerText);
                }
                else if (Constants.SpineInjuriesQuestionKeywords.CaseInsensitiveContains(extra.KeyWords))
                {
                    medicalDetailsText.AppendWithSpace("Neck/Back: " + extra.CombinedAnswerText);
                }
            }
            medicalDetails.Value = medicalDetailsText.ToString();
            conversion.Add(medicalDetails);

            return(conversion);
        }
コード例 #11
0
 public JObject Post(TextAnalysis text)
 {
     return(new JObject {
         ["message"] = text.Calculate()
     });
 }