Truy vấn thông tin trên văn bản pháp luật

Với sự phát triển không ngừng của công nghệ thông tin, số lượng tài liệu điện tử do con

người tạo ra ngày càng lớn phong phú và đa dạng. Nhu cầu khai thác dữ liệu này trong kho

tài liệu là rất lớn, đây là trong những nhu cầu thường ngày, thiết thực của người sử dụng.

Tuy nhiên, một trong những khó khăn mà con người gặp phải trong việc khai thác thông tin

là: Khả năng tìm kiếm chính xác thông tin cần tìm trong kho tài liệu, khả năng tìm kiếm

nhanh với lượng dữ liệu lớn. Nếu dùng các hệ quản trị cơ sở dữ liệu quan hệ để tìm kiếm dữ

liệu thì sẽ gặp phải các hạn chế như: Bị giới hạn cú pháp của ngôn ngữ SQL, tốc độ tìm

kiếm chậm khi tìm kiếm gần đúng (dùng LIKE) trong cơ sở dữ liệu. Qua tìm hiểu thì chúng

tôi thấy trang truy vấn thông tin pháp luật như thuvienphapluat.vn là trang website có thể

khai thác được với lượng dữ liệu lớn và mỗi một tài liệu thường rất dài và có sự trùng lắp về

mặt ngôn ngữ là rất lớn.Việc đó, gây ảnh hướng đến việc tìm kiếm của người sử dụng. Vì lí

do trên, chúng tôi mong muốn phát triển và cải thiện khả năng tìm kiếm thông tin trên văn

bản pháp luật.

