Generating a start sentence.
@ -9,10 +9,8 @@
let wordGroups = GetWordPairs (PickRandomNumber 10) text
let map = BuildMarkovMap wordGroups
let startWords = SeperateStartWords map
let startingWord = PickRandomNumber (Map.count startWords)
//let result = seq { for i in 1 .. PickRandomNumber 10 -> GetMarkovSentence startWords map}
//result |> JoinWords
//result
let start = (GetRandomWord startWords).Key
let sent = GetMarkovSentence start // <---- You are up to here....
0
let GenerateText gibberishLevel sentences = 0
@ -8,7 +8,7 @@
map
|> Map.partition (fun k _ -> IsStartOfSentence k)
fst startWords
let rec MarkovChain currentWords (map: Map<string, string list>) sentence =
let nextChoice = map.[currentWords] |> GetRandomWord
if IsEndOfSentence nextChoice then nextChoice :: sentence
@ -21,4 +21,6 @@ let map = BuildMarkovMap wordGroups
//let temp = snd startWords
let count = Map.count startWords
let random = PickRandomNumber (Map.count startWords)
let sent = GetMarkovSentence start
@ -37,7 +37,8 @@
let BuildMarkovMap<'a> = Seq.fold MapBuilder Map.empty
let GetRandomWord words =
let randomWord = Random().Next(Seq.length words)
let random = Random()
let randomWord = random.Next(Seq.length words)
words |> Seq.item randomWord
let CombineWords prev next =