Ứng dụng search engine elastic để xây dựng công cụ hỗ trợ tìm kiếm nội dung văn bản từ nhiều tệp lưu trên máy tính

22:35,30-12-2022 | Tác giả: Thanh Liêm
Xem với cỡ chữ | Từ viết tắt

Tùy vào yêu cầu công việc và nhu cầu, kỹ năng sử dụng máy tính mà mỗi người dùng tự đặt ra cho mình các cách đặt tên và lưu trữ các file văn bản theo các cấu trúc khác nhau. Qua thời gian dài sử dụng, nếu các file văn bản không được sắp xếp, lưu trữ một cách khoa học thì việc tìm kiếm sẽ mất rất nhiều thời gian. Khi người dùng muốn tìm kiếm một nội dung nào đó trong file văn bản (như .doc, .docx, .ppt, .pptx, xls, xlsx), cách làm thông thường là mở văn bản đó lên và đọc sơ nội dung từ trên xuống dưới để tìm. Nếu làm theo cách này, ngay cả khi các file văn bản được sắp xếp, lưu trữ khoa học đi chăng nữa mà với số lượng nhiều thì việc tìm kiếm nội dung từ các file đó sẽ mất rất nhiều thời gian và nhiều khi không thể tìm kiếm được nếu như không có công cụ hỗ trợ.


          Khi tìm nội dung trên file văn bản cụ thể, người dùng có thể sử dụng tính năng tìm kiếm của các phần mềm tương ứng với định dạng file trong bộ Microsoft office (word, powerpoint, excel) nhưng chỉ hỗ trợ tìm chính xác từng từ khóa mà không hỗ trợ tìm kiếm từ khóa tiếng Việt không dấu hoặc nhập sai chính tả.

          Với những máy tính được cài đặt hệ điều hành Windows đã được tích hợp sẵn công cụ Windows Search để phục vụ cho nhu cầu tìm kiếm nội dung từ nhiều file. Để sử dụng công cụ này, người dùng có thể tham khảo từ nhiều bài viết hướng dẫn đăng trên một số website[1]. Ưu điểm của công cụ này là hỗ trợ tìm kiếm từ khóa trong tên và nội dung từ nhiều file với nhiều định dạng tập tin khác nhau. Tuy nhiên, nếu thiết lập tìm cả tên file và nội dung thì công cụ Windows Search cho ra kết quả không thực sự chính xác.

          Ví dụ: Tác giả thử nghiệm tìm kiếm các file có cụm từ “chuyển đổi số” trong thư mục tổng hợp các bài viết cho Bản tin Khoa học và Công nghệ tỉnh Bình Phước số gộp 10, 11, 12 năm 2021, kết quả trả về như sau:


