Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: tylsistyneita ihmisiä kaivataan

Sivun loppuun

efteri [07.07.2004 23:21:14]

#

Elikkä teen ohjelmaa jolla voi puhua tietokoneen kannsa elikkä chat:iä mutta tosin voi puhua vain tietokoneen kanssa ja minä etsisin tylsistyineita ihmisiä elikkä ihmisiä jotaka jaksaavat tehdä tälläist
Etsi "tähän mitä käyttäjä sanoo", "mitä ohjelma vastaa"
ja noit ihan pirusti pitäisi kirjoitta että oisi hyvä äly ohjelmalla olisiko kukaan valmis kirjoittamaan tuollaisia?

(sekavasti selostettu :(..)

rndprogy [07.07.2004 23:38:15]

#

No ensinnäkin ei ole mitään järkeä laittaa kiinteitä lauseita ellei halua tylsistyttää itseään enempään :) . Tee ennemminkin joku sana varasto ja sieltä se sitten valitsee käyttäjän kommenttin sopivat sanat niin että siitä muodostuu järkevä lause. Tai no jos välttämättä niin pitää tehdä kuin tuossa olet kuvannut niin kaveri saa olla tylsistyneen sijasta tosi hauskistunut :D

Metabolix [08.07.2004 00:04:14]

#

Tuollainen kone löytyi Heurekasta tuossa vuonna eräänä. Se oli kylläkin englanniksi, mikä helpottaa huomattavasti, suomessa kun on noita taivutusmuotoja. Väittelin sen kanssa klassisesta musiikista :D
Niin, valmiit lauseet ovat aivan mielettömän huono idea. (sori.) Niillä ei vain saa tuollaisesta oikein mitään, koska kielessä on sanoja vaikka millä mitalla, niitä voi taivuttaa, niistä voi muodostaa vaikka kuinka monta erilaista lausetta ja suomessa lauseen sanajärjestys on lisäksi vapaa.
Sanavarastolla saa systeemistä kattavimman. Sitten tarvitaan AI, joka (1) osaa kieliopin ja (2) osaa soveltaa sitä ymmärtääkseen käyttäjää. Sitten on tietysti yhdyssanat. Ja kirjoitusvihreet.
Itse tein joskus taannoin (Pascalilla) ohjelmaa, joka taivuttaisi substantiivit kaikissa muodoissaan. Aina löytyi lisää sanoja, jotka taipuivat erilailla kuin mikään aikaisempi.
Yhteen megatavuun mahtuisi noin 5000 kertaa sana "kissa" taivutusmuotoineen yksikössä ja monikossa. Tämä tarkoittaa, että kannattaa tehdä ohjelmaan taivutusfunktio jottei niitä muotoja tarvitsisi itse kirjoittaa.
Ohjelma, joka osaa koota lauseen, on helppo tehdä kun vain saa sanat oikein taivutettuina.
Ohjelma, joka osaa koota järkevän lauseen, on vaikea tehdä jos saa vain sanat oikein taivutettuina.
Ohjelma, joka osaa vastata järkevästi kommenttiin jonka sanajärjestys ja -muoto ovat vakioita, on vielä vaikeampi tehdä.
Ohjelma, joka osaa vastata järkevästi kommenttiin jonka sanajärjestys ja -muoto eivät ole vakioita, on hyvin vaikea tehdä.

Itse aion onnistua tässä kaikessa sitten, kun alan tehdä roolipeliä. Eli en vielä vähään aikaan. Kuitenkin, kielestä ja toteutuksesta riippuen (siis ohjelmointikielestä), voin osittain olla tekemässä ohjelmaa, tai ainakin avustaa ongelmissa.

Edit: Et kai aio tehdä CoolBasicilla?!? Se on pelintekoa varten! Jos aiot tehdä tällaisen projektin ihan kunnolla, tee se edes kunnon ohjelmointikielellä!

peki [08.07.2004 00:14:24]

#

Osaan antaa muutaman neuvon, sillä olen itsekkin tutkinut joskus asiaa.
Suosittelisin muodostamaan taulukon, joka sisältää sanojen relaatioita.
Kun ihminen "juttelee" tämän koneen kanssa, niin ihmisen kirjoittamien sanojen suhteet tallentuvat tähän taulukkoon.
Sitten sopivalla funktiolla haetaan vastaus, jonka sanat sopivat parhaiten yhteen kyseisten relaatioiden mukaan.
Tällä tavoin et joudu huolehtimaan taivutuksista, sillä ne tallentuvat taulukkoon(yietokantaan) erillisinä sanoina, joilla on relaatiot muihin sanoihin, joihin taivutukset sopivat.

