Không chắc chắn nếu có bất kỳ gói hệ điều hành (Nguồn mở) nào khả dụng. Tuy nhiên, về mặt lý thuyết, việc xây dựng loại thư viện này không quá khó. Trong tiếng Trung, có khoảng 1300 âm thanh đơn: ban đầu + âm cuối +. Mỗi âm thanh có nhóm các ký tự Trung Quốc, số khác nhau từ 1 đến 130 ký tự.
Bạn có thể xác định một mảng của tất cả các âm thanh Pinyin:
string[] pinyins = new string[] {
"a:c1c2c3...", // pinyin 1 a: character1 character2...
...
"zuo:z1z2z3z4z5..." // last pinyin (1300) zuo: character character...
};
Mảng trên là một cơ sở cho việc lập bản đồ của bạn Pinyin tiếng Trung Quốc (chữ Hán và tông màu Pinyin là chuỗi unicode). Sau đó, đối với từng âm thanh đầu vào Pinyin, một danh sách các nhân vật thu được bằng một hàm như thế này:
string getCharacters(string aPinyin) {
string characters = null;
foreach(string item in pinyins) {
string[] temp = item.split(':');
if (temp[0].Equals(aPinyin)) {
charaters = temp[1];
break;
}
}
return characters;
}
Tôi đã viết một thời gian dài JavaScipt trước, nơi tôi định nghĩa mối quan hệ giữa Pinyin và chữ Hán. Trong blog của tôi: Get Pinyin From Chinese Characters, bạn có thể tìm thấy tập lệnh bằng cách xem mã nguồn hoặc Kiểm tra phần tử trong menu ngữ cảnh. Trong blog của tôi, tập lệnh được sử dụng để chuyển đổi tiếng Trung thành Bính âm, nhưng mối quan hệ có thể được sử dụng làm tham chiếu.
Để thêm tính năng Pinyin thông minh - hiển thị một danh sách các từ cho Pinyin, điều này có thể được thực hiện bằng cách định nghĩa tất cả các từ thường được sử dụng trong các mô hình tương tự: bính âm: từ.
Nguồn
2012-03-12 04:45:06
Nếu nó là đầu vào dựa trên cảm ứng, wouldn' t tốt hơn là cho phép họ nhập các ký tự bằng cách "viết" trên màn hình thay vì sử dụng chuyển đổi bính âm? – Szabolcs
Màn hình cảm ứng không thực sự hoạt động và sẽ không dễ dàng để viết trong các hộp văn bản nhỏ. Nó cho một ứng dụng y tế, vì vậy các bác sĩ có khả năng tạo ra bệnh nhân mới và sau khi tìm thấy chúng theo tên của họ, tên, vv Đó là lý do tại sao không thể thực hiện giải pháp của bạn. –
Vì vậy, lý do bạn muốn tùy chỉnh danh sách ứng viên là tự động hoàn thành tên bệnh nhân? Cách hầu hết các chương trình tôi biết thực hiện điều này là bằng cách cho phép gõ bính âm (trực tiếp, không thông qua hệ thống IME), và tự động điền dựa trên đó.Vấn đề này dễ hơn rất nhiều so với việc thực hiện IME tổng quát và hiệu quả --- IME chung phải xử lý tất cả các ký tự và phải gợi ý các kết quả phù hợp nhất MSE bính âm MS mới nhất thậm chí tự động cập nhật từ internet với số liệu thống kê mới nhất để cải thiện dự đoán, và nó cũng học hỏi từ người dùng. – Szabolcs