1. Trang chủ
  2. » Luận Văn - Báo Cáo

Truy hồi thông tin theo ontology trên nền tính toán phân tán Hadoop

126 15 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 126
Dung lượng 4,6 MB

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

Nội dung

Truy hồi thông tin theo ontology trên nền tính toán phân tán Hadoop Truy hồi thông tin theo ontology trên nền tính toán phân tán Hadoop Truy hồi thông tin theo ontology trên nền tính toán phân tán Hadoop luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM

Mã số ngành: 60480201

CÁN BỘ HƯỚNG DẪN KHOA HỌC: PGS.TS ĐỖ PHÚC

TP HỒ CHÍ MINH, tháng 03 năm 2017

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM

Cán bộ hướng dẫn khoa học : PGS.TS ĐỖ PHÚC

(Ghi rõ họ, tên, học hàm, học vị và chữ ký)

Luận văn Thạc sĩ được bảo vệ tại Trường Đại học Công nghệ TP HCM ngày 31 tháng 03 năm 2017

Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ Luận văn Thạc sĩ)

Trang 3

PHÒNG QLKH – ĐTSĐH Độc lập – Tự do – Hạnh phúc

TP HCM, ngày 31 tháng 03 năm 2017

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: PHẠM THẾ ANH PHÚ Giới tính: Nam

Ngày, tháng, năm sinh: 17/01/1990 Nơi sinh: Tp Hồ Chí Minh

Chuyên ngành: Công nghệ thông tin MSHV: 1541860022

I- Tên đề tài:

TRUY HỒI THÔNG TIN THEO ONTOLOGY TRÊN NỀN TÍNH TOÁN PHÂN

TÁN HADOOP

II- Nhiệm vụ và nội dung:

Đề tài luận văn bao gồm 3 nhiệm vụ chính với các nội dung như sau:

 Xây dựng mô hình máy tìm kiếm có tích hợp Ontology để phục vụ cho việc tìm kiếm thông tin, tài liệu liên quan đến ngành CNTT dựa trên khái niệm

 Chuyển đổi hình thức tưu trữ và suy luận Ontology trên nền tảng CSDL đồ thị - nhằm giải quyết bài toàn về lưu trữ nguồn tri thức lớn của Ontology

 Tăng hiệu suất của máy tìm kiếm trong việc lưu trữ và lập chỉ mục tài liệu - thông qua việc áp dụng mô hình phân tán của Nutch/Hadoop

III- Ngày giao nhiệm vụ: 10/11/2016

IV- Ngày hoàn thành nhiệm vụ: 31/03/2017

V- Cán bộ hướng dẫn: PGS.TS ĐỖ PHÚC

CÁN BỘ HƯỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH

(Họ tên và chữ ký) (Họ tên và chữ ký)

PGS.TS ĐỖ PHÚC

Trang 4

T r a n g | i

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác

Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này

đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc

Học viên thực hiện Luận văn

(Ký và ghi rõ họ tên)

PHẠM THẾ ANH PHÚ

Trang 5

T r a n g | ii

LỜI CÁM ƠN

Đầu tiên cho tôi xin phép được gửi lời cám ơn vô cùng sâu sắc đến với PGS.TS Đỗ Phúc, người thầy đã trước tiếp hướng dẫn, chỉ bảo cũng như tạo mọi điều kiện tốt nhất cho tôi trong suốt quá trình thực hiện luận văn này

Ngoài ra tôi cũng xin được gửi lời cám ơn chân thành đến với PGS.TS Võ Đình Bảy cùng toàn thể đội ngũ cán bộ, thầy cô đang công tác tại ĐH Công Nghệ TP HCM, những người đã trực tiếp giảng dạy, các bạn đồng học trong lớp 15SCT11 đã hỗ trợ tôi trong quá trình học tập và thực hiện các nghiên cứu tại trường

Cuối cùng tôi cũng xin được gửi lời cám ơn đến gia đình và người thân đã có những ủng hộ về mặt tinh thần cũng như giúp đỡ đáng kể cho tôi trong quá trình nghiên cứu và hoàn thành luận văn này

PHẠM THẾ ANH PHÚ

Trang 6

T r a n g | iii

TÓM TẮT

Trong những năm gần đây, sự phát triển như vũ bão hiện nay của ngành khoa học máy tính, lượng dữ liệu được tao ra và lưu thông trong Internet là vô cùng lớn – mang lại nguồn tri thức gần như là vô tận cho tất cả mọi người – loài người chúng ta đang bước

vào “kỷ nguyên của Big-Data” (BigData Era) và sự bùng nổ của thông tin toàn cầu Đi

kèm theo đó cũng là các khó khăn, các mô hình máy tìm kiếm truyền thống đã gần như

bị quá tải hoặc không thể đáp ứng được nhu cầu tìm kiếm thông tin ngày càng nâng cao hơn của con người như trước đây nữa Do đó câu hỏi đặt ra là “làm thế nào chúng ta có thể xây dựng được một hệ thống truy hồi thông tin thông minh và mạnh mẽ hơn?” – nó phải hội tụ được các khả năng, bao gồm:

 Bài toán 1: Máy tìm kiếm linh hoạt và thông minh hơn trong việc xử lý, phân tích ngữ cảnh tìm kiếm (search-context) cũng như “hiểu” được người dùng muốn gì

 Bài toán 2: Có cơ chế lập chỉ mục, tìm kiếm và thiết kế hợp lý để có thể xử lý được một lượng lớn dữ liệu (có thể lên đến hàng petabyte)

 Bài toán 3: Dễ dàng và nhanh chóng trong việc mở rộng cũng như bảo trì với mức chi phí và thời gian tiêu tốn là thấp nhất

Để giải quyết cho vấn đề của bài toán [1], chúng tôi đề xuất xây dựng và sử dụng mô

hình máy tìm kiếm dựa trên khái niệm thông qua tích hợp Ontology để hỗ trợ cho việc tìm kiếm – mỗi lĩnh vực (miền tri thức – knowledge domain) cần tìm kiếm sẽ được tích hợp các ontology khác nhau Do giới hạn về thời gian nên trong luận văn này chúng tôi chỉ nhắm đến việc xây dựng Ontology cho miền tri thức CNTT (Computing Domain Ontology – CDO)

Ngoài ra, chúng tôi cũng sẽ thực hiện chuyển đổi ontology được xây dựng sang hình thức lưu trữ bằng CSDL đồ thị (graph-database) và sử dụng truy vấn cypher để rút trích thông tin, nhằm mục đích tăng hiệu xuất cho việc truy vấn, suy luận tri thức từ CDO Đối với

bài toán [2] và [3] chúng tôi đề xuất và triển khai hướng giải pháp xây dựng máy tìm

kiếm trên mô hình xử lý và lưu trữ phân tán mã nguồn mở miễn phí của Apache Nutch/Hadoop – cải tiến và thêm mới một số tính năng để có thể tích hợp được với CDO được xây dựng

Luận văn này bao gồm 5 chương – trình bày chi tiết các ý tưởng, phương thức thực hiện cũng như các thực nghiệm đánh giá cho hệ thống đã phát triển, kết luận tổng quan về các kết quả đạt được cũng như hướng phát triển tiếp theo cho đề tài

Trang 7

 Problem 1: the search engine must have abilities of flexible operation and smart user’s interaction – through analyze the searching context and understating what the user really want through the input query

 Problem 2: Having the appropriate indexing, searching mechanisms and reasonable architecture in order to make it can be able to consume and process the large amount of data during the operating time

 Problem 3: The capabilities of fast and easy on system expanding, maintaining with the lowest cost and taken time

In order to resolve the problem [1], we propose design and build the concept based

search-engine model with ontology – in every searching field (or knowledge domain), the search-engine need to be attached with the appropriate ontology which is constructed for that knowledge domain

Due to the time’s limitation while doing the thesis, we only intend to build the computing domain ontology (CDO) Moreover, after the completion of constructing the CDO, we will introduce about methods of using graph-based storage (graph-database) model for representing and reasoning the knowledge of CDO The main purpose of graph-based storage model transferring is to reach the higher performance in ontology knowledge management and extraction

To come up with the solution for problem [2] and [3], the uses of distributed storage and

processing of Nutch/Hadoop – the free open-source search engine framework - had been

Trang 8

T r a n g | v

considered – we also make some changes as well as related new developments in order

to make it becomes suitable for the thesis’s solutions as well as fitting with the ontology (CDO) based search-engine architecture

Overall the content of thesis, we intend to have 5 chapters – includes detailed descriptions about the system’s design ideas, applying based-theory (algorithm, methods…), the experimental method và results, statistical reports - and finally is the overall conclusion

as well as proposals for continued future improvements

Trang 9

T r a n g | vi

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CÁM ƠN ii

TÓM TẮT iii

ABSTRACT iv

MỤC LỤC vi

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

DANH MỤC CÁC BẢNG ix

DANH MỤC CÁC HÌNH xi

CHƯƠNG 1 GIỚI THIỆU VÀ TỔNG QUAN VỀ CÁC VẤN ĐỀ NGHIÊN CỨU 1

1.1 Lý do và động lực thực hiện đề tài 1

1.2 Mục đích và phạm vi nghiên cứu của đề tài 1

1.3 Tổng lược về các công trình liên quan 2

1.3.1 Các phương pháp và mô hình xây dựng Ontology 2

1.3.2 Chuyển đổi và suy luận ontology trên các nền tảng CSDL 3

1.3.3 Các hệ thống phân tán và bài toán xử lý dữ liệu lớn (Big-data) 3

1.4 Các điểm mới và đóng góp trong luận văn 3

1.5 Tổng quan về các vấn đề nghiên cứu trong luận văn 4

1.5.1 Xây dựng Ontology miền CNTT (CDO) hỗ trợ truy hồi thông tin 4

1.5.2 Xây dựng hệ thống truy hồi thông tin (IRS) tích hợp CDO trên nền lưu trữ và xử lý phân tán 5

1.6 Các phương pháp luận và phương pháp nghiên cứu được áp dụng 8

1.7 Kết luận chương 9

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN TRONG ĐỀ TÀI 10

2.1 Các nguyên lý tìm kiếm và truy hồi thông tin 10

2.1.1 Các mô hình tìm kiếm / so khớp phổ biến 10

2.1.2 Kiến trúc máy tìm kiếm (SE) có hỗ trợ CDO 18

2.2 Xây dựng Ontology dành cho miền tri thức CNTT (Computing Domain Ontology) 28

2.2.1 Sơ lược về bản thể học (Ontology) 28

2.2.2 Phân biệt giữa bản thể học (ontology) và cây phân cấp ngữ nghĩa (taxonomy) 28

2.2.3 Các mô hình rút trích / trích chọn thông tin (Information Extraction) nhằm phục vụ cho xây dựng Ontology 29

2.2.4 Ontology cho miền tri thức CNTT (CDO) 46

2.3 Ứng dụng cơ sở dữ liệu đồ thị để lưu trữ và truy vấn thông tin từ Ontology 51

2.3.1 Lý do cần phải chuyển đổi hình thức lưu trữ và truy vấn 51

2.3.2 Tổng quan về lý thuyết đồ thị và nền tảng lưu trữ dữ liệu dạng đồ thị 51

2.3.3 Hướng tiếp cận CSDL bảng quan hệ (RDBMS) và các giới hạn 53

2.3.4 Phương pháp mô hình hóa CDO trên CSDL đồ thị (Graph-database) 57

2.4 Mô hình máy tìm kiếm (SE) trên nền tảng lưu trữ và xử lý phân tán của Nutch / Hadoop 60

