Open Source Adresskorrektur / Parser mit Fuzzy Matching

8

Hier ist eine kleine detaillierte Frage zum Parsen / Geokodieren von Adressen, die meiner Meinung nach für viele Benutzer interessant sein sollte.

Daher bin ich im Wesentlichen neugierig zu wissen, ob jemand Erfahrung mit der Installation, Erstellung oder Erweiterung eines OpenSource-Geokodierungs- und / oder Adresskorrektur-Tools hat.

Ich bin mir des Geocoders bewusst: US 2.0-Initiativen, von denen ich denke, dass sie von Geocommons gepflegt werden, aber ich bin mir nicht sicher, ob es bessere Alternativen oder andere Open Source-Tools gibt, ob ihr System effektiv erweitert werden kann oder ob es Entwicklungen gibt, die mir möglicherweise nicht bekannt sind.

Meine Ziele sind wie folgt:

  1. Ich benötige ein hochpräzises Tool, mit dem Standortdaten, die von Benutzern aus einem einzigen Eingabefeld eingegeben werden, automatisch in Echtzeit und mit dem höchstmöglichen Volumen analysiert und / oder standardisiert werden können.
  2. Eingabedaten sind eine oder mehrere der folgenden Adresskomponenten: Postleitzahl, Landkreis, Stadt, Straße, Adresse, Bundesland.
  3. Eingabedaten müssen auch in der Lage sein, in unserer benutzerdefinierten Geonamen-Datenbank nachzuschlagen. Beispielsweise kann er den Namen einer Nachbarschaft oder eines Nicht-USPS-Standortnamens eingeben, die natürlich keine Standardadressvariablen sind.

Angesichts dieser Ziele bin ich mir der Tatsache bewusst, dass jeder Benutzer seine Daten in verschiedenen Formaten eingibt, wenn er ein einzelnes Formularfeld für eine solche Suche erhält, während der andere Faktor im Allgemeinen in Rechtschreibfehler gerät.

