2012-04-13 5 views
7

Java 6을 사용하고 있습니다. 주소를 파싱하는 자동화 된 방법을 찾고 있습니다. 나는 주소가 존재하는지 아닌지 걱정하지 않는다. 내가 찾은 가장 좋은 것은 JGeocoder (V 0.4.1)이지만, JGeocoder이 같은 주소를 구문 분석 할 수 없습니다이 같은 주소를 구문 분석 할 수있는 Java 파서가 있습니까

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

사람이 도전에 달려 무료 자바 주소 파서 알고 있나요 ? "구문 분석"이란 거리, 도시, 주, 우편 번호 및 잠재적으로 장소 이름 (위의 장소 이름은 "16 번가 극장, Berwyn 문화 센터")을 구별 할 수있는 능력을 의미합니다.

+6

행운을 빕니다. 이는 주소 형식이 무한히 다양하기 때문에 가장 잘 알려진 _ 어려운 문제입니다. '80 년대에 이런 유형의 작업을 많이 해본 결과 완벽한 (심지어 99 %의 완벽한) 해결책이 존재하지 않는다는 것을 보장 할 수 있습니다. 각기 다른 국가, 심지어는 한 국가 내의 지역에 대한 파싱 규칙과 큰 예외 사전이 필요합니다. 미국 주소가 제한적이라면 미국 US 우편 서비스 웹 사이트가 도움이 될 수 있습니다. –

답변

0

웹 서비스가 허용되면 Google지도를 사용해보세요.

+2

TOS는 자동화 된 쿼리를 허용하지 않습니다. – Matt

6

업데이트 :이 항목의 내용은 this StackOverflow question입니다.


나는 우리가 분석하고 프로세스 주소 SmartyStreets 작동, 우리는 답을 가지고있다. 이것이 바로 "SLAP"또는 Single-Line Address Parsing (or Processing)입니다. 공식적인 용어는 Named Entity Recognition (NER)입니다.

저는 Java 라이브러리에 대한 전문가는 아니지만, 자체 구현이 기대에 미치지 못한다는 것을 알고 있습니다. 이전에 어려움을 겪었던 사람들에게 도움을 준 몇 가지 일반적인 이유가 있습니다.

  • Google/Yahoo!/Bing Maps 웹 서비스는 자동화 된 쿼리를 허용하지 않으며 구문 분석 된 주소의 정확성을 확인하지 않습니다.

  • 사내 코드는 기존 주소 (데이터베이스) 또는 기타 공식 소스에 대한 지식 없이도 추측 할 수 있습니다. 나는 당신이 이것을 할 수있는 도서관을 사내에서 원한다는 것을 알고 있지만, 추측을 할 수는 있습니다 ...

  • 그런데 정규식은 이 아니고 답입니다. 주소를 구문 분석하는 데 가장 적합한 정규식은 수백 줄의 코드와 여러 클래스에서 동적으로 생성되었습니다. 엉망이었고 일 것으로 예상되는 주소 유형에만 맞았습니다. 실제로 유효한 모든 (미국) 형식은 아닙니다.

올바른 도구가 없다면 이것은 매우 복잡한 작업입니다. Google의 서비스 중 하나는 LiveAddress API이며 주소를 파싱하고 지리 정보를 제공한다는 점에서 Google지도와 유사하지만 CASS 인증을 받고 유효한 주소 만 반환하면 입력 형식에 관계없이 한 걸음 더 나아갑니다.

나는 당신 자신의 연구를 권장하지만, 아마도 이것은 가장 효과적이고 신뢰할 수있는 방법 일 것입니다.

+0

내가 두려워 하듯이이 서비스는 무료가 아닙니다. 나는 이것이 내가 뭘 자유롭게 찾고 있다고 명시한 b/c로만 표시하지 않을 것이다. 그러나 사람들이 Google을 통해이 답변을 찾으면 좋은 홍보물을 얻을 수 있습니다. – Dave

+0

사실 그것은 무료입니다; 기본 250/mo보다 높은 쿼리 제한을 선택하면 비용 만 발생합니다. 그러나 물론, 당신은 당신의 필요를 충족시킬만한 것을 발견해야합니다. 다른 것을 찾으면 무엇을 결정할 지 알려주세요! – Matt

3

https://code.google.com/p/usaddressparser/ 미국 주소 문자열을 파싱하여 필드 (숫자, 거리, 스위트, 도시, 우편 번호 등)로 분할합니다. 자바 항아리 및 소스

+1

이 프로젝트 페이지가 만들어졌고 한 줄의 코드는 실제로 쓰여지지 않았습니다. – jordanpg

+0

실제로 코드는 zip 파일에 묻혀 있습니다. – slf

관련 문제