2.4.1 Thu thập tài liệu phân tán (distributed crawling) 60

2.4.2 Lập chỉ mục và chọn lọc tài liệu phân tán (distributed indexing) 62

2.4.3 Phương pháp đánh giá giải thuật 67

Trang 10

T r a n g | vii

2.5 Kết luận chương 67

CHƯƠNG 3 CÁC BƯỚC XÂY DỰNG NỀN TẢNG HỆ THỐNG VÀ CÀI ĐẶT 68

3.1 Tiến trình và phương thức xây dựng CDO 68

3.1.1 Xây dựng lớp chủ đề (Topic) - nhận diện và xác định các thực thể (Entity Extraction) chính 68

3.1.2 Xây dựng lớp thành phần (Ingredient) thông qua việc làm giàu các lớp chủ đề của CDO từ tài liệu huấn luyện 69

3.1.3 Xây dựng lớp quan hệ (Relation) rút trích và thiết lập quan hệ ngữ nghĩa (Relation Extraction) 70

3.2 Chuyển đổi hình thức lưu trữ và rút trích thông tin CDO từ mô hìnhtruyền thống sang dạng CSDL đồ thị (graph-database) 75

3.2.1 Lưu trữ và truy vấn CDO trên CSDL đồ thị 75

3.2.2 Giải quyết bài toán tìm mối liên kết giữa các đối tượng thông qua hướng tiếp cận giải thuật tìm đường đi ngắn nhất 77

3.3 Mô hình máy tìm kiếm trên nền tảng phân tán có tích hợp CDO 79

3.3.1 Cài đặt bộ thu thập tài liệu (Crawler) phân tán Nutch 79

3.3.2 Cài đặt bộ lập chỉ mục (Indexer) có tích hợp CDO để chọn lọc tài liệu phù hợp (Document Filtering) 80

3.3.3 Bộ tìm kiếm (Search) bằng Apache Solr có tích hợp CDO 82

3.4 Kết luận chương 85

CHƯƠNG 4 THỰC NGHIỆM VÀ CÁC KẾT QUẢ ĐÁNH GIÁ 86

4.1 Ontology miền tri thức CNTT (CDO) 86

4.1.1 Thống kê về số lượng các thực thể và quan hệ của CDO được xây dựng 86

4.1.2 Đánh giá CDO trên nền tảng lưu trữ CSDL đồ thị Neo4j 87

4.1.3 Đánh giá mức độ chính xác và đầy đủ của CDO 89

4.2 Đánh giá mô hình thu thập và lập chỉ mục trên nền phân tán của máy tìm kiếm được xây dựng 92

4.3 Đánh giá mô hình máy tìm kiếm có hỗ trợ CDO 95

4.4 Kết luận chương 96

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 97

TÀI LIỆU THAM KHẢO 99

PHỤ LỤC 101

Trang 11

T r a n g | viii

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

ADJP Adjective Phrase Mệnh đề tính từ

AI Artificial Intelligence Trí tuệ nhân tạo

API Application Programming

CDO Computing Domain Ontology Bản thể học cho miền tri thức thuộc

lĩnh vực CNTT

CNTT Information Technology (IT) Công nghệ thông tin

DBMS Database Management System Hệ quản trị cơ sở dữ liệu

DFS Distributed File System Hệ thống lưu trữ dữ liệu trên nền tảng

phân phân tán

FCA Formal Concept Analysis

HDFS Hadoop Distributed File System Hệ thống lưu trữ dữ liệu phân tán của

Hadoop

HTML Hyper Text Markup Language

IR Information Retrieval Truy hồi thông tin

IRS Information Retrieval System Hệ thống truy hồi thông tin

OWL Ontology Web Language Ngôn ngữ bản thể học trên nền tảng

web

RDB Relational Database Cơ sở dữ liệu quan hệ

RDBMS Relational Database Management

RDF Resource Description Framework

RDFS Resource Description Framework

W3C World Wide Web Consortium

Trang 12

T r a n g | ix

DANH MỤC CÁC BẢNG

Bảng 1.1: So sánh mô hình và cơ chế hoạt động của tìm kiếm dựa trên từ khóa

