Hét vraag- en antwoordplatform van Nederland

Hoe destilleer ik een huisnummer en -toevoeging uit een adres?

Ik moet een computerprogramma schrijven dat een huisnummer, en los daarvan ook de huisnummer-toevoeging herkent uit een adresregel.
Het betreft daarbij alleen nederlandse adressen.

De routine moet ook om kunnen gaan met exoten als:
"Plein 1944 1a 1e etage" (huisnummer=1, toevoeging="a 1e etage") en
"Plein 1944 1 a 1e etage" (let op de spatie tussen de '1' en de 'a')

Ozewiezewozewiezewallakristallix
19 uur geleden
Het gaat me om een goed idee betreffende de aanpak. Het hoeft geen uitgewerkt programma te zijn.
Mocht je je daar tóch op stuk willen bijten.... het moet uiteindelijk een cobol-routine worden....
LeonardN
15 uur geleden
Mag het adres eerst weer in een API teruggevoerd worden (adressen checker)? Want ik zou zelf niet eens weten of de straat nu "Plein" of "Plein 1944" is. Door de context haal ik het er wel een soort uit, maar dat lijkt me lastig te verwoorden in code.
Of ga je wellicht gebruik maken van een lijst van alle adressen (straatnamen) in NL?
Nog een idee/vraag. Zit de postcode in de adresregel? Daarmee kan je natuurlijk ook een hoop meer zekerheid mee krijgen, ten eerste welk deel de straatnaam is, ten tweede waar de range aan huisnummers ligt.
En zijn de adressen in een standaardformaat? Of is het maar net wat iemand heeft ingevuld, of waar het adres vandaan gevist is?
Ozewiezewozewiezewallakristallix
10 uur geleden
De context is een programma dat een bestand verwerkt. De adressen in dat bestand zijn gevuld met handmatige invoer. Er is dus geen vast format beschikbaar. Maar zelfs al zou dat wel het geval zijn, dan zijn zelfs de officiële schrijfwijzen erg lastig te interpreteren door een computer. Hier een aantal schrijfwijzen die ik tegengekomen ben: - "Notenkrakerstraat 24" (huisnummer=24, geen toevoeging)
- "Stationsstraat 7a" (huisnummer=7, toev.="a")
- "Molenweg 3 hs" (huisnummer=3, toev.="hs")
- "18 Septemberplein 12" (huisnummer=12, geen toevoeging)
- "Kerkstraat 2-2" (huisnummer=2, toev.="-2")
- "Hoofdstraat 2 - 2" (huisnummer=2, toev.="- 2")
- "Plein 1944 1a 1e etage" (huisnummer=1, toev.="a 1e etage")
- "Plein 1944 1 a 1e etage" (merk de spatie op tussen de '1' en de 'a') Een oplossing zou kunnen zijn er een tabel onder te hangen met daarin alle straatnamen van Nederland. En dan daar alle adressen tegen matchen. Maar de data in zo'n tabel moet onderhouden worden en dat werkt in onze omgeving niet echt praktisch. Ik zoek daarom iets slims wat op basis van alleen het adres werkt, maar tegelijk wel altijd werkt
Ozewiezewozewiezewallakristallix
10 uur geleden
"Mag het adres eerst weer in een API teruggevoerd worden ?" Goede suggestie, maar helaas: Nee !
Om meerdere redenen niet. Op de eerste plaats draait de code op een mainframe. Die heeft geen lijntjes lopen naar willekeurige API's op het internet. Ten tweede loop je al snel tegen de AVG op wanneer je adressen van mensen het net op gaat slingeren.
erotisi
10 uur geleden
Is 1a en 1 a echt een ander adres?
Ozewiezewozewiezewallakristallix
8 uur geleden
Nee, het zijn voorbeelden (testgevallen) van formaten waarin ik adressen aangeleverd krijg.
Cryofiel
8 uur geleden
Hoe erg is het als de uitkomst onjuist is? Mag het programma een (klein) aantal adressen als "ondetermineerbaar" bestempelen, en die in een aparte lijst zetten ter handmatige verwerking?
Cryofiel
8 uur geleden
Zoek de eerste serie niet-cijfers. Alles tot en met die serie is de straatnaam. Zo pak je "12 septemberlaan" mee. Alles vanaf het eerste cijfer daarna is kandidaat huisnummer+toevoeging. (a)
Zoek hierin de eerste serie cijfers. Dat is je kale huisnummer. Maar...als dit kale huisnummer een jaartal ZOU KUNNEN zijn, EN het wordt gevolgd door een serie cijfers, dan is dit alsnog géén kaal huisnummer, maar onderdeel van de straatnaam. Voeg de eerste cijferreeks dan toe aan de straatnaam en ga naar (a). Kan het kale huisnummer geen jaartal zijn, OF wordt het NIET gevolgd door een serie cijfers, dan heb je het kale huisnummer te pakken. De rest is toevoeging. Zo pak je "Plein 1944" en "Laan 1940-1945" mee (als je de '-' als spatie behandelt, zeg maar). Kom je hiermee in de buurt?
Cryofiel
8 uur geleden
Overigens... de API van LeonardN is ook te koop, dus lokaal te installeren. Dan gaat er niets naar buiten en vormt de AVG geen probleem.

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Geef als eerste antwoord

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 5000
Gekozen afbeelding