Exemplo n.º 1
0
        public void Find()
        {
            if (string.IsNullOrWhiteSpace(Theme))
            {
                IsGenerating = false;
                return;
            }

            IsGenerating = true;

            PunList = null;
            RevealedWords.Clear();

            Console.WriteLine(@"Getting Puns");

            var puns = SynSets.Except(CrossedOffSynsets)
                       .SelectMany(synSet => PunHelper.GetPuns(PunCategory, Theme, synSet, WordNetEngine.Value, PronunciationEngine.Value));

            PunList = puns
                      .Distinct()
                      .GroupBy(x => x.Word, StringComparer.OrdinalIgnoreCase)
                      .OrderByDescending(x => x.Count())
                      .ToList();

            Console.WriteLine($@"{PunList.Count} Puns Got");

            IsGenerating = false;
        }
Exemplo n.º 2
0
        public void TestPunHelper(string theme, PunCategory category)
        {
            var synSets = WordNetEngine.GetSynSets(theme).ToList();

            var puns = PunHelper.GetPuns(
                category,
                theme,
                synSets,
                WordNetEngine,
                PronunciationEngine,
                SpellingEngine,
                PunStrategyFactory.AllFactories
                )
                       .ToList();

            puns.Should().HaveCountGreaterThan(2);

            TestOutputHelper.WriteLine(puns.Count + " puns");

            foreach (var(newPhrase, oldPhrase) in puns.Select(x => (x.NewPhrase, x.OldPhrase))
                     .Distinct())
            {
                TestOutputHelper.WriteLine($"{newPhrase} ({oldPhrase})");
            }
        }
Exemplo n.º 3
0
        public int TestPunHelper()
        {
            var strategies = new List <PunStrategyFactory>()
            {
                PunStrategyFactory.GetByName(Strategy)
            };

            int punCount = 0;

            foreach (var theme in Themes)
            {
                var synSets = _fixture.WordNetEngine.GetSynSets(theme).ToList();

                foreach (var category in Enum.GetValues <PunCategory>())
                {
                    var puns = PunHelper.GetPuns(
                        category,
                        theme,
                        synSets,
                        _fixture.WordNetEngine,
                        _fixture.PronunciationEngine,
                        _fixture.SpellingEngine,
                        strategies
                        )
                               .ToList();

                    punCount += puns.Count;
                }
            }

            return(punCount);
        }
Exemplo n.º 4
0
        public void TestRelatedWords(string word)
        {
            var synSets = WordNetEngine.GetSynSets(word).ToList();

            foreach (var synSet in synSets)
            {
                foreach (var relatedSynSet in PunHelper.GetPunSynSets(synSet, WordNetEngine, true))
                {
                    foreach (var word1 in relatedSynSet.Words)
                    {
                        TestOutputHelper.WriteLine((word1, synSet.Gloss, relatedSynSet.Gloss).ToString());
                    }
                }
            }
        }