Neben der Verwendung der Volkszählungsdatenbank als Kern für die gültigen Adressen / Bereiche (alles, was Geocoder: US meiner Meinung nach tut, glaube ich, dass eine Art von Fähigkeit, bekannte "Aliase" zu definieren, ideal für bekannte Rechtschreibfehler von Straßennamen wäre. Gleiches gilt für Dinge wie ein Benutzer, der Ave im Vergleich zu Ave. im Vergleich zu Avenue eingibt. Denken Sie nicht, dass solche Alias-Funktionen mit dem Tool Geocoder: US vollständig möglich sind.

Während die oben genannten Elemente in der Tat die meisten Probleme lösen können, denke ich, dass eine Art effektiver Fuzzy-Matching existieren muss, wenn die Eingabe nicht mit einem ausreichend hohen Alter von% übereinstimmen kann.

Wenn Eingabedaten basierend auf einigen angenommenen Regeln effektiv in einzelne Elemente zerlegt werden können und dann eine Art "Match Score" -Komponente zum Fuzzy Match verwendet wird, müssten alle nicht übereinstimmenden Elemente auf den Elementen basieren, die bereits mit einem High "abgeglichen" wurden Grad.

Zum Beispiel: Ich gehe davon aus, dass die Geokodierung so effektiv wie möglich ist. Wir müssen zuerst einzelne Datenelemente aus dem Eingabefeld extrahieren, um den "Bereich" einzugrenzen, für den der Benutzer Ergebnisse finden möchte. Meiner Ansicht nach bedeutet dies, dass eine 5-stellige Nummer als Postleitzahl angenommen werden kann, wenn es ein anderes Element wie einen Städtenamen gibt, das mit der Postleitzahl übereinstimmt, die Annahme, dass wir den "Bereich" korrekt haben ... Als nächstes verwenden wir den Rest Daten, um zu versuchen, eine vollständige, teilweise oder unscharfe Übereinstimmung zu finden, Punkte zu erzielen und mögliche Ergebnisse aufzulisten.

Auf jeden Fall - ich würde mich sehr freuen, wenn hier jemand Ratschläge geben könnte, zusammen mit Ratschlägen, Leistungsstatistiken oder bevorstehenden Entwicklungen, von denen er weiß, dass sie meine Richtung ändern könnten (wie die Verwendung von Postgis 2.0 als Mittel für verbesserte Matching-Funktionen).

NetConstructor.com
quelle

Antworten:

7

Sie können Gisgraphie versuchen. Es enthält einen Adressparser, einen Geocoder und einen Reverse-Geocoder. (Verwenden Sie den kostenlosen Dienst nicht für Batch, sondern installieren Sie ihn auf Ihrem Server). Volltextsuche mit Synomen, Rechtschreibprüfung kann wahrscheinlich auch helfen. Es gibt keine Probleme, wenn Sie große Volumes benötigen, da Gisgraphy als Webservices mit verschiedenen Formaten (XML, JSON, PHP, Python, Ruby, YAML, GeoRSS und Atom) verfügbar ist, damit es skaliert werden kann

Gisgraphie

Gisgraphie
quelle
6

Ich habe einige Erfahrungen damit. Bei SmartyStreets (wo ich arbeite) erstellen wir eine Software zur Adressüberprüfung namens LiveAddress . (Es ist eigentlich alles webbasiert; es muss nicht heruntergeladen oder installiert werden.)

Ich versichere Ihnen, dass die Validierung und Standardisierung von Adressen viele Herausforderungen mit sich bringt. Noch schwieriger wird es, wenn Sie versuchen, die Adresse selbst in bestimmte Komponenten zu zerlegen oder eine "Fuzzy-Suche" zu implementieren. Aber keine Angst ... wir haben ein offizielles Verfahren zur Durchführung der Freiform-Adressvalidierung inoffiziell veröffentlicht . Obwohl unser Service nicht Open Source ist, sind wir ziemlich offen dafür, unser Fachwissen mit der Community zu teilen und neue Standards für Qualität und Leistung zu setzen.

Wie auch immer, ich denke, Sie werden diese Seite etwas hilfreich finden. Eine API wie unsere verarbeitet Tausende und Abertausende von Anfragen pro Sekunde, da wir landesweit auf drei Rechenzentren verteilt sind . LiveAddress sollte in der Lage sein, das "Fuzzy Matching" für Sie zu erledigen und nur gültige Ergebnisse zurückzugeben, die fehlenden Teile auszufüllen und Rechtschreibfehler zu korrigieren.

Es berücksichtigt offizielle USPS-Aliase und sogar inoffizielle Straßennamen oder Ortsnamen und ordnet sie offiziellen, lieferbaren Endpunkten zu. Für Ihre eigenen benutzerdefinierten Namen müssen Sie diese jedoch in Ihre eigene Datenbank einarbeiten.

Ein letztes Wort auch: Ich möchte hinzufügen, dass Open Source-Tools zwar großartig und kostenlos sind, Sie sie aber wahrscheinlich gegen einen Aspekt von Service, Leistung und Gesamtqualität eintauschen werden. Selbst wenn Sie den Service intern hosten, sind Sie dafür verantwortlich, ihn zu warten und die Anforderungen zu erfüllen, die in Ihrem Fall nach einer hohen Nutzlast klingen.

Gerne beantworte ich Ihre eigenen Fragen zu Adressen persönlich. Ich denke, die vor Ihnen liegende Aufgabe ist wirklich sehr interessant und kann ohne die richtigen Ressourcen überwältigend erscheinen.

Matt
quelle
3

Die Adressstandardisierung (AKA-Adresskorrektur, Adressnormalisierung, Adressanalyse) ist keine einfache Aufgabe. Wenn Sie schnelle Finger und viel Kreativität haben, kann ein sehr feiner REGEX zusammengestellt werden, der bemerkenswert gute Arbeit leisten kann. Es behandelt jedoch nicht sehr gut die Randfälle, in denen die Ergebnisse mehrdeutig sein können. Der Grund ist ein Mangel an Kontext. Sie müssen wissen, wie das richtige Ergebnis aussieht, um zu wissen, dass Sie die Genauigkeit erreicht haben, die Sie benötigen. Sicherlich ist es besser, eine Liste mit 100.000 Adressen zu erstellen und 70% davon genau zu analysieren (nur mit REGEX), als keine von ihnen zu analysieren. Aber wie lange dauert es, die verbleibenden "harten" Adressen zu analysieren? EINE LANGE ZEIT. Sie erfordern eine große Anzahl spezialisierter Analysefunktionen, da der Kontext oder die "richtige Antwort" unbekannt ist. Hier bietet sich die Adressüberprüfung an, da der "Kontext" bekannt ist. Die vollständig standardisierte und korrigierte Adresse ist bekannt und die Masterliste kann zum Vergleichen der Ergebnisse verwendet werden.

Ich werde oft gefragt, da ich bei Smartystreets mit der Adressüberprüfung arbeite .

Jeffrey
quelle
2

Eine Herausforderung für Adressüberprüfungsdienste besteht darin, dass einige Adressen gültig sind, jedoch nicht von USPS bereitgestellt werden können. Ich lebe in einer kleinen Stadt, in der USPS keine Lieferung nach Hause anbietet. Alle Bewohner müssen Postfächer benutzen. Sowohl UPS als auch FedEx liefern jedoch zu uns nach Hause, sodass unsere Adressen eindeutig etwas bedeuten. ;-);

