thảo luận Tìm kiếm tiếng Việt hiệu quả

quandaso

Senior Member
Hi anh em, mình đang cần tìm 1 solution cho việc tìm kiếm tiếng việt cho ngành đặc thù là thuốc và y tế.
Đại loại là không chỉ tìm kiếm từ đồng nghĩa, mà phải tìm kiếm theo cả nhóm bệnh, hoặc triệu chứng. User có thể search cả có dấu và không dấu.
Ví dụ:
Tìm đau bụng hoặc dau bung thì ra các nhóm thuốc chữa đau bụng, ví dụ thuốc berberin...
Anh em nào có kinh nghiệm về vụ này không nhỉ.
 
Nếu mình không nhầm thì trên voz này nhiều cao nhân làm từ điển lắm, search tiếng hán việt các kiểu có đủ. Lót dép hóng ké.
 
Cứ fulltext search engine như Elasticsearch là tôi thấy đáp ứng đủ cho anh r
Mình biết là full text search. Nhưng test thử với solr hoặc elastic search nó ko đc như ý lắm. Có thể mình cấu hình thiếu gì đó. Thế nên nhờ mọi người xem có cách cấu hình nâng cao nào cho elastic search hoặc solr hoặc tool nào khác để index chuẩn tiếng Việt không ấy mà.
Ví dụ với cái full text mình đang dùng:
Search mặt nạ: ra cả mặt nạ, nhưng ra cả dưỡng mắt, nhỏ mắt
Search đau bụng: ra cả dầu gội bưởi,
Nó chung khá lung tung, kết quả nhảy lộn xộn
 
Mình biết là full text search. Nhưng test thử với solr hoặc elastic search nó ko đc như ý lắm. Có thể mình cấu hình thiếu gì đó. Thế nên nhờ mọi người xem có cách cấu hình nâng cao nào cho elastic search hoặc solr hoặc tool nào khác để index chuẩn tiếng Việt không ấy mà.
Ví dụ với cái full text mình đang dùng:
Search mặt nạ: ra cả mặt nạ, nhưng ra cả dưỡng mắt, nhỏ mắt
Search đau bụng: ra cả dầu gội bưởi,
Nó chung khá lung tung, kết quả nhảy lộn xộn
ES thim setting analyzer như thế nào?
VD: lúc index cái analyzer để tokenize input string => sang ko dấu, lowercase các thứ.
Ngoài ra còn tùy nhu cầu search mà có thể app thêm các analyzer khác
 
ES thim setting analyzer như thế nào?
VD: lúc index cái analyzer để tokenize input string => sang ko dấu, lowercase các thứ.
Ngoài ra còn tùy nhu cầu search mà có thể app thêm các analyzer khác
Mình để standard thôi bạn, tức là cài xong, index rồi dùng thử luôn. Chưa cấu hình gì thêm, vì thực ra nó nhiều option vl cũng chưa biết cấu hình kiểu gì cho đúng ý mình. Nếu bạn có cấu hình tiếng việt thì send mình về chạy thử nhé :D Về cơ bản mình muốn như này:
Search dau bung không dấu, thì phải thì phải gợi ý cho người search sang dạng có dấu là đau bụng (kiểu như google : bạn muốn tìm kiếm đau bụng).
Rồi tìm chính xác những loại thuốc chữa đau bụng. đó trong db, vì tìm thuốc nên search phải chính xác mấy cái liên quan đến đau bụng. Hiện tại nó ra bao gồm: đau bụng, giảm đau, đau vai gáy. Nói chung không đúng như spec sếp mình muốn.
 
Last edited:
dùng suffix tree hoặc array suffix :p
1603469899021.png
 
Last edited:
dùng suffix tree hoặc array suffix :p
View attachment 253061
muốn tự implement thì thiếu gì cách, tuỳ vào yêu cầu cụ thể mà chọn giải pháp khác nhau :/ cơ mà theo tôi đoán thì chủ thớt muốn dùng giải pháp nào mì ăn liền cơ :)

cũng lót dép ngồi hóng xem elastic search các kiểu giờ support tiếng việt tới mức độ nào rồi :">
 
Mình để standard thôi bạn, tức là cài xong, index rồi dùng thử luôn. Chưa cấu hình gì thêm, vì thực ra nó nhiều option vl cũng chưa biết cấu hình kiểu gì cho đúng ý mình. Nếu bạn có cấu hình tiếng việt thì send mình về chạy thử nhé :D Về cơ bản mình muốn như này:
Search dau bung không dấu, thì phải thì phải gợi ý cho người search sang dạng có dấu là đau bụng (kiểu như google : bạn muốn tìm kiếm đau bụng).
Rồi tìm chính xác những loại thuốc chữa đau bụng. đó trong db, vì tìm thuốc nên search phải chính xác mấy cái liên quan đến đau bụng. Hiện tại nó ra bao gồm: đau bụng, giảm đau, đau vai gáy. Nói chung không đúng như spec sếp mình muốn.
Thì cái j tôi cũng chỉ hướng thím r đó. Như trên thím có vẻ cần 2 yêu cầu:
1. Auto completion
2. Search
____________
1: Thì có nhiều cách làm: n-gram tokenizer, Completion Suggester...
2. Đã chỉ ở trên: Phải cài đặt analyzer thôi. VD trên thì cần filter (asciifolding, lowercase, trim), tokenizer thì standard chắc cũng ổn. Hình như có 1 cái plugin vietnamese analyzer của ông VN viết á. Mà yêu cầu cuar thím thì chắc cũng ko cần xài tới nó
3. Tiếp theo là xài các api search của ES thì tôi ko cần phải chỉ nữa chứ.
 
muốn tự implement thì thiếu gì cách, tuỳ vào yêu cầu cụ thể mà chọn giải pháp khác nhau :/ cơ mà theo tôi đoán thì chủ thớt muốn dùng giải pháp nào mì ăn liền cơ :)

cũng lót dép ngồi hóng xem elastic search các kiểu giờ support tiếng việt tới mức độ nào rồi :">
Thì trước mắt cứ phải xem có cái nào đã làm sẵn không chứ bác :love:
 
Mình để standard thôi bạn, tức là cài xong, index rồi dùng thử luôn. Chưa cấu hình gì thêm, vì thực ra nó nhiều option vl cũng chưa biết cấu hình kiểu gì cho đúng ý mình. Nếu bạn có cấu hình tiếng việt thì send mình về chạy thử nhé :D Về cơ bản mình muốn như này:
Search dau bung không dấu, thì phải thì phải gợi ý cho người search sang dạng có dấu là đau bụng (kiểu như google : bạn muốn tìm kiếm đau bụng).
Rồi tìm chính xác những loại thuốc chữa đau bụng. đó trong db, vì tìm thuốc nên search phải chính xác mấy cái liên quan đến đau bụng. Hiện tại nó ra bao gồm: đau bụng, giảm đau, đau vai gáy. Nói chung không đúng như spec sếp mình muốn.

dùng icu_analyzer + ngram thử, set score hợp lý để lọc bớt đám tạp nham. Mà cái vấn đề search đồng nghĩa phải dùng bộ analyzer riêng, ông xem bộ của bác Duy Đỗ, mặc dù lâu ko update nhưng thử xem sao.

Sent using vozFApp
 
Em dùng redis search mà nó không support tiếng việt. Giải pháp là em convert về lowercase và bỏ accent. Lúc nhập input search cũng làm tương tự. Phương pháp này ổn không mm
 
Back
Top