PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [KI] Spracherkennung



lizer
02.04.2003, 12:15
Wieder was zur KI, aber etwas anders, als die anderen Topics.
Ich beschäftige mich z.Z. mit KIs, die Sprache erkennen. Damit meine ich, dass ein Satz, denn man eingibt entschlüsselt wird (also zuerst das Wörternbuch nach den Wörtern durchsuchen und dabei gleich noch die Wortarten bestimmen, daraus dann den Syntax erkennen usw.) Zum Schluss soll der Satz verstanden werden, also der PC soll den Inhalt verstehen und evtl. in eine eigene, einfachere Sprache übersetzen, die Aussage als Tatsache abspeichern und die Information auf Wunsch wiedergeben können.
Ich habe mal angefangen, sowas zu coden, hänge aber schon bei der feststellung des Syntax fest. Inzwischen habe ich drei Datenbanken, nämlich 1. das Wörterbuch, 2. eine Liste aller bekannten Syntaxe (schreib man das so?) (wenn ein Satzbau unbekannt ist, fragt er nach, ob er korrekt ist und speichert ihn dann ab) und 3. eine Datanbank für die gespeicherten Informationen.
Die 1. Datenbank unterstützt bis jetzt alle Hauptwortarten sowie Adverbiale, jedoch nur Verben im Präsens (das war mir dann zuviel).
Jetzt entwickle ich eine Sprache, die nur aus Bytes besteht, in die die Aussage übersetzt werden sollen. Da diese Sprache sehr verinfacht ist, ist sie auch sehr eingeschränkt. Ich versuche das mal zu erklären.
Es gibt verschiedene Verbgruppen, z.B. eine, die alle Verben vereint, die etwas mit Schöpfung bzw. Erschaffung zu tun haben. Sie hat dann z.B. die Nummer 0x00 und beinhaltet Verben wie bauen, produzieren, erschaffen, kreiren, kombinieren,.. aber auch abstraktere Sachen wie erfinden und ausdenken.
Dann gibt es noch Gruppen wie "bewegen" (laufen, rennen, schieben, tragen, bringen, holen, transportieren),...
Substantive werden dann durch drei feste Parameter umschrieben, nämlich Größe, Material, Form (und evtl. noch Farbe). Außerdem habe Substantive wiederum einen Typ, also z.B. "Ort" (könnte ein Haus sein, eine Stadt, usw) oder Person, ... Weil das noch sehr ungenau ist, werden Substantive weiterhin durch Funktionen beschrieben, also wenn man z.B. ein Substantiv vom Typ Ort hat, mit der Funktion 0x00 (erschaffen), könnte das z.B. eine Fabrik sein. Ich hoffe, ihr versteht was ich meine.

Ich poste das ganze, weil ich in einer "Denk-Blockade" stecke und nicht mehr weiter weiß. Wenn irgendjemand 'ne gute Idee hat oder bei dem Projekt mitmachen will (ich hab es aus Mangel an Ideen "Cabal" getauft), dann postet bitte.

Urrgh, jetzt hab ich wieder so viel geschrieben... Bis denn,

Lizer.

