Rozdělte celé jméno na jméno a příjmení
Jedno sloučené jmenné pole, jedno volání API, dvě čistá pole — přídomky, titulky a obrácené pořadí, na kterých ručně napsané rozdělení ztroskotá, jsou už vyřešené a pohlaví je ve stejné odpovědi.
Krátká odpověď
- Pošlete sloučené pole a dostanete zpět first_name a last_name — a k tomu pohlaví, přesnost a počet vzorků, ve stejné odpovědi, za jeden kredit.
- Přídomky („van der“, „von den“, „de la“) i akademické a pracovní titulky se zpracují, místo aby byly překážkou — a obrácené „Rossi, Andrea“ se také vyřeší, z dat o jménech, a ne z čárky.
- Tam, kde obě poloviny mohou být jedno i druhé, vychází rozhodnutí z toho, jak často se každá část vyskytuje jako jméno proti tomu, jak často jako příjmení — ne z její pozice v řetězci.
- Strict mode vrátí prázdné příjmení místo dohadu, když příjmení není v databázi, takže mezeru vidíte.
Proč rozdělení na mezeře nefunguje
Téměř každá kódová základna má svou verzi: vezmi jmenné pole, rozděl na bílých znacích, první prvek je jméno, poslední příjmení. Projde revizí, protože testovací data jsou anglická, a tiše se pokazí u prvního zákazníka, který anglický není.
Drahé to dělá způsob, jakým to selže. Nic nevyhodí výjimku. Zůstane vám databáze plná lidí s příjmením „van“, hromadná korespondence, která je tak oslovuje, a ani jediný řádek logu ukazující na příčinu.
Co rozhoduje o rozdělení
Čtyři věci, v tomto pořadí — a poslední z nich nemůže rozdělení založené na pravidlech mít, protože vyžaduje znalost toho, jak jsou jména skutečně rozložena.
- Titulky jdou dolů první. „Prof. Dr.“, „Dipl.-Ing.“, „Managing Director“ a zbytek udržovaného seznamu se odstraní, ještě než se rozhodne cokoli jiného, aby nikdy neskončily ve jmenném poli.
- Přídomky zůstávají u příjmení. „van“, „van der“, „van den“, „von“, „von der“, „de“, „de la“, „du“, „le“, „di“, „des“ a jim podobné se rozpoznají jako část příjmení, ke kterému patří.
- Interpunkci se pořadí nedůvěřuje. Čárka v „Rossi, Andrea“ se odstraní spolu s titulky a pořadí se pak čte z dat o jménech — čárka je zvyk formátování a mnoho seznamů ji používá nekonzistentně. Při nahrávání CSV a Excelu můžete místo toho uvést pořadí sloupce, a uvedené pořadí se použije tak, jak bylo uvedeno.
- Nejednoznačnost rozhodnou data. Každá kandidátská část se vyhledá jak v databázi jmen, tak v databázi příjmení, a část, která se chová výrazně více jako příjmení než jako jméno, je příjmení.
Předejte kód země a stejné srovnání se provede proti té zemi, a ne proti všem zemím zároveň — což je přesně to, co chcete, když už víte, odkud seznam přišel.
Jak to zavolat
Dělají to dva endpointy a který si vyberete, závisí na tom, jestli potřebujete strict mode.
v2 — aktuální 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 — když potřebujete strict mode
Strict mode existuje pouze na endpointu rozdělení v1. Pokud je pro vás prázdné příjmení důležitější než být na novějším API, vezměte tento.
GET https://gender-api.com/get?split=Anna%20van%20der%20Berg&strict=true&key=…
- reference v2 pro celá jména — pole, chyby, popis OpenAPI.
- reference v1 pro rozdělení — parametr strict a jeho přesné odpovědi.
- Oficiální klienti pro PHP, Python, Node, Java, Go, Ruby, Rust, Perl a .NET.
Nejprve: obsahuje ten sloupec vůbec celá jména?
Dobré vědět, než zpracujete soubor, který jste sami nevytvořili. Pošlete vzorek až 100 hodnot a dostanete zpět, jestli vypadají na celá jména — a nestojí to žádné kredity.
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": [ … ]
}
Mějte jasno v tom, co to měří: fullname_probability je podíl poslaných hodnot, které mají více než jedno slovo, a is_fullname je tento podíl nad 0,6. Je to posouzení sloupce, ne každého jednotlivého jména — přesně to, co potřebujete, když se rozhodujete, jestli vůbec rozdělovat, a není to náhrada samotného rozdělení.
Smíšený sloupec je také platná odpověď: některé seznamy mají „Thomas“ a „John Smith“ vedle sebe a rozdělení zvládne obojí, aniž byste je předem třídili.
Kde stále potřebuje vaši pomoc
Rozdělení, které by tvrdilo, že zvládne každé jméno na světě, by lhalo. Toto jsou případy, kdy žádné pravidlo řetězec samo nevyřeší.
Pokud formulář ovládáte vy, nejlevnějším řešením není vůbec API: dvě pole místo jednoho nebo nápověda, že formát je „jméno, příjmení“. Vše níže platí pro případ, kdy ho neovládáte.
- Příjmení první. S čárkou nebo bez ní vyhrává čtení, které podporují data o jménech, nad pravidlem o pozici — a bývá správné výrazně častěji, než se mýlí, ale zaručeno to není. Pokud víte, že celý sloupec má příjmení první, uveďte to při nahrávání, místo abyste se spoléhali na interpunkci.
- Jednoslovná jména. U mononyma není žádné příjmení k nalezení. Příjmení se vrátí prázdné, místo aby se jméno rozřízlo na dvě.
- Nekonzistentní transliterace. Stejné jméno zapsané v seznamu třemi způsoby se vyřeší jako tři jména, protože přesně tím v datech je.
- Složená křestní jména bez spojovníku. „Anna Maria“ zůstane pohromadě tam, kde to data podporují, ale seznam míchající „Anna Maria Rossi“ a „Anna Rossi“ jednotný nebude.
Ve všech čtyřech případech kód země problém zúží a strict mode udělá nejisté řádky viditelnými místo tiše pravděpodobnými. Prázdné pole, které dokážete odfiltrovat, je lepší než špatné, které si nevšimnete.
Celý sloupec najednou
Pokud jsou jména v tabulce, a ne v aplikaci, API nepotřebujete. Nahrajte soubor, ukažte na sloupec se sloučenými jmény a rozdělené části se vrátí jako nové sloupce vedle vašich dat — až 10,000,000 řádků na CSV nebo 100,000 na sešit Excelu, a váš sešit se vrátí neporušený.
- Nahrát soubor CSV nebo Excel — bez kódu, s původním formátováním zachovaným.
- Hromadné určení pohlaví — limity, cena při objemu a odpovědi pro nákup.
- Pracujete v tabulce nebo v CRM? Existují hotové integrace pro Excel, Google Sheets, Shopify, HubSpot, Salesforce, Zapier a další.
Často kladené otázky
Proč prostě nerozdělit na mezeře?
Protože hranicí není mezera. „Anna van der Berg“ dá na první mezeře příjmení „van“ a na poslední jméno „Anna van der“. Obojí je špatně, obojí vypadá v testu s anglickými jmény dobře a obojí tiše selže ve chvíli, kdy přijde nizozemské, německé, francouzské, španělské nebo portugalské příjmení.
Co rozhoduje o tom, kde se rozdělí?
Nejprve se odstraní známé titulky a přídomky jako „van der“, „von den“ a „de la“ zůstanou u příjmení. Poté se váží, jak často se každá část vyskytuje jako jméno, proti tomu, jak často se vyskytuje jako příjmení — nerozhoduje tedy pozice slova a ani interpunkce: čárka se odstraní spolu s titulky, místo aby se čtla jako značka „příjmení první“. Při nahrávání CSV a Excelu můžete pořadí sloupce uvést přímo, a pak se použije tak, jak jste ho uvedli.
Co se stane, když příjmení není v databázi?
Právě pro to je strict mode, na endpointu v1. Se zapnutým strict mode se příjmení vrátí prázdné, ne uhádnuté, takže mezera je ve vašich datech vidět. Bez něj se příjmení přesto vyextrahuje, jak nejlépe to jde.
Dostanu i pohlaví?
Ano, ve stejné odpovědi a za stejný jeden kredit — spolu s počtem vzorků a přesností za tím. Rozdělit jméno a určit pohlaví je jedno volání, ne dvě.
Jak zjistím, jestli můj sloupec vůbec obsahuje celá jména?
Pošlete vzorek až 100 hodnot na endpoint name-format-detect. Nestojí žádné kredity a odpoví, jestli sloupec vypadá na celá jména, křestní jména nebo směs — užitečné, než se rozhodnete, jak soubor zpracovat.
Kolik stojí rozdělení?
Jeden kredit za jméno, stejně jako běžné určení pohlaví, od €0.35 za 1 000. Kredity se kupují předem a nepropadají.
Zvládne i nezápadní jména?
Částečně — a je lepší znát hranice. Jména psaná příjmením první bez oddělovače, jednoslovná jména a nekonzistentně transliterovaná jména jsou obtížné případy; žádné pravidlo je nevyřeší jen ze samotného řetězce. Poslat kód země pomáhá, protože dotaz pak váží části proti té zemi, a nikoli proti všemu.
VYZKOUŠEJTE TO NA JMÉNECH, NA KTERÝCH VAŠE ROZDĚLENÍ SELŽE
100 dotazů zdarma měsíčně, bez platební karty. Vezměte těch dvacet řádků, které váš současný kód dělá špatně, a začněte jimi.