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

Text in Sätze zerlegen mit Regex

195 views
Skip to first unread message

Harald Klingel

unread,
Aug 7, 2008, 3:41:01 PM8/7/08
to
Hallo zusammen,

ich verzweifele sschon seit heute morgen an folgendem Problem:
Ich habe einen Text, bei dem ich jeden Satz einzeln benötige.

Satzabschließende Zeichen sind ja '.', '!' und '?'. Dementsprechend habe ich
das Pattern [.!?] verwendet, um den Text zu splitten.

Das funktioniert auch prima, nur das ein '.' auch eine Abkürzung ('z.B.,
Dr., s.o.') beenden kann, und somit in diesem Fall kein satzabschließendes
Zeichen ist.

Mein Ziel wäre also ein regulärer Ausdruck, der alle Vorkommen von [.!?]
findet, aber nur, wenn es sich nicht um 'Dr.' o.Ä. handelt.

Wie kann ein solches Pattern aussehen? Zur Verdeutlichung noch ein
misratener Versuch von mir:

[.!?][^Dr]

Vielen Dank im Voraus,
Harald

Frank Dzaebel

unread,
Aug 8, 2008, 2:23:01 AM8/8/08
to
Hallo Harald,

> Satzabschließende Zeichen sind ja '.', '!' und '?'. Dementsprechend habe ich
> das Pattern [.!?] verwendet, um den Text zu splitten.
> Das funktioniert auch prima, nur das ein '.' auch eine Abkürzung ('z.B.,
> Dr., s.o.') beenden kann, und somit in diesem Fall kein satzabschließendes

> Zeichen ist. [...] Wie kann ein solches Pattern aussehen?

Da es im Deutschen viele tausend Abkürzungen gibt,
ist soetwas mit wenig Aufwand nur unvollständig darstellbar.

Du könntest aber pragmatischerweise Heuristiken nehmen.
Dass nur ein Buchstabe mit Punkt wohl als Abkürzung
genommen werden kann. Dass ein Wort aus reinen
Konsonanten als Abkürzung zu interpretieren wäre.
Dass nach dem Satzendzeichen gross geschrieben wird.
Damit kannst Du schon mal einiges erschlagen.


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Werner Perplies

unread,
Aug 8, 2008, 2:43:58 AM8/8/08
to
Harald,

Frank hat dir ja schon einiges zu diesem Thema gechrieben, was aber im
Einzelnen wirklich vorkommen kann, hängt sicherlich von Deiner Aufgabe ab

Ich würde allerdings nicht versuchen, die ganze Aufgabe mit einem regulären
Ausdruck zu lösen, sondern ganz pragmatisch etwa so vorgehen:

Eine Liste (am besten als Textdatei) mit den Abkürzungen erzeigen, die sich
später leicht kompletrieren ließe.

Dann bei allen Abkürzungen den Punkt durch ein, sonst im Text nicht
gebrauchtes Zeichen ersetzen, anschließend das eigentliche Split ausführen
und zuletzt den Platzhalter für den Punkt wieder durch den Punkt ersetzen.

Das sollte in den meisten Fällen weitgehend problemlos funktionieren.

Es gibt noch eine ganze Reihe von weiteren Lösungsmöglichkeiten, die aber
komplizierter wären.

Ich würde aber auf jeden Fall nicht auf ".", "!" usw. prüfen, sondern auf
". ", "! ! usw.

Gruß
Werner
--
www.weepee.eu

Frank Dzaebel

unread,
Aug 8, 2008, 2:55:43 AM8/8/08
to
Hallo Werner,

> ... sondern ganz pragmatisch etwa so vorgehen:


> Eine Liste (am besten als Textdatei) mit den Abkürzungen
> erzeigen, die sich später leicht kompletrieren ließe.

Sorry, wenn ich da interveniere, aber das ist
kein guter Weg IMHO.
Es gibt mehr als 50.000 nationale und internationale
Abkürzungen. Es ist besser und einfacher hier nach
Heuristiken zu arbeiten - das ist IMHO der richtige
"pragmatische" Weg.

Werner Perplies

unread,
Aug 8, 2008, 3:06:22 AM8/8/08
to
Guten Morgen Frank,

Am Thu, 7 Aug 2008 23:55:43 -0700 (PDT) schrieb Frank Dzaebel:

> Hallo Werner,
>
>> ... sondern ganz pragmatisch etwa so vorgehen:
>> Eine Liste (am besten als Textdatei) mit den Abkürzungen
>> erzeigen, die sich später leicht kompletrieren ließe.
>
> Sorry, wenn ich da interveniere, aber das ist
> kein guter Weg IMHO.
> Es gibt mehr als 50.000 nationale und internationale
> Abkürzungen. Es ist besser und einfacher hier nach
> Heuristiken zu arbeiten - das ist IMHO der richtige
> "pragmatische" Weg.
>
>
> ciao Frank

;-)
Du hast doch sicherlich die Einschränkung "hängt sicherlich von Deiner
Aufgabe ab" gelesen, oder?

Du hast natürlich recht mit Deiner Aussage, aber diese Vielfalt kommt
wirklich extrem selten vor.

Außerdem hangt es ja auch noch davon ab, ob diese Zerlegung regelmäßig oder
einmalig vorkommt.

Die Antwort darauf kann uns sicherlich nur Harald geben.

Ich bin auf jeden Fall mit der beschriebenen Methode bisher sehr gut
zurecht gekommen.

Aber, um Deine Vorschläge weiter zu führen, müssten wir zuerst einaml
prüfen, was eigentlich ein Satz ist, und dann bliebe vermutlich nur eine
grammatikalische Analyse übrig.

Gruß
Werner
--
www.weepee.eu

Frank Dzaebel

unread,
Aug 8, 2008, 3:52:57 AM8/8/08
to
Hallo Werner,

> > kein guter Weg IMHO.
> > Es gibt mehr als 50.000 nationale und internationale
> > Abkürzungen. Es ist besser und einfacher hier nach
> > Heuristiken zu arbeiten - das ist IMHO der richtige
> > "pragmatische" Weg.
>

> [...] Du hast natürlich recht mit Deiner Aussage,


> aber diese Vielfalt kommt wirklich extrem selten vor.

Ja, selbst mit wenig Vielfalt, sind die Heuristken
dann IMHO mit einer höheren Treffer-Wahrscheinlichkeit
ausgestattet. Ich glaube kaum, dass er vorschreiben
kann, welche Abkürzungen genommen werden "dürfen".
In so einem Fall wäre natürlich eine Liste günstig.
Aber, wenn man es nicht vorschreiben kann, würde
ich Heuristiken nehmen.

> Aber, um Deine Vorschläge weiter zu führen, müssten wir
> zuerst einaml prüfen, was eigentlich ein Satz ist, und dann
> bliebe vermutlich nur eine grammatikalische Analyse übrig.

Einfach die drei von mir aufgeführten Heuristiken würden
IMHO schon reichen.

Werner Perplies

unread,
Aug 8, 2008, 4:14:05 AM8/8/08
to
Hallo Frank,

Am Fri, 8 Aug 2008 00:52:57 -0700 (PDT) schrieb Frank Dzaebel:

[...]


> Einfach die drei von mir aufgeführten Heuristiken würden

> IMHO schon reichen.:
<Frank>


"Du könntest aber pragmatischerweise Heuristiken nehmen.
Dass nur ein Buchstabe mit Punkt wohl als Abkürzung
genommen werden kann. Dass ein Wort aus reinen
Konsonanten als Abkürzung zu interpretieren wäre.
Dass nach dem Satzendzeichen gross geschrieben wird.
Damit kannst Du schon mal einiges erschlagen."

</Frank>

z. .:

etc., engl., franz., kompl., evt., usw. ?

oder habe ich da etwas übersehen?

>
>
> ciao Frank

Gruß
Werner
--
www.weepee.eu

Frank Dzaebel

unread,
Aug 8, 2008, 4:44:26 AM8/8/08
to
Hallo Werner,

> etc., engl., franz., kompl., evt., usw. ?

ja, hier sind zum Beispiel jeweils mindestens
zwei Konsonanten an den Enden der Wörter.
Man kann die Heuristiken dahingend intelligent
(mit weiteren Regeln) erweitern, wenn Bedarf besteht.
Da alle Regeln "zusammenarbeiten", wird die
Trefferwahrscheinlichkeit dadurch auch grösser.
Auch hindert Dich nichts, welche zuzufügen.
Beachte zum Beispiel bei "franz." den Satz:
Sein Name ist Franz.
Man kann sie ja auch variieren oder an
den Sprachraum anpassen.
Obwohl ihm da wohl Deutsch schon reicht.

Insgesamt bleiben einem wohl eh wenig andere
Möglichkeiten, denn 50000 Akürzungen pro
Wort zu prüfen, wäre sicher nicht sinnvoll und 100
zu prüfen, wäre sicher ggf. mit gegenzurechnen
mit der Wahrscheinlichkeit, dass gerade die
kommen, die man nicht drin hat.

Egal - wir haben ja jetzt einige Möglichkeiten gesagt.
Ist auch jetzt kaum mehr C#.

Harald M. Genauck

unread,
Aug 8, 2008, 7:06:48 AM8/8/08
to
Hallo Frank

>> ... sondern ganz pragmatisch etwa so vorgehen:
>> Eine Liste (am besten als Textdatei) mit den Abkürzungen
>> erzeigen, die sich später leicht kompletrieren ließe.

> Sorry, wenn ich da interveniere, aber das ist
> kein guter Weg IMHO.
> Es gibt mehr als 50.000 nationale und internationale
> Abkürzungen. Es ist besser und einfacher hier nach
> Heuristiken zu arbeiten - das ist IMHO der richtige
> "pragmatische" Weg.

Nur mal interessehalber - woher hast Du die Zahl 50.000?


Viele Grüße

Harald M. Genauck

"VISUAL STUDIO one" - http://www.visualstudio1.de (Chefredakteur)
"ABOUT Visual Basic" - http://www.aboutvb.de (Herausgeber)

Frank Dzaebel

unread,
Aug 8, 2008, 7:36:02 AM8/8/08
to
Hallo Harald,

> Nur mal interessehalber - woher hast Du die Zahl 50.000?

hier zum Beispiel:

[Duden | Duden - Das Wörterbuch der Abkürzungen]
http://www.duden.de/suche/detail.php?isbn=3-411-05015-2

... "Rund 50.000 nationale und internationale Abkürzungen"

wobei die Anzahl der Abkürzungen stetig zunimmt und
in dem Buch auch nur ein Auszug ist.

Harald Klingel

unread,
Aug 8, 2008, 12:58:02 PM8/8/08
to
Hallo,

vielen Dank für Eure Antworten.
Ich habe das wohl deutlich unterschätzt (50.000 Abkürzungen).
Ich versuche es mal mit Heuristiken...

Viele Grüße,
Harald

Harald M. Genauck

unread,
Aug 8, 2008, 2:40:01 PM8/8/08
to
Hallo Namensvetter...

> vielen Dank für Eure Antworten.
> Ich habe das wohl deutlich unterschätzt (50.000 Abkürzungen).
> Ich versuche es mal mit Heuristiken...

Ich denke zwar auch, dass es sinnvoller ist, mit Heuristiken zu
arbeiten. Die Zahl 50.000 ist jedoch, bezogen auf Deine Aufgabe, bei
weitem zu hoch gegriffen (siehe meine Antwort an Frank).

Harald M. Genauck

unread,
Aug 8, 2008, 2:38:24 PM8/8/08
to
Hallo Frank,

>> Nur mal interessehalber - woher hast Du die Zahl 50.000?
>
> hier zum Beispiel:
>
> [Duden | Duden - Das Wörterbuch der Abkürzungen]
> http://www.duden.de/suche/detail.php?isbn=3-411-05015-2
>
> ... "Rund 50.000 nationale und internationale Abkürzungen"
>
> wobei die Anzahl der Abkürzungen stetig zunimmt und
> in dem Buch auch nur ein Auszug ist.

Ah, danke...

Wobei allerdings die auf dieser Seite beispielhaft angeführten
Abkürzungen nicht mit einem Punkt enden - und ich vermute, dass das
auch bei den meisten dieser 50.000 so ist.

Für das Textzerlegungsproblem sind die Abkürzungen ohne Punkt
irrelevant und können wie normale Wörter betrachtet werden.

Christoph Schneegans

unread,
Aug 8, 2008, 3:13:43 PM8/8/08
to
Harald Klingel schrieb:

> Ich habe einen Text, bei dem ich jeden Satz einzeln benötige.

Ich dachte zunächst, man könnte Word automatisieren, um brauchbare
Ergebnisse zu erhalten, aber dessen Satzerkennung ist ja auch unter
aller Sau.

Möglicherweise kannst du dafür sorgen, daß die Eingaben stets zwei
Leerzeichen nach einem Satzendzeichen enthalten?

--
<http://schneegans.de/web/kanonische-adressen/> · Gute URLs

Frank Dzaebel

unread,
Aug 8, 2008, 5:33:16 PM8/8/08
to
Hallo Harald,

> Ah, danke...

no prob.

> ich vermute, dass das auch bei den meisten
> dieser 50.000 so ist.

Das ist Deine *Vermutung*. Da können wir viel
vermuten, keine gute Basis.

Aber, ich meine, man ist offen. Wenn es wichtig
ist für ihn, schafft er sich mal das Abkürzungsbuch
an, und hackt die alle ein.
Sowas ist ja schnell mal in 2-3 Wochen Urlaub
gemacht - macht ja auch Spass :-)
Wie es dann mit der Performance bei der
Abfrage bestellt ist - ja gut, das kriegt man dann
schon mit binärer Suche o.ä. hin.