antimac
02.04.2003, 21:15
Hi, da kann ich dir nicht viel weiterhelfen, aber du könntest mal einen Blick auf MegaHAL (http://megahal.sourceforge.net/) werfen.

Tschüss,
Antimac.

DrNiels
22.04.2003, 06:03
Die idee der "Byte-Sprache" ist interresant.

Das Du jedoch den satzbau in einer liste speichern willst kommt mir unmöglich vor.

Auf diese art wird es wohl unmöglich sein die beziehungen der wörter zu "parsen". Ich denke du solltest die "Gramatik" fest
einkodieren, am betsen erstmal in ner EBNF aufschreiben. Damit wird das zwar nicht lernfähig, aber "machbar".


Nochmal zur "Byte-Sprache" es wäre ein sehr interresantes projeckt eine sprache zu entwickeln die so wenig wie möglich
"worte" enthält und trotzdem in der lage ist alle Texte und Gespräche auszudrücken.

Beispiel: "Ich gehe zur Schule"

"Ich Bewege Schule" wäre etwas falsch, es müsste zu "bewegen" (und alle verben) ein "Flag" geben was angiebt ab
es sich auf das subject oder object bezieht.

Mich fasziniert die Idee eine Sprache zu kreiren dessen Redundanz gegen null geht, also nichts ausdrückt was im
kontext klaar ist und keine füllwörter besitzt usw.

Diese sprache müsste z.B. die eigenschaft besitzen das jede aussage nur auf eine art und weise auszudrücken ist!

Wenn man dann noch laute für die sprache entwickelt die
ebenfalls optimiert sind könnte man fast stumm reden.

Astfgl
22.04.2003, 12:46
@DrNiels:
Solche Minimalsprachen gibt es tatsächlich. Kommen Menschen verschiedener Sprachen zusammen, entwickelt sich ein Sprachenwirrwarr, mit dem diese kommunizieren, ein sogenanntes Pidgin. Dieses hat eine unregelmäßige fast wilkürliche Grammatik. Die Nachfahren der Menschen, die dieses Pidgin sprechen übernehmen dieses als Muttersprache (wenn sie nur Pidgin und sonst nichts anderem ausgesetzt sind) ... aber das bemerkenswerte ist, was die Kinder mit dem unregelmäßigen Pidgin ihrer Eltern anstellen ... sie entwickeln eine regelmäßige Minimalgrammatik, die eindeutig festgelegt ist. Diese Sprachen werden dann Kreolsprachen genannt.
Sie verfügen über Substantive und Verben, dagegen aber kaum über Präpositionen und Adverbien. Flektiert wird nicht, aber Zeit, Modalität und Aspekt werden ausgedrückt - und zwar mittels Partikel. (Die Eltern werden übrigens Zeit ihres Lebens Pidgin reden und nie die Kreolsprache der Kinder übernehmen - der Spracherwerb hat seine sensible Phase und die ist im Erwachsenenalter schlicht abgelaufen)
Das absolute grammatikalische Minimum entwickeln aber gehörlose Kinder - Subjekte, Objekte, Prädikate, Ende. Mehr kann man auch schlecht mit Händen ausdrücken *g*
zB Mama - Tisch - Essen -> "Mama ißt am Tisch" ... Das macht zunächst einen situationsabhängigen und nicht eindeutigen Eindruck - stimmt aber nicht. Die Bedeutung hängt von der Reihenfolge ab.
Hm, mir fällt grad auf, das hat alles herzlich wenig mit dem Thread hier zu tun *g* Tschuldigung. Zum Thema :)

@Lizer:
Damit der Computer einen Satz verstehen kann, könntest du die generative Transformationsgrammatik verwenden. Die ist nicht perfekt, eine umfassende Beschreibung einer menschlichen Sprache wäre, sehr, sehr umfangreich, aber imho ein sehr guter Ansatz.
Die Theorie ist folgende:
Ein Satz hat grundsätzlich eine Tiefenstruktur und eine Oberflächenstruktur. Die Oberflächenstruktur bildet quasi "das Aussehen" des Satzes und die Tiefenstruktur den Sinn. Die Oberflächenstruktur entsteht, in dem eine endliche Zahl von Transformationsregeln auf die Tiefenstruktur angewendet werden. Sätze mit der selben Tiefenstruktur haben die selbe Aussage, den selben Inhalt, können aber eine grundsätzlich verschiedene Oberflächenstruktur haben, z.B.:
"Ich schaue den Osterhasen an" und "Der Osterhase wird von mir angeschaut" ... als einfache Beispiele. Die Oberflächenstruktur ist verschieden, die Tiefenstruktur aber immer gleich z.B.: "Ich anschauen Osterhase".
Was du jetzt wissen musst, sind die Transformationsregeln, die aus der Tiefenstruktur die Oberflächenstrukturen bilden. Diese Regeln rückwärts angewandt und voila :)
Und genau die Aufstellung dieser Regeln ist der Knackpunkt - davon gibts nämlich ziemlich viele *g*
Was dir auf jeden Fall weiterhilft, ist die Analyse der Oberflächenstruktur. Du zerlegst die Oberflächenstruktur in die Bestandteile und kannst daraus dann die Tiefenstruktur ablesen.
Ich mach das mal am Beispielsatz "Der Spieler traf den Ball" vor. Was ich jetzt formal mache, sagt dir im Prinzip eigentlich schon dein normales Sprachgefühl auch ;). Nämlich, dass bestimmte Satzteile enger zusammen gehören als andere: (Der Spieler) (traf (den Ball)). (der Spieler) ist eine sog. Nominalphrase und besteht aus einem Artikel und einem Nomen. (traf den Ball) ist eine Verbalphrase und besteht aus einem Verb und einer Nominalphrase.


