Kesäni on kulunut lojbanin osalta päntätessä sanoja tuossa alla aikaisemmin esittelemälläni python-pohjaisella sanastonopiskelutyökalulla. Olen käynyt läpi nuo laatimani 7 x 53 eli n. 500 gismua. Ainakin vähän aikaa olen siis jokaisen näistä osannut, mutta nyt olisi aika kerrata koko joukko taas uudelleen. Uusi kertaus aivan ilmeisesti olisi paljon sujuvampaa.
Samalla olen arvioinut opiskeluskriptin laatua ja löytänyt luonnollisesti parannettavaa. Suurin ongelma skriptissä on nojautuminen suoraviivaisesti pythontulkin satunnaisvalitsimeen, joka listasta poimii sanoja. Seurauksena on se, että eri sanaparit (lojban/suomi) etenevät prosessin läpi kovin vaihtelevalla nopeudella. Nopeuserosta johtuu, että vauhdilla etenevät parit tarttuvat aivokuoreni neuroneihin paljon helpommin kuin harvakseen toistuvat hitaasti etenevät, joiden kanssa tulee usein virheitä. Tätä algoritmia pitäisi parantaa.
Toinen parannusidea on lisätä prosessiin kaksi uutta vaihetta. Ensimminen niistä tulee kolmannen vaiheen jälkeen. Kolmas vaihe on monivalinta suomesta lojbaniin. Uusi neljäs vaihe laajentaisi kolmatta siten, että valittu sana on pakko kirjoittaa, siis kopioida esitetyistä vaihtoehdoista. Kirjoittaessa uusi lojbankielinen sana tarttuisi mieleen oleellisesti helpommin, kuin esittämällä vain numeron ja lausumalla sana mielessä.
Toinen uusi vaihe tulisi viimeiseksi. Siinä jo opittuja sanoja kertailtaisiin suhteellisen harvakseen, estäen niiden pikaisen unohtumisen nopean perusoppimisvaiheen jälkeen. Oppimisprosessista tulisi siis seitsenvaiheinen. Uskon prosessin olevan stressitön, innostava ja tehokas: vielä parempi kuin vanha viisivaiheinen, jota jo olen pitänyt jossakin määrin "koukuttavana".
Aikomukseni on siis kirjoittaa tämä mielestäni tärkeä työkalu uusiksi, tällä kertaa C++:lla ja Qt-kirjastoja käyttäen. Täällä tavalla saisin nytkin aikaan sekä linux- että windows-versiot samalla vaivalla.
Mutta minulla on vielä uusi taka-ajatus! Minua kiehtoo "Mindforth"-sivujen AGI-Milestones malli.
Siinä esitetään Yleisen Tekoälyn saavuttamista seuraavien vaiheiden kautta:
1. Quickening
2. Generation of Thought
3. Cognitive Chain Reaction
4. Meanderin Chain of Thought
5. Selfreferential Thought.
En selitä muita kuin ensimmäisen vaiheen. "Quickening" on vaihe, jossa SW-toteutus on taukoamatta aktiivinen, työskennellen luupissa sisäisen tilansa ja syöttömateriaalin parissa pyrkien saavuttamaan asetetun tavoitteen mukaisesti yhä paremman "kognition tason". Ohjelma ei siis ole esim. reaktiivinen: reagoi ärsykkeisiin ja toimenpiteiden jälkeen pysähtyy odottamaan uusia ärsykkeitä, vaan hellittämättä yrittää reaktiivisen käyttäytymisen lisäksi parantaa sisäistä tilaansa.
Ajattelin kokeilla sanastonopiskeluohjelmassa "quickening" -periaatetta. Opiskeluohjelmasta tulee siis jatkuvasti pyörivä, suunnitellen kokoajan uusia tehtäviä oppilaalle, analysoiden edistymistä. Kyseessä ei tietenkään ole mikään AI-sovellus, vaan AI:n pohjalla oleva ohjelmointi- "patterni".
No, olen tehnyt muutakin, josta kerron enemmän vastaisuudessa. Mutta sen verran, että olen pythonilla tehnyt "satunnaislausegeneraattoria" joka näennäisälykkäällä tavalla generoi satunnaisia, mihinkään asiayhteyteen kuulumattomia bridejä, jotka sisäisesti kuitenkin ovat mielekkäitä lauseita. Työkalua on tarkoitus käyttää opiskeluvälineenä, sanojen opiskelussa ja semanttisena kokeiluna.
torstai 6. elokuuta 2009
perjantai 22. toukokuuta 2009
Merkittävä NLP-hanke pian nettiin
Wolfram Alpha on saanut paljon julkisuutta. Minäkin kokeilin, mutta en ollut kovin myyty, vielä. N. kuukauden päästä on toinen, pienempi, mutta jännittävämpi projekti, "the Texai bootstrap dialog system" tulossa nettiin. Sen tarkoitus on chatbot- periaattella harjoittaa ja kehittää Texai-hankkeen englanninkielen taitoja.
Luonnollisen kielen hallinta on paljon vaativampaa kuin lojbanin hallinta. En odota vakuuttavaa suoritusta vielä vuosiin, ja siksi odotan erittäin suurella mielenkiinnolla Texain julkaisuversiota, joka siis on "vain" "bootstrap dialog system".
Mutta on todettava, että alueella tapahtuu paljon. Kerron lähiaikoina taas lisää omista lojbanissa pysyvissä kokeiluistani.
Luonnollisen kielen hallinta on paljon vaativampaa kuin lojbanin hallinta. En odota vakuuttavaa suoritusta vielä vuosiin, ja siksi odotan erittäin suurella mielenkiinnolla Texain julkaisuversiota, joka siis on "vain" "bootstrap dialog system".
Mutta on todettava, että alueella tapahtuu paljon. Kerron lähiaikoina taas lisää omista lojbanissa pysyvissä kokeiluistani.
sunnuntai 10. toukokuuta 2009
Monimuotoisuutta lojbaniin
Blogissaan Ben Goertzel ehdottaa ihmisen ja delfiinien välikieleksi "Delphic-Lojban" -kieltä, joka noudattaisi virallisen lojbanin syntaksia, mutta jonka foneettinen rakenne olisi toteutettu delfiinien äänenmuodostuksen ehdoilla.
Koska ihminen aivan ilmeisesti ei pystyisi tuottamaan "Delphic-Lojban" lauseita omalla äänenmuodostuksellaan, ihmisen olisi syntetisoitava oma keskusteluosuutensa tietokonetta käyttäen. Jos synteesin lähdekielenä olisi varsinainen lojban, tehtävä oli kohtuullisen suoraviivainen. Kaikille kielen rakenteen yksityiskohdille olisi suorat vastineensa. Samoin olisi tehtävä tulkittaessa delfiinin lausumia ilmauksia, todennäköisesti tietokonekäännös välissä olisi välttämätön.
Tätä samaa ajatusta voisi edelleen kehittää toteuttamalla virallisen, "ylikultturellisen lojbanin" lisäksi muita, suppean kielialueen lojbaneita, joissa lojbanin fonetiikka ja ehkä myös gismujen rakenteet ym. olisi korvattu kielialueelle paremmin sopivilla muoto- ja foneettisilla valinnoilla. Tällaisten lojbanin variaatioiden etuna olisi madaltaa oppimiskynnystä, mutta säilyttää lojabnin korvaamattomat ominaisuudet, sekä suora, helppo koneellinen, jopa reaaliaikainen käännettävyys lojban-variaatiosta toiseen. Tällaisia variaatiota voisivat olla:
- Euro-Lojban, Euroopan pääkielistä
- Latin-Lojban, lähteinä: italia, romania, ranska, espanja, portugali
- Slavo-Lojban, slaavilaisista kielistä
- Uralic-Lojban, omille kielisukulaisillemme
- Hindic-Lojban, Intian alueen monista kielistä yhdistettynä
- African-Lojban, Afrikan pääkielistä
- Kiina-Lojban, kiinan kielen eri versioista koottuna
- Viittoma-Lojban?
ym. Näille kielille säilysi etuna suoraviivainen käännettävyys ja siten kaikkien yhteisten resulssien käyttö, jolloin kokonaisresulssit ja lojbanin käyttäjien määrä voisi moninkertaistua.
Koska ihminen aivan ilmeisesti ei pystyisi tuottamaan "Delphic-Lojban" lauseita omalla äänenmuodostuksellaan, ihmisen olisi syntetisoitava oma keskusteluosuutensa tietokonetta käyttäen. Jos synteesin lähdekielenä olisi varsinainen lojban, tehtävä oli kohtuullisen suoraviivainen. Kaikille kielen rakenteen yksityiskohdille olisi suorat vastineensa. Samoin olisi tehtävä tulkittaessa delfiinin lausumia ilmauksia, todennäköisesti tietokonekäännös välissä olisi välttämätön.
Tätä samaa ajatusta voisi edelleen kehittää toteuttamalla virallisen, "ylikultturellisen lojbanin" lisäksi muita, suppean kielialueen lojbaneita, joissa lojbanin fonetiikka ja ehkä myös gismujen rakenteet ym. olisi korvattu kielialueelle paremmin sopivilla muoto- ja foneettisilla valinnoilla. Tällaisten lojbanin variaatioiden etuna olisi madaltaa oppimiskynnystä, mutta säilyttää lojabnin korvaamattomat ominaisuudet, sekä suora, helppo koneellinen, jopa reaaliaikainen käännettävyys lojban-variaatiosta toiseen. Tällaisia variaatiota voisivat olla:
- Euro-Lojban, Euroopan pääkielistä
- Latin-Lojban, lähteinä: italia, romania, ranska, espanja, portugali
- Slavo-Lojban, slaavilaisista kielistä
- Uralic-Lojban, omille kielisukulaisillemme
- Hindic-Lojban, Intian alueen monista kielistä yhdistettynä
- African-Lojban, Afrikan pääkielistä
- Kiina-Lojban, kiinan kielen eri versioista koottuna
- Viittoma-Lojban?
ym. Näille kielille säilysi etuna suoraviivainen käännettävyys ja siten kaikkien yhteisten resulssien käyttö, jolloin kokonaisresulssit ja lojbanin käyttäjien määrä voisi moninkertaistua.
lauantai 9. toukokuuta 2009
Uudet sanalistat
Lisäsin alla mainittulle työkalulle seitsemän uutta sanalistaa. Kävin läpi Lojban-Englanti-Lojban-sanakirjan (jonka myös lisäsin mukaan) gismut ja poimin niistä runsaat 500 itseäni miellyttävää käsitettä. Miellyttävyyden kriteerinä ovat: (1) käsitteen hyvä tuki opetuksellisille esimerkkilauseille, (2) käsitteiden kuvauskyky käytettäessä lojban-ilmaisuja "harjoitusmaailmojen" kuvaamiseen.
Jaoin nuo runsaat 500 sanaparia seitsemään runsaat 70 käsitettä sisältävään "opiskeluerään" ohjelmallisesti "korttienjakelualgoritmilla" siten, että jokainen lista käsittää tasaisesti sanoja koko lojbanin aakkosalueelta. Listojen sisällöllä ei siis ole mitään loogista rakennetta tai merkityksellistä yhteyttä, päinvastoin.
Listoja käytetään siten kuin skriptin ohjeissa kerrotaan, ajetaan ensin "init" komento jne.
Sanojen opiskelu
Jaoin nuo runsaat 500 sanaparia seitsemään runsaat 70 käsitettä sisältävään "opiskeluerään" ohjelmallisesti "korttienjakelualgoritmilla" siten, että jokainen lista käsittää tasaisesti sanoja koko lojbanin aakkosalueelta. Listojen sisällöllä ei siis ole mitään loogista rakennetta tai merkityksellistä yhteyttä, päinvastoin.
Listoja käytetään siten kuin skriptin ohjeissa kerrotaan, ajetaan ensin "init" komento jne.
Sanojen opiskelu
lauantai 25. huhtikuuta 2009
Lojban leviää Suomessa
Lambda ry järjesti keväällä lojban-kielen alkeiskurssin Helsingissä. Kurssi käsitti seitsemän oppituntia, kokeet, ja pari lisäluentoa. Kurssimateriaali, joka muodostaa selkeän alkeiskokonaisuuden lojbanista, löytyy osoitteesta Käytännön lojbania matkailijoille.
Olisi ollut mukava itsekin osallistua kurssille, mutta huomasin tilanteen kurssin jo alettua ja olihan minulla keväällä aika tiukalla. Toivottavasti osallistujat nauttivat kursista ja jatkavat lojbanin opintoja muodossa tai toisessa. Lisäksi muidenkin kannattaa ehdottomasti tutustua kurssin materiaaliin. Ja toivottavasti kurssi saa myös jatkoa.
Olisi ollut mukava itsekin osallistua kurssille, mutta huomasin tilanteen kurssin jo alettua ja olihan minulla keväällä aika tiukalla. Toivottavasti osallistujat nauttivat kursista ja jatkavat lojbanin opintoja muodossa tai toisessa. Lisäksi muidenkin kannattaa ehdottomasti tutustua kurssin materiaaliin. Ja toivottavasti kurssi saa myös jatkoa.
maanantai 20. huhtikuuta 2009
Sanastojen opiskelu
Kielitaidon opiskelun kaksi keskeistä haastetta ovat sanaston ja kieliopin opiskelu. Näiden vaikeuksien lisäksi tulevat opiskeltavalle kielelle tyypillisten sanonta- ja ajattelutapojen omaksuminen, ääntämisen vivahteet ym. Järkevä vieraiden kielten opiskelu perustuu niin paljon kuin mahdollista "luomumenetelmään", jota pikkulapsi käyttää äidinkielensä opiskeluun. Tässä menetelmässä kielen kaikki ulottuvuudet opiskellaan sisäkkäin, yhtäaikaa, soveltamalla jo opittua ja uutta aineistoa arkielämän olosuhteissa ilman, että erityisesti pyritään opiskelemaan kieltä. Lapsi, opiskelija, kuuntelee, analysoi, toistaa, soveltaa.. käyttää kieltä kulloisessakin asiayhteydessä.
Aikuisopiskelijalle luonnonmenetelmä on harvoin mahdollinen. Onneksi vaihtoehtoisetkaan menetelmät nykyaikaisilla audiovisuaalisilla apuvälineillä toteutettuina eivät paljon häviä luonnonmenetelmälle. Mutta usein kieltenopiskelijalle tulee vastaan tilanteita, joissa opiskeltavasta kielestä on olemassa todella vähän laadukasta opiskelumateriaalia. Esim. lojban-kielen suhteen tilanne on tällainen. Tällöin joutuu turvautumaan niinkin primitiiviseen menetelmään kuin raakaan sanaston pänttäämiseen.
Kehittäni "trainwords.py" -skripti on yksinkertainen työkalu sanaston opiskelemiseksi viiden asteittain vaikeutuvan vaiheen kautta. Menetelmä pyrkii madaltamaan luonnonmenetelmän tavoin oppimista hidastavaa stressiä, alentamalla uusien sanojen oppisen kynnyksiä, osaamisen siirtyessä kohteena olevan sanan osalta uudelle, vaativammalle osaamisen tasolle. Oman kokeiluni perusteella menetelmä toimii, sanat painuvat mieleen melko matalalla henkisellä ponnistuksella.
Menetelmän vaiheet ovat:
1. Esittely, esittelee sanaparin, opiskelija toistaa mielessään.
2. Monivalinta, valitse oikea suomennos kolmesta vaihtoehdosta
3. Monivalinta, valitse oikea vieraskielinen sana vaihtoehdoista
4. Anna vieraskielisen sanan suomenkielinen vastine
5. Anna suomenkielisen sanan vieraskielinen vastine
Asteittainen vaikeutuminen ei kyllä aivan toteudu ihanteellisella tavalla. 2. ja 3. vaiheet ovat lähes samaa vaikeustasoa, ainakin siirtyminen 2:lta 3:lle ei tuota ongelmia. 4.-taso on jo hieman vaikeampi, virheitä tulee silloin tällöin, mutta hyppäys 4. - 5. on selvästi prosessin vaikein.
Yksi sanapari vaeltaa järjestyksessä, opiskelun edistymisen mukaisesti, kaikki em. vaiheet läpi. Sanaston opiskelun alkua lukuuottamatta, kaikissa vaiheissa olevia sanoja on yhtä aikaa työskentelyn kohteena. Uusia sanoja lisätään esittelyvaiheeseen sitä mukaa kuin kuin tilaa vapautuu muista vaiheista. Kahdessa viimeisessä vaiheessa voidaan toteuttaa "regressio", jossa vaikea sana palautetaan edelliselle tasolle. Lopuksi, kun kaikki sanat on otettu mukaan alkuperäisestä sanastolistasta, vaikeimmiksi osoittautuneita sanoja otetaan uudelleen kertaukseksi esittelyvaiheeseen.
On parasta, että opiskelija rakentaa itse sanastonsa. Sopiva koko opiskeltavalle sanastolle on 50-120 sanaparia kerrallaan. Erityistä huomiota on kiinnitettävä homonyymien kanssa, siis suomenkielen homonyymien (lojbanissa niit ei tietenkään ole), sanojen, joilla on sama muoto, mutta eri merkitys. Siksi on välillä pakko tarkentaa sanoja yhdyssanan muodossa (minä olen käyttänyt alaviivaa).
Olen kokeillessani myös huomannut, että vaikean sanaston ollessa kyseessä, joskus on parasta aloittaa alusta, alustaa sanaston opiskelu (ohjeiden mukaan).
Tällaisessa sanojen pänttäämisessä opetellaan lojbanin sanoille suomenkielisiä vastineita, mutta sanojen todellinen semanttinen merkitys rakentuu aivoihin vasta, kun sanoja käytetään, joko lukiessa tai mieleummin aktiivisesti, kirjoittaen tai puhuen.
Python-skriptejä on kaksi, toinen paremmin testattu linux-ympäristöön ja toinen windows/cygwin-ympäristöön. Kahdella eri skriptillä oli helponta ratkaista ymäristöjen erilainen skandi-ascii-merkkien koodaus.
Työkalu löytyy uudelta apusivultani:
Sanojen Opiskelu
Aikuisopiskelijalle luonnonmenetelmä on harvoin mahdollinen. Onneksi vaihtoehtoisetkaan menetelmät nykyaikaisilla audiovisuaalisilla apuvälineillä toteutettuina eivät paljon häviä luonnonmenetelmälle. Mutta usein kieltenopiskelijalle tulee vastaan tilanteita, joissa opiskeltavasta kielestä on olemassa todella vähän laadukasta opiskelumateriaalia. Esim. lojban-kielen suhteen tilanne on tällainen. Tällöin joutuu turvautumaan niinkin primitiiviseen menetelmään kuin raakaan sanaston pänttäämiseen.
Kehittäni "trainwords.py" -skripti on yksinkertainen työkalu sanaston opiskelemiseksi viiden asteittain vaikeutuvan vaiheen kautta. Menetelmä pyrkii madaltamaan luonnonmenetelmän tavoin oppimista hidastavaa stressiä, alentamalla uusien sanojen oppisen kynnyksiä, osaamisen siirtyessä kohteena olevan sanan osalta uudelle, vaativammalle osaamisen tasolle. Oman kokeiluni perusteella menetelmä toimii, sanat painuvat mieleen melko matalalla henkisellä ponnistuksella.
Menetelmän vaiheet ovat:
1. Esittely, esittelee sanaparin, opiskelija toistaa mielessään.
2. Monivalinta, valitse oikea suomennos kolmesta vaihtoehdosta
3. Monivalinta, valitse oikea vieraskielinen sana vaihtoehdoista
4. Anna vieraskielisen sanan suomenkielinen vastine
5. Anna suomenkielisen sanan vieraskielinen vastine
Asteittainen vaikeutuminen ei kyllä aivan toteudu ihanteellisella tavalla. 2. ja 3. vaiheet ovat lähes samaa vaikeustasoa, ainakin siirtyminen 2:lta 3:lle ei tuota ongelmia. 4.-taso on jo hieman vaikeampi, virheitä tulee silloin tällöin, mutta hyppäys 4. - 5. on selvästi prosessin vaikein.
Yksi sanapari vaeltaa järjestyksessä, opiskelun edistymisen mukaisesti, kaikki em. vaiheet läpi. Sanaston opiskelun alkua lukuuottamatta, kaikissa vaiheissa olevia sanoja on yhtä aikaa työskentelyn kohteena. Uusia sanoja lisätään esittelyvaiheeseen sitä mukaa kuin kuin tilaa vapautuu muista vaiheista. Kahdessa viimeisessä vaiheessa voidaan toteuttaa "regressio", jossa vaikea sana palautetaan edelliselle tasolle. Lopuksi, kun kaikki sanat on otettu mukaan alkuperäisestä sanastolistasta, vaikeimmiksi osoittautuneita sanoja otetaan uudelleen kertaukseksi esittelyvaiheeseen.
On parasta, että opiskelija rakentaa itse sanastonsa. Sopiva koko opiskeltavalle sanastolle on 50-120 sanaparia kerrallaan. Erityistä huomiota on kiinnitettävä homonyymien kanssa, siis suomenkielen homonyymien (lojbanissa niit ei tietenkään ole), sanojen, joilla on sama muoto, mutta eri merkitys. Siksi on välillä pakko tarkentaa sanoja yhdyssanan muodossa (minä olen käyttänyt alaviivaa).
Olen kokeillessani myös huomannut, että vaikean sanaston ollessa kyseessä, joskus on parasta aloittaa alusta, alustaa sanaston opiskelu (ohjeiden mukaan).
Tällaisessa sanojen pänttäämisessä opetellaan lojbanin sanoille suomenkielisiä vastineita, mutta sanojen todellinen semanttinen merkitys rakentuu aivoihin vasta, kun sanoja käytetään, joko lukiessa tai mieleummin aktiivisesti, kirjoittaen tai puhuen.
Python-skriptejä on kaksi, toinen paremmin testattu linux-ympäristöön ja toinen windows/cygwin-ympäristöön. Kahdella eri skriptillä oli helponta ratkaista ymäristöjen erilainen skandi-ascii-merkkien koodaus.
Työkalu löytyy uudelta apusivultani:
Sanojen Opiskelu
tiistai 13. tammikuuta 2009
2009 on toivoa täynnä
Edistyksellistä uutta vuotta 2009 kaikille lojbanista kiinnostuneille!
Joku on jo saattanut ajatella, että koko Lojban-chatbot-projektini on hyytynyt, kun ei ole mitään kuulunut. Tosi on, että minulla oli loka-marraskuussa 2008 kotona tietokoneeni kanssa teknisiä ongelmia, kone levällään ja viikkojen ajan ei mitään edistymistä projektissa ollut. Sitten joulukuussa oli hieman vaikeaa saada uutta otetta, mutta nyt etenee taas. Olen tosin vasta sillä tasolla, että syntaksitiedoston luku ja tulkkaaminen ajonaikaiseksi parserirakenteeksi on valmis ja alkamassa nyt on tulkki joka lukee lojban-bridejä sekä em. ajonaikaista parserirakennetta käyttäen jäsentää lauseen kerrallaan.
Eli itse pääasia on vasta edessä, mutta hyvin pohjustettuna. Olen ihan optimistinen. Esittelen jonkun lokitiedoston tässä lähiviikkoina, jota näkee sitten miten bridianalyysi PEG-parseria käyttäen etenee.
Opiskelkaa lojbania, ehkä joskus 2010 aikana voitte käydä sen kanssa aitoa keskustelua tietokoneen kanssa!
Joku on jo saattanut ajatella, että koko Lojban-chatbot-projektini on hyytynyt, kun ei ole mitään kuulunut. Tosi on, että minulla oli loka-marraskuussa 2008 kotona tietokoneeni kanssa teknisiä ongelmia, kone levällään ja viikkojen ajan ei mitään edistymistä projektissa ollut. Sitten joulukuussa oli hieman vaikeaa saada uutta otetta, mutta nyt etenee taas. Olen tosin vasta sillä tasolla, että syntaksitiedoston luku ja tulkkaaminen ajonaikaiseksi parserirakenteeksi on valmis ja alkamassa nyt on tulkki joka lukee lojban-bridejä sekä em. ajonaikaista parserirakennetta käyttäen jäsentää lauseen kerrallaan.
Eli itse pääasia on vasta edessä, mutta hyvin pohjustettuna. Olen ihan optimistinen. Esittelen jonkun lokitiedoston tässä lähiviikkoina, jota näkee sitten miten bridianalyysi PEG-parseria käyttäen etenee.
Opiskelkaa lojbania, ehkä joskus 2010 aikana voitte käydä sen kanssa aitoa keskustelua tietokoneen kanssa!
Tilaa:
Blogitekstit (Atom)