Werner Perplies

unread,
Aug 8, 2008, 10:08:39 PM8/8/08
to
Hallo Christoph,

Am Fri, 8 Aug 2008 21:13:43 +0200 schrieb Christoph Schneegans:

> Harald Klingel schrieb:
>
>> Ich habe einen Text, bei dem ich jeden Satz einzeln benötige.
>
> Ich dachte zunächst, man könnte Word automatisieren, um brauchbare
> Ergebnisse zu erhalten, aber dessen Satzerkennung ist ja auch unter
> aller Sau.

Das ist nun wirklich kein Wunder. Ich beschäftige mich jetzt seit vielen
Jahren mit diesem Thema und es ist viel komplexer, als hier nur annähend
angerissen.
Es geht dabei ja nicht nur um Abkürzungen, sonder auch noch um die Frage,
wie eigentlich Sätze enden und was als selbstständiger Satz gilt.

Dann gibt es zum Beispiel ja Sätze, die mit Abkürzungen enden, Sätze die
nicht korrekt angeschlossen sind, Abkürzungen, die noch eine andere
Bedeutung haben und andere Probleme.

In vielen Fällen reduziert sich das Problem durch die speziellen
Anforderungen der Aufgabe.

Ich habe solche Logiken in erster Linie für einmalige
Konvertierungsaufgaben und beim der OCR-Verarbeitung von Texten gebraucht,
da ist dann das Abkürzungsproblem ein eher Kleines. ;-)