pdf7 trang | Chia sẻ: Thục Anh | Ngày: 11/05/2022 | Lượt xem: 18 | Lượt tải: 0download
Nội dung tài liệu Truy vấn thông tin trên văn bản pháp luật, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
102 TRUY VẤN THÔNG TIN TRÊN VĂN BẢN PHÁP LUẬT Phan Hải Đăng, Dương Thanh Toàn Viện Công nghệ Việt – Nhật (VJIT), Trường Đại học Công nghệ TP. Hồ Chí Minh GVHD: TS. Lê Thị Ngọc Thơ TÓM TẮT Với sự phát triển không ngừng của công nghệ thông tin, số lượng tài liệu điện tử do con người tạo ra ngày càng lớn phong phú và đa dạng. Nhu cầu khai thác dữ liệu này trong kho tài liệu là rất lớn, đây là trong những nhu cầu thường ngày, thiết thực của người sử dụng. Tuy nhiên, một trong những khó khăn mà con người gặp phải trong việc khai thác thông tin là: Khả năng tìm kiếm chính xác thông tin cần tìm trong kho tài liệu, khả năng tìm kiếm nhanh với lượng dữ liệu lớn. Nếu dùng các hệ quản trị cơ sở dữ liệu quan hệ để tìm kiếm dữ liệu thì sẽ gặp phải các hạn chế như: Bị giới hạn cú pháp của ngôn ngữ SQL, tốc độ tìm kiếm chậm khi tìm kiếm gần đúng (dùng LIKE) trong cơ sở dữ liệu. Qua tìm hiểu thì chúng tôi thấy trang truy vấn thông tin pháp luật như thuvienphapluat.vn là trang website có thể khai thác được với lượng dữ liệu lớn và mỗi một tài liệu thường rất dài và có sự trùng lắp về mặt ngôn ngữ là rất lớn.Việc đó, gây ảnh hướng đến việc tìm kiếm của người sử dụng. Vì lí do trên, chúng tôi mong muốn phát triển và cải thiện khả năng tìm kiếm thông tin trên văn bản pháp luật. Từ khóa: Apache Lucene, Elasticsearch, indexing, thu thập dữ liệu, vnTokenizer. ABSTRACT With the continuous development of information technology, the number of electronic documents created by human is increasingly rich and diverse. The demand for this data exploitation in the document warehouse is huge, this is in the daily necessities, practical users. However, one of the difficulties that we encounter in the exploitation of information is: the ability to search for accurate information to look for in document repositories, search capabilities with large amounts of data quickly. If you use relational database management systems to search data, you will encounter limitations such as: Limited SQL language syntax, slow search speed when searching approximate (using LIKE) in the database. While studying, we find that information retrieval websites, such as thuvienphapluat.vn, are those that can be exploited with a large amount of data and each document is usually very long and has a great linguistic overlap. These facts affect the performance of user's search. For the above reasons, we are going to develop and improve the ability to search for information on legal documents. Keyword: Apache Lucene, crawling data, Elasticsearch, indexing, vnTokenizer. 103 1 GIỚI THIỆU CHUNG Truy vấn thông tin là hoạt động thu thập các nguồn thông tin liên quan đến một thông tin cần tìm kiếm, có thể dựa trên siêu dữ liệu (metadata) và trên việc đánh chỉ mục toàn văn bản (hoặc dựa vào nội dung khác). Những hệ thống truy vấn thông tin tự động được sử dụng để giảm thiểu việc quá tải thông tin. Nhiều các trường đại học và thư viện công cộng sử dụng hệ thống truy hồi thông tin để cung cấp truy cập đến sách báo và các tài liệu khác. Các máy tìm kiếm trên website được coi là những ứng dụng truy vấn thông tin dễ nhận thấy nhất. Các công cụ tìm kiếm được tích hợp vào website thì có rất nhiều, trong đó công cụ được biết đến khá mạnh về lĩnh vực truy vấn thông tin thì không thể nói đến Elasticsearch để giải quyết việc tìm kiếm bằng thời gian thực và độ chính xác các văn bản trả về có độ tương quan cao. Để giải quyết vấn đề nêu trên, chúng tôi đã đưa ra một trang website giả lập xử lý truy vấn thông tin trên trang Thư viện Pháp luật. Mục tiêu cung cấp ứng dụng là cải thiện phần tìm kiếm cho các trang website giúp người dùng có thể dễ dàng lấy đưa các văn bản trả về mà mình mong muốn, đồng thời đảm bảo về mặt thời gian và ý nghĩa của việc tìm kiếm. 2 TRIỂN KHAI PHẦN MỀM Phần này trình bày chi tiết môi trường đề xuất, công cụ và phương pháp thực hiện phần nghiên cứu tích hợp Elasticsearch để truy vấn thông tin trên Thư viện Pháp luật. Trong thời đại bùng nổ thông tin, việc tìm kiếm “thông tin” trở nên rất cần thiết và yêu cầu cao hơn. Ngày nay, có rất nhiều cách để tìm kiếm phổ biến được sử dụng trong trang website là câu lệnh truy vấn LIKE trong cơ sở dữ liệu quan hệ SQL. Tuy nhiên, việc sử dụng câu truy vấn như vậy gặp một số vấn đề làm sai kết quả hiển thị và thời gian truy xuất thông tin. Ví dụ: Nếu tìm kiếm bằng truy vấn LIKE “%one%” thì kết quả sẽ chỉ cần chứa “one” là ra. Ví dụ: các từ trong tiếng Anh như “phone”, “zone”, “money”, “alone”, nói chung sẽ là một danh sách kết quả không mong muốn. Còn đối với tiếng Việt, các từ khoá có dấu là “có”, nếu truy vấn LIKE chỉ gõ “co” thì sẽ không trả về được chính xác kết quả về hiệu suất truy vấn LIKE sẽ tìm kiếm đơn thuần toàn văn bản không sử dụng index, nghĩa là tập dữ liệu càng lớn thì tìm kiếm càng lâu. Hình 1. Sơ đồ thực hiện của đề tài 104 Để có thể giải quyết vấn đề trên trước hết chúng tôi thực hiện lấy dữ liệu về từ trang Thư viện Pháp luật qua sự phân tích và cào dữ liệu (crawl data) từ các thẻ HTML để lấy các văn bản về cơ sở dữ liệu MySQL điều này tạo ra lượng dữ liệu dùng cho việc tìm kiếm sau này, kế tiếp để tạo tài liệu cho index với số lượng nhiều chúng tôi xuất cơ sở dữ liệu vừa cào ra tập tin kiểu json và đưa vào Elasticsearch bằng lệnh chèn. Sau cùng chúng sẽ xử lý các câu truy vấn tích hợp vào website. Bây giờ, nếu người dùng tìm kiếm từ khóa thì đầu ra mong muốn với độ tương quan và thời gian trả kết quả là rất cao, như sơ đồ thực hiện trong Hình 1. 2.1 Công cụ tìm kiếm theo chỉ mục Elasticsearch [4] Elasticsearch là một hệ thống hỗ trợ tạo chỉ mục và tìm kiếm riêng biệt, mạnh mẽ, thời gian đáp ứng và kết quả tìm kiếm phù hợp với yêu cầu. Tiền thân của Elasticsearch được phát hành phiên bản đầu tiên vào tháng 2/2010 bởi Shay Banon [4]. Nó cung cấp một bộ máy tìm kiếm dạng phân tán có đầy đủ công cụ với một giao diện web HTTP có hỗ trợ dữ liệu JSON. Elasticsearch là một máy chủ tìm kiếm dựa trên nền tảng kế thừa và phát triển từ Lucene Apache. Elasticsearch được phát triển bằng Java và được phát hành dưới dạng mã nguồn mở theo các điều khoản của Giấy phép Apache. ElasticSearch có một số ưu điểm như sau: - Có thể tìm kiếm tất cả các loại dữ liệu, đáp ứng gần như thời gian thực, dễ sử dụng cũng như dễ cài đặt; hỗ trợ thêm, sửa, xoá hay thay đổi các độ đo, thông số thông qua HTTP và JSON. - Hỗ trợ lập chỉ mục với nhiều ngôn ngữ khác nhau và có hỗ trợ lập chỉ mục cho cả tiếng Việt. Chia dữ liệu hệ thống (sharding) phục vụ cho các ngôn ngữ khác nhau, chẳng hạn Tiếng Anh và Tiếng Pháp. - Chúng ta có thể chia thông tin trên 2 máy chủ khác nhau, sau đó người dùng tìm kiếm tiếng Anh sẽ lấy kết quả từ nút (node) Tiếng Anh và tìm kiếm bằng tiếng Pháp sẽ lấy từ nút (node) Tiếng Pháp. - Khả năng tăng sức chịu đựng các truy xuất cùng lúc và giảm các rủi ro khi các nút khác bị sự cố thông qua khả năng nhân bản (replication). - Thời gian lập chỉ mục nhanh nên rất hợp với các loại dữ liệu lớn và có tần suất cập nhật cao. 2.2 Khái niệm chỉ mục ngược (Inverted Index) [4] Chỉ mục ngược (Inverted Index) được thiết kế để cho phép tìm kiếm toàn văn. Cách thức của nó khá đơn giản, các văn bản được phân tách ra thành từng từ có nghĩa sau đó sẽ được map xem thuộc văn bản nào. Khi tìm kiếm tùy thuộc vào loại tìm kiếm sẽ đưa ra kết quả cụ thể. Ví dụ, ta có hai văn bản cụ thể như sau: 1. The quick brown fox jumped over the lazy dog. 2. Quick brown foxes leap over lazy dogs in summer. 105 Để tạo ra một Inverted Index, trước hết chúng ta sẽ phân chia nội dung của từng tài liệu thành các từ riêng biệt (chúng tôi gọi là terms), tạo một danh sách được sắp xếp của tất cả terms duy nhất, sau đó liệt kê tài liệu nào mà mỗi thuật ngữ xuất hiện. Kết quả như trong Bảng 1a. Bây giờ, nếu chúng ta muốn tìm kiếm từ khóa “quick brown,” chúng ta chỉ cần tìm trong các tài liệu trong đó mỗi thuật ngữ có xuất xuất hiện hay không, như kết quả minh họa trong Bảng 1b. Bảng 1a. Chia nội dung thành các từ riêng biệt Term Doc_ 1 Doc_ 2 Term Doc_1 Doc_2 Quick X jumped X The X lazy X X brown X X leap X dog X over X X dogs X quick X fox X summer X foxes X the X in X Bảng 1b. Kết quả tìm kiếm “quick bro wn” Term Doc_1 Doc2 brown X X quick X Total 2 1 2.3 Khái niệm Web crawling [1] Web crawling là quá trình tự động trích xuất các thông tin từ các trang web và lưu trữ nó dưới một định dạng phù hợp. Chương trình mà thực hiện công việc này gọi là web crawler. Thông thường, khi muốn lấy một số thông tin từ các trang web, chúng ta sẽ dùng các API mà các trang đó cung cấp. Đây là cách đơn giản, tuy nhiên không phải trang web nào cũng cung cấp sẵn API cho chúng ta sử dụng. Do đó chúng ta cần một kĩ thuật để lấy các thông tin từ các trang web đó mà không thông qua API. 2.4 Phương thức hoạt động của Elasticsearch [2] Hình 2. Sơ đồ hoạt động của Elasticsearch 106 Elasticsearch được xây dựng để hoạt động như một server riêng biệt theo cơ chế của RESTful phục vụ việc tìm kiếm dữ liệu. Đầu tiên, dữ liệu thô (raw data) vào Elasticsearch từ nhiều nguồn như log, system indicators và webapp sẽ được phân tích, xử lý, bình thường hóa (normalizes) và làm phong phú thêm (enriches) trong quá trình nhập liệu (Data ingestion) trước khi được lập chỉ mục (index) và đẩy lên Server Elasticsearch. Cuối cùng, sau khi dữ liệu được lập chỉ mục, người dùng có thể tạo các truy vấn phức tạp từ dữ liệu này và sử dụng các tập hợp (aggregations) để truy xuất các bản tóm tắt phức tạp của dữ liệu hay nói ngắn gọn là lấy data trả về từ Server Elasticsearch. 2.5 Công cụ tách từ VnTokenizer [3] Tách từ là một quá trình xử lý nhằm mục đích xác định ranh giới của các từ trong câu văn, cũng có thể hiểu đơn giản rằng tách từ là quá trình xác định các từ đơn, từ ghép có trong câu. Đối với xử lý ngôn ngữ, để có thể xác định cấu trúc ngữ pháp của câu, xác định từ loại của một từ trong câu, yêu cầu nhất thiết đặt ra là phải xác định được đâu là từ trong câu. Vấn đề này tưởng chừng đơn giản với con người nhưng đối với máy tính, đây là bài toán rất khó giải quyết. Chính vì lý do đó tách từ được xem là bước xử lý quan trọng đối với các hệ thống Xử Lý Ngôn Ngữ Tự Nhiên, đặc biệt là đối với các ngôn ngữ thuộc vùng Đông Á theo loại hình ngôn ngữ đơn lập, ví dụ: tiếng Trung Quốc, tiếng Nhật, tiếng Thái, và tiếng Việt. Với các ngôn ngữ thuộc loại hình này, ranh giới từ không chỉ đơn giản là những khoảng trắng như trong các ngôn ngữ thuộc loại hình hòa kết như tiếng Anh, mà có sự liên hệ chặt chẽ giữa các tiếng với nhau, một từ có thể cấu tạo bởi một hoặc nhiều tiếng. Vì vậy đối với các ngôn ngữ thuộc vùng Đông Á, vấn đề của bài toán tách từ là khử được sự nhập nhằng trong ranh giới từ. Ví dụ, ta có câu văn bản cụ thể như sau: “Dự thảo Thông tư hướng dẫn thực hiện Nghị định 135/2020/NĐ - CP quy định về tuổi nghỉ hưu đối với quân nhân và người làm công tác cơ yếu hưởng lương như đối với quân nhân do Bộ Quốc phòng ban hành”. Sau khi thực hiện công cụ tách từ VnTokenizer ta được kết quả như sau: “Dự_thảo Thông_tư hướng_dẫn thực_hiện Nghị_định 135/2020/NĐ - CP quy_định về tuổi nghỉ hưu đối_với quân_nhân và người làm công_tác cơ_yếu hưởng lương như đối_với quân_nhân do Bộ Quốc_phòng_ban_hành”. 3 KẾT QUẢ ĐẠT ĐƯỢC 3.1 Thu thập dữ liệu cho tệp JSON xuất MySQL Dữ liệu về từ trang Thư viện Pháp luật qua sự phân tích và cào dữ liệu (crawl data) bằng thư viện Beautiful Soup từ các thẻ HTML để lấy thông tin văn bản như: tiêu đề, nội dung, về cơ sở dữ liệu MySQL đã được tạo sẵn, kế tiếp để tạo tài liệu cho index với số lượng nhiều 107 chúng tôi xuất cơ sở dữ liệu vừa cào ra tập tin kiểu json và đưa vào Elasticsearch bằng lệnh bên dưới để nạp nó vào index. curl -H "Content-Type: application/json" -XPOST "localhost:9200/index/_bulk?pretty&refresh" --data-binary "@tentaptin.json" Việc cào dữ liệu và chuyển tài liệu vào Elasticsearch nhằm phục vụ cho chức năng tìm kiếm trong Elasticsearch. Kết quả sau khi qua sự phân tích và cào dữ liệu (crawl data) bằng thư viện Beautiful Soup ta được cơ sở dữ liệu ta được 1,460 văn bản pháp luật. 3.2 Tích hợp Elasticsearch Để bạn biết đã kết nối thành công với Elasticsearch server lắng nghe ở cổng 9200. Để biết kết nối với kibana lắng nghe ở cổng 5601 dùng để test Resuft API từ Elasticsearch và có thể tạo được HTTP Request với các phương thức như PUT, GET ... kèm dữ liệu JSON (REST API) gửi đến Server Elasticsearch. Kiểm tra kết nối thành công với Elasticsearch với câu lệnh bên dưới. curl -X GET Index là một tập hợp những dữ liệu có chung một số tên thuộc tính, tính chất - nó giống như một bảng trong SQL. Giờ ta sẽ tiến hành tạo một index có tên là “tvpl”, thật đơn giản chỉ việc PUT đến địa chỉ /tvpl?pretty, vậy là tạo thành công index “tvpl” và thêm các văn bản cho Elasticsearch. 3.3 Search Client Tạo thành công một giao diện hoàn chỉnh dựa vào trang Thư viện Pháp luật. Đồng thời, thành công trong việc sử dụng các câu truy vấn Request API của Elasticsearch vào trong website. Bảng 2. Từ khóa tìm kiếm và kết quả khi sử dụng Elasticsearch Nội dung truy vấn: Chế độ tài chính đối với các tổ chức tín dụng Kết quả truy vấn dưới dạng tiêu đề các văn bản có liên quan 1. Dự thảo Nghị định về nội dung đặc th về chế độ tài chính đối với tổ chức tín dụng yếu kém. 2. Dự thảo Thông tư sửa đổi Thông tư 320/2016/TT - BTC quy định chế độ bồi dưỡng đối với người làm nhiệm vụ tiếp công dân, ử lý đơn khiếu nại, tố cáo, kiến nghị, phản ánh do Bộ trưởng Bộ Tài chính ban hành. 3. Dự thảo Thông tư hướng dẫn thuế và quản lý thuế đối với hộ kinh doanh, cá nhân kinh doanh do Bộ Tài chính. 4. Dự thảo Thông tư sửa đổi Thông tư quy định về hồ sơ, thủ tục hành chính trong lĩnh vực quản lý ngoại hối do Thống đốc Ngân hàng Nhà nước Việt Nam ban hành. 108 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Vấn đề truy vấn thông tin trang Thư viện Pháp luật còn đang là bài toán khó với rất nhiều khía cạnh. Trong bài nghiên cứu này chúng tôi bắt đầu bằng việc tích hợp Elasticsearch vào để kiểm tra và cải thiện một số câu truy vấn Request API có trong Elasticsearch. Nói đến cỗ máy tìm kiếm (search engines) thương mại mã nguồn mở, có hai sự lựa chọn lớn: Elasticsearch hoặc Solr. Về mặt hiệu năng, cả hai lựa chọn đều hoạt động ổn định. Vậy dù là ứng dụng tìm kiếm nội bộ hay bên ngoài, thì vấn đề hiệu suất/ công năng cũng không quá quan trọng nếu lập trình viên thiết kế và cấu hình một cách phù hợp. Việc áp dụng Elasticsearch cho đề tài này đem lại đầu ra mong muốn với độ tương quan và thời gian trả kết quả là rất cao so với trang website thuvienphapluat.vn hiện có. Qua đó, chúng ta cũng thấy được tiềm năng của hướng nghiên cứu này trong tương lai với bài toán truy vấn thông tin này vì nó đem lại sự hài lòng và độ chính xác của tài liệu truy vấn. Trong nghiên cứu tiếp theo, chúng tôi sẽ tiến hành ứng dụng cho các bài toán khác trong xử lý ngôn ngữ tự nhiên mà cụ thể là bài toán phân tách từ ngữ trong tiếng Việt. TÀI LIỆU THAM KHẢO [1] Scraping Data on the Web with BeautifulSoup. Hackers Slackers. https://www.crummy.com/software/BeautifulSoup/. Tháng 10/2019. [2] Elastic Stack and Product Documentation. Elastic. https://www.elastic.co/guide/index.html [3] Chương trình tách từ vnTokenizer. Lê Hồng Phương - Nguyễn Thị Minh Huyền. Tháng 12/2016.

Các file đính kèm theo tài liệu này:

  • pdftruy_van_thong_tin_tren_van_ban_phap_luat.pdf