/// <summary> /// /// </summary> /// <param name="languageModelsDirectory"></param> /// <param name="maximumSizeOfDistribution"></param> public LanguageIdentifier( IEnumerable <Tuple <string, Stream> > namesAndLanguageModelStreams, int maximumSizeOfDistribution = MaximumSizeOfDistributionDefault ) { _maximumSizeOfDistribution = maximumSizeOfDistribution; _classifier = new RankedClassifier <ulong>(_maximumSizeOfDistribution); var persister = new ByteLanguageModelPersister(); foreach (var tuple in namesAndLanguageModelStreams) { using (tuple.Item2) { var languageModel = persister.Load(tuple.Item2, new LanguageInfo(tuple.Item1, null, null, null)); _classifier.AddEtalonLanguageModel(languageModel); } } }
/// <summary> /// /// </summary> /// <param name="languageModelsDirectory"></param> /// <param name="maximumSizeOfDistribution"></param> public LanguageIdentifier( string languageModelsDirectory = LanguageModelsDirectoryDefault, int maximumSizeOfDistribution = MaximumSizeOfDistributionDefault ) { _maximumSizeOfDistribution = maximumSizeOfDistribution; _classifier = new RankedClassifier <ulong>(_maximumSizeOfDistribution); var persister = new ByteLanguageModelPersister(); foreach (string filename in Directory.GetFiles(languageModelsDirectory)) { using (FileStream sourceStream = File.OpenRead(filename)) { var languageModel = persister.Load(sourceStream, new LanguageInfo(Path.GetFileNameWithoutExtension(filename), null, null, null)); _classifier.AddEtalonLanguageModel(languageModel); } } }