Dit is typisch een Nederlands probleem. Om die reden steek ik m'n licht hier op. Tussenvoegsels als "Van der", etc. zijn gebruikelijk in Nederland. In het buitenland zie je het niet vaak. Ik heb een PHP script ontwikkeld, welke kan detecteren of er een tussenvoegsel in een achternaam zit.
De PHP-script kan twee dingen doen:
1. Een achternaam retourneren, en een lege string dat de tussenvoegsel is.
2. Wanneer er een tussenvoegsel in achternaam bevindt, kan de tussenvoegsel uit achternaam gestript worden, en een achternaam (zonder tussenvoegsel) en tussenvoegsel retourneren.
Hoe de logica hierachter in elkaar zit? Een array bevat alle mogelijke varianten van tussenvoegsels.
De achternaam wordt vergeleken met de mogelijke matches in array. Wanneer er een positief resultaat is, wordt er gekeken bij welk positie van achternaam een positief resultaat (met de array van tussenvoegsels) oplevert, en daaruit de achternaam in twee delen gesplitst. Namelijk tussenvoegsel en achternaam.
In de dataset bevinden er echter ook achternamen als "Janssen Van der Bilt". Dan ontstaat er ook een match, en krijg ik als tussenvoegsel "Van der" en achternaam "Bilt" terug, wat niet de bedoeling is.
Ik heb gedacht om de vergelijking in match te laten beeïndigen bij de eerste spatie, maar dan loop je weer tegen het probleem aan dat sommige tussenvoegsels als "Van der" uit spaties kunnen bestaan.
Tevens zijn er ook achternamen in de dataset aanwezig die "Janssen-Van der Bilt" zijn, zodat match op spaties hier ook niet geheel opgaat.
Ik worstel dus met dergelijke uitzonderingen, en sta open voor manieren om hiermee om te gaan.
De PHP-script kan twee dingen doen:
1. Een achternaam retourneren, en een lege string dat de tussenvoegsel is.
2. Wanneer er een tussenvoegsel in achternaam bevindt, kan de tussenvoegsel uit achternaam gestript worden, en een achternaam (zonder tussenvoegsel) en tussenvoegsel retourneren.
Hoe de logica hierachter in elkaar zit? Een array bevat alle mogelijke varianten van tussenvoegsels.
De achternaam wordt vergeleken met de mogelijke matches in array. Wanneer er een positief resultaat is, wordt er gekeken bij welk positie van achternaam een positief resultaat (met de array van tussenvoegsels) oplevert, en daaruit de achternaam in twee delen gesplitst. Namelijk tussenvoegsel en achternaam.
In de dataset bevinden er echter ook achternamen als "Janssen Van der Bilt". Dan ontstaat er ook een match, en krijg ik als tussenvoegsel "Van der" en achternaam "Bilt" terug, wat niet de bedoeling is.
Ik heb gedacht om de vergelijking in match te laten beeïndigen bij de eerste spatie, maar dan loop je weer tegen het probleem aan dat sommige tussenvoegsels als "Van der" uit spaties kunnen bestaan.
Tevens zijn er ook achternamen in de dataset aanwezig die "Janssen-Van der Bilt" zijn, zodat match op spaties hier ook niet geheel opgaat.
Ik worstel dus met dergelijke uitzonderingen, en sta open voor manieren om hiermee om te gaan.