(keyword-based) và dựa trên khái niệm (concept-(keyword-based) 6

Bảng 2.1: Ma trận từ tài liệu - mô hình không gian vector (vector space model) 11

Bảng 2.2: Biểu thức Boolean giữa tài liệu (d1) và (q) 15

Bảng 2.3: Biểu thức Boolean giữa tài liệu (d2) và (q) 15

Bảng 2.4: Diễn giãi truy vấn (q) và tài liệu (d1), (d2) dưới dạng biểu thức boolean 17

Bảng 2.5: Các ví dụ về trường hợp rút gọn câu về dạng nguyên mẫu (sentence stemming) trong xử lý văn bản 22

Bảng 2.6: Các ví dụ về trường hợp tách từ tối ưu trong xử lý văn bản, truy vấn 23

Bảng 2.7: So sánh khác biệt giữa cây phân cấp (taxonomy) và bản thế học (ontology) 28 Bảng 2.8: So sánh sự khác biệt giữa hai hướng tiếp cận xây dựng mô hình rút trích thông tin (IE) 30

Bảng 2.9: Các công đoạn của quá trình rút trích cụm từ khóa bằng phương pháp KIP (Keyphrase Identification Program) 33

Bảng 2.10: Minh họa và so sánh phương thức nhận diện thực thể của hai công cụ StanfordNLP-NER và OpenNLP-NER 35

Bảng 2.11: Một số nhãn từ loại thông dụng trong POS tagging 35

Bảng 2.12: Bảng chi tiết các quan hệ ngữ nghĩa điển hình của miền tri thức CNTT được định nghĩa trước 36

Bảng 2.13: Một số mối quan hệ ngữ nghĩa quan trọng giữa các khái niệm trong ngôn ngữ tự nhiên 37

Bảng 2.14: Nhóm nhãn dành cho các nhóm là cụm từ (Phrase) 38

Bảng 2.15: Nhóm nhãn dành cho các từ loại là động từ (VP) 39

Bảng 2.16: Nhóm nhãn dành cho các từ loại là danh từ (NP) 39

Bảng 2.17: Nhóm nhãn dành cho các từ loại là tính từ (ADJP) 39

Bảng 2.18: Nhóm nhãn đặc thù khác để chỉ sự tương quan ngữ pháp (PENN TreeBank Tagsets) 39

Bảng 2.19: Các bước tiến hành rút trích quan hệ từ dữ liệu câu và sinh luật 49

Bảng 2.20: Các mối quan hệ giữ các thực thể trong CDO và các từ chỉ quan hệ phổ biến 49

Bảng 2.21: Minh họa bằng truy vấn cypher trên Neo4J cho [Hình 2.21] 53

Bảng 2.22: Trung bình thời gian thực thi truy vấn dựa trên số lượng mối quan hệ được xét của CDO lưu trữ trên CSDL bảng quan hệ 56

Bảng 3.1: Mô tả tiến trình phân tách các bộ ba thành phần (triple) bằng công cụ SLDP-OpenIE từ các câu trong văn bản để xây dựng lớp quan hệ 73

Bảng 3.2: Các mối quan hệ được xác định thông qua từ chỉ quan hệ (predicate) 75

Bảng 3.3: So sánh giữa hình thức truy vấn Cypher và SPARQL truyền thống 76

Bảng 3.4: Minh họa và so sánh việc xác định mối quan hệ giữa hai thực thể trên CSDL đồ thị Neo4J 78

Bảng 3.5: Mô tả các tiến trình phân tích và mở rộng truy vấn người dùng 83

Bảng 4.1: Thống kê về lớp chủ đề (topic-layer) của CDO 86

Bảng 4.2: Thống kê về lớp thành phần (ingredient-layer) của CDO 86

Bảng 4.3: Thống kê về lớp quan hệ (relation-layer) của CDO được xây dựng 86

Bảng 4.4: Trung bình thời gian thực thi truy vấn giữa hình thức lưu trữ CSDL bảng quan hệ (RDBMS) và CSDL đồ thị (Graph Database) 88

Bảng 4.5: Kết quả chạy thực nghiệm kiểm tra mức độ chính xác và đầy đủ của CDO cho một số thực thể / khái niệm – xét từng loại quan hệ 90

Trang 13

T r a n g | x

Bảng 4.6: Trung bình các tham số độ chính xác (P), độ nhậy (R) và trung bình điều hòa (F) cho tất cả mối quan hệ của các thực thể tại [Bảng 4.5] 91Bảng 4.7: Chi tiết về môi trường phát triển và chạy thực nghiệm cho hệ thống phân tán 93Bảng 4.8: Kết quả thực nghiệm so sánh môi trường độc lập và phân tán 94Bảng 4.9: Kết quả thực nghiêm so sánh mô hình truy hồi thông tin không và có hỗ trợ Ontology (CDO) 96

Trang 14

T r a n g | xi

DANH MỤC CÁC HÌNH

Hình 1.1: Các quá trình xây dựng, làm giàu và lưu trữ CDO trên cơ sở dữ liệu đồ thị

(graph database) 5

Hình 1.2: Các ứng dụng của việc sử dụng Ontology trong xử lý truy vấn người dùng và tăng hiệu quả trong tìm kiếm tài liệu 6

Hình 2.1: Mô hình hóa sự tương quan giữa truy vấn (q) và tài liệu (d) trên đồ thị 10

Hình 2.2: Xác định độ tương quan giữa truy vấn (q) và tài liệu (d) bằng khoảng cách Euclid 13

Hình 2.3: Xác định độ tương quan giữa truy vấn (q) và các tài liệu (d1), (d2) bằng góc (cosine similarity) 14

Hình 2.4: Mô hình Boolean mở rộng, xếp hạng tài liệu dựa trên khoảng cách Euclid 15

Hình 2.5: Minh họa sự phân phôi của (q) trên (d1) và (d2) trong mô hình xác suất 17

Hình 2.6: Tiến trình hoạt động của crawler thiết kế dưới phương thứchoạt động dạng hàng đợi (queue crawler) 20

Hình 2.7: Tách từ dựa trên phương pháp so khớp tối đa (maximum matching) 24

Hình 2.8: Minh họa các quá trình lập chỉ mục và lưu trữ của Apache Lucene 24

Hình 2.9: Hình thức tổ chức lưu trữ chỉ mục (indexing) dạng cấu trúc cây phân nhánh của Apache Lucene 25

Hình 2.10: Quá trình xác định chủ đề và đưa ra các gợi ý liên quan đến truy vấn của người dùng thông qua Ontology 26

Hình 2.11: Minh họa một quá trình rút trích thông tin và xây dựng mạng quan hệ ngữ nghĩa (semantic relation) 29

Hình 2.12: Các bước cơ bản của một tiến trình rút trích thông tin (IE) 30

Hình 2.13: Minh họa một quan hệ ngữ nghĩa cho thực thể “data mining” 36

Hình 2.14: Minh họa phân tách chú thích ngữ pháp (TreeBank) từ câu được cho 43

Hình 2.15: Minh họa các quá trình xử lý và rút trích bộ ba (triple) của StanfordNLP OpenIE 45

Hình 2.16: Kiến trúc và minh họa thành phần và các lớp (chủ đề, thành phần và quan hệ) của Computing Domain Ontology (CDO) 46

Hình 2.17: Minh họa cấu trúc lớp chủ đề (topic layer) của ontoloty theo kiến trúc phân cấp của ACM 47

Hình 2.18: Quá trình rút trích, nhận diện các khái niệm cho lớp thành phần (ingredient layer) của ontology 48

Hình 2.19: Minh họa đồ thị với định (V) và cạnh (A) 52

Hình 2.20: Minh họa các dạng đồ thị 52

Hình 2.21: Hình thức lưu trữ dữ liệu dạng bảng quan hệ (RDB) truyền thống và dạng cấu trúc đồ thị (Graph-database) 53

Hình 2.22: Minh họa cho truy vấn cypher [Bảng 2.21.1] tại trên Neo4J 53

Hình 2.23: Các lớp của CDO được tổ chức lưu trữ dưới hình thức CSDL dạng bảng quan hệ (RDBMS) 54

Hình 2.24: Truy vấn SQL để xét lần các mối quan hệ với thực thể được xét – trong mô hình CDO được lưu trữ trên RDBMS 55

Hình 2.25: Biểu đồ minh họa sự biến thiên trung bình thời gian thực thi truy vấn dựa trên số lượng mối quan hệ được xét tại [Bảng 2.22] 57

Hình 2.26: Biểu đồ minh họa sự biến thiên TB tổng cho tất cả các lần chạy thực nghiệm tại [Bảng 2.22] 57

Trang 15

T r a n g | xii

Hình 2.27: Minh họa chuyển đổi và lưu trữ ontology từ hình thức truyền thống sang cơ

sở dữ liệu dạng đồ thị (graph-database) 58

Hình 2.28: Xác định khoảng cách giữa các đỉnh trong đồ thị 59

Hình 2.29: Cấu trúc tổ chức các cơ sở dữ liệu - chứa nội dung thu thập của Nutch trên thực tế 60

Hình 3.1: Quá trình rút trích và trộn các khái niệm để xây dựng cây phân cấp chủ đề - phục vụ cho việc xây dựng lớp chủ đề (topic-layer) 68

Hình 3.2: Minh họa lớp chủ đề (topic layer) của CDO trên công cụ Prot égé 68

Hình 3.3: Phương pháp (pseudo code) thực hiện xây dựng lớp thành phần (Ingredient Layer) của CDO 69

Hình 3.4: Quy trình xử lý dữ liệu câu và kiểm tra tồn tại thực thể trước khi tiến hành rút trích quan hệ (relation extraction) 72

Hình 3.5: Phương pháp (pseudo code) thực hiện xây dựng lớp quan hệ (Relation Layer) của CDO thông qua rút trích quan hệ từ các triple 74

Hình 3.6: Minh họa mối quan hệ giữa các thực thể được thiết lập tại [Bảng 3.2] 75

Hình 3.7: Minh họa phương pháp (pseudo code) thực hiện chuyển đổi hình thức lưu trữ của CDO sang dạng CSDL đồ thị (Neo4J) 76

Hình 3.8: Kết quả truy vấn SPARQL [Bảng 3.3.1] trên công cụ Protégé 77

Hình 3.9: Minh họa kết quả truy vấn Cypher [Bảng 3.3.2] trên Neo4J 77

Hình 3.10: Minh họa truy vấn cypher [Bảng 3.4.1] trên dữ liệu CDO trên CSDL Neo4J 78

Hình 3.11: Minh họa truy vấn cypher [Bảng 3.4.2] trên dữ liệu CDO trên CSDL Neo4J 78

Hình 3.12: Minh họa ứng dụng nhận diện thực thể và mối quan hệ trong văn bản 79

Hình 3.13: Minh họa phương pháp (pseudo code) thực hiện chọn lọc tài liệu trong quá trình lập chỉ mục (indexing) thông qua CDO 81

Hình 3.14: Minh họa cho cypher [Bảng 3.5.1] trên Neo4J 84

Hình 3.15: Minh họa cho cypher [Bảng 3.5.2] trên Neo4J 84

Hình 3.16: Minh họa cho cypher [Bảng 3.5.3] trên Neo4J 84

Hình 3.17: Minh họa cho cypher [Bảng 3.5.4] trên Neo4J 85

Hình 3.18: Minh họa cho cypher [Bảng 3.5.5] trên Neo4J 85

Hình 4.1: Minh họa tỷ lệ tương quan giữa các mối quan hệ trong CDO được rút trích (dựa trên số lượng) tại [Bảng 4.3] 87

Hình 4.2: Biểu đồ minh họa Minh họa sự biến thiên trung bình thời gian thực thi truy vấn tại [Bảng 4.4] 88

Hình 4.3: Minh họa kết quả thực nghiệm mức độ chính xác và đầy đủ của CDO cho một số thực thể ngẫu nhiên - với các giá trị tại [Bảng 4.6] 91

Hình 4.4: Biểu đồ minh họa sự biến thiên thời gian thực hiện giữa hai mô hình phân tán và độc lập với các giá trị tại [Bảng 4.8] 94

Hình 4.5: Biểu đồ minh họa sự biến thiên của các giá trị P, R và F cho từng chủ đề trong hai mô hình tìm kiếm bình thường và có hỗ trợ CDO tại [Bảng 4.9] 95

Hình 5.1: Các mối quan hệ giữa các thực thể torng CDO được gán trọng số - phục vụ cho việc kiểm tra mức độ tin cậy của quan hệ khi rút trích 98

Trang 16

Theo thống gần đây nhất, cứ trung bình một giây lại có một website mới lại được đưa lên internet, tính từ thời điểm mạng internet được phổ biến đến hiện nay thì đã có hơn khoảng một tỷ website được công bố lên mạng, đây được coi là một kho dữ liệu thông tin vô cùng khổng lồ (big-data) đem đến nguồn tri thức hầu như là vô tận cho người dùng ở mọi lĩnh vực, nhưng đó cũng chính là vấn đề gây khó khăn cho người dùng có thể tìm kiếm chính xác được thông tin ở các tài liệu mà mình cần vì lượng dữ liệu quá đồ sộ đó Để có thể làm chủ và tiếp cận một cách nhanh chóng các kho tri thức đó, các hệ thống tìm kiếm và truy hồi thông tin (IRS) đã được ra đời và ngày phát triển mạnh mẽ hơn nhằm mục đích phục

vụ cho nhu cầu tìm kiếm tri thức của con người Tuy nhiên, về nhiều lý do khác nhau, các mặt hạn chế cũng như các khó khăn trong việc tìm kiếm thông tin tài liệu một cách chính xác và nhanh chóng vẫn còn tồn tại liên quan đến các vấn đề mức độ chính xác trong việc tìm kiếm, mối liên kết giữa việc diễn đạt ngôn ngữ tự nhiên từ con người và khả năng hiểu của máy tính, kho dữ liệu lớn và liên tục tăng trưởng của các máy tìm kiếm gây khó khăn cho việc quản lý và làm giảm hiệu suất của quá trình lập chỉ mục… Do vậy, cần có các phương pháp và mô hình cải tiến mới nhằm khắc phục các hạn chế đó

1.2 Mục đích và phạm vi nghiên cứu của đề tài

Nhằm giải quyết các khó khăn đã liệt kê trong phần lý do thực hiện luận văn, ba mục tiêu cốt lõi mà luận văn hướng đến là:

Xây dựng và truy hồi thông tin dựa trên ontology: các tài liệu, văn bản trên Internet

(web) hầu hết đều đều biểu diễn ở dạng ngôn ngữ tự nhiên, chỉ phù hợp với con người

để đọc và hiểu, do vậy gây khó khăn cho máy tính trong việc hiểu được chính xác người

Trang 17

T r a n g | 2

dùng muốn nhắm đến đối tượng tìm kiếm là gì - qua truy vấn (cũng ở dạng ngôn ngữ

tự nhiên) Ví dụ, một khái niệm/từ khóa “java” vừa có thể được hiểu là một hòn đảo, một loại café, và cũng là một ngôn ngữ lập trình

Lưu trữ và suy luận (storing và reasoning) Ontology trên nền tảng CSDL đồ thị:

nhằm giải quyết bài toàn về lưu trữ nguồn tri thức rất lớn (large-scale) của ontology được xây dựng cũng như rút trích tri thức từ ontology thông qua việc chuyển đổi từ hình thức lưu trữ truyền thống (native storage) sang hình thức lưu trữ dưới dạng các hệ quản trị CSDL (database-based mechanisms) Trong luận văn này, CSDL dạng đồ thị (graph-based database) được lựa chọn để lưu trữ

Tăng hiệu suất của việc lưu trữ và lập chỉ mục tài liệu - thông qua việc áp dụng

mô hình phân tán (distributed system) của Nutch/Hadoop: một trọng những cấu thành quan trọng nhất của một máy tìm kiếm là kho dữ liệu chỉ mục (indexes) - một

máy tìm kiếm được đánh giá là mạnh mẽ và hiệu quả khi và chỉ khi nó có một kho dữ liệu chỉ mục đủ lớn và được cập nhật liên tục - để có thể đáp ứng được hầu như toàn

bộ các nhu cầu tìm kiếm thông tin của con người ở mức độ chính xác và đầy đủ nhất Tuy nhiên, trong bối cảnh tốc độ tăng trưởng như vũ bão của các nguồn thông tin, tài liệu trên Internet hiện nay – thì các kho dữ liệu chỉ mục cũng sẽ tăng lên một cách chóng mặt theo – kèm theo đó là các khó khăn liên quan đến việc lưu trữ và mở rộng cần phải giải quyết Chính vì thế hướng tiếp cận giải pháp xử lý và lưu trữ phân tán của

Nutch/Hadoop được đưa ra trong luận văn này để giải quyết bài toán trên

1.3 Tổng lược về các công trình liên quan

1.3.1 Các phương pháp và mô hình xây dựng Ontology

Trong nước: trong quá trình thực hiện luận văn, chúng tôi có tham khảo một số

công trình và nghiên cứu trong nước liên quan đến cách thức để nâng cao hiệu quả của việc truy hồi thông tin thông qua Ontology và tìm kiếm ngữ nghĩa, như xây dựng ontology dành cho miền tri thức CNTT của nhóm tác giả T.D.C Chiến và P.T Tươi [1] [2] [3] [4], rút trích các thực thể có tên từ nguồn ngữ liệu của Wordnet và tìm kiếm ngữ nghĩa thông qua ontology của nhóm tác giả C.H Trụ [5] [6] [7] [8], xây dựng mô hình mở rộng truy vấn dựa trên ontology trong vấn đề truy xuất thông tin văn bản [9], phương pháp xây dựng ontology thông qua khai thác dữ liệu văn bản (text-mining) và tham chiếu trên kho ngữ liệu của Wordnet [10]

Trang 18

T r a n g | 3

Ngoài nước: các kỹ thuật và phương pháp xây dựng ontology thông qua huấn luyện

mô hình bán tự động [11], xây dựng ontology bán tự động thông qua rút trích văn bản [12] [13], phương pháp DAFOE của Szulman và công sự [14]

1.3.2 Chuyển đổi và suy luận ontology trên các nền tảng CSDL

Trong nước: ánh xạ ontology từ dạng OWL sang CSDL bảng quan hệ (RDBMS)

[15], bên cạnh đó đề tài của luận văn cũng tham khảo các đề xuất liên quan đến phương pháp chuyển đổi tương quan giữa mô hình dữ liệu dạng bảng quan hệ (RDB) và mô hình ngữ nghĩa của bộ ba thành phần (triple) của ontology [16], chuyển đổi từ CSDL quan hệ sang mô hình dữ liệu dành cho các hệ web ngữ nghĩa (semantic web) [17]

Ngoài nước: lưu trữ và suy luận ontology kích thước lớn (large-scale ontology) trên

các nền tảng lưu trữ khác nhau [18], ánh xạ CSDL bảng quan hệ với ontology cho

mộ số miền tri thức nhất định [19] [20] [21] [22], áp dụng mô hình lưu trữ dạng đồ thị (CSDL đồ thị) cho việc xây dựng, lưu trữ và rút trích tri thức [23] [24] ở dạng quan hệ ngữ nghĩa (sematic relations)

1.3.3 Các hệ thống phân tán và bài toán xử lý dữ liệu lớn (Big-data)

Nhằm giải quyết các vấn đề liên quan đến lượng dữ liệu lớn của máy tìm kiếm dự kiến xây dựng cần phải xử lý - một trong những giải pháp về big-data mã nguồn mở rất nổi tiếng đang được rất nhiều các nhà khoa học trên thế giới quan tâm nghiên cứu và hoàn thiện đó là Hadoop Hadoop có nhiều tính năng ưu việt trong việc lưu trữ và xử lý song song trên nhiều máy với số lượng cực lớn với chi phí và thời gian ngắn Trong quá trình xây dựng hệ thống, luận văn đã tham khảo các công trình, báo cáo liên quan đến tìm kiếm và khai tách thông tin từ kho dữ liệu lớn (big-data), nền tảng xử lý phân tán Hadoop-HBase cho khối dữ liệu lớn (large-scale data), các chiến lược lập chỉ mục tài liệu (document indexing) bằng mô hình phân tán MapReduce

1.4 Các điểm mới và đóng góp trong luận văn

Từ ý tưởng ban đầu đến các bước triển khai ra thực tế, một số đóng góp và cải tiến đã được

đề xuất và mô tả trong trong luận văn, gói gọn trong bốn thành phần chính sau:

Trang 19

 Xây dựng mô hình máy tìm kiếm trên nền tảng lưu trữ và xử lý phân tán – có tích hợp CDO vào mô hình máy tìm kiếm nhằm hỗ trợ cho việc tìm kiếm tài liệu cũng như chọn lọc tài liệu (document filtering) phù hợp cho quá trình lập chỉ mục (indexing)

1.5 Tổng quan về các vấn đề nghiên cứu trong luận văn

1.5.1 Xây dựng Ontology miền CNTT (CDO) hỗ trợ truy hồi thông tin

1.5.1.1.Mục đích xây dựng và ứng dụng của Ontology miền CNTT

Ontology đang là hạt nhân trọng tâm được nhắm tới trong đề tài này – mục tiêu mong muốn và nhắm tới của đề tài, phát triển hệ truy hồi thông tin có tích hợp CDO với cơ chế dựa trên tìm kiếm theo cụm từ/khái niệm thuộc một hay nhiều lĩnh vực nhất định thông qua việc phát triển các bộ từ điển thuật ngữ/khái niệm kết hợp với xây dựng/tổ chức các khái niệm trong lĩnh vực CNTT thành các phân lớp cụ thể để tăng khả năng bám sát nội dụng tài liệu cần tìm dựa trên truy vấn của người dùng

và cũng như mở rộng truy vấn dựa trên các khái niệm có liên quan

1.5.1.2.Chuyển đổi hình thức lưu trữ và truy vấn CDO trên CSDL đồ thị (graph database) Neo4J

Các lớp của Ontology ban đầu sẽ được xây dựng theo cấu trúc OWL (Ontology Web Language), tiếp theo đó sẽ được chuyển đổi sang lưu trữ dưới dạng cơ sở dữ liệu đồ thị (graph database) nhằm tăng tốc độ cũng như tối ưu hơn cho quá trình rút

Trang 20

T r a n g | 5

trích tri thức từ CDO, hỗ trợ cho quá trình tìm kiếm thông tin - thông qua truy vấn trung gian cypher (xem [Hình 1.1])

Cơ Sở Dữ Liệu Đồ Thị (Graph database)

Các Chủ Đề/Tập Từ

(cấu trúc dạng OWL)

Dữ Liệu Huấn Luyện

Đã Được Phân Loại

Các Quá TrìnhHuấn Luyện

& Làm Giàu Ontology

Kiểm Tra & Điểu Chỉnh Thủ Công/Bán Tự Động

Ánh Xạ/Lưu Trữ

Làm giàu CDO thông qua rút trích thực thể & quan hệ từ văn bản huấn luận

Bộ Dữ Liệu

Từ Điển WordNet

Suy luận (reasoning) / rút trích (extracting) tri thức thông qua truy vấn trung gian (cypher)

1.5.2.1 Tổng quan về các thành phần cơ bản của máy tìm kiếm được xây dựng

Về mặt tổng quản, thì một hệ truy hồi thông tin hay còn gọi là máy tìm kiếm được cấu thành bởi chủ yếu hai thành phần chính, bao gồm:

Bộ lập chỉ mục (indexer): dữ liệu đầu vào là tập các tài liệu/văn bản được thu

thập từ các nguồn khác nhau về, sau đó được đi qua các cơ chế tiền xử lý như phân tích, tách từ, loại bỏ stopwords…sau đó lập chỉ mục cho các văn bản và cuối cùng là lưu trữ vào hệ thống

Cơ chế tìm kiếm (searcher): tại đây, truy vấn của người dùng được đưa vào để

phân tích sau đó hệ thống sẽ thực hiện tìm kiếm các tập tài liệu đã được đánh chỉ mục trong kho (corpus) thỏa với tiêu chí của câu truy vấn từ người dùng và cuối cùng là trả về kết quả

1.5.2.2 Tổng quan về hình thức tìm kiếm dựa trên từ khóa (keyword-based) và khái niệm (concept-based)

Tại một số lĩnh vực cũng như nhu cầu tìm kiếm nhất định, các hệ truy hồi thông tin cũng được phân loại thành hai loại chính với các tính năng và nhiệm vụ khác nhau, bao gồm (xem [Bảng 1.1]):

Trang 21

T r a n g | 6

Bảng 1.1: So sánh mô hình và cơ chế hoạt động của tìm kiếm dựa trên từ khóa

(keyword-based) và dựa trên khái niệm (concept-based)

Tìm kiếm dựa trên từ khóa (keyword-based retrieval)

Tìm kiếm thông tin dựa trên khái niệm (concept-based retrieval)

 Là cách phổ biến nhất, đối với các

máy tìm kiếm dựa trên từ khóa thì

các cơ chế xử lý chủ yếu dựa trên từ

khóa (keywords) của cả văn bản và

truy vấn người dùng để làm cơ sở

cho việc lập chỉ mục và thực hiện so

khớp, tìm kiếm

 Mức độ đơn giản, dễ cài đặt và phát

triển trong ứng dụng thực tế

 Độ chính xác trong thấp và đòi hỏi

người dùng phải hiểu rõ về mục đích

tìm kiếm của mình (thông qua tập từ

khóa trong truy vấn)

 Khác với cơ chế tìm kiếm theo từ khóa, các hệ truy hồi thông tin hỗ trợ tìm kiếm trên khái niệm thì chủ yếu dựa vào các tập khái niệm (concepts) và mối quan hệ giữa chúng trong văn bản hoặc truy vấn người dùng để tìm kiếm và lập chỉ mục

 Phức tạp, đòi hỏi cần có sự hỗ trợ của các hệ cơ sở tri thức chuyên gia

để và các mô hình nhận diện thực thể, khái niệm phức tạp

 Độ chính xác cao hơn, do có khả năng phân tích, hiểu được mục đích tìm kiếm người dùng và đưa ra các gợi ý để mở rộng truy vấn dựa trên

hệ cở sở tri thức được xây dựng sẵn

1.5.2.3 Tích hợp CDO vào máy tìm kiếm được xây dựng nhằm phục vụ cho việc phân tích và mở rộng truy vấn từ người dùng

PHÂN TÍCH TRUY VẤN NGƯỜI DÙNG & XÁC ĐỊNH

Hình 1.2: Các ứng dụng của việc sử dụng Ontology trong xử lý truy vấn người

dùng và tăng hiệu quả trong tìm kiếm tài liệu

Mô hình máy tìm kiếm sẽ được tích hợp thêm CDO để phục vụ cho việc hỗ trợ tìm kiếm tài liệu thông qua mở rộng truy vấn từ người dùng, ngoài ra còn phục vụ cho việc kiểm tra mức độ phù hợp và chọn lọc nội dung tài liệu khi tiến hành lập chỉ

Trang 22

T r a n g | 7

mục Trên khía cạnh truy hồi thông tin, thì không thể phủ nhận rằng ontology đóng một vai trò rất to lớn trong việc mang lại các mở rộng và tăng hiệu suất, cũng như tính chính xác cho các kết quả tìm kiếm được trả về, thông qua việc tham khảo/tra cứu trên các ontology được xây dựng sẵn thuộc về miền tri thức cân tìm kiếm Đối với nhu cầu tìm kiếm thông tin, việc xây dựng ontology rất hữu ích trong việc mang lại hiệu quả tìm kiếm chính xác cũng như độ bao phủ tìm kiếm cao cho hệ thống thông qua các khả năng, bao gồm (xem [Hình 1.2]):

 Phân tích, xác định chủ đề của câu truy vấn (query-analyzing): thông qua câu truy vấn từ người dùng nhập vào, ta có thể dựa vào ontology để xác định được người dùng cần tìm kiếm các chủ đề liên quan đến các lĩnh vực cụ thể nào trên miền tri thức, giới hạn lại phạm vi tìm kiếm và tối ưu hơn dữ liệu cần tìm

Gợi ý và khơi nguồn các tri thức mờ/tiềm ẩn (knowledge-suggestion): như

ta cũng biết, ontology được cấu thành bởi tập các định nghĩa, đối tượng được nối kết với nhau bởi các quan hệ và thuộc tính, do vậy dựa vào các đối tượng được lấy từ truy vấn người dùng ta có thể khơi mở thêm các tri thức liên quan thông qua việc đưa ra tập các đối tượng có quan hệ với đối tượng cần tìm kiếm của người dùng

Mở rộng truy vấn người dùng (query-expansion): từ các đối tượng liên quan

đến truy vấn của người dùng lựa chọn để tìm kiếm, các đối tượng này sau đó sẽ được thêm vào câu truy vấn trước khi đưa vào hệ thống để thực hiện tìm kiếm nhằm đảm bảo tính đầy đủ và chính xác hơn cho điều kiện tìm kiếm

1.5.2.4 Xây dựng mô hình máy tìm kiếm trên nền tảng lưu trữ và xử lý phân tán (Nutch/Hadoop)

Hướng tiếp cận giải pháp xây dựng máy tìm kiếm trên nền tảng phân tán nhằm để giải quyết các khó khăn liên quan đến lưu trữ và xử lý (các công đoạn tiền xử lý, lập chỉ mục, phân phát xuống các phân vùng lưu trữ…) khối lượng dữ liệu lớn các tài liệu văn bản được thu thập về, đảm bảo khả năng mở rộng cũng như hiệu suất của máy tìm kiếm xuyên suốt quá trình hoạt động Có thể nói trong xu thế phát triển cùng với các thách thức của BigData, thì mô hình xử lý phân tán của Nutch / Hadoop được nhắc đến như một giải pháp khá hoàn thiện và được tin cậy, là một phần kết hợp và mở rộng của Apache Nutch – vốn là một phần mềm mã nguồn mở phục vụ cho nhu cầu thu thập dữ liệu (data crawling) – tuy nhiên trong xu thế mới

Trang 23

T r a n g | 8

và sự bùng nổ về dữ liệu, Nutch phải đối mặt với việc làm thế nào để quản lý được kho dữ liệu lưu trữ thu thập một cách hiệu quả và dễ dàng quản lý cũng như tìm kiếm, kết quả là sự ra đời của Hadoop

1.5.2.4.1 Nền tảng lưu trữ phân tán Hadoop (HDFS)

Là hình thức tổ chức phân tán dữ liệu lên nhiều vùng lưu trữ khác nhau để lưu trữ của Hadoop, HDFS (Hadoop Distributed File System) được tổ chức kiến trúc theo dạng máy chủ/máy con (master/slave), cụ thể là các máy con (slave) được dùng để chứa các khối dữ liệu - ha gọi là các datanode - các node chứa data này sẽ được kiểm soát chung bởi một node chủ (master) - hay còn được gọi là namenode Ngoài

ra, HDFS cũng có thể linh động tương thích với các hệ lưu trữ phân tán ngoài khác như Local FS, S3 FS (của Amazon)… tao thuận lợi cho việc mở rộng hơn các phạm

vi ứng dụng của mô hình máy tìm kiếm được xây dựng trên nó

1.5.2.4.2.Cơ chế xử lý phân tán MapReduce

Mô hình MapReduce được công bố vào năm 2004 Mô hình này là một trong nhũng

mô hình lập trình/giải thuật có tính chất đột phát trong công nghệ nói chung và trong lĩnh vực xử lý phân tán nói riêng Lý do MapReduce được ra đời từ nhu cầu về mở rộng vùng lưu trữ cũng nhu cầu xử lý thật nhanh chóng các tác vụ tìm kiếm của người dùng trên kho dữ liệu chỉ mục khổng lồ của Google

1.6 Các phương pháp luận và phương pháp nghiên cứu được áp dụng

Xuyên suốt quá trình thực hiện đề tài luận văn, chúng tôi áp dụng nhiều phương pháp luận

và nghiên cứu, bao gồm:

Phương pháp toán học: nghiên cứu và tận dụng tối đa các giải thuật được áp dụng

cho việc xây dựng, mô hình hóa CDO cũng như ánh xạ cấu trúc tổ chức dữ liệu qua

hình thức lưu trữ khác nhau

Phương pháp kế thừa: Tận dụng lại các giải thuật/phần mềm, khung mô hình, kiến

trúc đã được phát triển và công nhận – tìm hiểu và tối ưu lại theo nhu cầu để phục vụ

cho đề tài

Trang 24

T r a n g | 9

Phương pháp tham khảo / lấy ý kiến từ chuyên gia: tham khảo các công trình đã

được công bố liên quan đến lĩnh vực truy hồi thông tin, xử lý ngôn ngữ tự nhiên, cấu

trúc và xây dựng ontology…

Phương pháp thực nghiệm và so sánh: nghiên cứu/phát triển đồng thời tiến hành

song song chạy thực nghiệm trên dữ liệu được xây dựng để kiểm định các cơ chế, mô

hình cũng như giả thuật được áp dụng trong hệ thống

1.7 Kết luận chương

Chương một đã trình bày một cách đầy đủ và có hệ thống về toàn bộ các lý do, mục đích thực hiện đề tài đi kèm theo sơ lược về tình hình nghiên cứu cũng như các công trình đã được công bố liên quan đến đề tài - nêu bật được các phạm vi cũng như các đối tượng liên quan đến đề tài – để từ đó vạch ra được chính xác yếu tố quyết định cũng như phương hướng để thực hiện đề tài đi kèm với các phương pháp luận, nghiên cứu và đánh giá kết quả đạt được cho từng thành phần

Trang 25

T r a n g | 10

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN

QUAN TRONG ĐỀ TÀI

Một hệ thống truy hồi thông tin (IRS) thông thường được cấu thành bởi nhiều thành phần với hoạt động và các chức năng khác nhau, nó còn là tập hợp bởi nhiều cơ chế xử lý và các ứng dụng đan xen hỗ trợ cho nhau để nhằm mục đích mang lại khả năng tìm kiếm thông tin một cách nhanh và chính xác nhất cho người dùng Trong phần này của luận văn sẽ trình bày chi tiết về các nguyên lý cũng như cấu thành của một IRS hoàn chỉnh

2.1 Các nguyên lý tìm kiếm và truy hồi thông tin

2.1.1 Các mô hình tìm kiếm / so khớp phổ biến

2.1.1.1 Mô hình không gian Vector (Vector Space Model)

Áp dụng trong bài toán so khớp tài liệu và tính độ tương quan, mô hình là phương pháp tính toán độ tương quan (similarity) [5] giữa câu truy vấn của người dùng và tài liệu bằng cách chuyển đổi/định nghĩa chúng thành các vector tương ứng (một vector đại diện cho truy vấn và một vector đại diện cho tài liệu)

Độ tương quan giữa câu truy vấn (q)

và tài liệu (d) được thể hiện bằng khoảng cách giữa 2 vector, thông thường có thể bằng xác định bằng khoảng cách Euclid.

Độ tương quan giữa truy vấn (q) và tài liệu (d) cũng được xác định dựa trên độ lớn của góc giữa hai vector trong không gian

Truy vấn từ người dùng

và tài liệu được chuyển đổi thành dạng vector

Hình 2.1: Mô hình hóa sự tương quan giữa truy vấn (q) và tài liệu (d) trên đồ thị

Mô hình này được phát triển dựa trên ý tưởng của là xác định các phần tử đại diện cho vector chính là các từ khóa được chứa trong nó, sau khi chuyển đổi thành dạng các vector, các vector này sẽ được dùng để tính toán độ tương quan giữa chúng, độ tương quan của các 2 vector càng lớn thì cũng có nghĩa là câu truy vấn càng liên quan đến tài liệu được đại diện bởi vector đó Để chuyển đổi sang biểu dưới dạng

Trang 26

T r a n g | 11

vector ta có thể biểu diễn dưới dạng nhị phân dựa theo sự xuất hiện của từ đó trong văn bản <0,1> hoặc theo dạng tần số xuất hiện hiện của từ <0,n>, ví dụ, ta có một

ma trận thể hiện sự xuất hiện của từ trong văn bản như sau (xem [Bảng 2.1]):

Bảng 2.1: Ma trận từ tài liệu - mô hình không

gian vector (vector space model)

TÀI

LIỆU/TỪ

DẠNG BOOLEAN

Tần suất xuất hiện (TF): là tần suất xuất hiện của một từ trong một văn bản, trong

trường hợp ta có từ (t) và văn bản (d), tần suất xuất hiện của t trong d

TF(t,d) sẽ được tính bằng cách lấy tỷ lệ

số lần xuất hiện của từ (t) trong văn bản

(d) trên số lần xuất hiện nhiều nhất của

bất cứ một từ nào đó trong văn bản (d) :

𝑻𝑭(𝒕,𝒅) = 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦(𝑡, 𝑑)

max{𝑓(𝑡′, 𝑑): 𝑡′ ∈ 𝑑}

(𝑣ớ𝑖: 0 ≤ 𝑇𝐹(𝑡, 𝑑) ≤ 1)

Trong đó:

 frequency(t,d): là số lần xuất hiện của

từ (t) trong tài liệu (d)

Trọng số tần suất xuất hiện (Weight): trọng số tần suất của từ khóa (t) trong tập

tài liệu (d) hay 𝑊(𝑡,𝑑) sẽ được tính bằng cách:

𝑾(𝒕,𝒅) = 1 + log(𝑇𝐹(𝑡,𝑑) ) (1), 𝑾(𝒕,𝒅) = 0 ⟺ 𝑇𝐹(𝑡,𝑑) = 0 (2) Trong đó:

Trang 27

và có trong tài liệu) Ta có công thức:

