1. Trang chủ
  2. » Giáo Dục - Đào Tạo

KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG WEBSITE TÌM KIẾM TÀI LIỆU PHÁP LÝ VIỆT NAM

86 23 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 5,94 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trên đà phát triển của công nghệ số, cùng với nhu cầu tìm kiếm thông tin về pháp lý mọi lúc, mọi nơi, việc xây dựng một Website tìm kiếm văn bản pháp lý được cập nhật liên tục sẽ giải qu

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

NGUYỄN NGỌC DUNG PHAN MINH TOÀN

KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG WEBSITE TÌM KIẾM TÀI LIỆU PHÁP LÝ

VIỆT NAM Build a tool to look up information from the legal document corpus

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

TP HỒ CHÍ MINH, 2021

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

NGUYỄN NGỌC DUNG PHAN MINH TOÀN

KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG WEBSITE TÌM KIẾM TÀI LIỆU PHÁP LÝ

VIỆT NAM Build a tool to look up information from the legal document corpus

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN THS HUỲNH NGUYỄN KHẮC HUY

Trang 3

DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……… ngày

……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin

1 ……… – Chủ tịch

2 ……… – Thư ký

3 ……… – Ủy viên

4 ……… – Ủy viên

Trang 4

LỜI CẢM ƠN

Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học

Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức

cơ bản, các kỹ năng thực tế để có thể hoàn thành Khóa luận tốt nghiệp của mình

Để hoàn thành khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến: Ban

Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo điều

kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu

thuận lợi cho việc tìm kiếm, nghiên cứu thông tin

Chúng em xin gửi lời cảm ơn chân thành đến thầy Huỳnh Nguyễn Khắc Huy đã tận

tình giúp đỡ, định hướng cách tư duy và cách làm việc khoa học Đó là những góp ý

hết sức quý báu không chỉ trong quá trình thực hiện luận văn này mà còn là hành

trang tiếp bước cho chúng em trong quá trình học tập và lập nghiệp sau này

Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa,

bạn bè, tập thể lớp PMCL2016 là những người luôn sẵn sàng sẻ chia và giúp đỡ

trong học tập và cuộc sống Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau

Trong quá trình làm khóa luận này chúng em không tránh khỏi được những sai sót,

chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô để khóa luận

được hoàn thiện hơn

Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn đồng

Trang 5

MỤC LỤC

Chương 1 GIỚI THIỆU CHUNG 13

1.1 Lý do chọn đề tài 13

1.2 Mục đích 14

1.3 Đối tượng 14

1.4 Phạm vi thực hiện 14

Chương 2 TỔNG KẾT 16

2.1 Thư viện pháp luật https://thuvienphapluat.vn/ 16

2.1.1 Tìm hiểu Website 16

2.1.2 Ưu điểm 19

2.1.3 Nhược điểm 19

2.2 Văn bản pháp luật http://vbpl.vn/ 20

2.2.1 Tìm hiểu Website 20

2.2.2 Ưu điểm 23

2.2.3 Nhược điểm 23

2.3 Văn bản pháp luật https://vanbanphapluat.co/ 24

2.3.1 Tìm hiểu Website 24

2.3.2 Ưu điểm 28

2.3.3 Nhược điểm 28

2.4 Bảng tổng hợp so sánh các Website hỗ trợ tìm kiếm tài liệu pháp lý 29

Chương 3 NGHIÊN CỨU THỰC NGHIỆM HOẶC LÝ THUYẾT 32

3.1 Tìm hiểu công cụ tìm kiếm tìm kiếm 32

3.1.1 Khái niệm 32

3.1.2 Nguyên lý hoạt động 32

Trang 6

3.1.2.1 Bộ thu thập thông tin – Web crawling 33

3.1.2.2 Bộ lập chỉ mục – Indexing 33

3.1.2.3 Bộ tìm kiếm thông tin – Searching 33

3.2 Tìm hiểu Elastic Search 34

3.2.1 Khái niệm 34

3.2.2 Cách thức hoạt động 35

3.2.3 Ưu, nhược điểm của Elastic Search 35

3.2.3.1 Ưu điểm 35

3.2.3.2 Nhược điểm 35

3.2.4 Các khái niệm cơ bản trong Elastic Search 36

3.2.4.1 Documents 37

3.2.4.2 Index 37

3.2.4.3 Shard 37

3.2.4.4 Node 38

3.2.4.5 Cluster 38

3.2.5 Cài đặt Elastic Search 38

3.2.5.1 Yêu cầu cài đặt 38

3.2.5.2 Cài đặt trên Windows 39

3.2.5.3 Cài đặt trên Linux 40

3.2.6 Sử dụng API để thêm, xóa, sửa, tìm kiếm dữ liệu trong Elastic Search 41 3.2.6.1 Index 42

3.2.6.2 Document 45

3.2.7 Bulk API 48

Trang 7

3.3 Thu thập dữ liệu bằng crawler 50

3.3.1 Thư viện Axios và Cheerio 50

3.3.1.1 Axios 50

3.3.1.2 Cheerio 50

3.3.2 Bóc tách dữ liệu trên trang vanbanphapluat.co 50

3.3.3 Trình phân tích từ Analyer 53

3.3.3.1 Trình phân tích từ có sẵn của ElasticSearch: 53

3.3.3.2 Trình phân tích từ tùy chỉnh 54

3.4 Tạo chỉ mục Index để lưu dữ liệu 54

3.5 Tạo Website hỗ trợ tìm kiếm 56

3.5.1 Tạo Form tìm kiếm 56

3.5.2 Phân trang 60

