public void IgnoreSentencesWithSingleWord([Values("x. ax. y. z")] string text)
        {
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>();

            var actual = FrequencyAnalysis.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnCorrectResult_OnTextWithTwoSentencesWithOneWord()
        {
            var text       = "x.y";
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>();

            var actual = FrequencyAnalysis.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnEmptyDictionary_OnEmptyText()
        {
            var text       = "";
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>();

            var actual = FrequencyAnalysis.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnResult_WithMostFrequentBigrams([Values("x y. x z. x y.", "x z. x y. x y", "x y. x y.", "x y")]
                                                         string text)
        {
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>
            {
                { "x", "y" }
            };

            var actual = FrequencyAnalysis.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnPairForEveryBigram([Values("x y. y z.", "y z. x y.")] string text)
        {
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>
            {
                { "x", "y" },
                { "y", "z" }
            };

            var actual = FrequencyAnalysis.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
        public void ReturnCorrectResult_OnTextWithOneSentenceWithMultipleWords()
        {
            var text       = "x y z";
            var parsedText = ParseText(text);
            var expected   = new Dictionary <string, string>
            {
                { "x", "y" },
                { "y", "z" },
                { "x y", "z" }
            };

            var actual = FrequencyAnalysis.GetMostFrequentNextWords(parsedText);

            AssertResult(expected, actual, text);
        }
Beispiel #7
0
        public static void Main(string[] args)
        {
            var text      = File.ReadAllText("HarryPotterText.txt");
            var sentences = SentencesParser.ParseSentences(text);
            var frequency = FrequencyAnalysis.GetMostFrequentNextWords(sentences);

            while (true)
            {
                var rnd   = new Random();
                var count = rnd.Next(0, 40);
                Console.Write("Введите первое слово (например, harry): ");
                var beginning = Console.ReadLine();
                if (string.IsNullOrEmpty(beginning))
                {
                    return;
                }
                var phrase = TextGenerator.ContinuePhrase(frequency, beginning.ToLower(), count);
                Console.WriteLine(phrase);
            }
        }
Beispiel #8
0
        public static void Main()
        {
            var text      = File.ReadAllText("HarryPotterText.txt");
            var sentences = text
                            .Split('.')
                            .Select(sentence => sentence.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                                    .Select(word => word.ToLower()).ToList())
                            .ToList();
            var frequency = FrequencyAnalysis.GetMostFrequentNextWords(sentences);

            while (true)
            {
                Console.Write("Введите первое слово (например, harry): ");
                var beginning = Console.ReadLine();
                if (string.IsNullOrEmpty(beginning))
                {
                    return;
                }
                var phrase = TextGenerator.ContinuePhrase(frequency, beginning.ToLower(), 11);
                Console.WriteLine(phrase);
            }
        }