2012-04-13 2 views
7

Ich benutze Java 6. Ich bin auf der Suche nach einer automatisierten Möglichkeit, Adressen zu analysieren. Ich bin nicht besorgt, ob die Adressen existieren oder nicht. Das Beste, was ich gefunden habe, ist JGeocoder (v 0.4.1), aber JGeocoder ist nicht in der Lage Adressen wie diese zu analysierenGibt es einen Java-Parser, der Adressen wie diese analysieren kann

16th Street Theater, Berwyn Cultural Center, 6420 16th St. 

Hat jemand einen freien Java Adressparser kennen, die mir die Herausforderung ist? Mit "parse" meine ich die Fähigkeit, Straße, Stadt, Staat, Postleitzahl und möglicherweise den Namen des Veranstaltungsortes zu unterscheiden (der obige Veranstaltungsort heißt "16th Street Theatre, Berwyn Cultural Centre").

+6

Viel Glück. Dies ist ein bekanntes _extrem_ schwieriges Problem, hauptsächlich wegen der unendlichen Vielfalt bei der Adressformatierung. Nachdem ich in den 80er Jahren viele dieser Arbeiten gemacht habe, kann ich garantieren, dass es keine perfekte (oder sogar 99% perfekte) Lösung gibt. Sie benötigen unterschiedliche Syntaxregeln für verschiedene Länder und sogar für Regionen innerhalb eines Landes sowie ein großes Wörterbuch mit Ausnahmen. Wenn Sie auf die US-Adresse beschränkt sind, kann die Website des US-Postdienstes hilfreich sein. –

Antwort

0

Wenn Webservices erlaubt sind, können Sie Google Maps ausprobieren.

+2

Das TOS lässt keine automatisierten Abfragen zu. – Matt

6

Aktualisierung: Dieses Thema wird in this StackOverflow question ausführlicher behandelt.


Ich arbeite für SmartyStreets wo wir analysieren und verarbeiten Adressen, und wir haben eine Antwort. Dies nennen wir "SLAP" oder Single-Line Address Parsing (or Processing). Die formelle Bezeichnung lautet Named Entity Recognition (NER).

Ich bin kein Experte für Java-Bibliotheken, aber ich weiß, dass alle In-House-Implementierungen nicht den Erwartungen entsprechen. Hier einige Gründe, warum Leute, denen ich geholfen habe, früher Schwierigkeiten hatten:

  • Google/Yahoo!/Bing Maps-Webdienste lassen keine automatisierten Abfragen zu und überprüfen nicht die Richtigkeit der analysierten Adresse.

  • Inhouse-Code kann auch nur eine bestmögliche Schätzung ohne Kenntnis der vorhandenen Adressen (eine Datenbank) oder andere Arten von offiziellen Quellen machen. Ich weiß, dass Sie eine Bibliothek wollen, dass diese im Haus tun können, aber man kann eine Vermutung besten machen ...

  • By the way, reguläre Ausdrücke sind nicht die Antwort. Die beste Regex, die ich gesehen habe, um Adressen zu analysieren, wurde dynamisch über Hunderte von Codezeilen und mehrere Klassen generiert. Es war ein Durcheinander, und war nur richtig für Arten von Adressen, die Sie erwarten würden, nicht alle gültigen (US) Formate dort tatsächlich sind.

Dies ist eine unglaublich komplexe Aufgabe ... es sei denn, Sie haben die richtigen Werkzeuge. Einer unserer Dienste heißt LiveAddress API und ähnelt Google Maps insofern, als er Adressen analysiert und geocodiert, aber einen Schritt weiter geht, indem er CASS-zertifiziert ist und nur gültige Adressen zurückgibt, fast unabhängig vom Eingabeformat.

Ich ermutige Sie, einige eigene Forschung zu tun, aber dies ist wahrscheinlich die effektivste und zuverlässige Methode.

+0

Wie ich befürchtet habe, ist dieser Service nicht kostenlos. Ich markiere das nicht als korrekt nur b/c Ich habe angegeben, dass ich nach etwas Freiem gesucht habe. Vielleicht erhalten Sie jedoch eine gute Werbung, wenn die Leute diese Antwort über Google finden. – Dave

+0

Eigentlich ist es kostenlos; Es kostet nur Geld, wenn Sie ein höheres Anfrage-Limit als die Standard-250/mo wählen. Aber natürlich sollten Sie etwas finden, um Ihre Bedürfnisse zu erfüllen. Lassen Sie uns wissen, was Sie entscheiden, wenn Sie etwas anderes finden! – Matt

3

https://code.google.com/p/usaddressparser/ Parses US-Adresse Zeichenfolge und teilt es in Felder (Nummer, Straße, Suite, Stadt, PLZ usw.). Java Glas und Quellen

+1

es scheint, dass diese Projektseite erstellt wurde und eine einzige Zeile Code wurde nie geschrieben – jordanpg

+0

tatsächlich gibt es Code, es ist nur in einer Zip-Datei begraben – slf

Verwandte Themen