>
> Möglicherweise kannst du dafür sorgen, daß die Eingaben stets zwei
> Leerzeichen nach einem Satzendzeichen enthalten?

Gruß
Werner
--
www.weepee.eu

Ulf Kadner

unread,
Aug 9, 2008, 5:15:28 AM8/9/08
to
Frank Dzaebel wrote:

>> ich vermute, dass das auch bei den meisten
>> dieser 50.000 so ist.
>
> Das ist Deine *Vermutung*. Da können wir viel
> vermuten, keine gute Basis.

Also wär auch Deine Aussage keine gute Basis. Denn Du kannst auch nur
vermuten das es andersrum ist. Zumal nicht jeder unbedingt diess Buch
kennt und u.U. auch mal einen Punkt wegläst (Vergisst) oder hinzufügt.

Fazit: Eigene Heuristiken entwickeln (schriebst Du ja bereits) um ein
grobes Ergebnis zu ermitteln. Wer hier nach der annähernd 100%igen
Lösung such wird keinen Erfolg haben.


MfG, Ulf

Frank Dzaebel

unread,
Aug 9, 2008, 5:20:48 AM8/9/08
to
Hallo Ulf,

> > Das ist Deine *Vermutung*. Da können wir viel
> > vermuten, keine gute Basis.
>
> Also wär auch Deine Aussage keine gute Basis.
> Denn Du kannst auch nur vermuten das es andersrum ist.