3.5.3 Hiển thị kết quả tìm kiếm 61

3.6 Xử lý câu truy vấn 62

Chương 4 TRÌNH BÀY, ĐÁNH GIÁ BÀN LUẬN VỀ CÁC KẾT QUẢ 64

4.1 Hiệu suất của việc thu thập dữ liệu bằng Crawler 64

4.2 Độ chính xác của việc thu thập dữ liệu bằng Crawler 65

4.3 Độ chính xác của kết quả câu truy vấn 70

Chương 5 KẾT LUẬN 82

5.1 Ưu điểm 82

5.2 Nhược điểm 82

Chương 6 HƯỚNG PHÁT TRIỂN 83

Chương 7 TÀI LIỆU THAM KHẢO 84

Trang 9

DANH MỤC HÌNH

Hình 1.1 Bảng số liệu thống kê của Tòa án nhân dân tối cao về xét xử hình sự sơ

thẩm, mức độ của tình hình tội phạm Việt Nam từ năm 1986 đến năm 2008 13

Hình 2.1 Giao diện Website thuvienphapluat.vn 17

Hình 2.2 Website yêu cầu người dùng sử dụng tài khoản thành viên 17

Hình 2.3 Hướng dẫn tìm kiếm tài liệu văn bản pháp luật 18

Hình 2.4 Kết quả tìm kiếm văn bản trên Website thuvienphapluat.vn 18

Hình 2.5 Hiển thị nội dung văn bản trên Website 18

Hình 2.6 Website yêu cầu người dùng trả phí để sử dụng 19

Hình 2.7 Giao diện Website vbpl.vn 20

Hình 2.8 Kết quả tìm kiếm đơn giản 21

Hình 2.9 Kết quả tìm kiếm nâng cao 21

Hình 2.10 Nội dung văn bản hiển thị trên Website 22

Hình 2.11 Kết quả tìm kiếm với từ khóa “đèn đỏ” 22

Hình 2.12 Giao diện Website vanbanphapluat.co 24

Hình 2.13 Hướng dẫn tìm kiếm với “từ khóa” 25

Hình 2.14 Hướng dẫn lọc kết quả tìm kiếm 25

Hình 2.15 Kết quả tìm kiếm Website vanbanphapluat.co 26

Hình 2.16 Hiển thị nội dung văn bản trên file PDF 26

Hình 2.17 Hiển thị nội dung văn bản trên Website 27

Hình 2.18 Kết quả tìm kiếm với từ khóa “vượt đèn đỏ” 27

Hình 2.19 Kết quả tìm kiếm chính xác với từ khóa “vượt đèn đỏ” 28

Hình 3.1 Nguyên lý hoạt động của Elastic Search 32

Hình 3.2 Cách thức hoạt động của Elastic Search 35

Hình 3.3 Các thành phần trong Elastic Search 36

Hình 3.4 Hình ảnh mô tả Cluster, Node trong Elastic Search 38

Hình 3.5 File dùng để kích hoạt Elastic Search Service 39

Hình 3.6 Service của Elastic Search với port mặc định 9200 39

Hình 3.7 Sử dụng Addon Chrome Elastic Search Head 40

Trang 10

Hình 3.8 Demo Run Elastic Search trên Linux OS 41

Hình 3.9 Các mối quan hệ tương ứng trong Database và Elastic Search 41

Hình 3.10 Index được tạo thành công 42

Hình 3.11 Index tạo không thành công, Index đã tồn tại 42

Hình 3.12 Các thành phần bên trong Index 43

Hình 3.13 Số Replica, Shard mặc định khi tạo Index 44

Hình 3.14 Xóa Index không thành công, Index không tồn tại 45

Hình 3.15 Xóa Index thành công 45

Hình 3.16 Các hàm được sử dụng để thu thập dữ liệu 51

Hình 3.17 Element trên http://vanbanphapluat.co 52

Hình 3.18 Sử dụng Bulk Client Helper để đánh chỉ mục 55

Hình 3.19 Các thuộc tính input được sử dụng trên web 56

Hình 3.20 Giao diện tìm kiếm nâng cao 57

Hình 3.21 Sugestion khi tìm kiếm với từ khóa “quyết đinh 38/” 58

Hình 3.22 Kết quả tìm kiếm văn bản với từ khóa “quyết định” 58

Hình 3.23 Nội dung văn bản 59

Hình 3.24 Tìm kiếm với từ khóa “luật về covid” 62

Hình 3.25 Kết quả tìm kiếm với từ khóa “luật về covid” 63

Hình 3.26 Lọc kết quả tìm kiếm theo một số tiêu chí 63

Hình 4.1 Kết quả File thứ nhất với một số trường cơ bản 65

Hình 4.2 Nghị quyết 04/NQ-CP trên trang vanbanphapluat.co 65

Hình 4.3 Kết quả File thứ hai với một số trường cơ bản 66

Hình 4.4 Quyết định 1921/QĐ-TLĐ trên trang vanbanphapluat.co 66

Hình 4.5 Kết quả File thứ ba với một số trường cơ bản 67

Hình 4.6 Thông báo 06/TB-VPCP trên trang vanbanphapluat.co 67

Hình 4.7 Kết quả File thứ tư với một số trường cơ bản 68

Hình 4.8 Quyết định 141/QĐ-BYT trên trang vanbanphapluat.co 68

Hình 4.9 Kết quả File thứ năm với một số trường cơ bản 69

Hình 4.10 Quyết định 39/QĐ-TTg trên trang vanbanphapluat.co 69

Trang 11

Hình 4.11 Kết quả câu hỏi đầu tiên 72

