solidabis-koodihaaste/README.md

45 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2019-10-15 23:05:10 +03:00
# 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ä.