Hình 1. Kết quả tìm kiếm file có cụm từ “chuyển đổi số” bằng Windows Search
        
          Ở Hình 1, có nhiều file không có nội dung chứa cụm từ “chuyển đổi số” vẫn được liệt kê ra do Windows Search tìm cả các file có từ khóa “số” hoặc “so” trong tên file hoặc tên thư mục con. Khi đó, người dùng sẽ mất thêm thao tác mở các file đó lên để đọc sơ nội dung xem có chứa cụm từ cần tìm hay không.

          Ngoài Windows Search, người dùng cũng có thể tải một số phần mềm khác hỗ trợ tìm kiếm nội dung file như DocFetcher[2], Examine64 Text Search[3], Listary[4], Agent Ransack[5], Windows Grep[6]

          Tuy nhiên, khi người dùng có nhu cầu tìm kiếm nội dung có nhiều điều kiện khác nhau (ví dụ: muốn tìm những file vừa có cụm từ “chuyển đổi số” vừa có cụm từ “cách mạng công nghiệp”) hoặc tìm kiếm nội dung theo ý nghĩa của câu (cụm từ) thì Windows Search và các phần mềm nêu trên chưa hỗ trợ được. Bên cạnh đó, các công cụ này không hỗ trợ tìm ra nội dung khi đánh sai một vài ký tự (Ví dụ: Khi muốn tìm kiếm nội dung file có cụm từ “Bùi Thanh Liêm” mà khi nhập ô tìm kiếm gõ sai là “buz thanb liem” sẽ không tìm ra được. Do đó, việc tìm kiếm nội dung các file theo các cách trên chưa thực sự hiệu quả.

          Để khắc phục những nhược điểm nêu trên, giải pháp tác giả đưa ra là ứng dụng Search engine elastic để xây dựng công cụ hỗ trợ người dùng tìm kiếm hiệu quả hơn nội dung các file văn bản tìm trên máy tính cá nhân. Để xây dựng được công cụ tìm kiếm này, tác giả đã sử dụng ngôn ngữ phát triển là C# được viết trên nền .Net framework 4.7.2 kết hợp với Search engine elastic search desktop[7] để cho kết quả tìm kiếm theo thời gian thực trên cơ sở tích hợp công nghệ trí tuệ nhân tạo (công cụ máy học, phân loại văn bản). Các bước thực hiện như sau:

Bước 1. Cài đặt search engine elastic search desktop.

Đây là bộ công cụ tìm kiếm dựa trên thư viện Lucene, là phần mềm miễn phí, mã nguồn mở xây dựng bằng ngôn ngữ Java, thể tải về tại địa chỉ sau: https://www.elastic.co/fr/downloads/elasticsearch
         
Bước 2. Tiến hành lập trình để xây dựng công cụ tìm kiếm nội dung file
         
- Thao tác đồng bộ dữ liệu được thực hiện theo sơ đồ như sau:
DiagramDescription automatically generated
Hình 2. Sơ đồ xử lý thao tác đồng bộ dữ liệu

- Thao tác tìm kiếm được thực hiện theo sơ đồ như sau
DiagramDescription automatically generated
Hình 3. Sơ đồ xử lý thao tác tìm kiếm.
         
- Công cụ được xây dựng với có các chức năng nổi bật như sau:

          (1) Tìm kiếm theo thư mục hoặc tìm theo tệp tin cụ thể

          - Để sử dụng tính năng này, người dùng vào Tìm kiếm -> Tìm theo thư mục/Tìm theo tệp tin.


 
Hình 4. Chọn nhu cầu tìm kiếm
 
          - Ở mục Loại tìm kiếm: Người dùng lựa chọn phương thức tìm chính xác tuyệt đối nội dung nhập vào hoặc tương đối (ứng dụng công nghệ máy học) để phát hiện ngữ nghĩa tương đương cho ra kết quả tìm kiếm.

          - Người dùng cũng có thể chọn phương thức tìm kiếm nâng cao với các toán tử “Và”, “Hoặc” với nhiều điều kiện khác nhau:

          Ví dụ: Để tìm kiếm những file có nội dung liên quan đến “chuyển đổi số” và “cách mạng công nghiệp”, ta vào Menu/Tìm kiếm nâng cao, chọn toán từ “Và” rồi lần lượt nhập vào các nội dung cần tìm nêu trên, mỗi nội dung cách nhau bằng dấu chấm phẩy (;). Ở mục Loại tìm kiếm, chọn Tuyệt đối. Kết quả tìm kiếm trong thư mục tổng hợp các bài viết cho Bản tin Khoa học và Công nghệ tỉnh Bình Phước số gộp 10, 11, 12 năm 2021 như Hình 5:


 
Hình 5. Kết quả tìm những file có nội dung liên quan đến “chuyển đổi số” và “cách mạng công nghiệp”
 
- Nếu muốn tìm kiếm những nội dung khi đánh sai một vài ký tự hoặc tìm theo ý nghĩa câu, ở mục Loại tìm kiếm, chọn chức năng tìm Tương đối.

Ví dụ: Khi muốn tìm kiếm nội dung file có cụm từ “Bùi Thanh Liêm” mà khi nhập ô tìm kiếm gõ sai là “buz thanb liem” thì công cụ tìm kiếm vẫn hiểu và cho ra kết quả chính xác như Hình 6.


 
Hình 6. Kết quả tìm kiếm tương đối.
 
      Các điều kiện cần thiết để áp dụng cài đặt công cụ nêu trên:

         (1) Máy tính cài đặt hệ điều hành Windows 7 64 bit trở lên và search engine elastic; có bộ nhớ Ram ≥ 4 GB.

         (2) Tìm kiếm các file văn bản định dạng word, powerpoint, excel (như .doc, .docx, .ppt, .pptx, xls, xlsx).

Giải pháp này đã được tác giả áp dụng tìm kiếm hiệu quả nội dung từ các file văn bản định dạng word, excel, powerpoint liên quan đến hoạt động sở hữu trí tuệ và thông tin, thống kê khoa học và công nghệ tại Sở Khoa học và Công nghệ tỉnh Bình Phước. Ưu điểm của công cụ tìm kiếm theo sáng kiến này là có giao diện đơn giản, dễ sử dụng và đem lại hiệu quả như sau:

(1) Cho ra kết quả nhanh gần như realtime (thời gian thực) và chính xác trên tập dữ liệu lớn.

(2) Có phân tích từ khóa và dữ liệu bằng sử dụng công cụ máy học (phân loại văn bản) giúp tìm kiếm bằng nội dung tương tự thay vì chỉ tìm theo từ khóa như bình thường. Nó tự hiểu nội dung câu truy vấn và tìm những nội dung tương tự, nghĩa này công cụ tìm kiếm có khả năng hiểu về mặt ý nghĩa.

(3) Tự động xử lý dữ liệu đầu vào (loại bỏ stop word, ký tự thừa).

(4) Cho phép tìm kiếm bằng câu truy vấn không dấu dựa vào ICU Analysis Plugin (Ví dụ: “Bùi Thanh Liêm” hoặc “Bui Thanh Liem” đều cho ra cùng kết quả).

(5) Tìm kiếm mờ (Fuzzy Search) cho phép tìm ra nội dung mặc dù đánh sai 1 vài ký tự (Ví dụ: “Bùi Thanh Liêm” hoặc “buz thanb liem” đều tìm thấy do hệ thống tìm kiếm tự dự đoán ký tự sai và tìm kiếm).

(6) Công cụ được xây dựng dựa trên search engine elastic search desktop hoàn toàn miễn phí và là mã nguồn mở nên không gặp trở ngại về bản quyền và kinh phí sử dụng.

Đây là sáng kiến đã được Sở Khoa học và Công nghệ tỉnh Bình Phước công nhận tại Quyết định số 64/QĐ-SKHCN ngày 14/01/2021.

Tin liên quan

Trưởng Ban biên tập: TS. Trần Quốc Hoàn - Phó Giám đốc Sở KHCN

Ghi rõ nguồn Sở KH&CN Bình Phước khi phát hành lại thông tin từ Website này

Địa chỉ: 678 Quốc lộ 14, phường Tân Phú, thành phố Ðồng Xoài, Bình Phước

Điện thoại: 02713.879.112- Fax: 02713.879.113

Email: tsokhcn@binhphuoc.gov.vn