1

Java에서 String 값 (예 : 사용자 생성 콘텐츠에서 오는 값)에 지리적 참조가 포함되어 있는지 여부를 이해할 수 있습니까? 즉, 도시의문자열에 지리적 참조가 포함되어 있는지 인식

  • 이름
  • 주소
  • 상태
  • 입니다 나의 현재 솔루션, (특히 this one)는 위치 정보 API에 문자열을 전송하는 것입니다

그래서 일부 일치로하는 경우 실제 위치가 발견되면 좌표가 추출됩니다.

(이 방법에 관련 질문 : this one)

는 그러나 일부 문자열이 오류를 가져온다. 예를 들어 문자열 위치가 "everywhere" 인 경우 지리적 위치를 반영하지 않으므로 실제로 미국에서 결과를 반환합니다.

2 가지 가능한 솔루션, 즉 온톨로지 또는 엔티티 인식 전략을 확인했습니다. 그러나 어느 것이 가장 좋은 해결책인지 (즉, 비용과 시간에 미치는 영향이 가장 낮음) 묻고 싶습니다.

+2

신뢰성을 가지고이를 수행하는 것은 강력한 AI 문제와 비슷합니다. – chrylis

답변

0

지금까지 내가 아는 한 java에는 메소드가 없습니다. 당신은 그것을 손으로해야만합니다 (String paring). 도시의

이름 : 이건 그냥 일반 문자열입니다

이제 논리적으로 문제에 대해 생각 할 수 있습니다. 세계의 모든 도시 이름을 비교하는 유일한 방법입니다. String에서 모든 단어를 가져 와서 모든 단어를 세계의 모든 도시 목록과 비교해야합니다. (비교할 때 최적화 할 수 있지만 여전히 속도를 크게 낼 수는 없습니다.)

주소 : 주소가 일부 특수 문자를 시작하거나 갖고있는 경우이 작업이 더 쉽습니다.

: 도시 이름과 같습니다.

+0

이것은 실제로 구현하기 쉬운 솔루션이어야합니다. 그러나 NLP는 훨씬 더 복잡하다고 생각합니다. 예를 들어 도시 대신에 마을 이름을 문자열로 지정하면 어떨까요? 필요한 "도시/마을/국가"택 소노 미는 실제로 크기가 클 것입니다. (그리고 나는 충분한 부유 한 목록을 어디에서 구해야할지 모릅니다.) – Eleanore

+0

스트링의 구조를 정의 할 수 있다면 그렇게 쉽게 될 것입니다. 예를 들어, 도시 이름, 위치, ... – javaHunter

+0

예, 그렇습니다. 문자열이 사용자 생성 콘텐츠 등에서 오는 것이므로 구조에 제약을받지 않는다고 가정합니다. 이 경우 생성 된 문자열에 구조를 적용 할 수 없으므로 문자열 내용의 실제 특성을 얻는 것이 더 어렵습니다. – Eleanore