Khối Chức Năng SOUNDEX

Khối chức năng SOUNDEX tính toán độ tương đồng âm thanh của một chuỗi ký tự.

Giá trị Soundex có đặc điểm là các từ phát âm giống nhau sẽ tạo ra cùng một giá trị Soundex. Điều này có thể được sử dụng để tìm kiếm trong cơ sở dữ liệu khi bạn biết cách phát âm nhưng không biết chính xác cách viết. Hàm Soundex trả về một chuỗi ký tự gồm bốn ký tự, bắt đầu bằng một chữ cái.

Đầu Vào STR

Đầu vào định nghĩa chuỗi ký tự cần tính toán.

Đầu Ra

Trả về một chuỗi ký tự với mã Soundex.

Quy Tắc Cơ Bản

Mỗi mã Soundex bao gồm một chữ cái theo sau là ba số, ví dụ: A532 cho Antcas. Nếu từ cần mã hóa có nhiều chữ cái hơn để tạo ra được nhiều số hơn thì ta sẽ dừng lại sau số thứ ba. Nếu từ có ít chữ cái hơn, ta sẽ điền số 0 vào các vị trí còn lại. Tên người châu Á Lee sẽ được mã hóa thành L000.

Số Chữ Cái Được Đại Diện
1 B, F, P, V
2 C, G, J, K, Q, S, X, Z
3 D, T
4 L
5 M, N
6 R

Phụ âm A, E, I, OU và phụ âm H, WY được bỏ qua trừ khi là ký tự đầu tiên. Thêm vào đó, đối với tiếng Đức có thể định nghĩa: Phụ âm Ä, ÖÜ được bỏ qua, ký tự "scharfe S" ß được mã hóa như một chữ cái đơn giản S.

Nếu nhiều chữ cái liên tiếp trong chuỗi gốc có cùng giá trị Soundex, thì giá trị đó chỉ xuất hiện một lần trong kết quả, từ abfx sẽ trở thành A120 (a được giữ lại vì là chữ cái đầu tiên, bf đều tạo ra cùng một mã 1, x tạo ra 2, cuối cùng ta thêm một số 0 để có được bốn chữ cái).

Khi áp dụng phương pháp Soundex trong thực tế, chủ yếu có hai điểm bị chỉ trích: Thứ nhất, nó rất phù hợp với tiếng Anh, thứ hai, nó chỉ cung cấp phân tích khá thô sơ.

Tuy nhiên, cần lưu ý rằng thuật toán được trình bày ở đây là thuật toán được sử dụng thường xuyên nhất cho tìm kiếm âm thanh. Điều này có lẽ đã được hỗ trợ bởi việc một lệnh PL/SQL tiêu chuẩn tương ứng đã được triển khai sớm cho cơ sở dữ liệu Oracle.