Gender API
Tilmeld dig gratis
Sprog expand_more

Del et fuldt navn i for- og efternavn

Ét kombineret navnefelt, ét API-kald, to rene felter — partiklerne, titlerne og den omvendte rækkefølge, som en håndskrevet deling går i stykker på, er allerede håndteret, og kønnet er i samme svar.

Senest gennemgået 2026-09-01 Skrevet og vedligeholdt af teamet bag Gender-API.com

Det korte svar

  • Send det kombinerede felt og få first_name og last_name tilbage — plus kønnet, nøjagtigheden og antallet af samples, i samme svar, for én credit.
  • Navnepartikler (“van der”, “von den”, “de la”) og akademiske titler og jobtitler håndteres i stedet for at blive en faldgrube — og et omvendt “Rossi, Andrea” løses også, ud af navnedata og ikke ud af kommaet.
  • Hvor begge halvdele kunne være det ene eller det andet, kommer afgørelsen fra, hvor ofte hver del optræder som fornavn mod hvor ofte den optræder som efternavn — ikke fra placeringen i strengen.
  • Strict mode returnerer et tomt efternavn i stedet for et gæt, når efternavnet ikke findes i databasen, så du kan se hullet.

Hvorfor deling ved mellemrummet ikke virker

Næsten enhver kodebase har en version af dette: tag navnefeltet, del på blanktegn, første element er fornavnet, sidste er efternavnet. Det går gennem review, fordi testdata er engelsk, og det går tavst galt ved den første kunde, der ikke er.

Tre regler anvendt på det fulde navn “Anna van der Berg”. Deling ved det første mellemrum giver fornavnet Anna og efternavnet “van”: forkert. Deling ved det sidste mellemrum giver fornavnet “Anna van der” og efternavnet Berg: også forkert. At genkende “van der” som en partikel, der hører til efternavnet, og tjekke hver kandidat mod fornavns- og efternavnsdatabaserne giver fornavnet Anna og efternavnet “van der Berg”. De to første regler er, hvad en håndskrevet deling normalt gør, og de fejler tavst.
Samme navn, tre regler, to forkerte svar — og ingen af dem giver en fejl.

Det dyre er måden, det fejler på. Intet kaster en exception. Du står med en database fuld af mennesker, hvis efternavn er “van”, en masseudsendelse der hilser dem sådan, og ikke én logrække der peger på årsagen.

Hvad der afgør delingen

Fire ting, i den rækkefølge — og den sidste kan en regelbaseret deling ikke have, fordi den kræver viden om, hvordan navne faktisk er fordelt.

Fire former, et kombineret navnefelt kommer ind i, og hvad der afgør hver deling. “Rossi, Andrea”: kommaet fjernes, og rækkefølgen læses ud af navnedata i stedet for at antages ud fra placeringen. “Prof. Dr. Anna Maria de la Cruz”: titler fjernes ud fra en kendt liste, partiklen bliver hos efternavnet, og begge fornavne bevares. “Andrea Rossi”, hvor begge dele er plausible navne: hvor ofte hver del optræder som fornavn vejes mod hvor ofte den optræder som efternavn, så placeringen afgør det ikke. “Markus Stefan Nonexistent” med strict mode slået til: efternavnet findes ikke i databasen, så det kommer tilbage tomt frem for gættet.
Fire virkelige former af samme felt, og hvad der løser hver af dem.
  • Titlerne ryger af først. “Prof. Dr.”, “Dipl.-Ing.”, “Managing Director” og resten af en vedligeholdt liste fjernes, før noget andet afgøres, så de aldrig ender i et navnefelt.
  • Partiklerne bliver hos efternavnet. “van”, “van der”, “van den”, “von”, “von der”, “de”, “de la”, “du”, “le”, “di”, “des” og deres slægtninge genkendes som en del af det efternavn, de hører til.
  • Tegnsætningen får ikke ansvaret for rækkefølgen. Kommaet i “Rossi, Andrea” fjernes sammen med titlerne, og rækkefølgen læses derefter ud af navnedata — et komma er en formateringsvane, og rigtig mange lister bruger det inkonsekvent. I CSV- og Excel-upload kan du i stedet oplyse kolonnens rækkefølge, og en oplyst rækkefølge bruges, som den er oplyst.
  • Tvetydigheden afgøres af data. Hver kandidatdel slås op i både fornavns- og efternavnsdatabasen, og den del, der opfører sig langt mere som et efternavn end som et fornavn, er efternavnet.

Send en landekode med, og samme sammenligning sker mod det land i stedet for mod alle lande på én gang — og det er det, du vil, når du allerede ved, hvor listen kommer fra.

Sådan kalder du det

To endpoints gør dette, og hvilket du vil have, afhænger af, om du har brug for strict mode.

v2 — det nuværende API

POST https://gender-api.com/v2/gender/by-full-name
{ "full_name": "Anna van der Berg", "country": "NL" }
{
    "result_found": true,
    "first_name": "Anna",
    "last_name": "van der Berg",
    "gender": "female",
    "probability": 0.98,
    "details": { "credits_used": 1, "samples": 8961, "duration": "33ms" }
}

v1 — når du har brug for strict mode

Strict mode findes kun på v1-delingsendpointet. Hvis et tomt efternavn betyder mere for dig end at ligge på det nyere API, tag det her.

GET https://gender-api.com/get?split=Anna%20van%20der%20Berg&strict=true&key=…

Først: indeholder den kolonne overhovedet fulde navne?

