Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

noch ein Lebenszeichen ...

1 view
Skip to first unread message

Jens Kallup

unread,
Dec 18, 2022, 1:22:36 AM12/18/22
to
Hallo,

nun haben wir ja die 2-Jahres Pandemie gut überstanden, sind über 40,
und Alle noch am Leben ...
In der düsteren, und kalten Zeit, habe ich ein wenig über Grammatiken
geforscht (weil das ja auch auf meinen Gebiet mit Compilern recht nahe
liegt).

Heraus gekommen ist ein statisches Programm, das durchaus dazu genutzt
werden kann, um dynamische Grammatiken, also sprich Sprache(n) zu
simulieren bzw. auf Steuerkomandos zu reagieren.

Dabei ist es ja fast eine pfleiß-Aufgabe, damit man mit dem Computer
sprechen kann - sofern die geforderten Daten vorliegen.

Aus Platzgründen und zur demonstration, habe ich nur einen kleinen Teil
der Grammatik in dieser Demo einfließen lassen.

Folgendes zum Aufbau:
- *alist* fungiert hier als Duden/Lexikon, bei dem ein Paar aus Nummer
und Word gebildet wird (das hat dann den Vorteil, das Wortwiederhol-
ungen durch eine Nummer und nicht durch Text repräsentiert werden.
Nummern lassen sich dann also schneller durch den Computer verarbeiten
die in einer Datenbank indiziert werden können, nach Relevanz sortiert
und anderweitig verwendet werden können.

- *grammar* ist nach dem Vorbild eines Stack's (Keller) aufgebaut, bei
dem das indizierte Wort zu einen Text geformt werden kann.
Je länger der Text, desto aussagefähiger wird dann die Bedeutung bzw.
umso stärker kann differenziert werden, was denn der Programmierer
oder der Nutzer des Programmes verlangt.
So lässt sich eine kleine Datenbasis schaffen, die dann durch weitere
Verarbeitung: zum Beispiel in einen Chat Bot verknüpft werden kann.

Im Quelltext habe ich schonmal mittels handler-case eine Ausnahme-
behandlung zu realisieren - aber halt auch nur examplarisch.

Für Vorschläge aller Art bin ich sehr dankbar !
Aber nun hier der Code...

Mit freundlichen Weihnachtsgrüßen
Euer Jens

;; ----------------------------------------------------
;; test1.lisp - a simple test.
;;
;; (c) 2022 by Jens Kallup - paule32
;; all rights reserved.
;;
;; Notes (2022-12-18):
;; - you have to install "quicklisp.lisp" on seperate
;; file. Then you have to create the file "quick.ok"
;; in the working directory where this source file(s)
;; exists.
;; ----------------------------------------------------
(format T "Please wait, loading packages ...~%")

#-quicklisp
(let ((quicklisp-init "quicklisp/setup.lisp"))
(when (probe-file quicklisp-init)
(load quicklisp-init)))

(with-open-stream (*standard-output* (make-broadcast-stream))
(ql:quickload :mito)
(ql:quickload '(:qtools :qtcore :qtgui))
)

;; ----------------------------------------------------
;; global scope
;; ----------------------------------------------------
(defvar *grammar*)
(defvar *alist*)

(defvar *i0*)
(defvar *i1*)
(defvar *i2*)

;; ----------------------------------------------------
;; functions:
;; ----------------------------------------------------
(defun test1 () (progn
(setq *alist*
'(
(1 . ich)
(2 . du)

(10 . habe)
(20 . dich)

(30 . gefragt)
))

(setq *grammar*
'((1)
(1 10)
(1 10 20)
(1 10 20 30)))

(setq *i0* (assoc '1 *grammar*))
(setq *i1* (progn
(cdr (assoc '1 *alist* ))
(cdr (assoc '10 *alist* ))
))

(setq *i0* '(1 10 20))

(setq *i1* (loop for x in *i0* collect (car (assoc x *alist* ))))
(setq *i2* (loop for y in *i0* collect (cdr (assoc y *alist* ))))

(print *i1* )
(print *i2* )

(if (eq T (equal '(ich habe dich) *i2*))
(progn
(format T "~%Der Satz ist richtig.")
(exit)
)
(progn
(format T "~%Der Satz ist falsch .")
(exit)
)
)
))

;; ----------------------------------------------------
;; entry, exception handler ...
;; ----------------------------------------------------
(handler-case (progn
(with-open-file (stream "quick.ok"
:direction :input
:if-does-not-exist :error))
(format T "start test 1 ...~%")
(test1))
(error (c) (progn
(format T "QuickLisp missing.~%")
(load "quicklisp")
(exit)
)))

--
Diese E-Mail wurde von Avast-Antivirussoftware auf Viren geprüft.
www.avast.com

Jens Kallup

unread,
Dec 18, 2022, 3:00:23 AM12/18/22
to
Hallo, ich nochmal:

habe gerade den Wikipedia Artikel: Gödelisierung betrachtet.
Man könnte also durchaus für *grammar* eine solche Gödelisierung
basteln, um so Entscheidungen zu treffen, wenn man bestimmte
Wortgruppen zusammen führt.

Zum Beispiel die in Lisp gültige Liste, mittels Primzahlen (P)
bearbeiten:

(ich habe dich)

- ich => P := 2 => 2 ^1 := 2
- habe => P := 3 => 3 ^2 := 9
- dich => P := 5 => 5 ^3 := 125

Die Gödelisierung für (ich habe dich) lautet dann:

2 * 9 * 125 = 2250

Nun hat man anstelle den drei Wörtern (ich habe dich) => 2250.
Was natürlich viel weniger Speicher im Computer belegt, als
alle Wörter in andere Gruppen mitzuschleifen.

Wir erinnern uns: Computer sind Meister im berechnen mit Zahlen.

Und: durch "Primfaktorzerlegung" können wir so prüfen, ob die
Gruppe, die mit 2250 symbolisiert wird stimmt.
Oder anders ausgedrückt, können wir bestimmen, ob 2250 zu
einen gegebenen Wort-Lexikon eindeutig zuordbar ist.

Testen wir das mal mit der Primzahl-Faktorisierung:

2250 = 2250 div 2
= 1125 div 3
= 375 div 3
= 125 div 5
= 25 div 5
= 5 div 5
= 1

Ergebnis ist 1 => ist eindeutig zuordbar.
Somit können wir dann das Lisp Listen-Paar wie folgt indizieren:

(2250 . (ich habe dich))

Ist doch der Brüller - oder : )

Gruß, Jens

Jens Kallup

unread,
Dec 18, 2022, 4:57:21 AM12/18/22
to
Hallo, ich nochmal zum zweiten:

natürlich kann man auch hergehen, und andere Gruppen bilden:

(gestern gesehen)
- gestern => P = 7 => 7 ^1 := 7
- gesehen => P = 11 => 11 ^2 := 121 => 7 * 121 = 847

(gestern angerufen)
- gestern => P = 7 => 7 ^1 := 7
- angerufen => P = 13 => 13 ^2 := 169 => 7 * 169 = 1183

dann wird daraus =>

( 2250 . (ich habe dich ) ) ;; Gruppe 1
( 847 . (gestern gesehen ) ) ;; Gruppe 2
( 1183 . (gestern angerufen) ) ;; Gruppe 3

dann wird daraus =>

( 1 . 2250 )
( 2 . 847 )
( 3 . 1183 )

mann kann das dann natürlich weiter verschachteln:

- als => P = 17 ^1 := 17
- du => O = 19 ^2 := 361 => 17 * 361 = 6137

( 1 . (847 . 6137) )

Mit zunehmender Wortdichte wird das natürlich auch immer
langsamer auf Computern mit geringem Speicher.
Aber man könnte dann diese Gruppen in Zeichensymbol runter brechen.
Zum Beispiel:

- Gruppe 1 := A1
- Gruppe 2 := A2
- Gruppe 3 := A3

- Unter-Gruppe 1 := B1
- Unter-Gruppe 2 := B2

- Unter-Unter-Gruppe 1 := C1

(A1 . (B1 . C1))

die Möglichkeiten sind also vielfältig.

Auch hier gilt natürlich, je verschachtelter man das macht, also je
einfacher, desto länger braucht es an Rechenzeit.
Ist klar?

Wenn ich von Hamburg nach Regensburg mit den Rad fahren will, wird
mir das evtl. nichts kosten an Benzinpreis, aber ich bin durch diese
Einsparung auch länger unterwegs.

Man sollte also immer ein Mittelmaß finden.

Jens Kallup

unread,
Dec 18, 2022, 12:19:27 PM12/18/22
to
Und nochmals:

ich habe das jetzt ein wenig zusammen gewürfelt auf meinen
github.com Account publiziert:

https://github.com/paule32/Kurt_Goedel_Experiment

mal sehen, was daraus wird - ist ja auch nur ein Experiment.

Gruß, Jens

Joachim Pimiskern

unread,
Dec 27, 2022, 8:31:57 AM12/27/22
to
Hi,

Am 18.12.2022 um 07:22 schrieb Jens Kallup:
> Heraus gekommen ist ein statisches Programm,
> das durchaus dazu genutzt werden kann, um dynamische Grammatiken,
> also sprich Sprache(n) zu simulieren bzw. auf Steuerkomandos
> zu reagieren.

wenn Du mit Grammatiken experimentieren willst,
ist der Cocke-Younger-Kasami-Algorithmus
ein guter Einstieg.

https://de.wikipedia.org/wiki/Cocke-Younger-Kasami-Algorithmus

Außerdem ist es einfacher, mit englischer Sprache
zu arbeiten, weil es da weniger Beugungen gibt.

Grüße,
Joachim

Hermann Riemann

unread,
Dec 27, 2022, 9:47:52 AM12/27/22
to
Am 27.12.22 um 14:31 schrieb Joachim Pimiskern:
Wäre Esperanto nicht noch einfacher?

Joachim Pimiskern

unread,
Dec 29, 2022, 7:44:33 AM12/29/22
to
Am 27.12.2022 um 15:47 schrieb Hermann Riemann:
> Am 27.12.22 um 14:31 schrieb Joachim Pimiskern:
>> Außerdem ist es einfacher, mit englischer Sprache
>> zu arbeiten, weil es da weniger Beugungen gibt.
>
> Wäre Esperanto nicht noch einfacher?

Ich kenne Esperanto nicht, aber man kommt
vermutlich auch im Deutschen recht weit, wenn
man auf Beugungen weitgehend verzichtet und
stattdessen mehr Hilfswörter verwendet.
Z.B. statt "des Hauses" schreiben: "von dem Haus".

Menschen können sich auch radebrechend verständigen.
Ein KI-System muß radebrechen können. Dann kommt
man schon recht weit. Z.B. könnte man sagen:

Du mir kaufen 20 Brezeln dann gehen zum
Bahnhof und bringen Spektrum der Wissenschaft.

Mit einer Grammatik kommt man da nicht weit.
Stattdessen muß man anders vorgehen. Gut, eine
Grammatik könnte dazu dienen, Satzbestandteile
herauszuparsen. 20 Brezeln ist ein Nomen
im Plural, das ergibt eine Nominalphrase.
Aber "gehen zum Bahnhof" sollte man nicht
per Grammatik verstehen wollen. Dazu bedarf
es allgemeinerer Algorithmen.

Grüße,
Joachim



Jens Kallup

unread,
Dec 29, 2022, 11:15:34 AM12/29/22
to
nun, ich habe auf ARTE einen Beitrag gesehen, bei der eine
Junge Frau damit begonnen hat, eine APP zu programmieren,
die eine Datenbank besaß, und es wurden immer nur Sätze in
die Datenbank eingetragen.

Anhand der Häufigkeit konnte man da wohl stochistische
Auswertungen machen.

Das ging dann soweit, das daraus ein kleiner Chat wurde,
bei der mittels Bot ein "maschine-mensch" Dialog erfolgte.

Ich weiß nicht mehr genau, aber gab es da nicht auch das eine
Programm Babbel (jetzt nicht der Übersetzerdienst).
Babbel haste angeworfen, und dann hat das mit einem gesprochen.
So wie die Werbung für Kinder auf TOGO - Furby hat Hunger und
so Späße.

Naja. Jedenfalls hat sich das soweit entwickelt, das da jetzt
nen großer Hype im japanischen Bereich ist, und Hologramme das
Leben der Menschen bestimmt.

Die hatten dann auch ein Beispiel gebracht, bei der sich ein
junger japanischer Mann in seine Traumwelt verliebt hat, und
kaum noch vor die Tür geht.

Wenn ich daran denke, das man nur Stichwörter in einem im
Internet vorgelegten Formular Wörter eingibt, und die KI dann
Bilder ausdruckt.
Also das schon echt krass psycho....

Ob Nummer 5 noch lebt ?
oder hat skynet übernommen ?

haha, naja, uns wird noch das Lachen vergehen ...
Wenn die KI feststellt, das sie den Menschen nicht mehr braucht,
tjor, dann ist aus die Maus ...

Jens

Hermann Riemann

unread,
Dec 29, 2022, 11:42:51 AM12/29/22
to
Am 29.12.22 um 13:44 schrieb Joachim Pimiskern:
> Am 27.12.2022 um 15:47 schrieb Hermann Riemann:
> > Am 27.12.22 um 14:31 schrieb Joachim Pimiskern:
> >> Außerdem ist es einfacher, mit englischer Sprache
> >> zu arbeiten, weil es da weniger Beugungen gibt.
> >
> > Wäre Esperanto nicht noch einfacher?
>
> Ich kenne Esperanto nicht, aber man kommt
> vermutlich auch im Deutschen recht weit, wenn
> man auf Beugungen weitgehend verzichtet und
> stattdessen mehr Hilfswörter verwendet.
> Z.B. statt "des Hauses" schreiben: "von dem Haus".

Warum sollten Personen darauf verzichten?
computer sind doch schnell.

Sie könnten Varianten und Übersetzungen von Varianten
testen.

>
> Menschen können sich auch radebrechend verständigen.
> Ein KI-System muß radebrechen können. Dann kommt
> man schon recht weit. Z.B. könnte man sagen:
>
> Du mir kaufen 20 Brezeln dann gehen zum
> Bahnhof und bringen Spektrum der Wissenschaft.

Du mir kaufen 20 Brezeln

Variante Du kaufen mir 20 Brezeln

Substitution anhand Vergleich

Du käufst mir 20 Brezeln.

syntaktische Zerlegung ( Python Schreibweise )

[ käufst [ Brezel [Anzahl, 20] ] [du,mir ] ]

Dann ist ein Ablauf Operator mit Argumente

..


> Mit einer Grammatik kommt man da nicht weit.

Wenn die keine Suche mit Variante zulässt,
eventuell noch mit Erfolgs Wahrscheinlichkeiten..

( Evolution statt Fehlerabbruch )

> Stattdessen muß man anders vorgehen. Gut, eine
> Grammatik könnte dazu dienen, Satzbestandteile
> herauszuparsen. 20 Brezeln ist ein Nomen
> im Plural, das ergibt eine Nominalphrase.
> Aber "gehen zum Bahnhof" sollte man nicht
> per Grammatik verstehen wollen. Dazu bedarf
> es allgemeinerer Algorithmen.

"gehen zum Bahnhof"

bekannte Variante: "geht zum Bahnhof"
bekannte Variante: "gehst zum Bahnhof"
bekannte Variante: "gehe zum Bahnhof"
Dann ist die Frage wer.

Da Du mir kaufen ist die Wahrscheinlichkeit er geht
höher als ich gehe.
Und er war "Du"

[ gehen [ Du [ Ziel, Bahnhof ]]]

Da spielt wer aus Gedächtnis eine Rolle.
( An Pawlows Hund denkend )

..


Du gehst zum Bahnhof ist eine machbare Erkenntntis
Du gehst zum Mond nicht, obwohl es verstanden würde,
wenn der Ablauf konstruierbar wäre.

Zur Akzeptanz des verstandenen ist
ist eine Bewertung, wie weit richtig
auch ein Punkt.

--
http://www.hermann-riemann.de

Joachim Pimiskern

unread,
Dec 29, 2022, 2:32:25 PM12/29/22
to
Am 29.12.2022 um 17:15 schrieb Jens Kallup:
> Das ging dann soweit, das daraus ein kleiner Chat wurde,
> bei der mittels Bot ein "maschine-mensch" Dialog erfolgte.

Das aktuell beste Chatprogramm ist wohl ChatGPT.
Man kann einen Account anlegen, um dann online
zu chatten, allerdings muß man seine Telefonnummer
angeben. ChatGPT schreibt sogar Software auf
Kommando. Ich habe es mit einem
Sudoku-Programm probiert, und was herauskam,
sah plausibel aus. Wie das funktioniert, weiß
ich nicht, vielleicht hat ChatGPT einfach nur
abgeschrieben.

Ich habe ChatGPT die Aufgabe gestellt: wenn
in ein leeres Haus zwei Personen hineingehen
und eine wieder herausgeht, wieviel Personen
sind dann noch im Haus. Und das Programm hat
richtig geantwortet, eine. Es wäre faszinierend,
wenn ChatGPT mentale Modelle erstellen und
diese manipulieren könnte, um anschließend
Schlußfolgerungen und Vorhersagen zu machen.
Bisher wußte ich nur von Shrdlu, daß ein
Programm so etwas kann.

Grüße,
Joachim

Joachim Pimiskern

unread,
Dec 29, 2022, 3:04:06 PM12/29/22
to
Am 29.12.2022 um 17:42 schrieb Hermann Riemann:
> Du gehst zum Bahnhof ist eine machbare Erkenntntis
> Du gehst zum Mond nicht, obwohl es verstanden würde,
> wenn der Ablauf konstruierbar wäre.

Vielleicht kennst Du ja dies von Noam Chomsky:
Colorless green ideas sleep furiously.
Der Satz ist grammatisch richtig, ergibt aber
in der Alltagswelt keinen Sinn. Um die
Plausibilität eines Satzes einzuschätzen,
benötigt man Weltwissen. In diesem Falle kann
man aber das benötigte Wissen vermutlich
recht formal gestalten. In Lisp, XML oder so.
(typische-eigenschaft idee (gut schlecht originell ...))
(typisches-adverb schlafen (gut schlecht tief flach traumlos ...))

Grüße,
Joachim


Hermann Riemann

unread,
Dec 30, 2022, 4:47:58 AM12/30/22
to
Am 29.12.22 um 21:03 schrieb Joachim Pimiskern:
> Am 29.12.2022 um 17:42 schrieb Hermann Riemann:
> > Du gehst zum Bahnhof ist eine machbare Erkenntntis
> > Du gehst zum Mond nicht, obwohl es verstanden würde,
> > wenn der Ablauf konstruierbar wäre.
>
> Vielleicht kennst Du ja dies von Noam Chomsky:

Nein.

> Colorless green ideas sleep furiously.

> Der Satz ist grammatisch richtig, ergibt aber
> in der Alltagswelt keinen Sinn.

Wenn das mit einem compiler vergleiche,

Der Satz wurde korrekt in Maschinencode übersetzt
Der Maschienencode ist zufällig.

> Um die Plausibilität eines Satzes einzuschätzen,
> benötigt man Weltwissen.

Oder eher Tests

> In diesem Falle kann
> man aber das benötigte Wissen vermutlich
> recht formal gestalten. In Lisp, XML oder so.
> (typische-eigenschaft idee (gut schlecht originell ...))
> (typisches-adverb schlafen (gut schlecht tief flach traumlos ...))

Ein Problem ist bei Mathematik und üblichen Programmiersprachen
üblichen Zwang zum Ja-Nein bzw richtig falsch arbeiten,
auf die Realität zu übertragen.

Die Lücken sind bei Abschätzungen.
Fuzzy Logik ist nur ein Spezialfall.

Bei unsicheren Wissen könnte man Wahrscheinlichkeiten zuordnen,
die mit 0.5 beginnen und je nach Ergebniss modifiziert werden. (Lernen)

Als Entscheidungsweg Schwellwert Logik:
Jeweils die Schwelle so hoch setzen dass nur ein Fall durchkommt,
und dann durch Hemmung des Falles Schwellwert senken,
um alternativ Fälle zu erreichen.

In der Realität sind Messungen/Beobachtungen immer ungenau.
Und wenn dann noch Modifikationen bei der Nachrichtenweitergabe
hinzukommen ..

Hermann
fragend, wie wahrscheinlich sind etliche Hyopthesen richtig?

--
http://www.hermann-riemann.de

Hermann Riemann

unread,
Dec 30, 2022, 5:49:06 AM12/30/22
to
Am 29.12.22 um 18:11 schrieb Stefan Ram:
> Hermann Riemann <nosp...@hermann-riemann.de> writes:
>> Zur Akzeptanz des verstandenen ist
>> ist eine Bewertung, wie weit richtig
>> auch ein Punkt.
>
> In der algorithmischen KI wird für den Computer alles
> von einem Menschen programmiert.

Alles nicht. Programme, die andere Programme erzeugen,
sind u.a. sehr alt ( selbstmodifizierende Programme, Macros..,
in lisp mit (quote Schlüsselwort) Programme basteln ..
( letzteres mit eval ausführen, die ihrerseits wieder
Programme basteln ..)

Wenn der "allwissende" Mensch wie bei einem Kind alles vorkaut ..

Hermann
der nicht alle Fälle ausprogrammieren kann.

--
http://www.hermann-riemann.de

Jens Kallup

unread,
Dec 30, 2022, 9:34:32 AM12/30/22
to
Am 30.12.2022 um 10:47 schrieb Hermann Riemann:

> Hermann
>    fragend, wie wahrscheinlich sind etliche Hyopthesen richtig?

dazu hat doch der Kurt in ferner Zeit nach hinten was ausgearbeitet.

Jens Kallup

unread,
Jan 2, 2023, 10:35:35 AM1/2/23
to
Hallo,

hier habe ich einen Text gefunden, der auch auf Wikipedia zu finden ist:

Eingeengtes Denken oder Gedankenarmut
------------------------------------------------------------------
Hier sind der inhaltliche Denkumfang und die geistige Flexibilität
eingeschränkt. Das eingeengte Denken ist fixiert auf einige wenige
Bewusstseinsinhalte und die Gedanken kreisen um nur wenige Themen.
Es fehlt ein Überblick und verschiedene Gesichtspunkte können nicht
einbezogen werden. Der Wortschatz ist verringert und teilweise können
auch Gedächtnisinhalte verlorengegangen sein. Trotz Angeboten kann der
Betroffene das Thema nicht oder nur schwer wechseln. Patienten können
das als ein Nicht-Loskommen von bestimmten Gedanken wahrnehmen.

Bei Gedankenarmut oder Gedankenleere enthält das Denken zu wenige
Inhalte und ist verbindungsarm, ideenlos und ohne Einfälle. Dies kann
sowohl durch den Betroffenen selbst als auch durch einen Untersucher
beobachtet werden. Vorkommen ist möglich bei bestimmten Formen der
Schizophrenie (z. B. Schizophrenia simplex) oder schizoider
Persönlichkeitsstörung, aber auch bei Demenz, schwerer depressiver
Denkhemmung und Zwangsstörungen.
------------------------------------------------------------------

Mein eigentlicher Gedanke (Jens):
- wenn die KI dann mal den Menschen als Nebensache "erkennt", aber
immer noch an "Gedankenarmut" leidet, weil ja ALLES nur vorgekautes
Zeug ist, wird dann die KI ihre Selbstzerstörung einleiten, weil
Sie erkennt, das ohne "menschliches" Geschick, die KI-Bauteile nicht
mehr repariert werden können ?

Gruß, Jens

Jens Kallup

unread,
Jan 10, 2023, 11:06:28 AM1/10/23
to
Hallo,

dieses Chat Programm, wer überprüft eigentlich die
vorhandenen Datensätze ?
Kann ja sein, das dort in chinesisch oder einer anderen
Symbolsprache Datensätze gesammelt sind, die nicht gerade
der Menschheit gut tun.

Zum Beispiel: (C = Chat, M = Mensch)

C: Was Du essen gerne ?
M: Ich esse gerne Menschen.

Da ja bei einer KI alles auf die Menge der Daten ankommt,
um Bewertungen abzugeben - was würde denn aus diesen einen
Datensatz werden, wenn 100 andere Leute kommen, und gefragt
werden, was sie gerne essen...

Dann würde doch die KI in den Sinn bekommen, wo sich die
meisten Menschen aufhalten:

M: viele Menschen können aus den Park gegessen werden.

ist doch machbar - oder ?
0 new messages