Satz
|
----------------------------
| |
Nominalphrase Verbalphrase
| |
------------ ----------------
| | | |
Artikel Nomen Verb Nominalphrase
| | | |
| | | ------------
| | | | |
| | | Artikel Nomen
| | | | |
der Spieler traf den Ball

Die Grammatik des Satzes "der Spieler traf den Ball" läßt sich jetzt mit wenigen Ersetzungsregeln vollständig und eindeutig beschreiben:
Satz (S) -> Nominalphrase (NP) + Verbalphrase (VP)
NP -> Artikel (Art) + Nomen (N)
VP -> Verb (V) + NP
Eine Regel könnte zB lauten "Die Verbalphrase besteht aus einem Verb und einer Nominalphrase" usw. Dann müssen natürlich noch Regeln für die verschiedenen Fälle her etc - aber hey, keiner hat gesagt, es sei nicht mühselig *g*
Allerdings kann ich hier schlecht ins Detail gehen ... zumal ich selber bisher nur an der theoretischen Oberfläche gekratzt habe :)
Deswegen möchte ich dir einfach folgende Suchbegriffe für Google mit auf den Weg geben: Computerlinguistik bzw. Computational Linguistics. Bei der Uni von Zürich gibts interessantes, nämlich Online-Demos:
http://www.ifi.unizh.ch/CL/OnlineDemos.html
Der Online Parser erzeugt Sachen, die dir jetzt bekannter vorkommen sollten ;)


Eingabe: Ich esse den Osterhasen.

[Ich,esse,den,Osterhasen,<S>]
"Ich" xxx
"esse" xx
"den" xxxxxx
"Osterhasen" xxxxxxxxxxxxxx
"<S>" xxx
Satz
|
+-----------------------------------+
N2 V N2 C_B
| | | |
| | +---------+ |
PRON | ART N1 |
| | | | |
| | | | |
| | | S |
| | | | |
| | | | |
Ich esse den Osterhasen <S>

Satz(typ:V2nd)
--- N2(typ:PERS..person:1..numerus:SG..kasus:NOM..genu s:_34101)
------ PRON(lemma:ich..typ:PERS..person:1..numerus:SG..ka sus:NOM..gross:(+)..genus:_34101)
--------- Ich
--- V(lemma:ess~en..tempus:PRAES..person:1..numerus:SG ..modus:IND..vform:fin..subcat:A000)
------ esse
--- N2(typ:DEF..person:3..numerus:SG..kasus:AKK..genus :MASK)
------ ART(lemma:der..typ:DEF..numerus:SG..kasus:AKK..gen us:MASK..decl:SCHW)
--------- den
------ N1(lemma:Oster#hase..numerus:SG..kasus:AKK..genus: MASK..decl:SCHW)
--------- S(lemma:Oster#hase..numerus:SG..kasus:AKK..genus:M ASK..decl:SCHW)
------------ Osterhasen
--- C_B(lemma:<S>)
------ <S>

Naja, hey, wenn du Computerlinguistik in München studieren solltest, könnte es sein, dass wir uns treffen :D

lizer
22.04.2003, 13:32
Urrgh, das klingt alles viel komplizierter, als ich's mir vorgestellt hatte ;) Erstmal danke für die Beiträge! Da ihr (Sarfuan & Dr. Niels) soviel dazu geschrieben habt, geh ich mal davon aus, dass euch die Sache interessiert ;) Habt ihr vielleicht Lust, euch an dem Projekt zu beteiligen? Für den Anfang könnte man gemeinsam (im Chat, per Mail, ...) Ideen austauschen, um vielleicht bei der Entwicklung der Sprache weiter zu kommen. Ich habe inzwischen das Gefühl, mit dem Anfang der Entwicklung des Programms etwas zu schnell gewesen zu sein. Ich melde mich mal bei Mail/PN bei euch beiden, mal sehen, vielleicht wird ja was draus. Bis denn,

Lizer.

the_postman
22.04.2003, 18:33
Vielleicht koennte das (http://www.rhetorical.com/cgi-bin/demo.cgi) ganz hilfreich fuer dich sein.
Nette Spielerei. ;)

Astfgl
23.04.2003, 11:27
Das ist ja ganz nett ... allerdings glaube ich nicht, dass das Lizer in irgendeiner Form weiterbringt ... :p

the_postman
23.04.2003, 11:37
> Vielleicht koennte das ganz hilfreich fuer dich sein.
> Nette Spielerei. ;)
:p

lizer
23.04.2003, 12:37
*lol* Der Wille zählt! Ist ja wirklich 'ne ganz nette Spielerei ;)

ese_keks
05.11.2003, 23:56
schau dir mal nen simples voice kontroll programm an ;) deine lernfähigkeit kriegst du durch nen gekoppeltes autorensystem, und nen analyse proggi wobei dein analyse proggi das web durchsucht und neue ketten von buchstaben sucht (da liegt nämlich deine lösung, worte sind buchstabn ketten ;) ) diese neuen funde gibt es an dei autorensystem weiter welches sie in die db des übersetzungs proggis lädt (beispiel s e x = sex die buchstaben s e und x musst du ihm beibringen) die kette s e x wird in diesem fall halt mit den bildern assozieiert die dein system dazu findet, wenn du gelangweilt bist häng ne webcam dran und such dir nen programm das bilder analysieren kann zum beispiel ne tasse und so... sorry etzwas schreibfaul :) wenn du fragen hast pm :)

