7 Stimmen

Beste Strategie zum Aufteilen von englischen Namen in Vor- und Nachnamen

Ich habe eine Liste von Namen und muss sie in Vor- und Nachnamen aufteilen. Da einige Namen 2-3 Leerzeichen enthalten, reicht ein einfacher Split für einen Leerzeichen nicht aus.

Welche Art von Heuristiken verwenden die Leute, um die Aufteilung durchzuführen?

Beachten Sie, dass dies keine Duplikate von Fragen sind, die effektiv fragen, wie man an einem Leerzeichen teilt; Ich suche nach Heuristiken und Algorithmen, nicht nach tatsächlicher Code-Hilfe.

Aktualisierung: Ich beschränke das Problemset auf englische Namen. Dies ist alles, was ich lösen muss und wahrscheinlich auch alles, was jeder, der diese (englischsprachige) Frage angeht, benötigen wird.

6voto

fan711 Punkte 716

Ich habe einen sehr interessanten und umfassenden Beitrag zu diesem Thema gelesen:

http://www.w3.org/International/questions/qa-personal-names

Es wird sogar vorgeschlagen, sich zu fragen, ob Sie wirklich separate Felder für Vor- und Nachnamen benötigen. Es scheint von den Zielregionen Ihrer Anwendung abzuhängen.

3voto

SporkInventor Punkte 3120

Zwei Ansätze können helfen, dieses Problem jedoch nicht vollständig lösen.

  1. Programmatisch trennen Sie die einfachen, diejenigen, die nicht einfach sind, werden in eine andere Liste, "verbleibend zu teilen", verschoben. Sortieren Sie diese Liste manuell. Beim manuellen Sortieren können einige Heuristiken entstehen, die codiert werden könnten, was die Größe der verbleibenden Liste weiter reduziert. Wenn dies einmalig ist und die Liste nicht sehr groß ist, wird dies die Arbeit erledigen.
  2. Ein eng verwandtes Problem tritt auf, wenn ein Name aufgeteilt wird, aber Sie nicht wissen, welcher der erste und welcher der letzte ist. Einige Systeme umgehen dieses Problem, indem sie unscharfe Suchen durchführen, sodass, wenn bei einem ersten Versuch keine Übereinstimmung gefunden wird, der Vor- und Nachname vertauscht und erneut versucht wird. Sie haben nicht gesagt, warum Sie die Namen aufteilen müssen. Wenn dies geschieht, um gegen Referenzdaten zu suchen, sollten Sie überlegen, ähnliche unscharfe Suchheuristiken zu verwenden, die das Ausprobieren unterschiedlicher Aufteilungen ermöglichen, anstatt zu versuchen, die Aufteilung sofort korrekt zu erzielen.

Nicht wirklich eine Antwort, aber in diesem Fall gibt es wirklich keine perfekte Antwort.

1voto

Martin Bean Punkte 36399

Verschiedene Länder und Regionen haben unterschiedliche Formate für Namen. In Asien wird zum Beispiel normalerweise der Familienname zuerst genannt und dann folgen die Vornamen. Im Westen hat man die Konvention, den Vornamen und dann den Nachnamen zu verwenden, aber es wird kompliziert, wenn Leute Doppelnamen haben oder Mittelnamen einschließen. Und in manchen Regionen haben die Leute nur einen Namen.

Persönlich glaube ich nicht, dass es einen einzigen Algorithmus gibt, der Ihnen zu 100% genaue Ergebnisse liefern kann, tut mir leid.

0voto

j_random_hacker Punkte 49159

Das Folgende setzt englische Nachnamen voraus. Wenn das nicht der Fall ist, aktualisieren Sie bitte Ihre Frage.

Es ist normalerweise sicher anzunehmen, dass das letzte Leerzeichen das Startsignal für den Nachnamen einer Person ist. Da es jedoch Ausnahmen gibt, wäre eine Strategie, eine große Datenbank bekannter mehrteiliger Nachnamen aus einer anderen Quelle zu erstellen. Sie könnten dann diese Nachnamen überprüfen und sie als Ausnahmen behandeln.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X