diff --git a/README.md b/README.md new file mode 100644 index 0000000..beba34f --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# 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ä.