2009-09-14 34 views
13

Tôi đã nghiên cứu các kỹ thuật tìm kiếm âm thanh, metaphone và chuỗi khác trong vài ngày qua và hiểu được cả hai thuật toán đều hoạt động tốt trong việc xử lý các từ không phải tiếng Anh chuyển thành tiếng Anh.Bật soundex/metaphone cho các ký tự không phải tiếng Anh

Tuy nhiên, yêu cầu mà tôi có cho tìm kiếm đó sẽ hoạt động ở các ngôn ngữ gốc, không được chuyển ngữ, chứa bảng chữ cái như tiếng Đức, tiếng Na Uy và thậm chí cả bảng chữ cái Cyrilic.

Có bất kỳ thuật toán tìm kiếm nào có khả năng xử lý các bảng chữ cái này hoàn toàn không? Hay tôi tốt hơn khi sử dụng các thư viện tìm kiếm toàn văn bản của bên thứ ba như Lucene? Do đó, câu hỏi sau đó sẽ trở thành 'liệu Lucene có xử lý các bảng chữ cái không phải tiếng Anh không?'

+1

Nếu trường hợp sử dụng của bạn chỉ là tìm kiếm văn bản bằng các ngôn ngữ không phải tiếng Anh, bạn có thể không cần âm thanh. Bạn cần Lucene với một Analyzer thích hợp, như ire_and_curses nói. Nếu bạn muốn xử lý các biến thể viết khác nhau của cùng một từ, bạn sẽ cần một thuật toán khớp đúng ngữ âm. Bạn có thể nói thêm về trường hợp sử dụng của bạn không? –

Trả lời

15

Tôi không phải là chuyên gia trong lĩnh vực này, nhưng yêu cầu của bạn có vẻ khá khó khăn đối với tôi. Soundex được thiết kế đặc biệt cho âm thanh tiếng Anh cũng như các ký tự. Tôi không nghĩ rằng nó sẽ hoạt động tốt cho các ngôn ngữ không phải tiếng Anh. Xem ví dụ các câu trả lời cho this related question.

Double-Metaphone là một nỗ lực để giải quyết các biến thể phức tạp hơn nhiều so với Soundex hoặc Metaphone và được thiết kế để xử lý bất thường trong nhiều ngôn ngữ. Nó có thể là đủ cho nhu cầu của bạn. Có một danh sách triển khai thư viện trên trang được liên kết.

Hỗ trợ cho các ngôn ngữ khác trong Lucene được dựa trên khái niệm Analyzers. Lucene đi kèm với một bộ phân tích cho các ngôn ngữ khác nhau (mặc dù tôi không thể tìm thấy danh sách mặc định), nhưng chất lượng có thể là quite variable.

+0

Hình như Lucene + phân tích là những gì tôi thực sự đang tìm kiếm, cảm ơn. :) –

+0

còn ngôn ngữ Trung Quốc, Nhật Bản, Ả Rập và Ấn Độ thì sao? – Sharique

0

Có một số tài liệu tham khảo tốt trên Wikipedia, bắt đầu từ bài viết Soundex. Tôi không biết liệu có các thư viện hiện có được thiết kế để xử lý nhiều ngôn ngữ khác nhau hay không.

+0

Các tài liệu tham khảo có tất cả các điểm hướng tới các thuật toán xử lý các cách viết tiếng Anh của tên châu Âu. Tôi đã không nhìn thấy bất kỳ mà thực sự xử lý các ký tự đặc biệt như-là - trừ khi tôi hiểu họ sai. –

+1

Tôi nghĩ rằng có thể một số các biến thể Soundex được thiết kế để hoạt động tốt hơn với các ngôn ngữ khác, nhưng chúng tập trung vào cách viết tiếng Anh hoặc cách viết hoa. Sẽ không khó để viết một cái gì đó LIKE Soundex cho từng ngôn ngữ đó, nhưng bạn có thể cần sự giúp đỡ của một nhà ngôn ngữ học, nếu bạn không phải là người bản xứ. –

Các vấn đề liên quan