미국 인구 조사국은 "soundex"라는 특수 인코딩을 사용하여 사람에 대한 정보를 찾습니다. soundex는 성 (姓)을 철자 방식이 아닌 소리 방식으로 인코딩합니다. SMITH와 SMYTH와 같이 똑같지 만 철자가 다른 성은 동일한 코드를 가지고 함께 정리됩니다. soundex 코딩 시스템은 다양한 철자로 기록되었을지라도 성을 찾을 수 있도록 개발되었습니다.Python의 Soundex 알고리즘
이 실습에서는 성을 입력 할 때 soundex 코드를 생성하는 프로그램을 디자인, 코딩 및 문서화합니다. 사용자는 성을 입력하라는 메시지를 표시하고 프로그램은 해당 코드를 출력해야합니다.
기본 Soundex와 코딩 규칙
성 (姓)의 모든 SOUNDEX 인코딩은 문자와 세 개의 숫자로 구성되어 있습니다. 사용 된 문자는 항상 성의 첫 번째 문자입니다. 번호는 아래 표시된 사우운 스 가이드에 따라 성의 나머지 글자에 지정됩니다. 항상 네 자의 코드를 생성하기 위해 필요한 경우 끝에는 0이 추가됩니다. 추가 문자는 무시됩니다.
Soundex와 코딩 가이드
Soundex와 다양한 자음의 수를 지정합니다.
번호 자음
1 B, F, P, V 2 C, G, J, K, Q, S, X, Z 3 D, T (4) L : 모두 소리 자음들은 동일한 번호가 할당된다 5 M은 N R 6
Soundex와는 문자 A, E, I, O, U, H, W 및 Y.
무시따른다 3 추가 Soundex와 코딩 규칙이있다. 훌륭한 프로그램 설계는 이들 각각을 하나 이상의 개별 기능으로 구현합니다. 더블 편지
성이있는 이중 문자가있는 경우와
규칙 1. 이름은, 그들은 하나 개의 문자로서 취급 할 필요가 있습니다. 예 :
구티에레즈는 G362 (G는 T는 3, 첫 번째 R은 6 개, 두 번째 R은 무시되고 Z는 2 개)로 코딩됩니다. 규칙 2. 동일한 Soundex 코드 번호가 나란히있는 이름이있는 문자
성이 soundex 코딩 가이드에서 같은 번호의 문자가 나란히있는 경우에는 한 글자. 예 :
피스터는 P236 (P와 같으므로 무시됩니다. S는 2, T는 3, R은 6입니다.)로 코딩됩니다.
잭슨은 J250으로 코드화되어 있습니다 (J는 C, K는 C와 같음, S는 C와 같음, N은 5, 0은 추가됨).
규칙 3 자음 분리기
3.a. 모음 (A, E, I, O, U)이 같은 soundex 코드를 갖는 두 개의 자음을 분리하면 모음의 오른쪽에있는 자음이 코드화됩니다. 예 :
Tymczak은 T-522 (T는 M은 2, C는 2, Z는 무시 (위의 "나란히 - 나란히"규칙 참조), 2는 K)로 코딩됩니다. 모음 "A"는 Z와 K를 분리하므로 K가 부호화됩니다. 3.b."H"또는 "W"가 동일한 soundex 코드가있는 두 개의 자음을 분리하면 오른쪽 자음은 코딩되지 않습니다. 예 :
* Ashcraft는 A261 (A는 2, S는 2, C는 H가있는 S와 같으므로 무시 됨, R은 6, F는 1)로 코딩됩니다. A226으로 코드화되어 있지 않습니다.
surname = raw_input("Please enter surname:")
outstring = ""
outstring = outstring + surname[0]
for i in range (1, len(surname)):
nextletter = surname[i]
if nextletter in ['B','F','P','V']:
outstring = outstring + '1'
elif nextletter in ['C','G','J','K','Q','S','X','Z']:
outstring = outstring + '2'
elif nextletter in ['D','T']:
outstring = outstring + '3'
elif nextletter in ['L']:
outstring = outstring + '4'
elif nextletter in ['M','N']:
outstring = outstring + '5'
elif nextletter in ['R']:
outstring = outstring + '6'
print outstring
충분히가에 물어 무엇합니까, 나는 세 가지 규칙을 코딩하는 방법을 단지 확실하지 않다 :
는 지금까지 내 코드입니다. 그것이 내가 도움이 필요한 곳입니다. 그래서, 어떤 도움을 주셔서 감사합니다.
제목을 명확히함으로써 도움을 받았습니다. –
전체 숙제를 읽지 않았습니다. 입력 내용과 출력 내용을 다시 게시하십시오. – JonH
그는 전체 장면을 설정하고 이동하는 방법에 대한 도움을 요청했습니다. 그는 NO POINT에서 답을 물었습니다. 그가 입력 및 출력을 요구하는 재 게시를 한 경우이 작업은 종료되어야합니다. 그것은 숙제 질문을하는 방법에 대한 좋은 예입니다 !!! –