In der SmartyStreets-Demo "LiveAddress" wird meine Privatadresse jedoch nicht erkannt. Dies stellt die Frage, ob ich mich auf eine API verlassen möchte, die von der USPS-Überprüfung abhängt. Ich denke daran, den Open-Source-Weg für ein Projekt zu gehen, das ich gerade beginne.

Andrew Basile
quelle
1

Ich bin auf DataMatch by Data Ladder gestoßen , ein hervorragendes Tool für Fuzzy-Matching und Adressstandardisierung / Adressanalyse, das im gesamten Unternehmen verwendet wird und in dieser Situation sehr gut funktioniert. Sie bieten eine kostenlose Testversion für neue Benutzer.

Tatsächlich wurde eine unabhängige verifizierte Bewertung der Software durchgeführt, um sie mit den wichtigsten Softwaretools von IBM und SAS zu vergleichen. Am Curtin University Center für Datenverknüpfung in Australien wurde eine Studie durchgeführt, die den Abgleich von 4,4 Millionen Datensätzen simulierte. Es wurde ermittelt, welche Anbieter hinsichtlich der Genauigkeit hatten (Anzahl der gefundenen und verfügbaren Übereinstimmungen. Anzahl der falschen Übereinstimmungen).

  1. DataMatch Enterprise, höchste Genauigkeit (> 95%), sehr schnell, niedrige Kosten
  2. IBM Quality Stage, hohe Genauigkeit (> 90%), sehr schnell, hohe Kosten (> 100.000 USD)
  3. SAS-Datenfluss, mittlere Genauigkeit (> 85%), schnell, hohe Kosten (> 100.000)
Ralph Pawne
quelle
1

Es gibt ein GitHub-Projekt namens libpostal, das Straßenadressen auf der ganzen Welt mithilfe von statistischem NLP und offenen Daten analysiert / normalisiert. Es sieht so aus, als ob der größte Teil der GitHub-Aktivitäten in den Jahren 2015-2016 stattgefunden hat, aber es könnte einen Blick wert sein, insbesondere auf der Parsing-Seite.

AdamsTipps
quelle
0

Sieht so aus, als hätte der USPS jetzt ein Tool!

Ich habe es heute gerade herausgefunden. Es scheint auch kostenlos zu sein.

https://www.usps.com/business/web-tools-apis/welcome.htm

Kyurthich
quelle
Nach der Verwendung kommen Sie zurück und geben Sie uns bitte eine längere Beschreibung der Verwendung.
Brad Nesom
Wird besorgt. Ich sollte in Kürze damit arbeiten.
Kyurthich
Der Link wurde verschoben und scheint nun nicht mehr relevant zu sein: "Mit den USPS Web Tools®-APIs können externe E-Commerce-Warenkorb- und Versand-Software auf wertvolle USPS®-Daten zugreifen - kostenlos! Von den Versandkosten über die Nachverfolgung von Informationen bis hin zur Planung eines Pakets Abholung, Web Tools macht den Versand mit dem US Postal Service® einfacher als je zuvor. Beginnen Sie jetzt oder lesen Sie weiter, um mehr zu erfahren. "
PolyGeo
Sieht so aus, als hätten sie es noch: usps.com/business/web-tools-apis/…
kyurthich
Ich habe mir das vor einiger Zeit angesehen und glaube, dass die Nutzungsbedingungen die Nutzung darauf beschränken, nur Adressen auszuführen, an die Sie tatsächlich etwas senden. (Sie konnten es technisch nicht für allgemeine Liste
Scrubbing