Hình 4.12 Kết quả câu hỏi thứ hai 73

Hình 4.13 Kết quả câu hỏi thứ ba 74

Hình 4.14 Kết quả câu hỏi thứ tư 75

Hình 4.15 Kết quả câu hỏi thứ năm 76

Hình 4.16 Kết quả câu hỏi thứ sáu 77

Hình 4.17 Kết quả câu hỏi thứ bảy 78

Hình 4.18 Kết quả câu hỏi thứ tám 79

DANH MỤC BẢNG Bảng 2.1 Bảng đánh giá Website 30

Bảng 2.2 Bảng đánh giá chi tiết Website 31

Bảng 4.1 Bảng kết quả của việc đánh giá độ chính xác dựa trên 1000 câu hỏi 70

Trang 12

DANH MỤC TỪ VIẾT TẮT

Từ viết tắt Từ đầy đủ Giải thích

CSDL Cơ sở dữ liệu Cơ sở dữ liệu cho ứng dụng CSS Cascading Style Sheets Các tập định dạng theo tầng DOM Document Object Model Mô hình các đối tượng trong tài

liệu ELK Elastic Search, LogStash, Kibana Tập hợp 3 phần mềm phục vụ

công việc logging HTTP HyperText Transfer Protocol Giao thức truyền siêu văn bản JSON JavaScript Object Noattion Định dạng trao đổi dữ liệu

JS JavaScript Ngôn ngữ lập trình JavaScript

Trang 13

Chương 1 GIỚI THIỆU CHUNG

1.1 Lý do chọn đề tài

Theo Tòa án nhân dân tối cao thì tình trạng phạm tội ở Việt Nam ngày càng tăng cao và đặc biệt hơn là độ tuổi phạm tội ngày càng trẻ hóa Trung bình mỗi năm có 10.000 vụ phạm pháp hình sự do người vị thành niên thực hiện Người phạm tội từ

18 – 30 tuổi chiếm khoảng 70%, dưới 18 tuổi chiếm 8%, tỷ lệ này cũng đang có chiều hướng gia tăng

Theo như sự tìm hiểu của nhóm, việc phạm tội ở độ tuổi vị thành niên là do nhiều nguyên do như thiếu sự quan tâm từ gia đình, có hoàn cảnh đặc biệt và đặc biệt hơn

là do thiếu hiểu biết về pháp luật Pháp luật chưa được giảng dạy thông qua các môn học dành cho các bạn học sinh vì một số lý do nào đó, nên dẫn tới việc các bạn học sinh chưa hiểu rõ được mức độ nghiêm trọng cũng như tính cần thiết của pháp luật

Hình 1.1 Bảng số liệu thống kê của Tòa án nhân dân tối cao về xét xử hình sự sơ thẩm, mức độ của tình hình tội phạm Việt Nam từ năm 1986 đến năm 2008 Trong đời sống xã hội ngày nay, pháp luật có vai trò đặc biết quan trọng Pháp luật

là phương tiện không thể thiếu, bảo đảm cho sự tồn tại, vận hành bình thường của

xã hội nói chung và của nền đạo đức nói riêng Pháp luật không chỉ là một công cụ quản lý nhà nước hữu hiệu, mà còn tạo môi trường thuận lợi cho sự phát triển của ý

Trang 14

thức đạo đức, làm lành mạnh hoá đời sống xã hội và góp phần bồi đắp nên những

giá trị mới

Hệ thống pháp luật Việt Nam không ngừng thay đổi để hoàn thiện, nên việc nắm bắt cũng như tìm hiểu pháp luật luôn thiết yếu với người dân đang sinh sống và làm việc tại Việt Nam Trên đà phát triển của công nghệ số, cùng với nhu cầu tìm kiếm thông tin về pháp lý mọi lúc, mọi nơi, việc xây dựng một Website tìm kiếm văn bản pháp lý được cập nhật liên tục sẽ giải quyết nhu cầu thực tế đó

• Tìm hiểu ngôn ngữ lập trình JavaScript, NodeJS

• Lấy các văn bản pháp lý Việt Nam từ các Website có sẵn (Crawler)

• Tạo chỉ mục văn bản pháp lý và tìm kiếm bằng Elastic Search

• Thống kê “từ khóa” tìm kiếm bằng ELK (ElasticSearch Logstash Kibana)

Trang 15

• Sử dụng ElasticSearch tạo nên một Server giúp lưu trữ dữ liệu cũng như xử

lý câu truy vấn

• Phạm vi thời gian: Từ ngày 10/9/2020 đến ngày 31/1/2021

Trang 16

Chương 2 TỔNG KẾT

Phân tích một số Website hiện có hỗ trợ tìm kiếm tài liệu pháp lý Việt Nam

2.1 Thư viện pháp luật https://thuvienphapluat.vn/

2.1.1 Tìm hiểu Website

[1][2] [2] Thành lập năm 2003, “Thư Viện Pháp Luật” sử dụng môi trường Internet

để giúp công chúng loại rủi ro pháp lý, nắm cơ hội làm giàu Giải pháp của Website

là cộng thêm giá trị gia tăng vào hệ thống văn bản pháp luật, tạo môi trường chia sẻ thông tin pháp lý cùng thảo luận và giao dịch các vấn đề pháp lý Sứ mệnh của Website là sử dụng công nghệ cao để tổ chức lại hệ thống văn bản pháp luật và kết nối cộng đồng dân luật Việt Nam

