https://github.com/fergusq/eliza-fi
Suomenkielinen Eliza
https://github.com/fergusq/eliza-fi
chatbot eliza finnish nlp
Last synced: 3 months ago
JSON representation
Suomenkielinen Eliza
- Host: GitHub
- URL: https://github.com/fergusq/eliza-fi
- Owner: fergusq
- License: gpl-3.0
- Created: 2018-10-21T18:37:40.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-10-21T21:41:35.000Z (over 7 years ago)
- Last Synced: 2025-03-11T22:14:52.436Z (over 1 year ago)
- Topics: chatbot, eliza, finnish, nlp
- Language: JavaScript
- Homepage: https://iikka.kapsi.fi/eliza/eliza.html
- Size: 28.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
======================
Suomenkielinen Eliza
======================
Suomenkielinen versio kuuluisasta Eliza-ohjelmasta.
Riippuvuudet
============
Käännä libvoikko-kirjasto JavaScriptiksi `näiden ohjeiden `_ avulla.
Tiedostot ``libvoikko.js`` ja ``libvoikko.data`` (sekä ``libvoikko.wasm`` jos käänsit WebAssemblyksi)
pitää sijoittaa samaan kansioon muiden tiedostojen kanssa.
Käsikirjoitukset
================
Tiedosto ``eliza.json`` sisältää käsikirjoituksen, jota ohjelma noudattaa.
Käsikirjoitusta noudatetaan seuraavasti:
1. Käyttäjä antaa syötteenä lauseen.
2. Lauseen sanajoukko muodostetaan perusmuotoistamalla sanat. Sanajoukkoon lisätään myös synonyymisääntöjen perusteella oikeat avainsanat.
3. Käydään läpi avainsanojen tärkeysjärjestyksessä sanoja vastaavat säännöt.
4. Jokaisen säännön kohdalla yritetään sovittaa säännön hahmoa syötteeseen.
5. Palautetaan ensimmäsen sopivan säännön seuraavana jonossa oleva vastaus.
Hahmonsovitus toimii sanekohtaisesti. Käytössä on seuraavat hahmot (missä ``sana`` on merkkijono ja ``a`` sekä ``b`` ovat hahmoja):
1. ``*`` täsmää mihin tahansa tyhjään tai ei-tyhjään joukkoon saneita.
2. ``sana`` täsmää kirjaimellisesti samaan merkkijonoon.
3. ``sana%`` täsmää kaikkiin saneisiin, joiden perusmuoto on "sana".
4. ``a|b`` täsmää joko a:han tai b:hen.
5. ``@a`` täsmää a:han.
Hahmonsovituksen lopputuloksena on lista syötteen alimerkkijonoja jokaista ``*``- ja ``@``-sääntöä kohden.
Heikkoudet
==========
Ohjelma ei tällä hetkellä sisällä kunnollista tekstin jäsentämistä,
joten sanojen perusmuotoistaminen on välillä melko satunnaista.
Ohjelma ei esimerkiksi luulee usein, että "minä" on mikä-sanan essiivi ja
"sinä" on se-sanan essiivi, vaikka sanat ovat useammin pronomineja.
Ratkaisu tähän olisi jäsentää teksti siten, että jokaista sanetta vastaava
lekseemi selviää oikein. En ole kuitenkaan löytänyt sopivaa JavaScriptillä
tehtyä kirjastoa tätä varten.
Vastausten laatiminen suomenkielisele Elizalle on haastavampaa kuin englanninkieliselle,
sillä käyttäjän antamaa syöteestä ei voi yhtä helposti leikata ja liimata uusia lauseita.
Tämä johtuu siitä, että uusissa lauseissa syötteen sanoja pitäisi ehkä taivuttaa eri tavalla
kuin käyttäjän syötteessä, mitä on vaikea tehdä oikein ilman lauseen kunnollista jäsentämistä
(ja se on silloinkin vaikeaa).
Lisenssi
========
Suomenkielinen Eliza on lisensoitu GNU GPLv3 -lisenssillä (tai myöhemmällä versiolla).