You are not logged in.

1

Saturday, October 17th 2009, 2:00pm

Text teilen / Unterschiede Darstellen

Moin,

ich hab folgendes Problem:

Ich würde gerne die Unterschiede in 2 unterschiedlichen
Strings deutlich machen.

Soweit so gut, man kann ja die Wörter von einander splitten
(explode()) und dann mit einander vergleichen, das Problem
bei dieser Methode ist, man erkennt nicht, wenn Wörter ver-
tauscht wurden.

Danach hatte ich noch einen Lösungsansatz:
Man betrachtet das ganze in Sätzen. Doch hier hat man das
Problem, was macht man bei Fragen oder Aufforderungen?
Da Sätze, Aufforderungen und Fragen durch unterschiedliche
Satzzeichen getrennt werden, fällt schon mal explode() raus ...

Was jetzt? Ich würde gerne bei der Satztrennung bleiben,
jedoch steht mir das Problem oben im Weg ...

Hat wer einen Lösungsansatz für mich? Brauch kein Code sein,
eine einfache Idee reicht mir :)
"Bei Fragen zu Ihrer Rechnung wenden Sie sich bitte per E-Mail an
NoReply@example.com"

mensi

Member

  • "mensi" is male

Posts: 222

Location: Schweiz

Occupation: Student D-INFK @ ETHZ

  • Send private message

2

Saturday, October 17th 2009, 2:24pm

Strings vergleicht man idR Zeichen für Zeichen...
Rechtschreibefehler und sonstige Irrtümer vorbehalten

3

Saturday, October 17th 2009, 8:40pm

Das ist aber ziemlich dumm ...

Sobald man Texte auf Unterschiede prüft, und dann
Zeichen für Zeichen prüft, so brauch nur ein neues
Komma am Anfang sein und der komplette Text von
dem Punkt an anders ;)

Hat sonst wer eine gute Idee?
"Bei Fragen zu Ihrer Rechnung wenden Sie sich bitte per E-Mail an
NoReply@example.com"

4

Saturday, October 17th 2009, 10:19pm

Mir fällt dafür jetzt nicht die Lösung ein da mir nicht viel bekannt ist in so einem Bereich aber du kannst doch erstmal deinen Text aufteilen und dann die Wörter nochmal einzeln prüfen.

Also Hallo dies ist ein Text. Und dies auch.

Trennst du in Die 2 Sätze auf. Und dann Prüfst du jeden Satz für sich. Und setzt das ganze am ende wieder zusammen?

Und zeigst dann die Unterschiede.

5

Saturday, October 17th 2009, 10:40pm

Das Problem ist, ich kann speziell nur nach einem Satz-
zeichen suchen, müsste aber nach dreien (!, ?, .).

Würde ich nach bsw. dem Punkt suchen, wäre folgendes
bsw. ein Abschnitt:

Source code

1
Hallo! Wie geht es dir? Mir geht es gut.



Man könnte zwar sagen, ich suche nach allen dreien,
über einen Umweg, aber diese halte ich persönlich viel
zu performancefressend.

Ich denke, ich muss es wohl doch in kauf nehmen, die
Trennung manchmal etwas komisch aussehen lassen,
sprich in Absätzen trennen.
"Bei Fragen zu Ihrer Rechnung wenden Sie sich bitte per E-Mail an
NoReply@example.com"

6

Sunday, October 18th 2009, 1:30am

Hallo,

schau dir mal das Burning Pedia an, dort gibt es auch solch eine Funktion oder das Lexikon von earlyhost, sofern du eine Lizenz besitzt.
Mit freundlichen Grüßen
Okan Esen
-------------------------------------
Ich beantworte keine Supportfragen per PN, IM (MSN, ICQ) und/oder E-Mail!
-------------------------------------

Vi veri veniversum vivus vici

mensi

Member

  • "mensi" is male

Posts: 222

Location: Schweiz

Occupation: Student D-INFK @ ETHZ

  • Send private message

7

Sunday, October 18th 2009, 3:23am

Sobald man Texte auf Unterschiede prüft, und dann
Zeichen für Zeichen prüft, so brauch nur ein neues
Komma am Anfang sein und der komplette Text von
dem Punkt an anders ;)


Das kann man natürlich auch schlauer machen. Grundsätzlich willst du ja so eine Funktionalität wie Diff. Ich kenn jetzt da den Algorithmus nicht gerade auswendig, wird aber etwas in Richtung Editingdistanz gehen (Levenshtein).

Bei einer korrekten und schnellen Lösung zu deinem Problem wirst du nicht um Dynamic Programming rumkommen, sprich da ist nix mit explode usw...
Rechtschreibefehler und sonstige Irrtümer vorbehalten