2012-06-16 4 views
13

문자열 일치 알고리즘에 대한 연구를하고 있습니다. 내가 만난 가장 유용한 것 중 하나는 내 휴대폰이 사용하는 것입니다 (SE xPeria neo v에서 android 2.3.4). 스크린 샷에서 보는 바와 같이Android의 맞춤법 검사기에 사용되는 알고리즘은 무엇입니까?

enter image description here

, 나는 내가 원하는 근처 것들 문자 jiw 버튼을 눌렀을 올바르게 제안했다.

알고리즘이 levenstein distance (내 입력과 사전 사이의 거리)과 비슷합니다. 어떻게 든 가까운 문자는 문자열 일치에 일부 값을가집니다.

사용중인 알고리즘에 대해 알고 싶습니다.

+5

일부 유권자들은 이것이 비 건설적이라고 생각하는 이유를 설명 할 수 있습니까? 질문은 매우 정확합니다 ("어떤 알고리즘이 사용됩니까?"). 시스템의 소스 코드는 공개되어 있으므로 질문에 답할 수 있습니다. –

+4

+1 간결하고, 답답하고, 재미있는 질문입니다. – goat

+2

매우 흥미로운 프로그래밍 질문, +1 투표와 행운을 빕니다 – mm24

답변

3

나는 Android source code을 가져 와서 맞춤법 검사를 찾았습니다. 나는 당신이 찾고있는 소스를 포함하는 것이 디렉토리 발견

packages/inputmethods/LatinIME/java/src/com/android/inputmethod/latin/ 

spellcheck/AndroidSpellCheckerService.java 모든 무거운 일을하는 사람처럼 보이는 파일을하지만, Suggest.java는 어떤 식 으로든 관여 할 것으로 보인다.

2

excellent information retrieval book에는 Levenstein distance에 대한 자세한 섹션이 있으며 가중치가 포함됩니다. 그러면 키패드의 키 사이의 거리가 가중치가됩니다.

+0

감사합니다. 이 기사는 많은 정보를 제공하며 Levenstein 거리가 Android에서 문자열 비교를위한 척도라는 내 최초의 의혹에 대해 지적합니다. 그러나 아직 의심 만 .. – Odys

관련 문제