Browse Source

made some stylistic changes

master
Wesley Kerfoot 11 years ago
parent
commit
bbb6c9b99a
  1. 46
      approximate.hs

46
approximate.hs

@ -10,29 +10,31 @@ import Data.Char
frequencyMap [] ngmap = ngmap frequencyMap [] ngmap = ngmap
frequencyMap ((_, 0.0):ngs) ngmap = frequencyMap ngs ngmap frequencyMap ((_, 0.0):ngs) ngmap = frequencyMap ngs ngmap
frequencyMap ((ng, p):ngs) ngmap = case Dm.lookup (DB.head ng) ngmap of frequencyMap ((ng, p):ngs) ngmap =
Nothing -> frequencyMap ngs (Dm.insert (DB.head ng) [(ng, p)] ngmap) case Dm.lookup (DB.head ng) ngmap of
Just xs -> frequencyMap ngs (Dm.insert (DB.head ng) ((ng, p) : xs) ngmap) Nothing -> frequencyMap ngs (Dm.insert (DB.head ng) [(ng, p)] ngmap)
Just xs -> frequencyMap ngs (Dm.insert (DB.head ng) ((ng, p) : xs) ngmap)
nextChoice k xs = case k of nextChoice 1 xs = DB.pack [DB.head xs]
1 -> DB.pack [DB.head xs] nextChoice _ xs = DB.take (k-1) xs
_ -> DB.take (k-1) xs
generateText k n acc cur freqmap =
do
let (Just probabilities) = Dm.lookup cur freqmap
choice <- MR.fromList probabilities
let next = DB.last choice
case n of
0 -> return acc
_ -> generateText k (n-1) (DB.append acc (nextChoice k choice)) next freqmap
generateText k n acc cur freqmap = do gibberish n =
let (Just probabilities) = Dm.lookup cur freqmap do
choice <- MR.fromList probabilities js <- (DB.readFile "./quadgrams.json")
let next = DB.last choice let (Just ngramPairs) = decode js :: Maybe (Dm.Map DB.ByteString Rational)
case n of result <- generateText 4 n "" 116 (frequencyMap (Dm.toList ngramPairs) (Dm.singleton 0 []))
0 -> return acc return result
_ -> generateText k (n-1) (DB.append acc (nextChoice k choice)) next freqmap
gibberish n = do main =
js <- (DB.readFile "./quadgrams.json") do
let (Just ngramPairs) = decode js :: Maybe (Dm.Map DB.ByteString Rational) output <- gibberish 1550
result <- generateText 4 n "" 116 (frequencyMap (Dm.toList ngramPairs) (Dm.singleton 0 [])) DB.writeFile "./output3.txt" output
return result
main = do
output <- gibberish 1550
DB.writeFile "./output3.txt" output