𝐒𝐢𝐦𝐖(𝐪, 𝐝)= ∑ [1 + log(𝑇𝐹(𝑡,𝑑))]

𝑡 ∈ ( 𝑞 ∩ 𝑑 )

Trọng số nghịch đảo (Inverse Document Frequency - IDF): hay còn gọi là tần

số nghịch của một từ trong toàn tập các văn bản hay viết tắt là IDF được dùng để xác định tầm quan trọng của mỗi từ trong bộ kho văn bản lưu trữ

Trọng số từ so với tập tài liệu (TF-IDF): Kết hợp hai công thức tính trọng số từ

(t) xuất hiện trong một văn bản (d), 𝑇𝐹(𝑡,𝑑) và tần số nghịch của từ (t) trong toàn bộ các văn bản (D), 𝐼𝐷𝐹(𝑡,𝐷)

 Giá trị 𝑇𝐹 − 𝐼𝐷𝐹(𝑡,𝑑) sẽ tăng lên nếu từ (t) xuất

hiện thường xuyên trong một tập tài liệu nhưng

ngược lại cũng sẽ bị giảm đi nếu từ (t) thường

xuyên xuất hiện trong tất cả các tập tài liệu

Trở lại bài toán sử dụng mô hình không gian vector để so sánh sự tương đồng giữa câu truy vấn và tài liệu, ta cũng sẽ áp dụng chuyển đổi các tài liệu và câu truy vấn của người dùng thành các vector, trong đó:

 𝒅(𝒊,𝒕𝒋): là trọng số cửa từ t(j), thuộc tập tài liệu d(i), như vậy ta sẽ biểu diễn tài liệu trên thành một vector có dạng: 𝑑⃗⃗⃗ = 〈𝑑𝑖 (𝑖,𝑡1), 𝑑(𝑖,𝑡2), … , 𝑑(𝑖,𝑡𝑛)〉

 Tương tự như vậy câu truy vấn q cũng sẽ được tiến hành tính trọng số cho các

