Aihepiiri: merkkijonot
"Kotipsykiatri"
Laadi yksinkertainen käyttäjän kanssa keskusteleva ohjelma, joka jäsentää ja muokkaa käyttäjän kirjoittamia lauseita, ja yhdistää niitä omiin puheisiinsa tekoälykkäästi. Ohjelma voi esimerkiksi toimia eräänlaisena "kotipsykiatrina", joka kuuntelee käyttäjän huolia, kyselee tältä puheeksi tulevista asioista lisäkysymyksiä sekä antaa tälle "neuvoja". Ohjelmalla voi olla muunkinlainen "luonne".
Tekoälyn tavoitetaso ei ole hurjan korkea, mutta ohjelman pitäisi pystyä juttelemaan edes jossain määrin järkevästi. Sen tulee osata muokata käyttäjän puheita riittävästi osatakseen heittää kommentteja tai kysymyksiä oikeasta aiheesta. Tekoäly ei saa perustua ainoastaan erikseen määriteltyihin fraaseihin reagoimiseen, eikä se saa seurata mitään ennalta määritettyä käsikirjoitusta, vaan ohjelman on tutkittava ja jaettava osiinsa käyttäjän kirjoittamia lauseita, ja vastattava tämän analyysin perusteella. Kun ohjelma ei ymmärrä käyttäjän lauserakennetta, voi se pyytää tätä ilmaisemaan itseään toisella tapaa tai vaihtaa puheenaihetta.
Koska tehtävänanto on hyvin vapaamuotoinen, on tässä projektissa erityisen tärkeää tehdä huolellinen suunnitelma, jossa esität, miten tekoäly toimii.
Saat käyttää haluamaasi kieltä keskusteluun, ja voit olettaa, että käyttäjä kirjoittaa kieliopin mukaista tekstiä välimerkkeineen. On suositeltavaa tehdä ohjelmasta esim. englanninkielinen, jotta säästyt sanamuotosotkuilta.
Esimerkki keskustelusta "kotipsykiatrin" kanssa:
Psykiatri: "Hello. What's your name?"
Käyttäjä: "Bob."
Psykiatri: "How are you feeling now, Bob?"
Käyttäjä: "I feel very sad."
Psykiatri: "What makes you say you feel very sad?"
Käyttäjä: "My pet mouse just died."
Psykiatri: "I see. How do you feel about the fact that your pet mouse
just died?"
Käyttäjä: "It is horrible. My only true friend was that little mouse."
Psykiatri: "Yes, Bob, I know how you feel. Just a few years ago, my only
true friend was a little mouse."
Käyttäjä: "That does not make me feel any better. You are a worthless
shrink!"
Psykiatri: "There's no need to shout, now, is there, Bob? What makes
you say that that does not make you feel any better?"
Käyttäjä: "If you had any notion of what that mouse meant to me - and
obviously you don't - you wouldn't be asking that."
Psykiatri: "I'm not sure I quite follow your reasoning there.
Let's move to another subject. You also mentioned that
I am a worthless shrink. Would you like to elaborate on this?"
Käyttäjä: "No! I'm outta here. Goodbye."
Psykiatri: "Goodbye, Bob. Please come back soon."
Pohdi esimerkki läpi ja mieti miten ylläoleva keskustelu olisi voitu tuottaa. esim. avainsanat, lauserakenteiden pilkkominen, subjektien vaihdot jne.. My pet mouse -> "your pet mouse" vai "my pet mouse" - kumpi tarvitaan riippuu tilanteesta.
Vaatimukset
Tämän tehtävän kantava idea on tekstin automaattisessa jäsentämisessä ja tuottamisessa. Molempiin alueisiin on hyväksyttävässä työssä löydyttävä riittävästi panostusta.
Helppo-keskivaikea
- Psykiatrin tekoäly tulee olla muokattavissa. Data tähän tulee ladata tekstimuotoisesta tiedostosta. (oma formaatti)
- Käyttäjän tekstiä tulee pystyä pilkkomaan pienempiin osiin.
- merkkipohjainen käyttöliittymä
- mahdollisuus tallentaa keskustelu tiedostoon (esim. "psykiatrin arkistoon"), antamalla tiedoston nimen komentorivillä. Mikäli annettu tiedosto ei ole tyhjä, liitetään keskustelu tiedoston loppuun. Kunkin keskustelun alkuun tulee liittää päiväys.
- tee ohjelmasta mahdollisimman uskottava!
- Psykiatrin tulee pohjata puheensa koko aiempaan keskusteluun, ei vain edelliseen lauseeseen.
Keskivaikea-Vaikea
Kaikki keskivaikean vaatimukset. Graafinen käyttöliittymä ja "debug-mode" jossa käyttäjä voi selata keskustelun aikana mitä tietoja psykiatri on hänestä kerännyt ja mihin tietoihin psykiatri pohjaa valintansa kun se lausuu jotakin.