Với phiên bản đầu tiên từ 2005, đến nay là phiên bản thứ 5, đang được hơn 50.000 doanh nhân, viên chức, luật sư, chuyên viên pháp lý, sử dụng và cập nhật văn bản luật Website hoạt động từ tháng 1/2008, hiện có hơn 2.000.000 thành viên đăng kí

sử dụng thường xuyên Mỗi ngày tiếp nhận hơn 600 lượt hỗ trợ, tư vấn sơ bộ về pháp luật qua điện thoại, email, skype và các kênh hỗ trợ trực tiếp khác Việc hỗ trợ này sẽ giúp cho công chúng và doanh nghiệp nhanh chóng có giải pháp xử lý cho các vấn đề pháp lý đang gặp phải

Trang 17

Ban thư ký luật có trách nhiệm kiểm tra nội dung các văn bản mới được ban hành, nắm bắt ngay vấn đề pháp lý mới và tóm lược những thông tin này thành Thông báo ngắn gọn, súc tích, theo từng lĩnh vực, ngành nghề để gửi đến khách hàng, giúp khách hàng biết được ngay những thay đổi của pháp luật phục vụ cho công việc Hiện có hơn 1.500.000 khách hàng có nhu cầu này

Người dùng muốn tìm kiếm cần nhập thông tin vào ô Tìm Văn bản Pháp luật sau đó Enter hoặc chọn nút Tìm kiếm Các chức năng Tra cứu nhanh cần phải đăng kí thành viên mới được sử dụng Người dùng cũng có thể tìm kiếm theo tiêu đề hoặc

số hiệu văn bản, kết quả phải chính xác cụm từ trên Ngoài ra còn có thời gian ban hành, loại văn bản, cơ quan ban hành, người ký, sắp xếp theo,…

Hình 2.2 Website yêu cầu người dùng sử dụng tài khoản thành viên

Hình 2.1 Giao diện Website thuvienphapluat.vn

Trang 18

Hình 2.3 Hướng dẫn tìm kiếm tài liệu văn bản pháp luật

Hình 2.4 Kết quả tìm kiếm văn bản trên Website thuvienphapluat.vn

Hình 2.5 Hiển thị nội dung văn bản trên Website

Trang 19

Kết quả tìm kiếm văn bản được hiển thị và highlight những từ ngữ liên quan Người dùng chọn tiêu đề của văn bản để xem chi tiết nội dung văn bản Văn bản sẽ hiển thị trực tiếp trên Website

2.1.2 Ưu điểm

• Số lượng văn bản pháp luật lớn (225628 văn bản pháp luật) Các văn bản luôn được cập nhật

• Có đội ngũ tư vấn pháp luật chuyên môn

• Gửi email thống báo cho thành viên những thông tin pháp luật nổi bật hàng tuần

2.1.3 Nhược điểm

• Giao diện có quá nhiều thông tin cũng như các quảng cáo của trang web có thể khiến người dùng bị rối

• Yêu cầu người dùng đăng kí tài khoản nếu muốn tra cứu nâng cao

• Mất phí để sử dụng các tiện ích cao hơn

Hình 2.6 Website yêu cầu người dùng trả phí để sử dụng

Trang 20

2.2 Văn bản pháp luật http://vbpl.vn/

2.2.1 Tìm hiểu Website

[2] Hệ thống chứa toàn bộ các văn bản quy phạm pháp luật, văn bản hợp nhất trên toàn quốc, bao gồm các văn bản do cơ quan nhà nước ban hành hoặc phối hợp ban hành Ngoài ra, CSDL văn bản còn chứa các văn bản điều hành được ban hành và quản lý bởi Hội đồng nhân dân (HĐND), Ủy ban nhân dân (UBND) cấp tỉnh, thành phố trên toàn quốc

Người dùng có thể dễ dàng tìm kiếm, xem thông tin của các văn bản có trong CSDL như: Văn bản pháp luật, Văn bản hợp nhất, Văn bản điều hành, Điều ước quốc tế Các tính năng hỗ trợ: chương trình hỗ trợ cho người dùng dễ dàng Tìm kiếm, Khai thác thông tin cũng như Tham gia đóng góp ý kiến cho các văn bản thông qua các chức năng được hỗ trợ trên chương trình

Ngoài ra, khi truy cập vào chương trình, người dùng còn dễ dàng theo dõi, tìm kiếm được các Tin tức, Các Tình huống pháp luậtcó liên quan đến các văn bản quy phạm pháp luật đã, đang và sắp được ban hành

Hình 2.7 Giao diện Website vbpl.vn

Trang 21

Người dùng muốn tìm kiếm cần nhập thông tin vào ô Tìm Văn bản Pháp luật sau đó nhấn “Enter” hoặc chọn vào nút “Tìm kiếm” Người dùng cũng có thể “Tìm kiếm đơn giản” theo 2 option sau:

• Chính xác cụm từ trên: kết quả trả về chứa chính xác cụm từ được nhập theo đúng thứ tự hiển thị của từ khóa

• Có tất cả từ trên: kết quả trả về chưa tất cả các từ trong cụm từ khóa, không quan tâm vị trí hiển thị

Người dùng cũng có thể chọn “Tìm trong”: lựa chọn từ khóa cần tìm nằm trong thuộc tính nào của văn bản hoặc tìm kiếm thông qua nhiều tiêu chí trong “Tìm kiếm nâng cao”

Hình 2.8 Kết quả tìm kiếm đơn giản

Hình 2.9 Kết quả tìm kiếm nâng cao

Trang 22

