public void SetUpTestFixture() { string directoryPath = Path.GetDirectoryName(typeof(RuleTestBase).Assembly.Location); string filePath = Path.Combine(directoryPath, "Config", RuleFileName); var conf = Configuration.Read(filePath); syllableBreaker = new SyllableBreaker(conf); }
static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; if (args.Length < 1) { Console.WriteLine("Usage: SyllableSplitter.exe <ConfigFile> [<TextFile>]"); return; } Configuration conf = Configuration.Read(args[0]); var syllableBreaker = new SyllableBreaker(conf, true); WordReader reader = new WordReader(args.Length >= 2 ? args[1] : null); string word; var processedWords = new HashSet <string>(); while ((word = reader.GetNextWord()) != null) { word = word.ToLower(); if (processedWords.Contains(word)) { continue; } processedWords.Add(word); try { var syllables = syllableBreaker.BreakWord(word); Console.WriteLine($"{word}={SyllableBreaker.ToString(syllables)}"); } catch (ArgumentException e) { Console.WriteLine($"Error: {e.Message}"); } } reader.Close(); syllableBreaker.ProcessClusters(); PrintConsonantClusters(syllableBreaker); }
private static void PrintConsonantClusters(SyllableBreaker syllableBreaker) { using (var writer = new StreamWriter("clusters_by_count.txt", false, Encoding.UTF8)) { foreach (var clusterText in syllableBreaker.ClustersByCount) { var cluster = syllableBreaker.ConsonantClusters[clusterText]; writer.Write($"{clusterText} ({cluster.Words.Count}): "); WriteWords(writer, cluster.Words); writer.WriteLine(); } } using (var writer = new StreamWriter("clusters_by_length.txt", false, Encoding.UTF8)) { foreach (var clusterText in syllableBreaker.ClustersByLength) { var cluster = syllableBreaker.ConsonantClusters[clusterText]; writer.Write($"{clusterText} ({cluster.Words.Count}): "); WriteWords(writer, cluster.Words); writer.WriteLine(); } } }