solidabis-koodihaaste/README.md

1.5 KiB

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.

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 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ä.