# Vorname und Nachname aus einem String bestimmen



## jmarc (1. Jun 2011)

Hi Zusammen,

meine Frage dreht sich weniger um das Programmieren selbst als um die Datenbasis.
Ich soll ein Programm schreiben, dass aus einem String den Vor- und Nachnamen extrahiert oder gegebenenfalls erkennt ob es sich um einen Firmennamen handelt.
Kennt jemand von euch Namensarchive? Bin bei meiner Googlesuche leider über endlos Seiten mit Babynamen gestoßen, allerdings nur auf eine Vornamendatei. Eine txt Datei(csv, xls oder anderes Format tun es natürlich auch) habe ich für Nachnamen allerdings nicht gefunden.
Falls jemand von euch weiß woher ich Archive mit Vor- und Nachnamen bekomme oder ein Programm kennt, dass man per Java oder PL/SQL aufrufen kann und das dann die Auswertung vornimmt, wäre es nett wenn er es hier mitteilt.

Gruß Marc


----------



## chalkbag (1. Jun 2011)

Ich hab's jetzt zweimal gelesen, denke aber das ist der falsche Ansatz. 

Allein mit Nachnamen die es auch als Vornamen gib (oder andersrum) bist du eigentlich schon am Ende.

Also entweder voraussetzten, dass Vor-und Nachname mit einem Zeichen (z.B. ",") getrennt werden, oder noch besser ein dickes Buch mit dem Titel "Normalisierung von Daten" der verantwortlichen Person kräftig über den Schädel ziehen.

Natürlich kannst du es irgendwie mit Namenlisten (welche nie vollständig sein werden, da ich meine Kinder C, Python, Java und Coca Cola nennen werde) versuchen, fehlerfrei wirds trotzdem nicht, dafür aber in schöner Aufwand an Arbeit.

[Edit]
Man könnte den geschilderten Verwendungszweck natürlich verfolgen, wenn man versucht aus einem Freitext Namen zu extrahieren. Leider kann ich da dann nicht helfen.


----------



## jmarc (1. Jun 2011)

Hi,

das Ziel sind natürlich auch keine 100% bei der Erkennung, das vorgegebene Ziel sind 70%.
Leider habe ich keinen Einfluss auf die Daten die kommen. Ansonsten würd ich mir aussuchen, dass auf der Eingabemaske Vor-/Nachme getrennt einzugeben sind. Die Daten kommen leider aus einem anderen System, dass nur ein Feld für den Namen liefert und man möchte den manuellen Aufwand des zerlegens dieses Feldes eben so gut es geht reduzieren.
Da ich eine Vornamen-"Datenbank" gefunden habe mit ca 40000 Einträgen fehlt mir jetzt noch das Pendant im Bereich der Nachnamen.
Gruß Marc


----------



## nrg (4. Jun 2011)

haben denn die Firmenbezeichnungen alle eine Rechtsform am Ende? Wenn ja, würde ich das eher so rum versuchen. bei manchen Namen wirst du dich aber trotzdem recht schwer tun.


----------



## Andi_CH (6. Jun 2011)

Hm - ist "Bär" ein Firmenname -> (Bank Julius Bär) oder ein Familinenname?
Was ist mit Hilton? Siemens?

Meine Empfehlung: such nach einer anderen Möglichkeit das zu unterscheiden, auch wenn es jetzt zusätzlich Arbeit bedeutet und möglicherweise die Daten erweitert werden müssen - das klappt sonst nie. Es ist nämlich doof 100% der Daten sichten zu müssen um die 30% falschen zu finden

Ich bin vor Kurzem einem Schriftstück begegnet unter dem etwas wie (ich erwähne keine realen Kundennamen sondern etwas vergleichbares) "Thomas Martin" stand und konnte es nicht zuordnen - na ja, 2 Tage später wurde ich aufgeklärt - Thomas sei der Familienname und er habe italienische Wurzeln (die schreiben den Familiennamen zuerst). Es gibt aber auch einen Thomas Martin - ich wünsch dir viel Spass beim programmieren ;-)


----------



## jmarc (6. Jun 2011)

nrg hat gesagt.:


> haben denn die Firmenbezeichnungen alle eine Rechtsform am Ende? Wenn ja, würde ich das eher so rum versuchen. bei manchen Namen wirst du dich aber trotzdem recht schwer tun.