Khác với các Website khác, từ khóa được tìm kiếm không được highlight mà chỉ hiển thị một số nội dung cơ bản của văn bản pháp lý như tiê đề, ngày ban hành, ngày hiệu lực Để xem chi tiết văn bản, người dùng nhấn chọn vào tiêu đề của văn bản đó

Hình 2.10 Nội dung văn bản hiển thị trên Website

Hình 2.11 Kết quả tìm kiếm với từ khóa “đèn đỏ”

Trang 23

2.2.2 Ưu điểm

• Số lượng văn bản pháp lý lớn và được cập nhật thường xuyên

• Nội dung văn bản đầy đủ

• Không chứa các quảng cáo

2.2.3 Nhược điểm

• Độ chính xác của chức năng tìm kiếm chưa cao

• Kết quả trả về khi tìm kiếm chưa trực quan, không hightligh những từ khóa tìm kiếm, không thông báo tình trạng của văn bản

Trang 24

2.3 Văn bản pháp luật https://vanbanphapluat.co/

2.3.1 Tìm hiểu Website

[3] Cơ sở dữ liệu văn bản pháp luật cung cấp nội dung, file văn bản gốc các loại văn bản pháp luật, công văn, tiêu chuẩn Việt Nam, dự thảo văn bản Được xây dựng và phát triển CSDL từ đầu năm 2013 với tên miền luatvn.net Đến đầu năm 2016 cập nhật lại và xây dựng lại hoàn toàn CSDL này Đến tháng 08 2017 CSDL về văn bản pháp luật chính thức đi vào hoạt động với tên miền mới vanbanphapluat.co

Giải pháp của Website nhằm cung cấp đến tổ chức, cá nhân, doanh nghiệp công cụ tra cứu, tìm kiếm hữu ích các tài liệu liên quan đến pháp luật Việt Nam

Mục tiêu của Website là:

• Sử dụng công nghệ hiện đại để tổ chức lại hệ thống văn bản trên cả nước

• Cập nhật nhanh chóng, chính xác và kịp thời

• Kết nối cộng đồng dân luật Việt Nam

o Tìm kiếm nhanh chóng, chính xác thông tin văn bản

o Tìm kiếm cơ hội giao thương

Người dùng muốn tìm kiếm cần nhập thông tin mình muốn tìm kiếm vào ô “Gõ từ khóa tìm kiếm ” sau đó nhấn Enter hoặc chọn nút tìm kiếm Một số hướng dẫn từ

Hình 2.12 Giao diện Website vanbanphapluat.co

Trang 25

Website: có thể nhập bất cứ thông tin muốn tìm, nếu muốn tìm chính xác từ khóa trong tìm kiếm thì đặt trong dấu “ ”, hoặc có thể kết hợp thêm các từ khóa khác

Để thu hẹp phạm vi tìm kiếm, Website cho phép người dùng sử dụng chức năng lọc văn bản theo nhiều cách:

o Loại văn bản: Văn bản pháp luật, Công văn, TCVN (Tiêu chuẩn Việt Nam),

Dự thảo văn bản

o Tùy vào loại văn bản, người dùng có thể lọc theo Lĩnh vực, Loại văn bản, Người ký, Hiệu lực, Cơ quan ban hành

Hình 2.13 Hướng dẫn tìm kiếm với “từ khóa”

Hình 2.14 Hướng dẫn lọc kết quả tìm kiếm

Trang 26

Với mỗi “từ khóa tìm kiếm” Kết quả trả về sẽ được hiển thị và highlight những từ ngữ liên quan Để xem chi tiết văn bản pháp lý đã tìm kiếm, người dùng chọn vào hình ảnh của văn bản đó để đọc file PDF hoặc chọn tiêu đề của văn bản để xem chi tiết trên Website

Hình 2.15 Kết quả tìm kiếm Website vanbanphapluat.co

Hình 2.16 Hiển thị nội dung văn bản trên file PDF

Trang 27

Hình 2.17 Hiển thị nội dung văn bản trên Website

Hình 2.18 Kết quả tìm kiếm với từ khóa “vượt đèn đỏ”

Trang 28

2.3.2 Ưu điểm

• Website dễ sử dụng, giao diện đơn giản

• Cơ sở dữ liệu pháp luật lớn thường xuyên được cập nhật và thêm các văn bản mới

• Không có nhiều quảng cáo gây khó chịu cho người dùng

• Ngoài việc cung cấp văn bản hiển thị bằng tiếng Việt còn hiển thị văn bản bằng tiếng Anh

• Cung cấp RESTful APIs chia sẻ cơ sở dữ liệu

2.3.3 Nhược điểm

• Chưa có quá nhiều nổi bật trong chức năng tìm kiếm, độ chính xác của việc tìm kiếm chưa cao (Kết quả tìm kiếm hình 2.17 và 2.18)

• Còn hiển thị quảng cáo của Google

Hình 2.19 Kết quả tìm kiếm chính xác với từ khóa “vượt đèn đỏ”

Trang 29

2.4 Bảng tổng hợp so sánh các Website hỗ trợ tìm kiếm tài liệu pháp lý

[4] Dựa vào một số tiêu chí đánh giá Website

WEBSITE CHỨC NĂNG

Legal Document Corpus

Văn bản pháp luật vbpl.vn/

Thư viện pháp luật

Văn bản pháp luật vanbanphapluat.co

I Giao diện Website

III Nội dung

a Nội dung bài viết rõ

ràng?

Trang 30

b Thông tin liên hệ rõ

Trang 31

TIÊU CHÍ CÁCH ĐÁNH GIÁ

I Giao diện Website

d Hình ảnh nét/ đẹp? (+1) Dùng mắt thường để đánh giá độ nét của ảnh, ảnh tự chụp

