Doc_McSky: kleingeschriebene Namen wieder korrekt ausgeben

Hallo liebe Leute,

derzeit grübel ich wieder über eine geschickte Lösung Namen und auch Adressen von Personen möglichst geschickt wieder eine eine reguläre deutsche Schreibweise zu bekommen um sie nicht so speichern zu müssen wie es manche Menschen heutzutage der einfacheit oder auch spaßeshalber eingeben.
Ich bekomme aus einer fremden Datenbank Adressen übermittelt, vielfach sind diese z.B. beim Namen nicht als "Max Mustermann", sondern als "max mustermann" geschrieben.
Ich möchte gerne die Namen wieder mit führenden Großbuchstaben haben und das ganze so geschickt wie es geht. Ich denke mal da wird wohl ein regulärer Ausdruck zum tragen kommen, aber was wäre mit so etwas:
"Max von Mustermann", hier muss der zweite Namen nach Möglichkeit klein bleiben, ich weiß nciht wie man das abfragen könnte, vielleicht in etwa so "Nur dann entsprechenden Großbuchstaben einsetzen, wenn Wort (also bis zur nächsten Leerstelle) länger als 3-4 Zeichen".

Nur wie setzt man das um?

Ich gehe jetzt hin und wandel vorsichtshalber alles per strtolower() vorab in Kleinbuchstaben um und mache jetzte einen ucfirst() davor, damit erhalte ich aber nur "Max mustermann", logisch.
Oder muss ich den String komplett zerlegen und einzeln behandeln?

Über eine mögliche Lösung wäre ich wie immer dankbar.