ese_keks
06.11.2003, 11:54
He Lizer und co ich hab da ne idee, also erstmal hab ich nen Konzept fertig um das Ding zu schreiben, wer will schreit einfach ^^ Rechenpower wird halt gebraucht, aber wozu gibts Grid Computing, naja, was würdet ihr davon halten nen grid verbund aufzumachen, nen expertensystem in die Richtung zu schreiben welches auch Databases checken kann und ähnliches und dann Rechenzeit zu verkaufen? an Firmen eben, oder so :) weiß nicht, wer auch immer bock hat oder so PM :D

lizer
07.11.2003, 13:54
Mit Rechenpower is bei mir nich so viel los. Ich hab auch selbst gar kein Internet, nur hier bei meinem Pappi :D , und da auch nur ISDN ohne Flatrate. Ansonsten bin ich auf jeden Fall interessiert. Da dieser Beitrag 'ne ganze halbe Stunde neuer ist, als dein Mail, denke ich mal dir ist was neues eingefallen (?)

ese_keks
07.11.2003, 15:32
ne, ich dachte nur, ich poste hier auchnochmal, vielleicht findet sich ja wer der intererssiert ist mitzuwirken :D

Blaster
03.06.2004, 14:06
Hallo Leute,

also ich entwickele jetzt seit etwa vier Jahren mit unternehmerischen Zielsetzungen Cutting Edge Lösungen im IVR (interakctive voice response) Bereich auch mit Agententechnologien, Mddleware- und Webintegration, VoIP, TTS, Command & Control etc. - und dabei habe ich natürlich auch mit semantischren Netzen und K.I. zu tunen.

Zuerst muss ich euch mal stecken, dass eure Ausgangsbasis nicht mehr ganz 'state of art' ist - Ein paar Links:

http://www.w3.org/Voice/
http://www.w3.org/2001/sw/
http://www.w3.org/2001/sw/WebOnt/
http://www.w3.org/RDF/
http://www.dfki.de/relaunch/competence/index.de.html

Free Tools:
http://www.microsoft.com/speech/
http://www.microsoft.com/downloads/details.aspx?FamilyId=5DAAE9C4-188C-4547-A9D6-1671132A39A1&displaylang=en

...

Ihr könnt eure Kontaktdaten auch gerne an ck-kontakt@web.de mailen, zwecks Erfahrungsaustausch

ich hab hier mal eigenmaechtig was rauskommentiert. wir sind kein kommerzielles forum. bitte keine verkaufsabsichten, oder werbung hier posten. erfahrungsaustausch ist okay, aber module verkaufen, kannst du bitte woanders. danke. gruss, af

Ich plane auch eine 'Highend Community' für solche Themen zu gründen, wenn ich mal ein bisschen Luft habe ...

cu

Blaster