được đánh giá cao Ảnh copy, tải về bị đánh giá là thấp Ảnh nét/ đẹp được đánh giá cao Ảnh mờ/ xấu được đánh giá thấp

làm phiền khách hàng mà k mang lại giá trị cho họ

f Bố cục Website cân đối?

(+1)

Thường Website chia thành 3 phần: Phần Sidebar bên trái, phần nội dung ở giữa, phần Sidebar bên phải Chỉ cần chiều dài của 3 cột này gần tương đương nhau, không cột nào quá dài hơn so với 2 cột còn lại thì được gọi là "cân đối"

Vào thử bằng điện thoại của mình Có thể dùng thêm Tool

"check Website mobile friendly" Nếu hiển thị đầy đủ nội dung thì gọi là tốt

c Tốc độ load trang nhanh?

(+1)

Vào thử Website bằng máy tính, điện thoại Có thể dùng công

cụ check speed online

d Google Analytics? (+1) Việc liên kết ananlytics gần như là điều bắt buộc

e Bài viết liên quan? (+1) Giúp giữ chân người đọc lâu hơn, đưa cho người đọc nhiều

thông tin hơn

g Thời gian trung bình tìm

chuyển đổi qua lại giữa các ngôn ngữ: tiếng Việt, tiếng Anh,

… III Nội dung

a Nội dung bài viết rõ ràng?

(+1)

Đọc hiểu được nội dung người viết muốn nói

b Thông tin liên hệ rõ ràng,

đầy đủ? (text, maps) (+1)

Đầy đủ để khách hàng có thể dễ dàng tìm được khi họ có nhu cầu

c Sử dụng ảnh/video trong

mỗi bài viết? (+1)

Sử dụng ảnh vs video níu chân khách hàng lâu hơn, tăng chất lượng nội dung Website

d Đưa ảnh nội bộ doanh

Trang 32

Chương 3 NGHIÊN CỨU THỰC NGHIỆM HOẶC LÝ THUYẾT

3.1 Tìm hiểu công cụ tìm kiếm tìm kiếm

3.1.1 Khái niệm

[5] Search Engine (Công cụ tìm kiếm, máy tìm kiếm) là một hệ thống phần mềm, được truy cập trên Internet, có chức năng tìm kiếm cơ sở dữ liệu thông tin theo truy vấn của người dùng Máy tìm kiếm sẽ cung cấp một danh sách các kết quả phù hợp nhất với những gì người dùng đang cố gắng tìm kiếm

Các bộ phận cấu thành hệ thống máy tìm kiếm search engine bao gồm:

• Bộ thu thập thông tin (Web crawling)

sở dữ liệu chỉ mục phục vụ cho nhu cầu tìm kiếm thông tin Bởi vì thông tin trên mạng luôn thay đổi nên robots phải liên tục cập nhật các Website cũ Mật độ cập nhật phụ thuộc vào từng hệ thống search engine Khi search engine nhận câu truy

Hình 3.1 Nguyên lý hoạt động của Elastic Search

Trang 33

vấn từ user, nó sẽ tiến hành phân tích, tìm trong cơ sở dữ liệu chỉ mục và trả về những tài liệu thoả yêu cầu tìm kiếm.

3.1.2.1 Bộ thu thập thông tin – Web crawling

[6] Web crawling là một chương trình tự động duyệt qua các cấu trúc siêu liên kết

để thu thập tài liệu & một cách đệ quy nó nhận về tất cả tài liệu có liên kết với tài liệu này Robot được biết đến dưới nhiều tên gọi khác nhau : spider, web wanderer hoặc web worm,… Những tên gọi này đôi khi gây nhầm lẫn, như từ ‘spider’,

‘wanderer’ làm người ta nghĩ rằng robot tự nó di chuyển và từ ‘worm’ làm người ta liên tưởng đến virus Về bản chất robot chỉ là một chương trình duyệt và thu thập thông tin từ các site theo đúng giao thức web Những trình duyệt thông thường không được xem là robot do thiếu tính chủ động, chúng chỉ duyệt web khi có sự tác động của con người

3.1.2.2 Bộ lập chỉ mục – Indexing

[7] Hệ thống lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực hiện việc phân tích, trích chọn những thông tin cần thiết (thường là các từ đơn , từ ghép , cụm từ quan trọng) từ những dữ liệu mà robots thu thập được và tổ chức thành cơ sở dữ liệu riêng để có thể tìm kiếm trên đó một cách nhanh chóng, hiệu quả Hệ thống chỉ mục là danh sách các từ khoá, chỉ rõ các từ khoá nào xuất hiện ở trang nào, địa chỉ nào

3.1.2.3 Bộ tìm kiếm thông tin – Searching

[8] Search engine là cụm từ dùng chỉ toàn bộ hệ thống bao gồm bộ thu thập thông tin, bộ lập chỉ mục & bộ tìm kiếm thông tin Các bộ này hoạt động liên tục từ lúc khởi động hệ thống, chúng phụ thuộc lẫn nhau về mặt dữ liệu nhưng độc lập với nhau về mặt hoạt động Search engine tương tác với user thông qua giao diện web,

có nhiệm vụ tiếp nhận & trả về những tài liệu thoả yêu cầu của user

Tóm lại, tìm kiếm từ là tìm kiếm các trang mà những từ trong câu truy vấn (query) xuất hiện nhiều nhất, ngoại trừ stopword (các từ quá thông dụng như mạo từ a, an,

Trang 34

the, …) Một từ càng xuất hiện nhiều trong một trang thì trang đó càng được chọn