Nein es gibt keine Regel wie der String aufgebaut ist  Und darauf habe ich leider auch keinen Einfluss.


----------



## jmarc (6. Jun 2011)

Andi_CH hat gesagt.:


> Hm - ist "Bär" ein Firmenname -> (Bank Julius Bär) oder ein Familinenname?
> Was ist mit Hilton? Siemens?
> 
> Meine Empfehlung: such nach einer anderen Möglichkeit das zu unterscheiden, auch wenn es jetzt zusätzlich Arbeit bedeutet und möglicherweise die Daten erweitert werden müssen - das klappt sonst nie. Es ist nämlich doof 100% der Daten sichten zu müssen um die 30% falschen zu finden
> ...


Hi die Daten werden nicht gesichtet und korrigiert, Sinn ist wohl soviel wie Möglich automatisiert richtig zu haben und der Rest ist eben falsch 
EIgentlich suche ich ja auch nur Vornamen und Nachnamen - "Datenbanken" wie ich es damit umsetzte weiß ich schon ziemlich genau =)


----------



## Andi_CH (6. Jun 2011)

Wende dich an die Telekom - wir hatten damals eine Liste von Namen mit deren 
phonetischer Aussprache. Es ging um eine ganz anderes Thema aber die Namen standen drin.
(Vornamen, Nachnamen und sogar Ortschaftsnamen) Firmenverzeichnis haben die sicher auch.

Nein, gratis ist es nicht, und ich glaube kaum dass hier jemand mehr weiss als Bruder google.

Aber jetzt zu deinem sinnlosen Projekt (ich beweise dir gleich warum sinnlos):

Also du hast 30% Fehler drin - du musst 100% der Daten sichten um die Fehler zu finden, denn es gibt keinen Algorithmus der dir sagt ob etwas richtig oder falsch ist.

Du kannst genau so gut 100% der Daten sichten und gleich manuell eingeben was Sache ist.

Warum also willst du erst ein Programm schreiben?

--

(Komisch, warum gibt es immer wieder Leute die absolut sinnlose Arbeit machen?)


----------



## jmarc (6. Jun 2011)

Andi_CH hat gesagt.:


> Du kannst genau so gut 100% der Daten sichten und gleich manuell eingeben was Sache ist.
> 
> Warum also willst du erst ein Programm schreiben?
> 
> ...


Ich will es nicht machen, aber ich muss es machen. Ich kann natürlich auch sagen, nein Chef mach ich nicht, aber das würde wohl als Arbeitsverweigerung zählen. Das ich es nicht für sinnvoll halte und warum habe ich auch erläutert, ich soll es aber trotzdem machen.
Es wird nichts manuell nachbearbeitet, der "Sinn" soll darin bestehen den Datenmüll der geliefert wird automatisch etwas zu verbessern


----------



## nrg (6. Jun 2011)

naja, shit in shit out . ich sehe darin wenig erfolgschancen. im worst case wäre der output sogar noch "unreiner" als der input. dennoch wünsch ich gutes gelingen .


----------



## jmarc (7. Jun 2011)

danke =) naja ich muss mit dem Output ja nicht leben =)


----------



## tuttle64 (7. Jun 2011)

Wenn es um die Qualität von Adressdaten geht gibt es Firmen wie Uniserv, die kommerzielle Lösungen anbieten. Die Arbeiten aber mit postalischen Adressen. 

Wenn Du nur Vor- und Nachname hast, würde ich zuerst versuchen ein Regelwerk für natürliche und juristische Personen zu erstellen. Z.B. wird ein Vor- Nachname als Firma erkannt, wenn der String  "gmbh" enthält. Sofern das Regelwerk für die juristischen Personen vollständig ist, sollten die nicht als Firma erkannten Elemente natürliche Personen sein. Natürlich müssen auch für die natürlichen Personen ein Regelwerk erstellt werden. Um welche Datenmenge handelt es sich hier?


----------



## nrg (7. Jun 2011)

tuttle64 hat gesagt.:


> z.B. wird ein Vor- Nachname als Firma erkannt, wenn der String  "gmbh" enthält.


->


nrg hat gesagt.:


> haben denn die Firmenbezeichnungen alle eine Rechtsform am Ende? Wenn ja, würde ich das eher so rum versuchen.


->


jmarc hat gesagt.:


> Nein es gibt keine Regel wie der String aufgebaut ist  Und darauf habe ich leider auch keinen Einfluss.



:bae:


----------