từ và chuyển đổi thành một vector có dạng: 𝑞 = 〈𝑞(𝑡1), 𝑞(𝑡2), … , 𝑞(𝑡𝑛)〉

Các hạn chế khi sử dụng khoảng cách Euclid:

Ta giả định trường hợp tài tập tài liệu bao gồm 1 văn bản (d) có chứa 2 từ khóa là t1, t2 xuất hiện nhiều lần và đã được tính toán trọng số Câu truy vấn người dùng

Trang 28

T r a n g | 13

nhập vào (q) cũng bao gồm 2 từ t1, t2 với tần số xuất hiện thấp hơn Về mặt thực tế

để áp dụng trong một số trường hợp cho mô hình, thì ta có thể thấy rằng sử dụng khoảng cách Euclid để xác định độ tương quan giữa (d) và (q) vẫn thiếu chính xác

vì gần như là truy vấn (q) và tài liệu (d) có mức độ phân bố các từ khá tương đồng với nhau cùng đều có tập từ (t1,t2) nhưng chỉ khác nhau về trọng số (xem [Hình 2.2])

D(q,d)

(t1)

Khoảng các giữa hai vector (d) và (q) vẫn quá xa mặc dù (d) & (q)

có cùng chung một tập từ (t1, t2).

(t2)

Độ tương đồng giữa 2 vectors được xác định bằng khoảng cách Euclid.

Hình 2.2: Xác định độ tương quan giữa truy vấn (q) và tài liệu (d) bằng khoảng

cách Euclid

Độ tương quan theo cosine (cosine similarity): khác với việc sử dụng khoảng

cách Euclid để xác định độ tương quan (similarity) giữa truy vấn (q) và (d), trong trường hợp này ta sử dụng góc để tính độ tương quan hay CosSim(𝑞 , 𝑑 ) Ta có thể thấy rằng góc của hai vector (q) và (d) càng lớn thì giá trị CosSim(𝑞 , 𝑑 ) càng thấp, đồng nghĩa với việc độ tương quan giữa (q) và (d) thấp Ta có công thức để xác định CosSim(𝑞 , 𝑑 ), như sau:

𝑖=1Trong trường hợp này ta ví dụ có hai tài liệu là d1 và d2 với d1 = {t1}, d2 = {t1,t2}