Das ist wiederum Deine *Vermutung* Ulf. Ich würde
vorsichtig mit Vermutungen sein.

Ulf Kadner

unread,
Aug 9, 2008, 5:43:08 AM8/9/08
to
Frank Dzaebel wrote:
>>> Das ist Deine *Vermutung*. Da können wir viel
>>> vermuten, keine gute Basis.
>> Also wär auch Deine Aussage keine gute Basis.
>> Denn Du kannst auch nur vermuten das es andersrum ist.
>
> Das ist wiederum Deine *Vermutung* Ulf.

DU willst mir allen Ernstes erzählen das Du alle durchgearbeitet hast? ROFL!

> Ich würde vorsichtig mit Vermutungen sein.

Offensichlich nicht!

MfG, Ulf

Frank Dzaebel

unread,
Aug 9, 2008, 7:51:08 AM8/9/08
to
Hallo Ulf,

> >>> Das ist Deine *Vermutung*. Da können wir viel
> >>> vermuten, keine gute Basis.
> >> Also wär auch Deine Aussage keine gute Basis.
> >> Denn Du kannst auch nur vermuten das es andersrum ist.
> > Das ist wiederum Deine *Vermutung* Ulf.
> DU willst mir allen Ernstes erzählen das Du alle durchgearbeitet hast? ROFL!