Metabolix [08.07.2004 00:24:13]

#

Mutta pitäähän ne taivutusmuodot kuitenkin kirjoittaa jonnekin jos niitä ei funktiolla tee? Vai meinaatko että kone oppii uusia sanoja keskustelun myötä?

efteri [08.07.2004 00:28:57]

#

teen kuule ihan vb:llä ja öö en oikeen tajunnut pointtia

peki [08.07.2004 00:29:27]

#

Juuri sitä tarkoitan.
Tästä on http://www.sourceforge.net sivulla monia projekteja.
Ja on kirjoitettu monia oppaita, jotka käsittelevät kyseistä lauseenkoostamisalgoritmia. Mitä tehokkaampi kyseinen algoritmi on sitä paremmin botti puhuu.
Tietysti myös opetuksen määrä, jota botti on saanu ratkaisee.

efteri [08.07.2004 11:34:50]

#

No nyt älysin mitä tarkoititte :D
ja eikun taas jatkamaan projektia :)

Tempfile [08.07.2004 11:45:46]

#

Rupesin kerran tekemään PHP-skriptiä, joka suoltaisi "lorem ipsum" -tyylistä täytetekstiä sivulle, mutta kun minä en täydellisyyttä vähempään tyydy, niin pääsyin kirjoittamaan moniulotteista taulukkoa, jossa jokainen suomen kielen sana nököttäisi omassa lokerossaan, josta se sitten olisi helppo valita lauseeseen. Jostain kumman syystä into ei riittänyt sanojen käsin naputteluun, enkä jaksanut enää taulukon teon jälkeen ruveta sananvääntimen koodaukseen, joten homma kuivui kokoon. Kun tällainen topikki kuitenkin nyt sattui eteen, niin pitäähän tämä nyt julkistaa. Verbien lopuista moduksista puuttuvat vielä eri aika- ja persoonamuodot, mutta ne on helppo täyttää, jos vain jaksaa.

(rumpujen pärinää)
(TADAAA!)

<?php
$sanavarasto = array
	(
	"verbit" => array
		(
		"indikatiivi" => array
			(
			"preesens" => array
				(
				"minä" => array
					(
					"olen"
					),
				"sinä" => array
					(
					"olet"
					),
				"hän" => array
					(
					"on"
					),
				"me" => array
					(
					"olemme"
					),
				"te" => array
					(
					"olette"
					),
				"he" => array
					(
					"ovat"
					),
				"passiivi" => array
					(
					"ollaan"
					)
				),
			"imperfekti" => array
				(

				),
			"perfekti" => array
				(

				),
			"pluskvamperfekti" => array
				(

				)
			),
		"imperatiivi" => array
			(

			),
		"konditionaali" => array
			(

			),
		"potentiaali" => array
			(

			)
		),
	"substantiivit" => array
		(
		"nominatiivi" => array
			(

			),
		"genetiivi" => array
			(

			),
		"essiivi" => array
			(

			),
		"partitiivi" => array
			(

			),
		"translatiivi" => array
			(

			),
		"inessiivi" => array
			(

			),
		"elatiivi" => array
			(

			),
		"illatiivi" => array
			(

			),
		"adessiivi" => array
			(

			),
		"ablatiivi" => array
			(

			),
		"allatiivi" => array
			(

			),
		"abessiivi" => array
			(

			),
		"komitatiivi" => array
			(

			),
		"instruktiivi" => array
			(

			)
		),
	"adjektiivit" => array
		(
		"nominatiivi" => array
			(

			),
		"genetiivi" => array
			(

			),
		"essiivi" => array
			(

			),
		"partitiivi" => array
			(

			),
		"translatiivi" => array
			(

			),
		"inessiivi" => array
			(

			),
		"elatiivi" => array
			(

			),
		"illatiivi" => array
			(

			),
		"adessiivi" => array
			(

			),
		"ablatiivi" => array
			(

			),
		"allatiivi" => array
			(

			),
		"abessiivi" => array
			(

			),
		"komitatiivi" => array
			(

			),
		"instruktiivi" => array
			(

			)
		),
	"pronominit" => array
		(
		"nominatiivi" => array
			(

			),
		"genetiivi" => array
			(

			),
		"essiivi" => array
			(

			),
		"partitiivi" => array
			(

			),
		"translatiivi" => array
			(

			),
		"inessiivi" => array
			(

			),
		"elatiivi" => array
			(

			),
		"illatiivi" => array
			(

			),
		"adessiivi" => array
			(

			),
		"ablatiivi" => array
			(

			),
		"allatiivi" => array
			(

			),
		"abessiivi" => array
			(

			),
		"komitatiivi" => array
			(

			),
		"instruktiivi" => array
			(

			)
		),
	"numeraalit" => array
		(
		"nominatiivi" => array
			(

			),
		"genetiivi" => array
			(

			),
		"essiivi" => array
			(

			),
		"partitiivi" => array
			(

			),
		"translatiivi" => array
			(

			),
		"inessiivi" => array
			(

			),
		"elatiivi" => array
			(

			),
		"illatiivi" => array
			(

			),
		"adessiivi" => array
			(

			),
		"ablatiivi" => array
			(

			),
		"allatiivi" => array
			(

			),
		"abessiivi" => array
			(

			),
		"komitatiivi" => array
			(

			),
		"instruktiivi" => array
			(

			),
		),
	"partikkelit" => array
		(

		)
	);
