2008-11-05 3 views
6

미국의 도시 목록이 알려진 모든 영어 단어와 비교하여 작기 때문에이 문제는 단순한 맞춤법 검사기보다 쉽습니다.도시 이름 철자 검사 중입니까?

어쨌든, 여기에 문제가 있습니다. 도시 이름으로 가득 찬 텍스트 파일이 있습니다. 그 중 일부는 철자가 정확하고 일부는 정확하지 않습니다.

도시 이름의 철자를 모두 수정하는 데 사용할 수있는 알고리즘은 무엇입니까?

+0

사례를 게시 할 수 있습니까? 같은 도시의 잘못된 이름의 정확한 이름과 표본일까요? – shahkalpesh

답변

7

맞춤법 오류를 수정하거나 일반 맞춤법 검사기로 플래그를 지정해야합니까? 후자의 경우 올바른 맞춤법 목록을 얻고 각 이름이 목록에있는 이름과 같은지 확인해야합니다.

실제로 수정하려는 경우 edit distance이라는 개념을 사용하여 맞춤법이 틀린 문자열의 유사성을 참조 목록의 유사성과 비교할 수 있습니다. 그런 다음 철자가 틀린 단어를 가장 가까운 단어로 바꿀 수 있습니다. 의도 한 도시가 귀하의 목록에 없을 가능성을 처리하고 싶을 수도 있습니다.

Levenshtein distance 위키 백과 문서는 다른 유용한 리소스입니다.

+0

수정해야합니다. –

+0

네, 편집 거리 아이디어가 올바른 접근 방식이라고 생각합니다. 그것이 내가 어쨌든 이것을 시작했을 때 내가 향했던 것이 바로 그것입니다. –

-3

동일한 도시 이름이 파일에서 두 번 이상 나타나는 경우 각 도시 이름의 발생 횟수를 사용하고 한 번만 나타나는 플래그에 플래그를 지정할 수 있습니다.

+0

도시가 단 한 번 나타나고 철자가 틀릴 수도 있습니다. –

+0

... 또는 한 번 이상 같은 방식으로 철자가 잘못되었습니다. –

+0

에스테반과 브래드 : 물론 당신은 맞습니다. 자신을 검증해야하는 유일한 파일이 통계치를 계산할 때 의존해야만하는 파일 인 경우 –

3

먼저 올바른 도시 이름을 배열에로드 한 다음 파일의 도시 이름을 반복합니다. 현재 도시 이름의 철자가 정확한 이름의 배열인지 확인하여 올바른지 확인하십시오. 배열에없는 경우 맞춤법이 틀린 단어의 Soundex 또는 Metaphone 값을 올바른 이름의 배열에있는 단어와 비교하여 정확한 맞춤법을 찾습니다.

-1

일반적으로 맞춤법이 틀린 도시 이름 목록이 있습니다 (예 : Pittsburg h). 그 외에는 제레미와 있어요. 도시 이름 데이터 세트를 찾으면 USGS를 시험해 볼 수 있습니다. Zillow는 당신이 그것을 사용할 수있는 이웃 데이터를 가지고 있습니다.

2

트릭은 이름이 실제로 어떤 도시이고 얼마나 도시 이름의 철자가 정확한지 알고 있습니다. 영어 단어 만 확인하는 것과는 다릅니다.

해결하려는 실제 작업은 무엇입니까? 주소록을 처리하고 있습니까? 당신은 그것을위한 도구를 작성해서는 안됩니다 :이 사기성있는 간단한 작업에 전적인 산업이 있습니다. :)

The Perl Review의 구독 목록에 대해이 작업을 수행해야합니다. 나는 전 세계의 다양한 우체국에 대한 웹 서비스에 대해 잘 알고 있습니다. 종종 우편 서비스 웹 사이트를 방문하여 정식 주소 양식을 얻을 수 있습니다. 동일한 데이터를 얻을 수있는 지오 코딩 도구가 있습니다.

+0

맞습니다. 그것은 현혹 적입니다. 이제 내가 그걸 가지고 놀았으므로 사람들이 때로는 도시 이름을 생략하는 것으로 나타났습니다. 이것을 쓰는 것은 DP에서 위대한 훈련이다. 나는 너무 많은 노력을 기울이지 않고 꽤 괜찮은 결과를 얻을 수 있다고 확신한다. –

0

나는 이것을했다. 편집 거리 접근법은 내가 한 일이고 꽤 잘 작동하지만, 너무 느려 실시간으로 할 수 없습니다.

당신이 직면하게 될 도전 중 하나는 다른 도시 이름에서 거리 1 편집 거리의 도시가 있다는 것입니다. 당신은 텍스트 파일의 이름이 어디에서 왔는지에 대해 말하지 않았고 큰 차이가 있습니다. 내 경우에는 도시 이름을 검색하기 위해 입력하는 사람이 무작위 였고 의도 한 도시의 철자를 잘못 입력하는 경우가 있었지만 오타가 실제 도시 이름이었습니다. 이 경우 사용자 의도에 대한 추측을해야하며이를 수행하는 쉬운 방법은 제공되는 경우 상태를 고려하는 것입니다.

관련 문제