Das ist wieder eine Vermutung von Dir.

Um mal bei den Fakten zu bleiben ...
Im Buch steht ganz am Anfang:

"Abkürzungen enthalten in der Regel am Ende
der Einheit einen Abkürzungspunkt."

"In der Regel" ist wohl zunächst mindestens
als mehr als 50% zu interpretieren, was für das
Thema hier wohl ausreichend ist.
So ist das auch in dem Buch. In der Regel sind
es Abkürzungen (also mit Abkürzungspunkt).

Etwas anderes sind sogenannte Kurzwörter wie
etwa BGB o.ä.
Zitat:

"Kurzwörter werden generell ohne Punkt geschrieben".

Tatsächlich sind hauptsächlich die für den
deutschsprachigen Raum wichtigen drin. Auch
natürlich internationale, aber nicht die direkt
englischen Abkürzungen. Für andere Sprachen
kämen also nochmal etliche hinzu.
Auch fehlt in dem sogar elementar gängige
Kurzwörter wie EOT o.ä.

Kurzum 50000 ist schon eine gute Richtgrösse
je nachdem, wenn man die fremdsprachlichen
dazuzählen will, *weit* mehr! (der OP lässt es offen).

> offensichtlich nicht

das ist Deine Vermutung ...
Es ist ok zu "vermuten", man sollte es nur dazuschreiben.

Ulf Kadner

unread,
Aug 9, 2008, 8:10:51 AM8/9/08
to
Frank Dzaebel wrote:

> Das ist wieder eine Vermutung von Dir.

Du tust ja bald so als würdest Du niemals vermuten. Dabei tust Du das
täglich. Ich hab Dich nur darauf hingewiesen das Deine Vermutung nicht
besser ist als Haralds. Akzeptiers und gut.

> Um mal bei den Fakten zu bleiben ...
> Im Buch steht ganz am Anfang:
>
> "Abkürzungen enthalten in der Regel am Ende
> der Einheit einen Abkürzungspunkt."

Das "in der Regel" ein sehr weitläufiger Begriff ist sollte klar sein.
Das nicht jedes Dokument diesen Regeln entspricht ganau so.

> "In der Regel" ist wohl zunächst mindestens
> als mehr als 50% zu interpretieren

Könnte, hätte sollte. Die Vermutung bleibt dennoch das was sie ist ohne
den kompletten Inhalt analysiert zu haben.

> Es ist ok zu "vermuten", man sollte es nur dazuschreiben.

Warum? Das ergibt sich doch alles Bereits aus dem Kontext. Du bist doch
keine machine die nicht zwischen den Zeilen lesen kann. Oder doch? ;-)

MfG, Ulf

Frank Dzaebel

unread,
Aug 9, 2008, 8:32:44 AM8/9/08
to
Hallo Ulf,

> > Das ist wieder eine Vermutung von Dir.
>
> Du tust ja bald so als würdest Du niemals vermuten.

War bei Dir ein bisschen viel :-)
Zumal ich das Buch ja kenne und Dir auch
die Zitate daraus geschrieben habe und mit eigenem
Augenschein sehen kann wieviel da drin sind.
Was Du da so vermutest hast war wirklich lustrig :-)


