/// <summary> /// Creates a file with all arrangements in the order that is used for the alphabet of the classifier. /// </summary> public IEnumerable <IList <Arrangement> > Create() { var orderedPath = Path.Combine(_workingDirectory, "OrderedArrangements.txt"); if (File.Exists(orderedPath)) { return(File.ReadAllLines(orderedPath).Select(Arrangement.MultipleFromString).Select(a => a.ToList())); } var words = new ArrangementWordCreator(_workingDirectory).CreateUnordered(); var classifierBuilder = new ClassifierBuilder(); classifierBuilder.SetLanguage(words); var nullTransitions = CountNullTransitions(classifierBuilder); var ordered = nullTransitions.Select((n, i) => new { n, i }).OrderBy(p => p.n).Select(p => p.i).ToList(); var oldArrangements = new CompactAnalyzedDataCreator(_workingDirectory).GetUniqueArrangements().ToList(); var newArrangements = ordered.Select(i => oldArrangements[i]).ToList(); var lines = newArrangements.Select(a => string.Join("", a)).ToList(); File.WriteAllLines(orderedPath, lines); return(newArrangements); }
private IStateMachineBuilder GetProgressiveHonorBuilder() { var words = new CompactAnalyzedDataCreator(_workingDirectory).CreateHonorWords(); var builder = new ProgressiveHonorStateMachineBuilder(); builder.SetLanguage(words); return(builder); }
public IEnumerable <int> Create() { var path = Path.Combine(_workingDirectory, "UnweightedSuitTransitions.txt"); if (File.Exists(path)) { return(File.ReadAllLines(path).Select(line => Convert.ToInt32(line, CultureInfo.InvariantCulture))); } var language = new CompactAnalyzedDataCreator(_workingDirectory).CreateSuitWords(); var fullLanguage = CreateFullLanguage(language); var builder = new ClassifierBuilder(); builder.SetLanguage(fullLanguage, 5, 19); var transitions = builder.Transitions; var lines = transitions.Select(t => t.ToString(CultureInfo.InvariantCulture)); File.WriteAllLines(path, lines); return(transitions); }
private IStateMachineBuilder GetHonorBuilder() { var language = new CompactAnalyzedDataCreator(_workingDirectory).CreateHonorWords(); return(GetClassifierBuilder(language)); }