và câu truy vấn q = {t1,t2}, mô hình biểu thị 3 vector sẽ như sau (xem [Hình 2.3]) Hiển nhiên, ta sẽ thấy độ tương đồng của truy vấn (q) và tài liệu (d2) sẽ lớn hơn giữa (q) và (d1) vì cặp vector (𝑞 , 𝑑1⃗⃗⃗⃗ ) tạo một góc lớn hơn so với cặp vector (𝑞 , 𝑑2⃗⃗⃗⃗ ), như vậy ta có thể kết luận rằng tài liệu (d2) có liên quan đến truy vấn (q) nhiều hơn (d1)

Trang 29

T r a n g | 14

Như vậy ta có thể thấy rằng để xác định độ tương quan giữa các tập văn bản với nhau hay giữa các văn bản với truy vấn từ người dùng thì nếu ta dùng góc để làm tiêu chí so sánh sẽ chính xác hơn so với việc sử dụng khoảng cách Euclid trong trường hợp này

CosSim(q,d2)

(t1)

Độ tương quan giữa tài liệu (d2) và câu truy vấn (q) xác định bằng góc giữa 2 vector

(t2)

(d1)

(d2) (q)

CosSim(q,d1)

Độ tương quan giữa tài liệu (d1) và câu truy vấn (q) xác định bằng góc giữa 2 vector

Hình 2.3: Xác định độ tương quan giữa truy vấn (q) và các tài liệu (d1), (d2) bằng

góc (cosine similarity)

2.1.1.2 Mô hình Boolean (Boolean Model)

Mô hình Boolean hoạt động khá đơn giản dựa trên nguyên lý true/false, các tài liệu

và câu hỏi khi tiến hành so khớp sẽ được chuyển đổi về dạng biểu thức Boolean, ví

dụ trong trường hợp so khớp văn bản (d) và truy vấn (q) – các từ có xuất hiện trong

cả (d) và (q) sẽ được xác định là true và ngược lại chỉ xuất hiện trong (q) hoặc (d), hoặc đều không xuất hiện trong cả hai thì đều trả về kết quả là false.

Diễn giải về mặt chi tiết, giả sử ta có một kho dữ liệu (D) gồm N tập văn bản, trong

đó D = {d1, d2, d3,…,dn}, mỗi văn bản ở vị trí (i) nào đó (𝑑𝑖) được biểu diễn dưới dạng vector gồm có n từ/từa khóa (t), hay 𝑑𝑖 = {𝑡1, 𝑡2, 𝑡3, … , 𝑡𝑛} đi kèm theo đó là vector trong số chứa các trọng số của từ (t) tại vị trí thứ (j) trong văn bản (𝑑𝑖) dưới dạng nhị phân (0,1) – gọi là 𝑤𝑡𝑗, t Từ đó ta sẽ có 𝑊𝑖 = {𝑤𝑡1, 𝑤𝑡2, 𝑤𝑡2, … , 𝑤𝑡𝑛}, giá trị trọng số 𝑤𝑡𝑗 sẽ ở dạng như sau:

Trang 30

2 tài liệu (d1) và (d2) đều thỏa yêu cầu trả về Nhưng nếu là [t1 AND t4] thì chỉ có tài liệu (d2) thỏa được yêu cầu, do vậy đòi hỏi người dùng phải xác định rõ được nhu cầu tìm kiếm từ lúc đầu

wd2 t4)

đề xuất để khắc phục các vấn đề trên Ta lấy lại trường hợp trên nhưng với câu truy vấn là OR (t1 OR t4), ta gọi (𝑤𝑑1𝑡1, 𝑤𝑑1𝑡4) là trọng số của từ t1 trong cả hai tài liệu (d1) và (d2), tương tự (𝑤𝑑1𝑡1, 𝑤𝑑1𝑡4) là trọng số của từ t4 trong cả hai tài liệu (d1),

Trang 31

T r a n g | 16

(d2) Ta sẽ dùng khoảng cách Euclid để xác định độ tương quan của 2 tài liệu này

so với câu truy vấn như sau bằng cách tính khoảng cách của 2 vector (𝑤𝑑1𝑡1, 𝑤𝑑1𝑡4)

 Không thể xếp hạng được tài liệu đối với nhiều tập tài liêu có chung bộ từ khóa với câu truy vấn ví dụ trong trường hợp có một tài liệu khác là (d4 và d4 = {t1,t4}) cũng có chung độ tương đồng về tập từ với câu truy vấn nhưng mức độ/tần suất xuất hiện ít hơn so với tài liệu (d2) [t1 AND t4], thì kết quả đầu ra của quá trình so khớp là hai tài liệu này sẽ đồng hạng với nhau, gây khó khăn trong việc xếp hạng tài liệu trả về và xác định đâu là tài liệu quan trọng, chứa nhiều thông tin hơn

 Ngoài ra thông thường thì câu truy vấn người dùng nhập vào thường có múc

độ nhập nhằng khá cao trong ngữ nghĩa vì thế khó có thể triển khai ra dạng biểu thức Boolean (OR hoặc AND) một cách đúng đắn, do vậy cũng sẽ ảnh hưởng rất nhiều đến tính xác và hiệu xuất của việc tìm kiếm

 Việc áp dụng mô hình Boolean chỉ thích hợp cho việc tìm kiếm các tài liệu và truy vấn đầu vào có ngữ nghĩa, mục tính tìm kiếm rõ ràng, cũng như hình thức ngắn ngọn Nếu cả tài liệu và truy vấn quá phức tạp thì quá trình kiểm tra so khớp sẽ gặp khá nhiều khó khăn trong việc lọc tài liệu, kết quả của tài liệu trả

về có thể không đầy đủ hoặc quá nhiều

2.1.1.3 Mô hình xác suất (Probability Model)

Ý tưởng của mô hình so khớp/tìm kiếm này dựa vào lý thuyết toán học về tính toán xác suất đô tương quan giữa tài liệu và truy vấn của người dùng Ta giả định trường hợp, ta có tập tài liệu tại vị trí thứ i, (𝑑𝑖), và câu truy vấn người dùng là (q), ta gọi

Trang 32