để trả về cho người dùng Và một trang chứa tất cả các từ trong câu truy vấn thì tốt hơn là một trang không chứa một hoặc một số từ Ngày nay, hầu hết các search engine đều hỗ trợ chức năng tìm cơ bản và nâng cao, tìm từ đơn, từ ghép, cụm từ, danh từ riêng, hay giới hạn phạm vi tìm kiếm như trên đề mục, tiêu đề, đoạn văn bản giới thiệu về Website,…

Ngoài chiến lược tìm chính xác theo từ khoá, các search engine còn cố gắng “hiểu”

ý nghĩa thực sự của câu hỏi thông qua những câu chữ do người dùng cung cấp Điều này được thể hiện qua chức năng sửa lỗi chính tả, tìm cả những hình thức biến đổi khác nhau của một từ

Ví dụ: Search engine sẽ tìm những từ như “speaker”, “speaking”, “spoke” khi người dùng nhập vào từ khóa tìm kiếm là: “speak”

3.2 Tìm hiểu Elastic Search

3.2.1 Khái niệm

[9]Elastic Search là một công cụ tìm kiếm search engine dựa trên nền tảng Apache Lucene 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

Elastic Search là một mã nguồn mở được phát triển bằng ngôn ngữ Java, thực chất hoạt như một Web Server, có khả năng tìm kiếm nhanh chóng (near realtime) thông qua giao thức RESTful

Elastic Search chạy trên Server riêng và đồng thời giao tiếp thông qua RESTful do vậy nên nó không phụ thuộc vào Client hay hệ thống Nên việc tích hợp nó vào hệ thống là dễ dàng, chỉ cần gửi request HTTP sẽ nhận được kết quả trả về

Với các dữ liệu nhỏ và vừa, người dùng có thể tìm kiếm trên file, trên các nền tảng

dữ liệu như Oracle, MySQL, MongoDB… nhưng đối với những trường hợp dữ liệu lớn thì Elastic Search giúp cho việc tìm kiếm trở nên tối ưu và hiệu quả rất lớn

Trang 35

3.2.2 Cách thức hoạt động

Toàn bộ dữ liệu tổng hợp, dữ liệu được người dùng tải lên sẽ lưu vào database, tiếp theo chúng được đồng bộ hóa sang Elastic Search Từ đó, khi người dùng tìm kiếm thì sẽ tìm kiếm trên Elastic Search, tốc độ vừa nhanh, vừa giảm tải cho database

3.2.3 Ưu, nhược điểm của Elastic Search

3.2.3.1 Ưu điểm

• Khả năng tìm kiếm mạnh mẽ dựa trên Apache Lucene và phân tích dữ liệu

• Khả năng mở rộng theo chiều ngang Dù bạn có tìm kiếm từ khóa sai chính

tả hay không đúng cú pháp thì vẫn được hỗ trợ trả về kết quả rất tốt

• Hỗ trợ tìm kiếm khi từ khóa tìm kiếm có thể bị lỗi

• Hỗ trợ đặc tả những câu truy vấn phức tạp một cách cụ thể và rõ ràng bằng JSON, các Structured Query DSL (Domain– Specific Language), Elastic Search client như Java, Php, JS, Ruby,

3.2.3.2 Nhược điểm

• Elastic Search được tạo ra với mục đích tìm kiếm, nhưng với những nhiệm

vụ khác ngoài search Curd thì Elastic yếu hơn so với những database khác như Mongodb, Mysql… Do vậy người ta ít khi dùng Elastic Search làm database chính như MongoDB hay MySql

• Trong Elastic Search không có khái niệm database transaction, vì thế Elastic Search không đảm bảo được dữ liệu của các hoạt động như Insert, Update

Hình 3.2 Cách thức hoạt động của Elastic Search

Trang 36

hay Delete, khi chúng ta thực hiện thay đổi nhiều bản ghi nếu xảy ra lỗi làm logic sai hay dẫn tới mất dữ liệu Đây cũng là một phần khiến Elastic Search không nên là database chính

• Đối với những hệ thống thường xuyên cập nhật dữ liệu thì việc sử dụng Elastic Search sẽ rất tốn kém cho việc đánh index dữ liệu

• Việc tìm kiếm của Elastic Search được phân trang, thông qua hai giá trị “from” và “size” Việc phân trang này diễn ra rất phổ biến, trên hầu hết các ứng dụng và thậm chí, trên giao diện, người dùng có thể dễ dàng nhảy từ trang này sang trang khác Nhưng Elastic Search có những vấn đề của riêng

nó liên quan đến phân trang, khi mà người dùng nhảy đến những trang quá lớn, nhất là trang cuối cùng Với Elastic Search, nó sẽ phải thực hiện tính toán, đánh giá độ tương quan cho từng trang Ví dụ, bạn cần truy cập trang thứ 20, thì Elastic Search sẽ phải tính toán và thực hiện tìm kiếm trên tất cả các trang từ 1– 20 Trong trường hợp thì sẽ là thực hiện tính toán trên 20 *

20 * 5 = 2000 bản ghi (nếu phân trang là 20 bản ghi mỗi trang) Số trang càng lớn, mức độ tính toán càng nhiều Do đó, trên thực tế, người dùng sẽ phải tìm cách giải quyết vấn đề này, dù tỉ lệ người dùng tìm đến các trang sâu như vậy là không nhiều

3.2.4 Các khái niệm cơ bản trong Elastic Search

[10] Cách khải niệm cơ bản trong Elastic Search

Hình 3.3 Các thành phần trong Elastic Search

Trang 37

