Ohjelmoinnin peruskurssi Y2, kurssimateriaali

Aihepiiri: merkkijonot

Etusivulle

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

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.

Etusivulle