Để xác định được một tài liệu có liên quan hay không đến truy vấn ta có thể dựa trên việc diễn giải các từ/từ khóa trong các tài liệu (d) và truy vấn thành dạng biểu thức Boolean (0,1), ví dụ ta có 2 tài liệu (d1 và d1 = {t1,t2,t3}), (d2 và d2 = {t1,t3,t4} kèm theo đó là truy vấn (q và q = {t3, t4}) Ta có:

Bảng 2.4: Diễn giãi truy vấn (q) và tài

liệu (d1), (d2) dưới dạng biểu thức

[q]

P(d 1 q) = P(d 1 |q) = 1/3

P(d 2 q) = P(d 2 |q) = 2/3

Hình 2.5: Minh họa sự phân phôi của (q) trên (d1) và (d2) trong mô hình

xác suất

Như vậy rõ ràng là tài liệu (d2) sẽ có mức độ liên quan đến truy vấn nhiều hơn so với tài liệu (d1)

2.1.1.4 Đánh giá và lựa chọn mô hình

 Đối với mô hình Boolean (Boolean model) – tuy có ưu điểm trong việc dễ cài đặt cũng như giải thuật đơn giản, thời gian tính toán và so khớp khá nhanh nhưng

mô hình Boolean cũng tồn tại khá nhiều yếu điểm liên quan đến việc xếp hạng những tài liệu có tập từ/từ khóa trùng với câu truy vấn – cũng như không thể đánh giá được mức độ thông tin hưu ích, trọng số cửa các từ… trong mỗi tài liệu

so với truy vấn như thế nào

 Đối với mô hình không gian vector (vector space model) tuy giải thuật để triển khai có phần phức tạp nhưng cũng không qua khó trong việc lập trình và cài đặt,

Trang 33

T r a n g | 18

mô hình này đã được kiểm chứng đạt hiệu suất hoạt động chính xác khá cao, đi kèm với việc tính toán trọng số TF-IDF trong quá trình lập chỉ mục ban đầu cho các tài liệu cũng như trong quá trình so khớp với truy vấn người dùng, do vậy vấn đề về xếp hạng (ranking) tài liệu được giải quyết triệt để Thời gian dành cho việc thực thi tìm kiếm/so khớp thấp làm tăng hiệu suất cho quá trình tìm kiếm

Kết luận: do vậy, thông qua các đánh giá thì mô hình không gian vector là mô hình

khá thích hợp cho trường hợp các nghiên cứu, ứng dụng và phát triển của công trình, nhằm mang lại hiệu quả cao cũng như kết quả mong đợi

2.1.2 Kiến trúc máy tìm kiếm (SE) có hỗ trợ CDO

Phần này của luận văn sẽ trình bày các nội dung liên quan đến nền tảng kiến trúc

cơ bản của một hệ truy hồi thông tin hay còn gọi là máy tìm kiếm (search engine)

có hỗ trợ Ontology để tìm kiếm theo khái niệm Nó sẽ bao gồm các thành phần cấu thành (module) cũng như các mô tả chi tiết về tính năng cũng như nhiệm vụ của từng thành phần Cấu thành cơ bản của một máy tìm kiếm sẽ bao gồm:

Bộ thu thập thông tin/dữ liệu (crawler/spider): bộ dữ liệu chỉ mục (index data),

hay kho dữ liệu của máy tìm kiếm - là một cơ sở dữ liệu có dạng và cấu trúc đặc biệt nhằm để phục vụ cho việc tìm kiếm và trả về kết quả cho người dùng, ngoài tầm quan trọng của việc lựa chọn cấu trúc cũng như tổ chức lưu trữ cho bộ dữ liệu của máy tìm kiếm, thì việc bổ sung làm giàu cho kho dữ liệu chỉ mục thêm phong phú cũng là một khía cạnh quan trọng

Bộ tiền xử lý văn bản và tách từ (text pre-processing and word segmentation):

bộ phận này sẽ đảm nhiệm các vai trò liên quan đến việc xử lý, làm sạch, loại bỏ stopwords… của nội dung các văn bản được thu thập về và cũng truy vấn người dùng nhằm tối ưu hóa, và hiệu quả hơn cho các quá trình phân tích khái niệm (concept analyzing) cũng như lập chỉ mục (indexing) ở các bước tiếp theo trong hệ thống

Bộ lập chỉ mục (indexer): đóng vai trò rất quan trọng trong việc xây dựng nên kho

dữ liệu chỉ mục phục vụ cho quá trình tìm kiếm của toàn hệ thống, bộ phân này sẽ đảm nhận vai trò phân tích và rút trích những thông tin cần thiết (cụ thể ở đây là các tập từ/từ khóa) đóng vai trò quan trọng trong văn bản được thu thập về để làm đại diện cho toàn bộ văn bản đó

Trang 34

T r a n g | 19

Bộ so khớp/tìm kiếm (searcher): đây là bộ phận đóng vai trò quan trọng trong tất

cả các bộ phân khác của máy tìm kiếm, ngoài việc chứa đựng các mô hình thuật toán xử lý tìm kiếm, so khớp cơ bản của một máy tìm kiếm thông dụng, đặc biệt trong trường hợp được kết hợp với ontology để tìm kiếm theo khái niệm, nó sẽ được tích hợp thêm các bộ phận con, bao gồm:

Cơ chế mở rộng truy vấn (query expansion): Dựa trên mạng các khái niệm

đã được xây dựng của ontology, câu truy vấn người dùng sẽ được phân tích và

mở rộng nhằm tăng độ hiệu quả và chính xác trong quá trình tìm kiếm

Cơ chế phân tích, xác định chủ đề và gợi ý (query-analyzing và suggestion):

nhằm phục vụ phân tích và “hiểu” người dùng muốn tìm kiếm cái gì, kèm theo

đó để đưa ra các gợi ý và khái niệm liên quan đến miền tri thức mà người dùng

muốn nhắm tới thông qua ontology

Cơ chế xếp hạng kết quả trả về (ranking): các kết quả trả về đã được sắp xếp

theo mức độ liên quan từ cao đến thấp

2.1.2.1 Bộ thu thập dữ liệu (Crawlers / Spiders)

2.1.2.1.1 Sơ nét về tiến trình thu thập dữ liệu (crawling data)

Để có thể thu thập các tài liệu, văn bản một cách tự động từ nhiều nguồn khác nhau thì phương pháp phổ biến nhất là xây dựng các công cụ thu thập / cào (crawl) dữ liệu (crawler/spider) – có hai phương thức phổ biến nhất để triển khai một crawler, bao gồm:

2.1.2.1.2 Phương thức đệ quy (recursive crawler)

Phương thức đệ quy là cách thức lập trình mà crawler sẽ thực hiện việc tìm kiếm

dữ liệu và quét qua các trang web hoặc tài liệu dựa trên mạng lưới các URL được chứa đựng trong trang “cha” của nó

Vốn là một kỹ thuật khá phổ biến trong lập trình hay còn gọi là “gọi lại chính nó”, crawler hoạt động theo dạng đệ quy có ưu điểm là khá dễ triển khai, như nó cũng

có một số giới hạn trong việc lựa chon sử dụng, như chỉ nên dùng dạng crawler này cho các nguồn tài nguyên, trang web mà ta có thể ước lượng được số lượng trang, tài nguyên cần thu thập, vì khi crawler hoạt động nó sẽ bắt đầu thu thập từ nút dữ liệu lá (nút con nhỏ nhất trong mạng url của website) – nếu số lượng các webpage hay tài liệu quá lớn thì sẽ gây tràn dữ liệu trên vùng lưu trữ cũng như không thể

Trang 35

T r a n g | 20

kiểm soát được giới hạn tài liệu cần thu thập về Ngoài ra, thu thập dữ liệu theo dạng crawler hoạt động dưới hình thức đệ quy cũng sẽ gây áp lực tải khá lớn lên hệ thống, bởi nó tạo ra hàng loạt các tiến trình/luồng (thread) xử lý song song nếu quản

lý không tốt thì cũng sẽ gây ra tình trạng quá tải và tràn băng thông của hệ thống

2.1.2.1.3 Phương thức hàng đợi (queue crawler)

Phương thức hàng đợi là một dạng hoạt động với cơ chế khác so với phương thức

đệ quy, khi khởi động crawler sẽ nhận được một loạt các link liên kết (url) của các resource/website chứa các nguồn tài liệu mà người dùng muốn nhắm đến, các liên kết này có thể được định nghĩa trước hoặc lấy tự động thông qua hình thức cào link dạng đệ quy, tiếp theo đó crawler sẽ được nạp các liên kết này vào và đưa vào hàng đợi để chờ đến lượt được thực thi

Khi đã xử lý xong một liên kết, thì các liên kết tiếp theo sẽ được đẩy lên và tiếp tục được nạp vào crawler để chạy – tiến trình này sẽ lặp lại liên tục đến khi không còn một liên kết nào trong hàng đợi nữa (xem [Hình 2.6])

Hình 2.6: Tiến trình hoạt động của crawler thiết kế dưới phương thứchoạt động

dạng hàng đợi (queue crawler)

Thông thường thì một crawler sẽ chỉ cần khởi tạo một hàng đợi để tuần tự nạp các liên kết cho nó xử lý, tuy nhiên ở một số mô hình thu thập dữ liệu cải tiến thì ta có thể khởi tạo thêm các hàng đợi phụ nhằm mục đích để kiểm xoát được tiến trình cũng như chi tiết các kết quả (thành công/thất bại cho mỗi liên kết) trong quá trình thu thập để đưa ra điều chỉnh phù hợp Một số trạng thái thông dụng của hàng đợi như sau, bao gồm:

Trạng thái đang hoạt động (running-status): là các liên kết đang được đưa

vào xử lý, trong hàng đợi trạng thái hoạt động này sẽ có nhiều hơn một các liên kết nếu nhiều crawler được khởi tạo và chạy cùng một lúc (multi-thread)

Trang 36

T r a n g | 21

Trạng thài chờ (wait-status): các liên kết đang chờ được xử lý sẽ được đặt

trong hàng đợi này

Trạng thái lỗi (error-status): trong quá trình hoạt động, sẽ đôi lúc quá trình

thu thập dữ liệu bị dán đoạn do mất kết nối hoặc quá tải, các liên kết thuộc về tiến trình bị thất bại sẽ được lưu tại đây, hoặc bị xóa bỏ hoặc được đưa trở lại wait-queue để tiếp tục xử lý lại

 Trạng thái hoàn thành (completed-status): chứa các liên kết mà crawler đã thu thập dữ liệu về và lưu trữ lên hệ thống thành công, các liên kết này sẽ được tái dụng và tiếp tục nạp ngược lại vào crawler (hình thức đệ quy) nhằm để tiếp tục cập nhật lại dữ liệu (phiên bản mới nhất) cho liên kết đó trong tương lai 2.1.2.2.Các bước và cơ chế xử lý văn bản / truy vấn (Document / Query Analyzer) 2.1.2.2.1 Làm sạch và tiền xử lý (Pre-processing)

Đối với các văn bản được thu thập về, trước khi được đưa vào lập chi mục, chúng cần được đưa qua một cơ chế tiền xử lý và làm sạch (xóa bỏ các phần dư thừa, không cần thiết cho một văn bản như các tag metadata đối với văn bản dạng html/css, các ký tự đặc biệt của các tập tin định dạng PDF…) Tiếp theo đó cac tài liệu này sẽ được phân rã và tái cấu trúc lại thành dạng các file văn bản xml, bao gồm: <title></title>, <author></author>, <abstract></abstract>,

<content></content>… – trong đó mỗi thông tin về tài liệu sẽ được tổ chức trong các tag xml nhằm đơn giản hóa và dễ dàng xác định hơn cho các quá trình rút trích thông tin sau này

2.1.2.2.2 Lọc stop-words (Stopwords Filtering)

Là một phương pháp khá phổ biến nhằm để tối ưu việc lập chỉ mục cho văn bản được thu thập cũng như cả truy vấn người dùng nhập vào bằng cách xóa bỏ đi bớt các từ/cụm từ dư thừa không mang ý nghĩa thông tin hay đại diện cho văn bản, truy vấn người dùng, các từ này thường xuất hiện trong các văn bản được trình bày dưới dạng ngôn ngữ tự nhiên và đa dạng theo cấu trúc ngữ pháp của từng loại ngôn ngữ

- ví dụ trong tiếng Anh: a, about, above… - riêng trong đề tài này, thì ngôn ngữ chủ yếu của các tài liệu được khai tách là tiếng Anh do vậy, bộ từ điển stopwords được

sử dụng chủ yếu là tiếng Anh (hiện tại là 175 từ theo thống kê của Google)

Trang 37

T r a n g | 22

2.1.2.2.3 Rút gọn và truy gốc câu / từ (Stemming)

Đây cũng là một cơ chế đóng vai trò quan trọng trong việc phân tích và xử lý văn bản, truy vấn, như ta cũng biết, thông thường các văn bản, truy vấn diễn đạt dưới dạng ngôn ngữ tự nhiên thường được biểu diễn dưới rất nhiều cấu trúc khác nhau, tuy nhiên về ngữ nghĩa thì không có gì thay đổi, hay nói cách khác là hoàn toàn giống nhau:

 Đối với trường hợp là từ trong tiếng Anh ta sẽ có các các dạng từ đồng nghĩa nhưng ở hình thức số ít, số nhiều khác nhau, như computer-computers, hardware-hardwares… tuy về mặt diễn đạt các từ này khác nhau nhưng về mặt ngữ nghĩa thì chúng hoàn toàn là như nhau, do vậy trong quá trình lập chỉ mục hoặc phân tích truy vấn người dùng, nếu không cẩn thận kiểm tra và trả về từ nguyên bản (root-word) sẽ gây khá nhiều khó khăn

 Đối với trường hợp là câu: về mặt ngôn ngữ thì cấu trúc câu cũng tồn tại quá nhiều thông tin dư thừa, không thích hợp cho quá trình lập chỉ mục hoặc phân tích truy vấn từ người dùng, do vậy nhằm để tối ưu hóa hơn cho việc lập chỉ mục cũng như rút trích khái niệm từ truy vấn người dùng trong quá trình phân tích thì việc làm gọn, bỏ bớt các thông tin dư thừa trong cấu trúc của câu là cần thiết (xem [Bảng 2.5])

Bảng 2.5: Các ví dụ về trường hợp rút gọn câu về dạng nguyên mẫu (sentence

stemming) trong xử lý văn bản

Python and NodeJs is popular

programming language in recent years

Python and NodeJs is popular programming language

In my opinion, mongo database is

difficult to use

Mongo database is difficult to use

SQL Server database is one of the

relational database management

system

SQL Server database is relational database management system

Đối với các trường hợp cần áp dụng rút ngọn cây hay trả về dạng từ nguyên bản, ta

có thể áp dụng các mô hình giải pháp phân tích cấu trúc câu (sentence-parser) hay word-stemming để giải quyết vấn đề này, phổ biến nhất là sử dụng các công cụ hỗ trợ mạnh mẽ về xử lý ngôn ngữ tự nhiên như OpenNLP của Apache, hay StanfordNLP-OpenIE của ĐH Standford phát triển, đã được kiểm chứng về độ chính xác cũng như tính hiệu quả

Trang 38

T r a n g | 23

2.1.2.2.4 Tách từ (Word Segmentation)

Đối với các tài liệu được thu thập về đa phần là tài liệu được biểu diễn dưới dạng tiếng Anh nên các phương pháp tách từ phổ biến được áp dụng là phân tách các từ dựa trên khoảng trắng (“ “) giữa chúng Tuy nhiên, do được ứng dụng trong việc tối

ưu hóa tìm kiếm các tài liệu thông tin dựa trên các tập từ khóa/khái niệm mà nó chứa nên do vậy không thể chỉ dựa vào phương pháp tách từ thông thường là dựa trên khoảng trắng để nhận diện từ, đặc biệt là các khái niệm được cấu thành bởi nhìu hơn một từ - dưới dạng các danh từ ghép (compound noun) Nếu tách từ theo cách thông thường (dựa trên khoảng trắng để làm cơ sở phân định từ) ta sẽ bị mất

đi các tập từ/khái niệm này khi tiến hành lập chỉ mục và dẫn đến việc thiếu chính xác hơn cho kết quả trả về trong quá trình tìm kiếm/so khớp

Bảng 2.6: Các ví dụ về trường hợp tách từ tối ưu trong xử lý văn bản, truy vấn

VĂN BẢN NGUYÊN

MẪU TÁCH TỪ THÔNG THƯỜNG TÁCH TỪ TỐI ƯU

Java is the most popular

programming languages

{java}, {is}, {the}, {most}, {popular}, {programming},

{applying}, {association_rules}, {in}, {data_mining}

Sequence mining and

association rule are

subfields of data mining

{sequence}, {mining}, {and}, {association},

{subfields}, {of}, {data}, {mining}

{sequence_mining}, {and}, {association_rule}, {are}, {subfields}, {of}, {data_mining}

Tách từ bằng phương pháp khớp tối đa (maximum matching): đây là phương

pháp phổ biến và dễ dàng cài đặt nhất dùng để xác định và tách khái niệm ở dạng cụm từ (kết hợp bởi nhiều từ khác nhau), thông qua việc tham chiếu lên một bộ từ điển các từ đươc xây dựng sẵn trước Khi bắt đầu, phương pháp này sẽ duyệt từng dòng một của văn bản từ trái qua phải và chọn từ có nhiều tiếng nhất mà có mặt trong bộ từ điển được xây dựng sẵn Thuật toán có 2 dạng sau:

Dạng nguyên bản/đơn giản: Giả sử ta có một chuỗi các tiếng trong câu là <t1, t2,

t3, t4, , tn> - thuật toán sẽ kiểm tra xem t1 có mặt trong từ điển hay không, sau đó kiểm tra tiếp <t1, t2> có tồn tại trong từ điển hay không Tiếp tục, như vậy cho đến khi tìm được từ có nhiều tiếng nhất có mặt trong từ điển, và đánh dấu cụm từ đó lại

Trang 39

Hình 2.7: Tách từ dựa trên phương pháp so khớp tối đa (maximum matching)

Dạng cải tiến: dạng này có thể tránh được một số nhập nhằng gặp phải trong dạng

đơn giản Đầu tiên thuật toán kiểm tra xem t1có mặt trong từ điển không, sau đó kiểm tra tiếp <t1, t2> có mặt trong từ điển không Nếu <t1, t2> đều có mặt trong từ điển thì thuật toán thực hiện chiến thuật chọn 3-từ tốt nhất thông qua hai tiêu chí là

“độ dài trung bình của 3 từ là lớn nhất” và “sự chênh lệch độ dài của 3 từ là ít nhất”, nếu các trường hợp tách nào thỏa mãn được 2 điều kiện trên sẽ được chọn là cách tách tối ưu

2.1.2.3.Bộ lập chỉ mục (Indexer)

Quá Trình Phân

Rã / Chuyển Đổi (Parsing)

Quá Trình Phân

Rã / Chuyển Đổi (Parsing)

Tài Liệu

Field 2 Field 1

Tài Liệu Định Dạng Lucene

Phân Tích & Xử Lý (Analyzing)

Stopword Filter Term/Text Stemming

Term Tokenizer

Tạo & Lưu Trữ (Index-writing)

Tập từ (text-tokens)

Data

Dữ Liệu Chỉ Mục (Directory)

Hình 2.8: Minh họa các quá trình lập chỉ mục và lưu trữ của Apache Lucene

Sau quá trình thu thập dữ liệu từ hệ thống thu thập và đưa qua các công đoạn làm tiền xử lý như: làm sạch, phân tích và tái cấu trúc lại tài liệu theo chuẩn, các tài liệu này sau đó sẽ được đưa vào để lập chỉ mục và lưu trữ Bộ phận tạo chỉ mục đóng

Trang 40

Hình 2.9: Hình thức tổ chức lưu trữ chỉ mục (indexing) dạng cấu trúc cây phân

nhánh của Apache Lucene

2.1.2.4.Bộ tìm kiếm / so khớp (Searcher)

2.1.2.4.1 Tìm kiếm theo từ khóa (keyword-based searching)

Đây là một phương pháp rất phổ biến ở các máy tìm kiếm và được áp dụng hầu hết cho các hệ thống mà phương thức tìm kiếm hầu như bao phủ khá nhiều lĩnh vực khác nhau (tin tức, sản phẩm, điện ảnh, y tế, giáo dục…) vì không thể xác định được đâu là lĩnh vực/chủ đề mà người dùng muốn nhắm đến do vậy áp dụng việc tìm kiếm theo tập từ khóa là giải pháp tốt nhất trong các trường hợp này Phương pháp tìm kiếm theo từ khóa thì khá đơn giản không đòi hỏi người dùng phải thao tác quá nhiều đối với hệ thống, câu hỏi/truy vấn người dùng nhập vào sẽ được bóc tách thành các từ, cụm từ tiếp theo đó áp dụng các mô hình so khớp phổ biến trên tập dữ liệu chỉ mục đã được thiết lập từ trước, để xếp hạng và trả về các tài liệu có liên quan đến câu truy vấn đó

Hạn chế và khó khăn: Có thể nói việc xác định chính xác tập từ khóa cho lĩnh vực

mà bản thân người dùng cần tìm kiếm thì khá là khó khăn, ví dụ trường hợp người dùng nhập vào các từ khóa rất chung chung như “máy tính”, “thiết bị”, “sách học”…

vì các tập từ này đều xuất hiện khá nhiều trong mọi lĩnh vực nên do vậy kết quả trả

về hiển nhiên sẽ rất lộn xộn và khiến người dùng khá vất vả trong việc lựa chọn các tài liệu thích hợp cho mình Ngoài ra còn rất nhiều các khó khăn liên quan đến việc tìm kiếm theo từ khóa do sự nhập nhằng trong ngôn ngữ tự nhiên, các từ đồng nghĩa, đồng âm/cách viết nhưng ý nghĩa lại khác hoàn toàn, ví dụ: trong trường hợp người

Ngày đăng: 18/04/2021, 14:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Chien Ta Duy Cong, Tuoi Phan Thi. "An Information Extraction Approach for Building Vocabulary and Domain Specific Ontology in Information Technology"Journal on Information and Communications, Vols. vol. E-3, no.7(11), 2014 Sách, tạp chí
Tiêu đề: An Information Extraction Approach for Building Vocabulary and Domain Specific Ontology in Information Technology
[2] Chien Ta Duy Cong, Tuoi Phan Thi. "Building Ontology Based-on Heterogeneous Data" Journal of Computer Science and Cybernetics, vol. 31, 2015 Sách, tạp chí
Tiêu đề: Building Ontology Based-on Heterogeneous Data
[3] Chien Ta Duy Cong, Tuoi Phan Thi. "Information Extraction from Heterogeneous Sources Based on Domain Specific Ontology" Journal of Science and Technology, vol. 52, no. 4A, 2014 Sách, tạp chí
Tiêu đề: Information Extraction from Heterogeneous Sources Based on Domain Specific Ontology
[4] T Chien Ta Duy Cong, Tuoi Phan Thi. "A Subject-Oriented Ontology Development for Information Retrieval Application" Journal on Information and Communications, Vols. E-3, no.8(12), 2015 Sách, tạp chí
Tiêu đề: A Subject-Oriented Ontology Development for Information Retrieval Application
[5] Castells, Pablo, Miriam Fernandez, and David Vallet. "An adaptation of the vector- space model for ontology-based information retrieval" IEEE transactions on knowledge and data engineering 19.2, 2007 Sách, tạp chí
Tiêu đề: An adaptation of the vector-space model for ontology-based information retrieval
[6] Cao, Tru, Khanh Le, and Vuong Ngo. "Exploring combinations of ontological features and keywords for text retrieval" Pacific Rim International Conference on Artificial Intelligence, Springer Berlin Heidelberg, 2008 Sách, tạp chí
Tiêu đề: Exploring combinations of ontological features and keywords for text retrieval
[7] Ngo, Vuong M., and Tru H. Cao. "Discovering Latent Concepts and Exploiting Ontological Features for Semantic Text Search" IJCNLP, 2011 Sách, tạp chí
Tiêu đề: Discovering Latent Concepts and Exploiting Ontological Features for Semantic Text Search
[8] Ngo, Vuong M., and Tru H. Cao. "Ontology-based query expansion with latently related named entities for semantic text search" Advances in Intelligent Information and Database Systems, Springer Berlin Heidelberg, pp. 41-52, 2010 Sách, tạp chí
Tiêu đề: Ontology-based query expansion with latently related named entities for semantic text search
[9] N. C. Thành. "Xây dựng mô hình mở rộng truy vấn trong truy xuất thông tin văn bản" Luận văn Tiến sĩ Kỹ thuật. Chuyên ngành Khoa học máy tính, Đại học Bách khoa tp HCM, 2010 Sách, tạp chí
Tiêu đề: Xây dựng mô hình mở rộng truy vấn trong truy xuất thông tin văn bản
[10] Luong, Hiep, Qiang Wang, and Susan Gauch. "Ontology learning using word net lexical expansion and text mining" INTECH Open Access Publisher, 2012 Sách, tạp chí
Tiêu đề: Ontology learning using word net lexical expansion and text mining
[11] E. Blomqvist. "Semi-automatic ontology engineering using patterns" The Semantic Web. Springer Berlin Heidelberg pp. 911-915, 2007 Sách, tạp chí
Tiêu đề: Semi-automatic ontology engineering using patterns
[12] Maedche, Alexander, and Steffen Staab. "Semi-automatic engineering of ontologies from text" Proceedings of the 12th international conference on software engineering and knowledge engineering, 2000 Sách, tạp chí
Tiêu đề: Semi-automatic engineering of ontologies from text
[13] Balakrishna, Mithun, et al. "Semi-Automatic Domain Ontology Creation from Text Resources" LREC, 2010 Sách, tạp chí
Tiêu đề: Semi-Automatic Domain Ontology Creation from Text Resources
[14] Szulman, Sylvie, et al. "Dafoe: A platform for building ontologies from texts." KEOD 2009 - Proceedings of the International Conference on Knowledge Engineering and Ontology Development, Funchal - Madeira, Portugal, October 6- 8, 2009 Sách, tạp chí
Tiêu đề: Dafoe: A platform for building ontologies from texts
[15] Chien Ta Duy Cong, Tuoi Phan Thi. "Improving the Algorithm for Mapping of OWL to Relational Database Schema" In Proc. of the 11th International Conference on Machine Learning and Data Mining (MLDM 2015), Springer-Verlag, LNCS, vol.9166, 2015 Sách, tạp chí
Tiêu đề: Improving the Algorithm for Mapping of OWL to Relational Database Schema
[17] Ngọc Lương Thái. "Một giải pháp chuyển đổi từ cơ sở dữ liệu quan hệ sang mô hình dữ liệu cho web ngữ nghĩa" TẠP CHÍ KHOA HỌC ĐHSP TPHCM, Số 9(75), 2015 Sách, tạp chí
Tiêu đề: Một giải pháp chuyển đổi từ cơ sở dữ liệu quan hệ sang mô hình dữ liệu cho web ngữ nghĩa
[18] Heymans, Stijn, et al. "Ontology Reasoning with Large Data Repositories" Springer Science+Business Media, LLC, pp. 89-128, 2008 Sách, tạp chí
Tiêu đề: Ontology Reasoning with Large Data Repositories
[19] Mogotlane, Kgotatso Desmond, and Jean Vincent Fonou-Dombeu. "Automatic Conversion of Relational Databases into Ontologies: A Comparative Analysis of Protege Plug-ins Performances" ArXiv preprint arXiv:1611.02816, 2016 Sách, tạp chí
Tiêu đề: Automatic Conversion of Relational Databases into Ontologies: A Comparative Analysis of Protege Plug-ins Performances
[20] Santoso, Heru Agus, Su-Cheng Haw, and Ziyad T. Abdul-Mehdi. "Ontology extraction from relational database: Concept hierarchy as background knowledge"Knowledge-Based Systems 24.3, pp. 457-464, 2011 Sách, tạp chí
Tiêu đề: Ontology extraction from relational database: Concept hierarchy as background knowledge
[21] Calvanese, Diego, et al. "Ontology-Driven Extraction of Event Logs from Relational Databases" Business Process Management Workshops: BPM 2015, 13th International Workshops - Springer, p. 140, 2016 Sách, tạp chí
Tiêu đề: Ontology-Driven Extraction of Event Logs from Relational Databases

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