3.2.4.1 Documents

Là đơn vị nhỏ nhất để lưu trữ dữ liệu trong Elastic Search Đây là một đơn vị lưu trữ thông tin cơ bản trong Elastic Search, là một JSON object đối với một số dữ liệu

3.2.4.2 Index

Trong Elastic Search, “Indexing a document” giống như là “Insert/Update a document” Elastic Search có một cấu trúc tìm kiếm gọi là inverted index, nó được thiết kế để cho phép tìm kiếm full– text search Cách thức khá đơn giản, các văn bản được tách ra thành từng từ có nghĩa sau đó sẽ được map xem thuộc văn bản nào

và khi search sẽ ra kết quả cụ thể

Có 2 kiểu đánh Index và Forward Index và Inverted Index

• Inverted Index đánh theo keyword: words – > pages

• Forward Index đánh theo nội dung: pages – > words

Chúng ta có thể thấy việc đánh theo keyword thì việc tìm kiếm sẽ nhanh hơn việc chúng ta phải tìm kiếm theo từng page Elastic Search sử dụng Apache lucence để quản lý và tạo Inverted Index

• Elastic Search cung cấp 2 cơ chế của Shard đó là primary Shard và Replica Shard

• Primary Shard sẽ lưu trữ dữ liệu và đánh Index, sau khi đánh dữ liệu xong sẽ được vận chuyển đến các Replica Shard, mặc định của Elastic Search mỗi index sẽ có 5 Primary Shard thì sẽ đi kèm với một Replica Shard

• Replica Shard là nơi lưu trữ dữ liệu nhân bản của Elastic Search, đóng vai trò đảm bảo tính toàn vẹn dữ liệu khi Primary Shard xảy ra vấn đề, ngoài ra

Trang 38

nó còn giúp tăng tốc độ tìm kiếm vì chúng ta có thể cấu hình lượng Replica Shard nhiều hơn cấu hình mặc định của Elastic Search

• Chức năng chính của Cluster là quyết định xem Shard nào được phân bổ cho Node nào và khi nào thì di chuyển các Cluster để cần bằng lại Cluster

Hình 3.4 Hình ảnh mô tả Cluster, Node trong Elastic Search

3.2.5 Cài đặt Elastic Search

3.2.5.1 Yêu cầu cài đặt

• Java 8 trở lên, kiểm tra bằng cách gõ java – version

• Thiết lập biến môi trường JAVA_HOME cho java Kiểm tra biến môi trường JAVA_HOME đã được thiết lập hay chưa bằng lệnh: echo $JAVA_HOME

Trang 39

3.2.5.2 Cài đặt trên Windows

• Download install file tại https://www.elastic.co/fr/downloads/past–

releases/Elastic Search– 6– 4– 0

• Sau đó giải nén file Elastic Search vừa tải xuống

• Run file /bin/Elastic Search.bat để khởi tạo Elastic Search thành một Service Sau khi thành công, service được khởi tạo với port mặc định 9200

Hình 3.5 File dùng để kích hoạt Elastic Search Service

Hình 3.6 Service của Elastic Search với port mặc định 9200

Trang 40

Như vậy, Elastic Search đã cài đặt thành công, sau đây là một số phần mềm hỗ trợ Test và truy vấn Elastic Search:

• Addon Chrome Elastic Search Head

• Plugin Elastic Search Head cho Elastic Search 2.x

• CURL

• Fiddler Web Debugger

3.2.5.3 Cài đặt trên Linux

Tương tự với cài đặt trên Windows, Elastic Search yêu cầu sử dụng Java 8 trở lên

và thiết lập biến môi trường JAVA_HOME Sử dụng lệnh sau để download và cài đặt Elastic Search PGP key: wget – qO – https://artifacts.elastic.co/GPG– KEY– Elastic Search | sudo apt– key add –

Để cài đặt Elastic Search trên Ubuntu ta có 2 cách:

• Cài từ Repository

• Cài từ file deb

Cài đặt Elastic Search bằng APT Repository

• Cài gói apt– transport– https: sudo apt– get install apt– transport– https

• Lưu định nghĩa repository vào /etc/apt/sources.list.d/elastic– 6.x.list

(Repository mặc định ko có Elastic Search): echo "deb

https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee – a

/etc/apt/sources.list.d/elastic– 6.x.list

• Cài đặt Elastic Search bằng lệnh: sudo apt– get update && sudo apt– get install Elastic Search

Cài đặt Elastic Search bằng gói deb

Chạy các lệnh dưới đây để tải và cài đặt Elastic Search bằng file deb

Hình 3.7 Sử dụng Addon Chrome Elastic Search Head

Ngày đăng: 05/09/2021, 20:51

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[23] Đánh chỉ mục Index https://www.elastic.co/guide/en/elasticsearch/client/JavaScript-api/current/api-reference.html?fbclid=IwAR3ZNswJXdC5xBuSkUbpXlO6b1xtzI3sfJTa1g42WxuHGMv7rDm8yBabCPY#_index Link
[24] PUG template engine https://pugjs.org/api/getting-started.html [25] Khái niệm CSShttps://vi.wikipedia.org/wiki/CSS [26] Khái niệm JavaScripthttps://developer.mozilla.org/vi/docs/Learn/Getting_started_with_the_web/JavaScript_basics Link
[27] Paginate search result https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html Link
[28] Compound queries https://www.elastic.co/guide/en/elasticsearch/reference/current/compound-queries.html Link
[29] Full text queries https://www.elastic.co/guide/en/elasticsearch/reference/current/full-text-queries.html Link

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w