Announcement

Collapse
No announcement yet.

Problem 2 Sätze miteinander zu vergleichen (tricky!!!)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem 2 Sätze miteinander zu vergleichen (tricky!!!)

    Hallo,
    hab da ein Problem und hoffe ihr gebt mir hier die richtige Anregung.Ich habe die Aufgbe zwei Sätze miteinander vergleichen.Soweit ja noch kein Problem.
    Der erste Satz ist vorgegeben und der zweite(Eingabe) soll auf Unterschiede(Fehler)untersucht werden.
    Hatte daran gedacht beide zu splitten und dann mit Levenshtein zu vergleichen.
    Jetzt kommt mein Hauptproblem:
    Wenn im 2. Satz ein oder mehr Wörter zusammengeschrieben oder getrennt geschrieben (Versehentlich) worden sind!
    Dann stimmt mein array nicht mehr und er gibt nach dem Leerzeichen alle weiteren Wörter als Fehler aus.

    Hoffe es hat jemand ne Idee würde mir wirklich sehr helfen!

    Vielen Dank schonmal

  • #2
    wenn ich das richtig verstanden habe; soll die vergleichung kein fehler zurückgeben auch wenn der zweite satz anders geschrieben wurde?

    dann würde ich vorschlagen;
    dein vorgabe_array und vergleichs_array je in einem string zusammen zusetzen, dann alle leerzeichen zu entfernen, zu trimmen und beide strings nach einer upper bzw. lower wandlung zu vergleichen!??
    Zuletzt editiert von TurgayTurk; 18.03.2009, 22:07.

    Comment


    • #3
      Weitere Möglichkeit:

      Davon ausgehend dass keine Rechtschreibfehler vorhanden sind

      - splitten der Wörter
      - trimmen der Wörter
      - vergleichen wieviele Wörter übereinstimmen

      So kann eine andere Satzstellung gefunden werden. Anhand des Grades der Übereinstimmung kann einer Aussage über die Identität getroffen werden.
      Christian

      Comment


      • #4
        Das ist sehr gefährlich:

        Hängt Ihn, nicht warten!
        Hängt Ihn nicht, warten!

        ... eigentlich identisch, oder

        bye,
        Helmut

        Comment


        • #5
          Das ist sehr gefährlich:
          Nein, da er wissen will, ob die Sätze identisch sind. Der Sinn des Satzes ist nicht gefragt. Des Weiteren steht es ihm frei, Satzzeichen bei Bedarf einzubeziehen. Deine beiden Sätze sind ja - ohne Kommata - gleich. Und nur das interessiert wohl
          Christian

          Comment


          • #6
            Hallo nochmal,
            ihr versteht mich ich bischen falsch soweit war ich auch schon.
            Ich muss Wort für Wort vergleichen,z.B.:
            Ich gehe Heim.
            Eingabe:
            ich ge he heim
            Im Original hab ich 3 Strings, in der Eingabe 4.
            Jetzt würde er ja Ich mit ich vergleichen,das ist ein Fehler weil ich klein.
            als 2. Vergleicht er aber gehe mit ge und dann Heim mit he, sodass er mir in diesem Satz 4 Fehler anzeigen würde es sind aber nur 2.
            Wort ist falsch wenn Levenshtein Distanz>0
            Kann nicht den ganzen String vergleichen und Leerzeichen löschen da die als Fehler angezeigt werden soll.Dasselbe wenn zwei Wörter zusammen geschrieben wurden z.B.: ichgehe Heim. (nur 2 Strings)
            Hoffe es kann mir jemand helfen.

            Vielen Dank schonmal.

            Comment


            • #7
              Dann musst du die Strings Zeichen für Zeichen durchgehen. Bei einem Unterschied ist es ein Fehler. Es gibt dann solange Fehler, bis beide wieder übereinstimmen
              Christian

              Comment


              • #8
                Geht auch nicht da ein Wort auch nur ein Fehler haben kann.
                Ist echt nicht einfach!Muss also die Wörter einzeln und den gesamten Satz auf richtigkeit Prüfen.
                Ich weiß aber halt nicht wie ich sowas kombinieren kann,dass es auch fehlerfrei funktioniert.

                Comment


                • #9
                  Geht auch nicht da ein Wort auch nur ein Fehler haben kann.
                  Sicherlich geht das. Stichwort Synchronisation.
                  Christian

                  Comment


                  • #10
                    Weiß nicht ob ich gerade auf dem Schlauch stehe.
                    Wenn ich Zeichen für Zeichen mit Levenshtein untersuche könnte folgendes passieren:
                    Text: Gehen Eingabe:ge hhen
                    Würde jetzt 3 Fehler bekommen.Richtig?
                    Ein Wort darf aber nur einen Fehler ausgeben,soll am Ende ein Fehlerprotokoll erstellt werden:
                    Text:Ich gehe nach Hause.
                    Eingabe: ich ge hhe nach hausse.
                    Sie haben 3 Wörter falsch geschrieben.
                    Bei levenshtein würde er mir ausgeben das 5 Fehler drin sind!

                    Comment


                    • #11
                      Du solltest mal überlegen von den Worten wegzukommen.

                      Das Problem ist hinsichtlich Synchronisation gelöst.

                      Beispiel: Die Synchronisation zweier Ordner im Filesystem. Diese erfolgt Datei für Datei. Analog würde ich das mit dem Text machen
                      Christian

                      Comment


                      • #12
                        Tja, manche Fragen werden doppelt diskutiert. Siehe auch dort. Jürgen

                        Comment


                        • #13
                          @Thomas
                          Dachte in 2 Foren gibts auch mehr Leute die mir helfen können!!!
                          Ist echt etwas knifflig und deshalb diskutier ich in 2 Foren.

                          Liebe grüße

                          Volker

                          Comment


                          • #14
                            @Christian,
                            ich glaube du verstehst mich falsch. Im Prinzip soll mein Programm auf Rechtschreibfehler prüfen und mir am Ende sagen du hast z.B. 5 Wörter falsch geschrieben bzw falsch geschrieben Wörter rot markieren. und da hab ich nun das Problem, dass zusammengeschriebene oder vergessene Wörter in meinem Vergleich fehlen und so jedes nachfolgende Wort als Fehler ausgegeben wird.
                            Hier vielleicht mal mein Ansatz:
                            -Sätze in ein Array splitten leertaste als Trennzeichen (ich,gehe,gleich,heim)
                            -dann über Levenshtein vergleichen.
                            Aber schau dir mal folgenden Vergleich an der ist mein Problem:
                            Arr1(ich,geh,gleich,heim)
                            Arr2(i,ch,gehgleich,hei,m,)

                            Verstehst du?

                            Comment


                            • #15
                              ja, trotzdem würde ich einen anderen Ansatz empfehlen
                              Christian

                              Comment

                              Working...
                              X