Robustes Parsen (was: Re: C und patch)

Adrian Holzwarth holzw at web.de
Sam Nov 30 19:46:29 CET 2002


* Josef 'Jupp' Schugt <jupp at gmx.de> [021130 18:46]:
> [...]
> Weil die deutsche Sprache dazu geeignet ist, Sachverhalte präzise
> darzustellen, unterstelle ich anderen Menschen unbewusst, dass sie
> außerhalb von literarischen Werken keine ungewöhnlichen Bedeutungen
> unterlegen und bei literarischen Werken die Möglichkeit zur
> Hervorhebung von Worten nutzen...

Na Dich möchte ich erleben, wenn Du an irgendeinem tollen
Mensch-Maschine-Interface 'Kai sieht Bea.' eingibst und das Teil
Dir entgegenspuckt:

Fehler 9323: Ambige Syntax
Fehler 9323: Bitte verwenden Sie eine Passiv-Konstruktion, z.B.:
Fehler 9323: 'Bea wird von Kai gesehen.'

Also ICH käme mir verarscht vor. Ist halt schon so, daß ich - wir - bei
'A sieht B' selten das Objekt voranstellen. Aber es kommt vor, darf
daher also nicht per se ausgeschlossen werden. Problem klar?

[Weltwissen zur Disambiguierung]
> Fragt sich natürlich, ob Maschinen wirklich Wissen über die Welt
> haben sollten. Nüchtern betrachtet ist der Mensch nun die schlimmste
> Fehlentwicklung der Erdgeschichte. Eine rein logisch handelnde
> Maschine könnte daraus die Konsequenzen ziehen.

Nagle mich nicht auf das Brett der Wortwörtlichkeit. 

Für uns sind diese Dinge selbstverständlich, aber wenn Du z.B. einen
zünftigen maschinellen Übersetzer haben willst, der auch komplexe 
deutsche Sätze frißt, wirst Du diese Präsuppositionen ausformulieren
müssen. 

Wenn Du weißt, worum es in dem Text geht, kannst Du Homonyme besser
auflösen. In einem Artikel über Haustüren kommt Dir schließlich bei
"Schloß" mitnichten ein großes Gebäude mit Türmen in den Sinn, bei
"Zylinder" denkst Du - hoffentlich - auch nicht an Kopfbedeckungen.

Wenn Du weißt, daß 'Paul' ein männlicher Vorname ist, wirst Du
"Paul gebährt Petra." zumindest als nicht eindeutigen Satz erkennen. 

Wenn Du weißt, daß "Delirium" nicht neben dem Bett steht und auch kein
Ort in Italien ist und Dir gleichzeitig klar ist, daß es Dinge gibt, 
die man im Dilirium eher nicht tut, wird Dir der statistisch gesehen
unwahrscheinlichere Strukturbaum zu: "Kai pflegt Bea im Delirium.", 
wohingegen "Kai zeugt Bea im Delirium." für Dich ziemlich eindeutig
ist.

Oder wenn Du vom Nebentisch hörst "Ich fliege hin."... ist für Dich
auch klar, was gemeint ist, wenn Du zuvor die Frage "Und, wie kommst
Du nach Bern?" gehört hast. Ein "Was passiert, wenn Du auf die 
Bananenschale da draussen trittst?" gäbe dem Satz natürlich eine
andere Bedeutung, und Du müßtest ihn anders übersetzen.

Das ist Weltwissen. Der ganze implizite Scheiß, für den Du Jahrzehnte
Zeit hattest, ihn Dir anzueignen. Jetzt bring das mal in Struktur.
Klassen, Unterklassen, Ausnahmen. Und wenn Du das alles gemacht hast,
"weiß" die Maschine dann, was 'fressen' ist? Kann sie kreativ genug 
sein, um 'Der Parser frißt den Satz.' nicht mit "Du spinnst wohl, ein
Parser lebt nicht und kann nichts fressen..." zu quittieren?

Mach Dir für die nächsten Jahre keine Sorgen. Es sei denn, Du hast
irgendwo einen Rechner herumliegen, der wirklich viele (viele viele) 
Neuronen simulieren kann...
Ganz abgesehen davon: Wenn die Welt von der Menschheit befreit wird, 
käme das der Welt sehr zugute. Nur: Wird sie dann auch von der Maschine
(nicht/schwer abbaubare Bestandteile) befreit? Die Menschheit wird sich
nicht bewußt selbst ausrotten, wird die Maschine es dann tun? :)

> Mir würde das wahrscheinlich einen Heidenspaß machen >;->
[...]
> Ich vermute, dass es sich bei den Katastrophen um deutsche
> Internetseiten handelt. [...]

Geht am Problem vorbei. Es gibt sie. Klar wär MIR PERSÖNLICH lieber,
alle Browser der Welt würden solche Seiten mit "1093 - malformed
document content" quittieren. Tun sie aber nicht, stattdessen stellen
sie den Kram halt bestmöglich da. Und mit "bestmöglich" wird es halt
vage.

> > Bei meinen Recherchen stieß ich zum Thema "fehlertolerantes Parsen"
> > im Sprachwissenschaftsgebäude auf Zustimmung, im Informatik-Trakt
> > jedoch erwartungsgemäß auf erschrockene Ablehnung.
> 
> Schuss in's Blaue: Die Informatiker haben keinen blassen Schimmer,
> wie man so etwas implementieren soll ...

Darüber habe ich ziemlich meditiert. Und dann verneint. Die Jungs, die
ich da gefragt habe, haben schon was drauf. Und auch Scanner/Parser
geschrieben, die *nicht* in die flex/yacc-Geschichte reingezwängt werden
können. Diese Informatiker können neue Wegen gehen (einer ist ja auch
gegangen, ans Rochester Institute of Technology *grmbl*).

Nur: Hinsichtlich fehlertolerantem Parsen wollen sie es nicht. Es darf
kein Compilat geben, wenn der Code fehlerhaft war. Punkt. Das ist
- so war mein Eindruck - ein informatisches Axiom.

Wenn Dich das Thema wirklich interessiert, stöber doch mal in 
den folgenden ziemlich spannenden Werken. Da gibt es zwar keine
Weltformel, aber... naja. Erklärungen.

Manning/Schütze : "Foundations of statistical natural language processing" 
   MIT Press, 1999

Gazzaniga/Ivry/Mangun "cognitive neuroscience - the biology of the mind"
   Norton & Co. NY/London, 1. Aufl. 1998, (inzwischen 2. Aufl. 2000 ?)

Stöbern, nicht kaufen. Sind nicht ganz billig, die Stücke. Und zumindest
letzteres liest sich auch für nicht-Psychologen/Neurologen/Biologen
wirklich gut. Englisch sollte man allerdings können... ;o)

Grundlagen-Literatur wird auch auf der Liste bekannt sein, zumindest 
das Drachenbuch (Compilerbau 1) dürfte in fachnahen Studiengängen hin 
und wieder im Weg liegen..., vielleicht noch ergänzend Naumann/Langer 
"Parsing" (Teubner Stuttgart, 1994), aber das ist schon sehr CL-lastig
und nur als Gute-Nacht-Lektüre zu empfehlen, wenn man einschlafen will.

Adrian

-- 
Computers are not intelligent.  They only think they are.