?>

Metabolix [08.07.2004 11:54:36]

#

peki kirjoitti:

Juuri sitä tarkoitan.

Tällaisessa chattibotissa se varmasti toimiikin, kun sen ei tarvitse tietää mistä se puhuu, eikä olla aina edes järkevä. Minä kun taas olisin tekemässä systeemiä roolipeliin, jolloin botin pitäisi tietää, mitä se haluaa ja pystyä suostuttelemaan muita siihen. perjaatteessa sen pitäisi pystyä keskustelemaan toisen samanlaisen kanssa niin, että NPC:t pystyvät oikeasti kommunikoimaan keskenään.
Siis toisin sanoen tekisin suhteellisen inhimillisen tekoälyn.

peki [08.07.2004 12:34:20]

#

Tästä voidaan aloittaa filosofinen keskustelu:
Perustuuko ihminenkin samaan systeemiin?
Entä, jos ihminenkin vain muodostaa relaatioita.
Tosin tässä ihmisen relaatiotaulukossa on mukana myös toiminnat.
Eli toiminnoilla on relaatiot puheeseen ja muihin asioihin, ja toisinpäin.

Edit: Lisäämällä toimintoja tähän relaatio taulukkoon, saadaan myös roolipeliin älykkäitä botteja, jotka "ymmärtävät", mitä tekevät.
Edit2: eli siis relaatio taulukkoon saapuu syöte(näkö, kuulo, tms. havaintoja) ja sitten relaatiotaulukossa etsitäänn niille sopivimmat relaatiot, ja toimitaan kyseisten relaatioiden mukaan.
Ja relaatiotaulukkoa siis täydennetään matkimalla muita.

Metabolix [08.07.2004 12:45:56]

#

Joo-o, mutta ei minulla ole aikaa jutalla kaikkien tuhannen NPCn kanssa kunnes ne oppivat puhumaan :D
Saas nähdä miten teen tuon jos joskus pääsen siihen asti.

peki [08.07.2004 12:49:12]

#

Metabolix kirjoitti:

Joo-o, mutta ei minulla ole aikaa jutalla kaikkien tuhannen NPCn kanssa kunnes ne oppivat puhumaan :D

Tuo keino sopiikin parhaiten chat bottiin, josta keskustelussa oli alunperin puhe.
Tällaiset neuroverkot ovat aina hirveän mielenkiintoisia.
Jos aikaa ja kärsivällisyyttä on, niin suosittelen tutkimaan asiaa. Siitä hyötyy.

hunajavohveli [08.07.2004 14:32:49]

#

Jooh, minä rupesin kerran tekemään tällaista, ja siitä ei tullut yhtään mitään. Ellet pysty ohjelmoimaan täydellisiä ihmisen vertaisia aivoja (jotka muuten veis tuhottomasti kovalevytilaa), niin et voi saada aikaiseksi kunnollista älyä. Lauseita taas on niin helkutisti, että kaikkien lisääminen (tai edes murto-osan) vie sinulta koko elinikäsi.
Noista pekin mainitsemista relaatioista voisi olla apua. Yritinkin jatkaa tekoälyäni periaattella, jota rupesin itsekin kutsumaan suhteelliseksi ja vertailuksi, mutta vaikeaa sekin on.
Ja sitten kun ajatellaan vielä suomenkielen mutkikkuutta...

efteri [08.07.2004 14:48:30]

#

Hmm Hmm meinasin tehä hyvän teko älyn sille ukolle kuules
haluisiko joku tulla tekemään tätä 1-2 mun lisäksi tarviisi?

makeuu [08.07.2004 22:49:29]

#

Mä voisin keksiä vähän aiheita, kysymyksiä ja vastauksia.. ;)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta