[TEST TEMPLATE] PHÂN TÍCH VÀ TÌM KIẾM DỮ LIỆU TIẾNG VIỆT

By : binhluong Date Submitted : 28 -02 - 2019
Your Rate :

Một số khái niệm cần biết

Analysis và Analyzers

Analysis hiểu là một process thực hiện các công việc như sau

  • Đầu tiên sẽ xử lý tách từ từ một đoạn text đầu vào thành các terms (từ hoặc cụm từ) phù hợp để sử dụng trong việc đánh chỉ mục ngược
  • Sau đó thì phân tích, chuẩn hóa các terms này để thu được data mong muốn phục vụ việc tìm kiếm. Nó giống như việc mình muốn ăn bưởi ngoài loại bỏ vỏ, tách từng múi sau khi đã có từng múi rồi thì mình lại phải bóc từng múi và bỏ hạt vậy.

Những công việc này do các thành phần máy phân tích (analyzers) đảm nhiệm thực hiện. Mỗi một analyzer là sự kết hợp của 3 functions sau:

  • Character filters: Thanh niên này có nhiệm vụ xử lý chuỗi đầu vào trước khi được tách từ, có thể coi như làm “sạch” chuỗi ví dụ như việc loại bỏ các thẻ html_tag hay chuyền ký hiệu & thành thành chữ “and”. Công việc nhẹ nhàng đơn giản như việc rửa sạch rồi bóc vỏ bưởi vậy
  • Tokenizer Chuỗi sau khi được làm “sạch” bởi Chracter filters thì sẽ được tách từ bởi một bộ tách từ tokenizer do mình lựa chọn hoặc định nghĩa, đơn giản nhất là tách từ theo khoảng trắng hay dấu chấm câu, các từ được tách ra này gọi là term, hay nói vui như vừa nãy sẽ là các múi bưởi
  • Token filters Cuối cùng, mỗi term được qua Token filters (bộ lọc thẻ) để “làm mượt” thêm, ví dụ như việc chuyển các ký tự hoa về ký tự thường (lowercase) hay loại bỏ các từ dừng (từ xuất hiện nhiều nhưng gần như không ảnh hưởng tới kết quả tìm kiếm). Đây chính là khâu bóc vỏ bỏ hạt trên từng múi =))

Giới thiệu về elasticsearch-analysis-vietnamese plugin

Một open source plugin được publish bởi bởi lập trình viên Việt Nam – tác giả Duy Do trên github. Mục đích nhằm tích hợp việc xử lý ngôn ngữ tiếng Việt vào Elasticsearch.

Được viết bằng ngôn ngữ java và sử dụng thư viện tách từ tiếng Việt của thầy Lê Hồng Phương đó là vn_tokenizer với độ chính xác lên đến trên 95%

Cung cấp một analyzer gồm vi_analyzer và vi_tokenizer. Trong đó thì vi_analyzer đã bao gồm cả vi_tokenizer, token filters như lowercase và stop word

Cài đặt

Chuẩn bị

So với phần cài đặt chỉ gồm service elasticsearch ở bài trước lần này mình có tích hợp thêm hai plugin nữa:

  • Một là elasticsearch-analysis-vietnamese của anh Duy Đỗ với mục đích sử dụng cho việc tách từ tiếng Việt, nghĩa là sẽ tách theo ngữ nghĩa chứ không chỉ dừng lại ở tách từ đơn.
  • Thứ hai đó là analysis-icu plugin cho việc thực hiện token filter, mục đích chính của mình là loại bỏ đi dấu của từ ví dụ Bách khoa thành “Bach khoa”

Mình vẫn sử dụng docker cho việc cài đặt ELasticsearch (Bài viết trước của mình về docker và docker compose)

  • Để có thể cài đặt được plugin analysis cần download bản release phù hợp với phiên bản elasticsearch mà mình sử dụng hoặc có thể làm theo hướng dẫn để có thể build một bản tùy theo custom của mình. Ví dụ: elasticsearch-analysis-vietnamese-5.3.1.zipLink release và Hướng dẫn tự build


   Categories :      Tags : 

Share On FaceBook

Share On Google

Share On Twitter

Leave a Reply

avatar
  Subscribe  
Notify of