Værd at vide, før du behandler en fil, du ikke selv har lavet. Send en stikprøve på op til 100 værdier, og du får tilbage, om de ser ud som fulde navne — og det koster ingen credits.

POST https://gender-api.com/v2/name-format-detect
{ "names": ["Sophie Jones", "Lorenzo Carlos", "Anna van der Berg"] }
{
    "is_fullname": true,
    "fullname_probability": 1,
    "validHints": [ … ]
}

Vær klar over, hvad dette måler: fullname_probability er andelen af de sendte værdier, der består af mere end ét ord, og is_fullname er den andel over 0,6. Det er en vurdering af kolonnen, ikke af hvert enkelt navn — præcis hvad du har brug for, når du afgør, om der overhovedet skal deles, og ingen erstatning for selve delingen.

En blandet kolonne er også et rigtigt svar: nogle lister har “Thomas” og “John Smith” side om side, og delingen klarer begge, uden at du sorterer dem først.

Hvor den stadig har brug for din hjælp

En deling, der hævdede at klare alle navne i verden, ville lyve. Det er de tilfælde, hvor ingen regel løser strengen af sig selv.

Hvis du styrer formularen, er den billigste løsning slet ikke et API: to felter i stedet for ét, eller en oplysning om at formatet er “fornavn, efternavn”. Alt nedenfor gælder, når du ikke styrer den.

  • Efternavnet først. Med eller uden komma vinder den læsning, navnedata understøtter, over en regel om placering — og den rammer rigtigt langt oftere end forkert, men det er ingen garanti. Ved du, at hele kolonnen har efternavnet først, så oplys det i uploaden i stedet for at stole på tegnsætningen.
  • Navne på ét ord. Et mononym har intet efternavn at finde. Efternavnet kommer tilbage tomt frem for at fornavnet skæres i to.
  • Inkonsekvent translitteration. Samme navn stavet på tre måder gennem en liste løses som tre navne, for det er, hvad det er i data.
  • Dobbelte fornavne uden bindestreg. “Anna Maria” holdes sammen, hvor data understøtter det, men en liste, der blander “Anna Maria Rossi” og “Anna Rossi”, bliver ikke ensartet.

I alle fire tilfælde indsnævrer en landekode problemet, og strict mode gør de usikre rækker synlige i stedet for stille plausible. Et tomt felt, du kan filtrere, slår et forkert, du ikke opdager.

En hel kolonne på én gang

Ligger navnene i et regneark og ikke i en applikation, har du ikke brug for API'et. Upload filen, peg på kolonnen med de kombinerede navne, og de delte dele kommer tilbage som nye kolonner ved siden af dine data — op til 10,000,000 rækker pr. CSV eller 100,000 pr. Excel-projektmappe, og din projektmappe kommer tilbage urørt.

Ofte stillede spørgsmål

Hvorfor ikke bare dele ved mellemrummet?

Fordi mellemrummet ikke er grænsen. “Anna van der Berg” giver efternavnet “van” ved det første mellemrum og fornavnet “Anna van der” ved det sidste. Begge er forkerte, begge ser fine ud i en test med engelske navne, og begge fejler tavst i det øjeblik, et hollandsk, tysk, fransk, spansk eller portugisisk efternavn dukker op.

Hvad afgør, hvor delingen falder?

Først fjernes kendte titler, og navnepartikler som “van der”, “von den” og “de la” bliver hos efternavnet. Derefter vejes, hvor ofte hver del optræder som fornavn, mod hvor ofte den optræder som efternavn — det er altså ikke ordets placering, der afgør det, og heller ikke tegnsætningen: et komma fjernes sammen med titlerne i stedet for at læses som markør for “efternavn først”. I CSV- og Excel-upload kan du oplyse kolonnens rækkefølge direkte, og så bruges den, som du har oplyst den.

Hvad sker der, når efternavnet ikke findes i databasen?

Det er, hvad strict mode er til, på v1-endpointet. Med strict mode slået til kommer efternavnet tilbage tomt frem for gættet, så hullet er synligt i dine data. Uden det trækkes der alligevel et efternavn ud, så godt det kan.

Får jeg også kønnet?

Ja, i samme svar og for den samme ene credit — sammen med antallet af samples og nøjagtigheden bag. At dele navnet og bestemme kønnet er ét kald, ikke to.

Hvordan ved jeg, om min kolonne overhovedet indeholder fulde navne?

Send en stikprøve på op til 100 værdier til endpointet name-format-detect. Det koster ingen credits og svarer, om kolonnen ser ud som fulde navne, fornavne eller en blanding — nyttigt, før du beslutter, hvordan filen skal behandles.

Hvad koster delingen?

Én credit pr. navn, det samme som en almindelig kønsbestemmelse, fra €0.35 pr. 1.000. Credits købes på forhånd og udløber ikke.

Klarer den navne, der ikke er vestlige?

Delvist, og det er bedre at kende grænserne. Navne skrevet med efternavnet først uden separator, navne på ét ord og navne translittereret inkonsekvent er de svære tilfælde — ingen regel løser dem ud fra strengen alene. At sende en landekode med hjælper, for så vejes delene mod det land i stedet for mod alt.

PRØV DET PÅ DE NAVNE, DER FÅR DIN DELING TIL AT GÅ I STYKKER

100 gratis forespørgsler om måneden, uden kort. Tag de tyve rækker, din nuværende kode får forkert, og start med dem.

Chat