public SimpleWord GetSimpleWord(Dictionary <int, double> dctLengthDistribution) { DiscreteRandomizer randomizer = new DiscreteRandomizer(dctLengthDistribution.Values.ToArray()); int nIndex = randomizer.Random(); int nLength = dctLengthDistribution.Keys.ToArray()[nIndex]; return(GetSimpleWord(nLength)); }
/// <summary> /// Creates a simple phrase. /// </summary> /// <param name="numberOfWordDistribution">The distribution of word number in a phrase.</param> /// <param name="wordLengthDistribution">The distribution of the length of a phrase.</param> /// <returns></returns> public SimplePhrase CreateSimplePhrase ( Dictionary <int, int> numberOfWordDistribution, Dictionary <int, int> wordLengthDistribution ) { DiscreteRandomizer randomizer = new DiscreteRandomizer(numberOfWordDistribution.Values.ToArray()); int nIndex = randomizer.Random(); int nWords = numberOfWordDistribution.Keys.ToArray()[nIndex]; return(CreateSimplePhrase(nWords, wordLengthDistribution)); }
/// <summary> /// Resets the randomizers with respect to the corresponding language elements. /// </summary> /// <param name="isNormalized"> /// Flag showing wheather the values of the dictionary are already normalized. /// </param> public void UpdateRandomizers(bool isNormalized) { try { _randomizerSyllables = new DiscreteRandomizer(_syllables.Values.ToArray(), isNormalized); _randomizerVowels = new DiscreteRandomizer(_vowels.Values.ToArray(), isNormalized); _randomizerConsonants = new DiscreteRandomizer(_consonants.Values.ToArray(), isNormalized); _randomizerInnerPunctuation = new DiscreteRandomizer(InnerPunctuation.Values.ToArray(), isNormalized); _randomizerFinalPunctuation = new DiscreteRandomizer(FinalPunctuation.Values.ToArray(), isNormalized); _randomizerWordLength = new DiscreteRandomizer(_wordLengthDistribution.Values.ToArray()); _randomizerPhraseLength = new DiscreteRandomizer(_phraseLengthDistribution.Values.ToArray()); } catch (Exception) { } }