Satsbausvergleich durch PERL

hi, wie kann man 2 satzbaustrukturen durch „PERL“ miteinander vergleichen?

Die Frage ist etwas unpräzise. Was genau soll verglichen werden und auf welcher Basis?
z.B. durch Wortähnlichkeit oder durch Klassifikation von Satzbestandteilen wie Subjekt, Objekt, Verb?

Das kann eine sehr aufwendige Aufgabe sein, die unabhängig von der verwendeten Programmiersprache sehr anspruchsvoll ist.

Gibt es Beispiele was z.B.: als „ähnlich“ gilt und was nicht und worum es bei den „Vergleichen“ geht? Also was sind die Kriterien.

Zu Perl: Perl beherrscht sog. Regular Expressions sehr gut. Sie sind aber nicht unbedingt - zumindest nicht alleine - ausreichend für die mögliche Fragestellung.

Gruß Klaus

hi, wie kann man 2 satzbaustrukturen durch „PERL“ miteinander
vergleichen?

sorry, da bin überfragt.

hi, wie kann man 2 satzbaustrukturen durch „PERL“ miteinander
vergleichen?

Hi , danke für die anwort. Ich wollte eigentlich die satzstrukturen mit einander vergleichen um zu verstehen welche elemente sie haben, z.B. in welchem Satz kommt ein adverb vor und so weiter. es geht um valenzen!

ohne weitere infos (code) kann ich hier nicht weiterhelfen.

hi, wie kann man 2 satzbaustrukturen durch „PERL“ miteinander
vergleichen?

Das ist keine triviale Aufgabe:
Ein typisches Verfahren, wie das Pipeline-Verfahren wird hier http://de.wikipedia.org/wiki/Computerlinguistik grob beschrieben und zählt mit zu den anspruchvollsten Aufgaben der Informatik.

Ein weiteres, einfacheres Verfahren ist die sogenanntete „Soundex“/„Wörterbuch-Analyse“.
Zunächst wird der Satz in einzelene Worte zerlegt, die dann mittels des Soundex-Algorithmus in eine vereinfachte Form überführt werden (Soundex: grob Klangbild), danach werden die einzelnen Soundex-Terme mit einem Wörterbuch verglichen und dadurch zugeordnet. Nachteil des Verfahrens: Es ist sehr aufwendig ein solches Wörterbuch zu erstellen.

Wenn Du bei Google z.B. mal nach „satz analyse computer“ suchst, findest Du eine Menge an profesionellen Programmen und Artikeln dazu.

Gruß Klaus

Hi , danke für die anwort. Ich wollte eigentlich die
satzstrukturen mit einander vergleichen um zu verstehen welche
elemente sie haben, z.B. in welchem Satz kommt ein adverb vor
und so weiter. es geht um valenzen!

Kannst Du die Frage ein wenig ausführlicher stellen? So kann ich Dir leider nicht weiterhelfen…

hi, wie kann man 2 satzbaustrukturen durch „PERL“ miteinander
vergleichen?

Hi Thomas, danke für die antwort. Ich wollte eigentlich die
satzstrukturen anhand von satzschemata mit einander vergleichen um zu verstehen welche
elemente sie haben, z.B. in welchem Satz kommt ein adverb vor
in welchem kommt ein adhektiv vor und so weiter. es geht um valenzen! …

Lieber Klaus,
vielen Dank für deine Hilfe.Das war so nett von dir :smile:
LG
Bita

Hi Bita,

sorry, ich verstehe leider nicht, was du mit „satzbaustrukturen“ meinst. Du müsstest mir etwas konkretere Infos liefern, damit ich helfen kann.

Sprechen wir von menschlicher Sprache oder formalen Ausdrücken? Möchtest du zwei Eingaben auf ihre Unterschiede untersuchen oder gegen ein vorgegebenes Muster prüfen (statische Analyse)?

Am besten wäre es, wenn du konkret beschreiben könnstest, was du vor hast.

Schönes WE
wünscht der linuxxer

hi, wie kann man 2 satzbaustrukturen durch „PERL“ miteinander
vergleichen?

Hi,
Danke für die Antwort. Es geht eigentlich um den Vergleich 2 Satzbaustrukturen anhand Verbvalenzen, ich habe 2 unterschiedlcihe Muster zu den Verbvalenzen,die aber so viel sind und nicht manuel mitinader vergliechen werden können. Das alles muss ich durch PERL miteinander vergleichen. :frowning: bin aber noch ein Anfänger und weiß nicht wie, ich weiß nur, dass es durch Reguläre Ausdrücke geht, soweit ich bis jetzt gelesen habe.
Ich werde mich auf deine Hilfe freuen.Vielen Danl im Voraus!
LG
Bita

Tut mir leid, weiss gar nicht was PERL ist :frowning:

hi, wie kann man 2 satzbaustrukturen durch „PERL“ miteinander
vergleichen?

Oha, aus dem Stand sagt mir der Begriff Verbvalenz überhaupt nichts, musste grade erstmal Wiki bemühen :wink:
Kann daher durchaus sein, dass ich die Problemstellung missverstehe…

Es geht um die Bewertung des Prädikats anhand der restlichen Satzbestandteile, korrekt?

Kannst du dich darauf verlassen, dass die Sätze irgendeinem Schema folgen? Ist die Groß/Kleinschreibung stets korrekt?

Ich versuch die mal auf die Schnelle einen Startpunkt aufzuzeigen:

Wenn das Prädikat immer das erste kleingeschriebene Wort im Satz ist, könntest du es in etwa so matchen:
/(?:[A-Z][a-z]+ )+([a-z]+)/

Wenn ich das auf die Schnelle richtig verstanden habe, müsste man die Wertigkeit ja anhand der auf das Prädikat folgenden Nomen feststellen können.
Dafür würde ich den zweiten Teil vom Satz absplitten und die großgeschriebenen Worte zählen. Der Regex von oben sähe dann so aus:
/(?:[A-Z][a-z]+ )+([a-z]+) (.*)/

$1 ist dein Prädikat
$2 der weiterzuverarbeitende Substring (Kann man durch $’ eleganter machen). Den würde ich dann durch einen ähnlichen Regex wie im ersten Schritt jagen und die Matches zählen.

Hier nochmal schnell im Kontext, wie das dann aussieht:
> http://pastebin.com/iLc3smnh

Ich habe jetzt möglichst wenig Sondervariablen genutzt, damit es verständlich ist, die Expressions sind daher sicher nicht sonderlich elegant, aber hoffentlich ein Ansatz, der dich etwas weiterbringt.
Außerdem fehlen sicher noch ein ganzer Haufen zusätzlicher Regeln und Sonderfälle, bin nicht so der Linguistik-Experte^^

Wenn Denkfehler drin sind, liegt das an der Uhrzeit und meiner grade nörgelnden bessern Hälfte :wink:

Müde Grüße vom linuxxer

Hi Bita,

das ist eventuell möglich, aber du müsstest mir ein konkretes Beispiel geben. Reguläre Ausdrücke sind bei Perl sehr gut implementiert und mächtig, aber es lässt sich mit diesen trotzdem nicht alles machen.

Beste Grüße,

Heiner

Hi,
sorry, aber ich verstehe nicht ganz was du willst.