Exemple #1
0
        static void Main(string[] args)
        {
            var wordnet = new WordnetDictionary(
                "/media/milleniumbug/stuff/asdf/english_resources/english-wordnet-2020.xml",
                "/media/milleniumbug/stuff/asdf/english_resources/wordnet.cache");

            var latin1          = Encoding.GetEncoding("iso-8859-1");
            var hyphenationList = HyphenationFileReader.ReadFromFile("/home/milleniumbug/dokumenty/asdf/english_resources/delphiforfun/Syllables.txt", ((char)183).ToString(), latin1)
                                  .Concat(HyphenationFileReader.ReadFromFile("/home/milleniumbug/dokumenty/asdf/english_resources/delphiforfun/SyllablesUpdate.txt", " ", latin1))
                                  .OrderBy(hyphentationInfo => hyphentationInfo.Word, StringComparer.InvariantCulture)
                                  .ToList();
            string?line;

            var        loader    = new ResourceHyphenatePatternsLoader(HyphenatePatternsLanguage.EnglishUs);
            Hyphenator hypenator = new Hyphenator(loader, "-");

            while (true)
            {
                Console.Write("> ");
                line = Console.ReadLine();
                if (line == null)
                {
                    break;
                }

                var resultOpt = BinarySearch(
                    hyphenationList,
                    (list, index) => list[index],
                    hyphenationList.Count,
                    line,
                    info => info.Word,
                    StringComparer.InvariantCulture);
                resultOpt.Match(result =>
                {
                    Console.WriteLine(string.Join("-", result.element.Syllables));
                },
                                () =>
                {
                    Console.WriteLine("fall back to generic hyphenator");
                    Console.WriteLine(hypenator.HyphenateText(line));
                });
                var lookupResult = wordnet.Lookup(line);
                foreach (var entry in lookupResult)
                {
                    Console.WriteLine($"{line} ({entry.PartOfSpeech})");
                    foreach (var definition in entry.Definition)
                    {
                        Console.WriteLine(definition);
                    }

                    foreach (var example in entry.Examples)
                    {
                        Console.WriteLine($"- {example}");
                    }
                }
            }
        }
        public HyphenatePatternsLoader(Language language)
        {
            this.language = language;

            switch (language)
            {
            case Language.enUS:
                this.originalPatternLoader = new ResourceHyphenatePatternsLoader(HyphenatePatternsLanguage.EnglishUs);
                return;

            case Language.enGB:
                this.originalPatternLoader = new ResourceHyphenatePatternsLoader(HyphenatePatternsLanguage.EnglishBritish);
                return;

            case Language.ruRU:
                this.originalPatternLoader = new ResourceHyphenatePatternsLoader(HyphenatePatternsLanguage.Russian);
                return;

            default:
                break;
            }



            var names = typeof(HyphenatePatternsLoader).Assembly.GetManifestResourceNames();

            using (var stream = typeof(HyphenatePatternsLoader).Assembly.GetManifestResourceStream($"{nameof(PdfCardGenerator)}.Resources.{language}.hyp.txt"))
                using (var reader = new StreamReader(stream))
                    this.exceptions = reader.ReadToEnd();

            if (patternLookup.ContainsKey(language))
            {
                this.patterns = patternLookup[language];
            }
            else
            {
                using (var stream = typeof(HyphenatePatternsLoader).Assembly.GetManifestResourceStream($"{nameof(PdfCardGenerator)}.Resources.{language}.pat.txt"))
                    using (var reader = new StreamReader(stream))
                        this.patterns = reader.ReadToEnd();

                //var patternsClasses = this.patterns
                //    .Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries)
                //    .Select(x => new Pattern(x));

                //var orderd = new System.Collections.Generic.SortedList<Pattern, Pattern>();
                //foreach (var item in patternsClasses)
                //    orderd.Add(item, item);

                //this.patterns = string.Join("\r\n", orderd

                //    .Select(x => x.Value.str));


                patternLookup[language] = this.patterns;
            }
        }
Exemple #3
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Usage:\n\thyphenator \"path\\to\\file.txt\"");
                return;
            }

            var opts        = new ResourceHyphenatePatternsLoader(HyphenatePatternsLanguage.EnglishUs);
            var nhyphenator = new Hyphenator(opts, "-");

            try
            {
                var lines = File.ReadAllLines(args[0]);
                foreach (var line in lines)
                {
                    Console.WriteLine(nhyphenator.HyphenateText(line));
                }
            }
            catch (FileNotFoundException)
            {
                Console.WriteLine($"Could not find {args[0]}. Check the file path.");
            }
        }