# Solidabis koodihaaste Haasteen tehtävänä on hakea lista rot-n enkoodattuja lauseita, tunnistaa oikea `n` dekoodatessa ja palauttaa dekoodattu sana. ## Dekoodaus Moduuli `Data.Caesar` toteuttaa dekoodauksen primitiivit. Kirjainta siirretään vasemmalle n merkin verran, ottaen huomioon 'a', 'z', 'å' ja 'ä' rajat. ## Lauseen tunnistaminen Moduulit `Data.Language` ja `Data.NGram` toteuttavat primitiivit tulosten tunnistamiseen. - http://practicalcryptography.com/miscellaneous/machine-learning/tutorial-automatic-language-identification-ngram-b/ Käytän n-grameja suomalaisten lauseiden tunnistamiseen, tai tarkemmin sanottuna, suomalaiselta vaikuttavien lauseiden tunnistamiseen. 1. Lue jokin suomalainen corpus 2. Rakenna siitä n-gram malli 3. Jokaista lausetta varten, vertaa lauseen n-grameja mallia vasten Yritä-erehdy menetelmällä löysin rajaksi ~-8. Sitä suuremmat ovat todennäköisesti suomalaisia lauseita, tai ainakin sitä muistuttavaa. Corpuksena käytin [Sydäntalven tarinaa](http://practicalcryptography.com/miscellaneous/machine-learning/tutorial-automatic-language-identification-ngram-b/) josta siistin englanninkielisen alun ja lopun. Kirja ei ole repositoryssa mukana. ## Suoritus ``` nix-build release.nix -A koodihaaste result/bin/koodihaaste config.yaml curl http://localhost:8080 ``` Aukeaa myös selaimella. Saatan myös pistää paketin pyörimään https://koodihaaste.introitu.info mutta ei ole siellä vielä kirjoitushetkellä.