Gruß
Doc

  1. Hallo,

    derzeit grübel ich wieder über eine geschickte Lösung Namen und auch Adressen von Personen möglichst geschickt wieder eine eine reguläre deutsche Schreibweise zu bekommen ...

    an der Stelle fängt das Problem aber schon an: Kannst du sicher sein, dass die Namen alle den deutschen Gepflogenheiten der Schreibweise unterliegen? Künstlernamen könnten absichtlich klein geschrieben sein, nur so als Idee.

    Ich möchte gerne die Namen wieder mit führenden Großbuchstaben haben und das ganze so geschickt wie es geht. Ich denke mal da wird wohl ein regulärer Ausdruck zum tragen kommen

    Warum das?

    "Max von Mustermann", hier muss der zweite Namen nach Möglichkeit klein bleiben, ich weiß nciht wie man das abfragen könnte, vielleicht in etwa so "Nur dann entsprechenden Großbuchstaben einsetzen, wenn Wort (also bis zur nächsten Leerstelle) länger als 3-4 Zeichen".

    Halte ich nicht für eine gute Idee.
    Ich würde den Namen zunächst in "Wörter" zerlegen (also an Leerzeichen und Bindestrichen splitten), und dann jeden Teil mit einem großen Anfangsbuchstaben versehen, der nicht in einer Sperrliste auftaucht. Diese Sperrliste müsste dann ein Array sein, das typische Namenszusätze enthält, die klein geschrieben werden ("von", "van", "de", "der", "zu", ...).
    Sei dir aber bewusst, dass du damit garantiert immer noch nicht alle Problemfälle abdeckst.

    Über eine mögliche Lösung wäre ich wie immer dankbar.

    OT: Man ist *für* etwas dankbar, oder man freut sich *über* etwas.
    Wie kommt es, dass in letzter Zeit oft Leute *über* etwas dankbar sind?

    Ciao,
     Martin

    --
    Die Natur ist gnädig: Wer viel verspricht, dem schenkt sie zum Ausgleich ein schlechtes Gedächtnis.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. @@Der Martin:

      nuqneH

      Diese Sperrliste müsste dann ein Array sein, das typische Namenszusätze enthält, die klein geschrieben werden ("von", "van", "de", "der", "zu", ...).

      Nö. Steve Van Zandt, Townes Van Zandt – mit großen V.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Hallo,

        Diese Sperrliste müsste dann ein Array sein, das typische Namenszusätze enthält, die klein geschrieben werden ("von", "van", "de", "der", "zu", ...).
        Nö. Steve Van Zandt, Townes Van Zandt – mit großen V.

        interessant, das ist aber im Niederländischen, wo das "van" ja ursprünglich herkommt, nicht üblich.

        Ciao,
         Martin

        --
        Wer im Steinhaus sitzt, soll nicht mit Gläsern werfen.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Tach,

          Nö. Steve Van Zandt, Townes Van Zandt – mit großen V.

          interessant, das ist aber im Niederländischen, wo das "van" ja ursprünglich herkommt, nicht üblich.

          das hängt davon ab, wird der Vorname mit angegeben dann ist das v klein also "Jacobus Henricus van 't Hoff", sagt man aber "der Chemiker Van 't Hoff" so ist das V groß.

          Im Belgischen ist das V immer groß, in Afrikaans übrigens auch und das nicht verwandte viatnamesische "Van" ist auch wieder groß.

          Quelle für all das ist wie üblich die allwissende Müllhalde.

          mfg
          Woodfighter

        2. @@Der Martin:

          nuqneH

          interessant, das ist aber im Niederländischen, wo das "van" ja ursprünglich herkommt, nicht üblich.

          Beethoven würde sicher einige Disharmonien von sich geben, wenn er sich mit großem V geschrieben sähe. Und van Gogh würde sich ein Ohr abschneiden.

          Die Amis schreiben allerdings auch gerne mal 'De' im Namen groß.

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
  2. Hi,

    derzeit grübel ich wieder über eine geschickte Lösung Namen und auch Adressen von Personen möglichst geschickt wieder eine eine reguläre deutsche Schreibweise zu bekommen um sie nicht so speichern zu müssen wie es manche Menschen heutzutage der einfacheit oder auch spaßeshalber eingeben.
    Ich bekomme aus einer fremden Datenbank Adressen übermittelt, vielfach sind diese z.B. beim Namen nicht als "Max Mustermann", sondern als "max mustermann" geschrieben.
    Ich möchte gerne die Namen wieder mit führenden Großbuchstaben haben und das ganze so geschickt wie es geht. Ich denke mal da wird wohl ein regulärer Ausdruck zum tragen kommen,

    Vor allem bräuchtest Du eine große Liste mit Ausnahmen.

    Schau z.B. Deinen Nickname an: McSky. Da ist es korrekt, wenn mitten im Wort ein Großbuchstabe vorkommt.
    Dazu dann noch die Sachen wie
    von Goethe, van Beethoven, da Costa
    wo der Nachname eben nicht mit Großbuchstaben anfangen darf.
    Bei irischen Namen kommt gelegentlich ein kleines ni vor dem eigentlichen Namen (ohne Leerzeichen): niBreathnach

    usw.

    Es gibt sehr viele Varianten, wo es NICHT richtig ist, den ersten Buchstaben des Nachnamens groß und den Rest klein zu schreiben ...

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Hallo,

      Vor allem bräuchtest Du eine große Liste mit Ausnahmen.
      Schau z.B. Deinen Nickname an: McSky. Da ist es korrekt, wenn mitten im Wort ein Großbuchstabe vorkommt.

      das wäre mit meinem Vorschlag schon Essig.

      Dazu dann noch die Sachen wie
      von Goethe, van Beethoven, da Costa
      wo der Nachname eben nicht mit Großbuchstaben anfangen darf.

      Hier könnte ich mit dem Ansatz noch mithalten, ...

      Bei irischen Namen kommt gelegentlich ein kleines ni vor dem eigentlichen Namen (ohne Leerzeichen): niBreathnach

      ... da müsste ich allerdings auch passen. Diese Eigenart irischer Namen war mir übrigens noch nicht bekannt - wohl aber die "typisch" irischen Namen wie O'Brian, den mein Ansatz auch zu O'brian verstümmeln würde. Es sei denn, ich würde das Apostroph ebenfalls als Trennzeichen mitnehmen, aber das ist angesichts der Vielzahl anderer Konfliktfälle müßig.

      Es gibt sehr viele Varianten, wo es NICHT richtig ist, den ersten Buchstaben des Nachnamens groß und den Rest klein zu schreiben ...

      Allerdings. Das macht's beliebig schwer - und beliebig fehleranfällig.

      Ciao,
       Martin

      --
      Vielseitigkeit: Von vielen Dingen keine Ahnung haben.
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Mahlzeit Der Martin,

        Es sei denn, ich würde das Apostroph ebenfalls als Trennzeichen mitnehmen, aber das ist angesichts der Vielzahl anderer Konfliktfälle müßig.

        Und vor allem nicht ausreichend, da es immer wieder Klappspaten gibt, die gerne statt eines korrekten Apostrophs die verschiedensten Akzent-Zeichen missbrauchen ...

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      2. Tach,

        ... da müsste ich allerdings auch passen. Diese Eigenart irischer Namen war mir übrigens noch nicht bekannt - wohl aber die "typisch" irischen Namen wie O'Brian, den mein Ansatz auch zu O'brian verstümmeln würde. Es sei denn, ich würde das Apostroph ebenfalls als Trennzeichen mitnehmen, aber das ist angesichts der Vielzahl anderer Konfliktfälle müßig.

        ein solcher wäre dann wieder niederländisch Jacobus Henricus van 't Hoff, wo es hinter dem Apostrop klein weiter geht.

        mfg
        Woodfighter

        1. Hello,

          ... da müsste ich allerdings auch passen. Diese Eigenart irischer Namen war mir übrigens noch nicht bekannt - wohl aber die "typisch" irischen Namen wie O'Brian, den mein Ansatz auch zu O'brian verstümmeln würde. Es sei denn, ich würde das Apostroph ebenfalls als Trennzeichen mitnehmen, aber das ist angesichts der Vielzahl anderer Konfliktfälle müßig.

          ein solcher wäre dann wieder niederländisch Jacobus Henricus van 't Hoff, wo es hinter dem Apostrop klein weiter geht.

          Ich hatte vorhin darüber nachgedacht, wie man die Importschnittstelle intelligent gestalten könnte. Dazu könnten die Namen nach einer Standardbehandlung mit einer Datenbank bekannter Namen verglichen werden und bei Vorliegen von Ähnlichkeiten automatisch abgeglichen werden.

          Alle, die in kein vorhandenes Muster passen, laufen dann zur händischen Nachbearbeitung auf und stehen dann in Zukunft auch als Muster zur Verfügung.

          Aber wenn ich u.a. Dein Beispiel sehe, dann glaube ich nicht mehr, dass diese Vorgehensweise fehlerarm genug ausfallen könnte...

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. 'ǝɯɐu$ ıɥ

            Alle, die in kein vorhandenes Muster passen, laufen dann zur händischen Nachbearbeitung auf und stehen dann in Zukunft auch als Muster zur Verfügung.

            Aber wenn ich u.a. Dein Beispiel sehe, dann glaube ich nicht mehr, dass diese Vorgehensweise fehlerarm genug ausfallen könnte...

            Besser wäre es die Daten gleich richtig einzutragen und jedem bei Todesstrafe zu verbieten daran rumzufrickeln...

            ssnɹƃ
            ʍopɐɥs

            --
            Neurotiker bauen Luftschlösser, Psychopaten wohnen darin und Psychiater kassieren die Miete.
            1. Hello,

              Aber wenn ich u.a. Dein Beispiel sehe, dann glaube ich nicht mehr, dass diese Vorgehensweise fehlerarm genug ausfallen könnte...

              Besser wäre es die Daten gleich richtig einzutragen und jedem bei Todesstrafe zu verbieten daran rumzufrickeln...

              Ich erinnere mich noch daran, was es vor (inzwischen) Jahrzehnten für ein Akt war, die Postleitzahlumstellung durchzuführen. Das Programm hat damals auch nur mit Datenbank im Hintergrund funktioniert und auch noch eine Menge Fehler gemacht. Die waren dann aber meistens auch durch (bewußt) falsche oder unvollständige Einträge verursacht.

              Liebe Grüße aus dem schönen Oberharz

              Tom vom Berg

              --
               ☻_
              /▌
              / \ Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
    2. Hapüh,

      kaum gehe ich dann zum Mittag schon ist der Thread voll, wie schön. :-)

      Schau z.B. Deinen Nickname an: McSky. Da ist es korrekt, wenn mitten im Wort ein Großbuchstabe vorkommt.
      Dazu dann noch die Sachen wie
      von Goethe, van Beethoven, da Costa
      wo der Nachname eben nicht mit Großbuchstaben anfangen darf.
      Bei irischen Namen kommt gelegentlich ein kleines ni vor dem eigentlichen Namen (ohne Leerzeichen): niBreathnach

      Ja, da habt ihr vollkommen Recht, eine komplette Regel mit "allen" Namensgebungen zu entwerfen dürfte schwer sein.
      Zum einen Beispiel oben kommen bei mir keine Nicknamen vor, die Liste besteht nur aus realen Namen und ich habe es zu 95% mit deutschen Namen und sonst dem naheliegenden Namen zu tun.
      Sonderformen können ja auch händisch korrigiert werden, ich will nur die grobe Allgemeinheit erfassen, wie eben meinen Mustermann oder die einfachen "von, zu, etc."

      Ich werde es also mit der Zerlegung und der Sperrliste probieren, ein dickes Danke erstmal an eure Ideen und Meinungen.

      Gruß
      Doc.

      1. Hi.

        Ich werde es also mit der Zerlegung und der Sperrliste probieren,

        Noch mal kurz ein weiterer Gedanke: Mir als User würde Deine Software suspekt vorkommen, wenn sie einfach was anderes speichert als das, was ich eingegeben habe. Ich würde evtl. folgendes anregen:

        Wenn Du (d.h. Dein Skript) bei einem eingegebenen Namen Handlungsbedarf siehst, dann liefere das Formular dem Nutzer nochmal mit Deinem Vorschlag für seinen Namen und einem freundlichen Hinweis, dass er möglicherweise die Groß-/Kleinschreibung nicht richtig beachtet habe. Wenn er bloß zu faul zum Großschreiben war, dann wird er Deinen Vorschlag jetzt einfach akzeptieren und O.K. drücken (weil er nun auch zu faul ist, was anderes als das zu tun), und wenn er eine der wenigen Ausnahmen ist, deren Namen Dein Skript überfordern, dann hat er die Möglichkeit, jetzt seinen Namen (nochmals) richtig einzugeben und Dich mit dem nötigen Nachdruck zu bitten, ihm zu glauben und ihn so zu speichern.

        Das fände ich als Nutzer angenehmer, als einfach von Deinem Formular bevormundet zu werden. Was meinst Du?

        Viele Grüße,
        der Bademeister

        1. 'ǝɯɐu$ ıɥ

          Noch mal kurz ein weiterer Gedanke: Mir als User würde Deine Software suspekt vorkommen, wenn sie einfach was anderes speichert als das, was ich eingegeben habe. Ich würde evtl. folgendes anregen:

          Der OP schrub(tm) das er die Daten so auf's Auge gedrückt bekommen hat, schön das du meinen Gedanken ausformuliert hast...

          SCNR

          ssnɹƃ
          ʍopɐɥs

          --
          The Next Skull On My Necklace Is YOURS
          1. Hi Shadow.

            Der OP schrub(tm) das er die Daten so auf's Auge gedrückt bekommen hat,

            Tatsache, das schrub er und ich daher blödes Zeug. Danke.

            Wenn das so ist wie er es schrub (was ja keiner ahnen konnte ;-)), dann wären aber noch ein paar andere Details interessant. Sofern es sich um einen Einmal-Import handelt, wäre es evtl. ratsam, alle fraglichen Namen (also die, bei denen der Alorithmus unsicher ist, was er tun soll, was immer das am Ende genau heißen mag) zu filtern und händisch durchzusehen. Keine Ahnung, um wie viele Namen es sich hier handelt, aber ich würde mal tippen, dass das ein zumutbarer Aufwand wäre.

            schön das du meinen Gedanken ausformuliert hast...

            Dieser Link verwirrt mich jetzt allerdings...(?)

            Viele Grüße,
            der Bademeister

            1. 'ǝɯɐu$ ıɥ

              Dieser Link verwirrt mich jetzt allerdings...(?)

              UUuups, nicht nur dich.

              ssnɹƃ
              ʍopɐɥs

              --
              Neurotiker bauen Luftschlösser, Psychopaten wohnen darin und Psychiater kassieren die Miete.
            2. 'ǝɯɐu$ ıɥ

              [...] ich würde mal tippen, dass das ein zumutbarer Aufwand wäre.

              Full ACK, besonders wenn Versagen mit einer ".357"Belohnung versehen wird.

              SCNR

              ssnɹƃ
              ʍopɐɥs

              --
              Neurotiker bauen Luftschlösser, Psychopaten wohnen darin und Psychiater kassieren die Miete.
              1. Hi Shadow.

                Full ACK, besonders wenn Versagen mit einer ".357"Belohnung versehen wird.

                Meine Assoziationen Deiner Person mit dem Kampf gegen das Verbrechen verdichten sich. Oder verwechsle ich die Seiten? ;-)

                Viele Grüße,
                der Bademeister

                1. 'ǝɯɐu$ ıɥ

                  Full ACK, besonders wenn Versagen mit einer ".357"Belohnung versehen wird.

                  Meine Assoziationen Deiner Person mit dem Kampf gegen das Verbrechen verdichten sich. Oder verwechsle ich die Seiten? ;-)

                  Welches Seiten?

                  ssnɹƃ
                  ʍopɐɥs

                  --
                  Neurotiker bauen Luftschlösser, Psychopaten wohnen darin und Psychiater kassieren die Miete.
                  1. Welches Seiten?

                    Hmmm. Ich denke, die Ebene der Vernunft teilt die Welt der Kriminalität nur in deren zwei: gut und böse. Das ist elementare Geometrie ;-)

                    Viele Grüße,
                    der Bademeister

                  2. Hi,

                    Meine Assoziationen Deiner Person mit dem Kampf gegen das Verbrechen verdichten sich. Oder verwechsle ich die Seiten? ;-)

                    Welches Seiten?

                    Gute Seiten <--> Schlechte Seiten (GSSS) ;-)

                    cu,
                    Andreas

                    --
                    Warum nennt sich Andreas hier MudGuard?
                    O o ostern ...
                    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  3. Ich hab die anderen Antworten nicht alle gelesen, aber mal ne einfache Frage: Wozu?
    Am ehrlichsten ist es wenn du die Namen so speicherst wie sie eingegeben werden. Alles andere ist Murks, du machst damit nichts besser.
    Wenn jemand seinen Namen klein schreibt, kriegt er ihn auch klein wieder. Wer seine Namensteile iN DeR KiNdErScHrEiBwEiSe angibt, der gibt ihn eben so an. Was denn sonst? Der einzige Effekt ist dass sich jemand fragt warum du die Daten verfälschst.