> Dabei tust Du das täglich.

bestimmt. Harald hat es zum beispiel ganz gut
gemacht, er hat geschrieben ich "vermute".
Das ist IMHO sehr guter Stil, wenn es um diese
Dinge geht. Ich "versuche" eigentlich auch, wenn
ich etwas wiklich nur "vermute" das auch auszudrücken.
Sicher gelingt es mir nicht immer.
Aber allein schon aus Eigennutz, um nicht
später darauf festgenagelt zu werden, versuche
ich schon immer "ziemlich" sicher zu sein,
wenn ich was poste. In etwas sagt das auch
die Nettiquette der technischen NGs so aus.

> Ich hab Dich nur darauf hingewiesen das Deine
> Vermutung nicht besser ist als Haralds.  
> Akzeptiers und gut.

Ich darf nochmal bescheiden darauf hinweisen, dass
ich das Buch kenne. Harald sprach von
"ich vermute". Vielleicht kennt er es trotzdem.
Dann weiss er, dass dort "in der Regel" Abkürzungen
drinstehen. Also welche mit Punkt. Auch
welche ohne sog. Kurzwörter.
Weiterhin sind für fremdsprachliche Texte noch
*weit* mehr Abkürzungen zu erwarten, als die,
die drinstehen. Weiterhin stehen auch nicht alle
offiziellen drin.

> Die Vermutung bleibt dennoch das was sie ist ohne
> den kompletten Inhalt analysiert zu haben.

Ne, wenn man das Buch wie ich durchgeschaut hat,
kann ich mit Sicherheit sagen, dass meine Aussagen
keine "Vermutung" sind.

Lass uns hier beenden, denn dies ist eine C# Gruppe.
Es wäre gegen die Netiquette der Community.

Harald M. Genauck

unread,
Aug 9, 2008, 2:47:57 PM8/9/08
to
Hallo Frank,

>> Ich hab Dich nur darauf hingewiesen das Deine
>> Vermutung nicht besser ist als Haralds.
>> Akzeptiers und gut.

> Ich darf nochmal bescheiden darauf hinweisen, dass
> ich das Buch kenne. Harald sprach von
> "ich vermute". Vielleicht kennt er es trotzdem.
> Dann weiss er, dass dort "in der Regel" Abkürzungen
> drinstehen. Also welche mit Punkt. Auch
> welche ohne sog. Kurzwörter.
> Weiterhin sind für fremdsprachliche Texte noch
> *weit* mehr Abkürzungen zu erwarten, als die,
> die drinstehen. Weiterhin stehen auch nicht alle
> offiziellen drin.

Ich _vermute_ zum ersten deswegen, weil ich das Buch tatsächlich nicht
kenne.

Zum zweiten vermute ich, weil alle in besagter Buchbeschreibung des
Duden-Verlags und alle auf dem Titelbild erkennbaren
Beispielabkürzungen also wohl gar keine Abkürzungen sind, sondern
"Kurzwörter". Der "heilige" Duden nimmt es also offensichtlich selber
nicht so genau mit dieser Unterscheidung...

Und zum dritten vermute ich deswegen: Wenn ich einfach mal so eine
Weile nachdenke, fallen mir auch wesentlich mehr solcher "Kurzwörter"
ein als echte, gängige Abkürzungen.

Andererseits kann ich natürlich mit meiner Vermutung auch ganz gut
falsch liegen. Denn letztlich lassen sich ziemlich viele Wörter, und
dazu noch viele derer Wortformen, abkürzen. Damit kann man sicher einen
ganzen Duden-Band füllen - und dann könnten die Kurzwörter tatsächlich
in der Minderzahl sein.

Frank Dzaebel

unread,
Aug 9, 2008, 3:10:32 PM8/9/08
to
Hallo Harald,

> Ich _vermute_ zum ersten deswegen, ...

ist ja egal warum, Du vermutest es und das ist
doch ok, denn Du hast es explizit gepostet.
Letztlich können wir uns an die Fakten
halten, die ich aus dem Buch zitiert habe und meine
"in Augenscheinnahme". Da jetzt doch stark OT,
mache mal einfach auch Schluss. Netiquette!

0 new messages