GIỚI THIỆU VÀ TỔNG QUAN VỀ CÁC VẤN ĐỀ NGHIÊN CỨU
Lý do và động lực thực hiện đề tài
Trong giai đoạn phát triển hiện nay, xu hướng số hóa dữ liệu lưu trữ ngày càng trở nên phổ biến nhờ vào tính tiện dụng vượt trội Việc này cho phép lưu trữ dữ liệu gần như không giới hạn, dễ dàng truy cập và quản lý hiệu quả Các hình thức lưu trữ phổ biến bao gồm siêu văn bản có cấu trúc như HTML/XML, cũng như các định dạng văn bản như DOC, DOCX và PDF.
Theo thống kê gần đây, trung bình mỗi giây có một website mới ra đời, dẫn đến việc hơn một tỷ website đã được công bố từ khi internet phổ biến Điều này tạo ra một kho dữ liệu khổng lồ, cung cấp nguồn tri thức vô tận cho người dùng, nhưng cũng gây khó khăn trong việc tìm kiếm thông tin chính xác Để giải quyết vấn đề này, các hệ thống tìm kiếm và truy hồi thông tin (IRS) đã được phát triển mạnh mẽ nhằm phục vụ nhu cầu tìm kiếm tri thức Tuy nhiên, vẫn tồn tại nhiều hạn chế trong việc tìm kiếm thông tin chính xác và nhanh chóng, liên quan đến độ chính xác, sự liên kết giữa ngôn ngữ tự nhiên và khả năng hiểu của máy tính, cùng với sự gia tăng khối lượng dữ liệu Do đó, cần thiết phải có các phương pháp và mô hình cải tiến để khắc phục những hạn chế này.
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
Hầu hết nội dung trên web được trình bày dưới dạng ngôn ngữ tự nhiên, dễ hiểu cho con người nhưng lại gây khó khăn cho máy tính trong việc hiểu chính xác thông tin.
Khi tối ưu hóa nội dung cho SEO, việc xác định đối tượng tìm kiếm qua các truy vấn ngôn ngữ tự nhiên là rất quan trọng Ví dụ, từ khóa "java" có thể mang nhiều ý nghĩa khác nhau, bao gồm một hòn đảo, một loại cà phê, và một ngôn ngữ lập trình.
Lưu trữ và suy luận Ontology trên nền tảng cơ sở dữ liệu đồ thị nhằm giải quyết bài toán lưu trữ nguồn tri thức lớn của ontology và rút trích tri thức từ nó Việc chuyển đổi từ hình thức lưu trữ truyền thống sang các cơ chế lưu trữ dựa trên cơ sở dữ liệu giúp tối ưu hóa quá trình này Trong luận văn này, cơ sở dữ liệu dạng đồ thị được lựa chọn làm giải pháp lưu trữ hiệu quả.
Để nâng cao hiệu suất lưu trữ và lập chỉ mục tài liệu, mô hình phân tán của Nutch/Hadoop được áp dụng, nhằm tạo ra một kho dữ liệu chỉ mục lớn và liên tục được cập nhật Một máy tìm kiếm chỉ được xem là mạnh mẽ khi có khả năng đáp ứng đầy đủ và chính xác nhu cầu tìm kiếm thông tin của con người Tuy nhiên, với sự gia tăng nhanh chóng của các nguồn thông tin trên Internet, kho dữ liệu chỉ mục cũng phải mở rộng tương ứng, gây ra nhiều thách thức về lưu trữ và mở rộng Do đó, nghiên cứu này giới thiệu giải pháp xử lý và lưu trữ phân tán của Nutch/Hadoop nhằm giải quyết vấn đề này.
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 quá trình thực hiện luận văn, chúng tôi đã tham khảo một số công trình nghiên cứu trong nước liên quan đến việc nâng cao hiệu quả truy hồi thông tin thông qua Ontology và tìm kiếm ngữ nghĩa Cụ thể, chúng tôi đã nghiên cứu việc xây dựng ontology cho miền tri thức CNTT của nhóm tác giả T.D.C Chiến và P.T Tươi, rút trích các thực thể có tên từ Wordnet và tìm kiếm ngữ nghĩa thông qua ontology của nhóm tác giả C.H Trụ Ngoài ra, chúng tôi cũng xem xét mô hình mở rộng truy vấn dựa trên ontology trong truy xuất thông tin văn bản, cùng với phương pháp xây dựng ontology thông qua khai thác dữ liệu văn bản và tham chiếu trên kho ngữ liệu của Wordnet.
Các kỹ thuật và phương pháp xây dựng ontology bao gồm huấn luyện mô hình bán tự động, xây dựng ontology thông qua rút trích văn bản và phương pháp DAFOE do Szulman và cộng sự phát triển.
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)
Đề tài luận văn này không chỉ tham khảo các phương pháp chuyển đổi giữa mô hình dữ liệu bảng quan hệ (RDB) và mô hình ngữ nghĩa của bộ ba thành phần (triple) trong ontology, mà còn nghiên cứu quy trình chuyển đổi từ cơ sở dữ liệu quan hệ sang mô hình dữ liệu phù hợp cho các hệ thống web ngữ nghĩa.
Lưu trữ và suy luận ontology kích thước lớn trên các nền tảng khác nhau là một lĩnh vực quan trọng, bao gồm việc ánh xạ cơ sở dữ liệu bảng quan hệ với ontology cho các miền tri thức cụ thể Bên cạnh đó, việc áp dụng mô hình lưu trữ dạng đồ thị cho phép xây dựng, lưu trữ và rút trích tri thức dưới dạng quan hệ ngữ nghĩa, mang lại nhiều lợi ích cho việc quản lý và khai thác dữ liệu.
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)
Để giải quyết các vấn đề liên quan đến lượng dữ liệu lớn mà máy tìm kiếm cần xử lý, Hadoop đã trở thành một giải pháp mã nguồn mở nổi bật được nhiều nhà khoa học nghiên cứu Với khả năng lưu trữ và xử lý song song trên nhiều máy, Hadoop cho phép xử lý khối lượng dữ liệu cực lớn với chi phí và thời gian tối ưu Luận văn này đã tham khảo các công trình và báo cáo liên quan đến tìm kiếm và khai thác thông tin từ kho dữ liệu lớn, cũng như nền tảng xử lý phân tán Hadoop-HBase và các chiến lược lập chỉ mục tài liệu bằng mô hình phân tán MapReduce.
Các điểm mới và đóng góp trong luận văn
Bài luận văn trình bày quá trình từ ý tưởng ban đầu đến triển khai thực tế, trong đó nêu rõ các đóng góp và cải tiến được đề xuất, được phân chia thành bốn thành phần chính.
Bài viết này kế thừa khung kiến trúc và các phương pháp rút trích thực thể, quan hệ từ các công trình đã công bố, đồng thời đề ra những cải tiến và hình thức tổ chức dữ liệu cho CDO Những cải tiến này nhằm tối ưu hóa việc quản lý và rút trích dữ liệu một cách nhanh chóng, góp phần nâng cao hiệu quả trong quá trình thực hiện đề tài.
Chuyển đổi hình thức lưu trữ và truy vấn CDO trên nền tảng CSDL đồ thị - và rút trích thông tin thông qua truy vấn cypher
Áp dụng phương pháp tìm đường đi ngắn nhất giúp xác định mối quan hệ trung gian giữa các thực thể trong văn bản và truy vấn, từ đó hỗ trợ nhận diện chủ đề cũng như các thực thể tiềm ẩn liên quan, đóng vai trò quan trọng trong việc mở rộng truy vấn.
Xây dựng mô hình máy tìm kiếm dựa trên nền tảng lưu trữ và xử lý phân tán, tích hợp CDO để hỗ trợ tìm kiếm tài liệu và lọc tài liệu phù hợp cho quá trình lập chỉ mục.
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 là trung tâm của đề tài này, nhằm phát triển hệ thống truy hồi thông tin tích hợp CDO với cơ chế tìm kiếm theo cụm từ/khái niệm trong các lĩnh vực cụ thể Đề tài sẽ xây dựng các bộ từ điển thuật ngữ và tổ chức các khái niệm trong lĩnh vực CNTT thành các phân lớp rõ ràng, nhằm nâng cao khả năng tìm kiếm tài liệu phù hợp với truy vấn của người dùng và mở rộng truy vấn dựa trên các khái niệm 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 sẽ được xây dựng theo cấu trúc OWL (Ontology Web Language) và sau đó chuyển đổi sang cơ sở dữ liệu đồ thị để tối ưu hóa tốc độ và hiệu quả trong quá trình rút trích thông tin.
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ừ
Dữ Liệu Huấn Luyện Đã Được Phân Loại
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
Suy luận (reasoning) / rút trích (extracting) tri thức thông qua truy vấn trung gian (cypher)
MA T CH p =( a {l abe l: ' jav a '} )- [* 1 100 ]- (b {l abe l: ' py th on '} ) R E T U R N p ;
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)
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
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
Một hệ thống truy hồi thông tin, hay còn gọi là máy tìm kiếm, chủ yếu được cấu thành bởi hai thành phần chính.
Bộ lập chỉ mục (indexer) là công cụ quan trọng trong việc xử lý dữ liệu đầu vào, bao gồm các tài liệu và văn bản thu thập từ nhiều nguồn khác nhau Quá trình này trải qua các bước tiền xử lý như phân tích, tách từ và loại bỏ stopwords, nhằm tối ưu hóa nội dung Cuối cùng, các văn bản được lập chỉ mục và lưu trữ vào hệ thống để dễ dàng truy xuất và quản lý.
Cơ chế tìm kiếm (searcher) là quá trình mà tại đó, truy vấn của người dùng được phân tích để hệ thống tìm kiếm các tài liệu đã được đánh chỉ mục trong kho (corpus) phù hợp với tiêu chí của câu truy vấn, và cuối cùng trả về kết quả cho người dùng.
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)
Trong một số lĩnh vực và nhu cầu tìm kiếm nhất định, hệ thống truy hồi thông tin được phân loại thành hai loại chính, mỗi loại có những tính năng và nhiệm vụ khác nhau.
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)
Các máy tìm kiếm chủ yếu sử dụng từ khóa để xử lý văn bản và truy vấn của người dùng, từ đó lập chỉ mục và thực hiện tìm kiếm hiệu quả.
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 dựa trên từ khóa, các hệ thống truy hồi thông tin hỗ trợ tìm kiếm theo khái niệm chủ yếu dựa vào các tập khái niệm và mối quan hệ giữa chúng trong văn bản hoặc truy vấn của người dùng để thực hiện tìm kiếm và lập chỉ mục hiệu quả hơn.
Việc xử lý các khái niệm phức tạp đòi hỏi sự hỗ trợ từ các hệ cơ sở tri thức chuyên gia và các mô hình nhận diện thực thể.
Công nghệ mới giúp nâng cao độ chính xác trong việc phân tích và hiểu mục đích tìm kiếm của người dùng, từ đó cung cấp 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.
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
CHỦ ĐỀ ĐƯA RA CÁC GỢI Ý/CÁC KHÁI NIỆM
MỞ RỘNG TRUY VẤN DỰA TRÊN CÁC LỰA CHỌN CỦA NGƯỜI DÙNG {software, programming, java, j2se}
MIỀN TRI THỨC ĐƯỢC XÁC ĐỊNH
Truy vấn người dùng: java and j2se
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 cải tiến với việc tích hợp CDO nhằm hỗ trợ tìm kiếm tài liệu hiệu quả hơn thông qua việc mở rộng truy vấn từ người dùng Bên cạnh đó, nó cũng giúp kiểm tra độ phù hợp và lựa chọn nội dung tài liệu khi lập chỉ mục.
Ontology đóng vai trò quan trọng trong việc cải thiện hiệu suất và độ chính xác của kết quả tìm kiếm thông qua việc tham khảo các ontology đã được xây dựng trong lĩnh vực tri thức liên quan Việc xây dựng ontology không chỉ giúp tăng cường hiệu quả tìm kiếm mà còn nâng cao độ bao phủ cho hệ thống, mang lại trải nghiệm tìm kiếm tốt hơn cho người dùng.
Phân tích và xác định chủ đề của câu truy vấn là bước quan trọng trong việc hiểu nhu cầu tìm kiếm của người dùng Bằng cách sử dụng ontology, chúng ta có thể nhận diện các lĩnh vực cụ thể mà người dùng quan tâm, từ đó giới hạn phạm vi tìm kiếm và tối ưu hóa dữ liệu cần thiết Việc này giúp cải thiện độ chính xác và hiệu quả trong quá trình tìm kiếm thông tin.
Ontology bao gồm các định nghĩa và đối tượng liên kết qua quan hệ và thuộc tính Dựa vào các đối tượng từ truy vấn của người dùng, chúng ta có thể khơi dậy tri thức tiềm ẩn bằng cách cung cấp các đối tượng liên quan đến đối tượng mà người dùng đang tìm kiếm.
Mở rộng truy vấn người dùng là quá trình lựa chọn các đối tượng liên quan đến truy vấn ban đầu để cải thiện kết quả tìm kiếm Những đối tượng này sẽ được thêm vào câu truy vấn trước khi gửi đến hệ thống, 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)
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 đóng vai trò quan trọng trong việc nghiên cứu và tối ưu hóa các thuật toán áp dụng cho việc xây dựng và mô hình hóa CDO Đồng thời, nó cũng giúp ánh xạ cấu trúc tổ chức dữ liệu qua các hình thức lưu trữ khác nhau một cách hiệu quả.
Phương pháp kế thừa là việc tận dụng các giải thuật, phần mềm, khung mô hình và kiến trúc đã được phát triển và công nhận, sau đó tiến hành tìm hiểu và tối ưu hóa chúng theo nhu cầu cụ thể của đề tài.
Phương pháp tham khảo ý kiến từ chuyên gia bao gồm việc nghiên cứu các công trình đã công bố liên quan đến truy hồi thông tin, xử lý ngôn ngữ tự nhiên, cũng như cấu trúc và xây dựng ontology.
Phương pháp thực nghiệm và so sánh trong nghiên cứu và phát triển cho phép tiến hành song song các thí nghiệm trên dữ liệu được xây dựng Điều này giúp kiểm định hiệu quả của các cơ chế, mô hình và thuật toán áp dụng trong hệ thống.
Kết luận chương
Chương một đã trình bày rõ ràng và có hệ thống các lý do và mục đích thực hiện đề tài, đồng thời tóm tắt tình hình nghiên cứu và các công trình liên quan đã được công bố Phần này nêu bật các phạm vi và đối tượng liên quan, từ đó xác định yếu tố quyết định và phương hướng thực hiện đề tài, kèm theo các phương pháp luận, nghiên cứu và đánh giá kết quả cho từng thành phần.
CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN
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 qua khoảng cách giữa hai vector, thường được xác định bằng khoảng cách Euclid Ngoài ra, độ tương quan này cũng phụ thuộc vào độ 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 nhằm xác định các phần tử đại diện cho vector, trong đó các từ khóa được chứa trong vector Sau khi chuyển đổi thành dạng vector, chúng sẽ được sử dụng để tính toán độ tương quan giữa các vector Độ tương quan càng lớn giữa hai vector, 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 đó.
Vector từ có thể được biểu diễn dưới dạng nhị phân dựa trên sự xuất hiện của từ trong văn bản, ký hiệu là , hoặc theo tần số xuất hiện của từ, ký hiệu là Ví dụ, một ma trận có thể thể hiện sự xuất hiện của từ trong văn bản như được mô tả trong [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Ừ d1 d2 d1 d2 java 0 1 5 1 python 1 1 4 2 cobol 1 0 1 0 sql 0 1 2 3
(*) biểu diễn vector dưới dạng nhị phân cho văn bản 1 và 2
(*) biểu diễn vector dưới dạng tần số xuất hiện cho văn bản 1 và 2.
Mô hình không gian vector và các biến thể của nó là phương pháp phổ biến để biểu diễn và tính toán văn bản, đặc biệt trong lĩnh vực khai thác dữ liệu và truy hồi thông tin Để đại diện cho một tập hợp văn bản, mô hình này có thể có số chiều lên tới hàng triệu hoặc thậm chí hàng chục triệu, do số lượng lớn từ và từ khóa Điều này đặc biệt quan trọng trong các ứng dụng tính toán độ tương quan và so khớp văn bản.
Tần suất xuất hiện (TF) là chỉ số đo lường số lần một từ cụ thể xuất hiện trong một văn bản Đối với một từ (t) và văn bản (d), TF thể hiện tần suất của từ t trong văn bản 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) :
frequency(t,d): là số lần xuất hiện của từ (t) trong tài liệu (d)
𝐦𝐚𝐱{𝒇(𝒕′, 𝒅): 𝒕′ ∈ 𝒅}: là số lần xuất hiện lớn nhất của bất cừ từ nào (t’) trong văn bản (d)
Giá trị kết quả trả về sẽ nằm trong khoảng [0, 1], kết quả của 𝑇𝐹 (𝑡,𝑑) càng cao có nghĩa từ (t) được xuất hiện nhiều trong văn bản (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:
Khi từ (t) không có mặt trong tài liệu (d), giá trị log(0) không xác định, vì vậy cần cộng thêm 1 để kết quả trả về là 0.
Có thể áp dụng công thức tính SimW(q,d) để xác định mối tương quan giữa truy vấn và tài liệu bằng cách tính tổng trọng số của các từ (t) có mặt trong cả truy vấn và tài liệu Kết quả sẽ trả về giá trị 0 nếu tập 𝑞 ∩ 𝑑 rỗng, tức là không có từ nào chung giữa truy vấn và tài liệu.
Trọng số nghịch đảo (IDF) là một chỉ số quan trọng trong việc đánh giá tầm quan trọng của từ ngữ trong một bộ sưu tập văn bản IDF giúp xác định mức độ phổ biến của một từ trong toàn bộ tài liệu, từ đó hỗ trợ trong việc tối ưu hóa nội dung cho các công cụ tìm kiếm.
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), 𝐼𝐷𝐹 (𝑡,𝐷)
Ta sẽ có công thức cuối cùng bằng tích của hai thành phần:
Mỗi từ (t) trong tập văn bản D đều có một giá trị IDF (t, D) duy nhất, phụ thuộc chủ yếu vào số lượng văn bản chứa từ đó, do đó giá trị này chỉ cần được tính một lần.
Giá trị TF-IDF (t, d) sẽ gia tăng khi từ (t) xuất hiện nhiều trong một tập tài liệu cụ thể, nhưng sẽ giảm nếu từ (t) xuất hiện phổ biến trong hầu hết các tập tài liệu.
Chúng ta sẽ áp 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, bằng cách chuyển đổi cả tài liệu và câu truy vấn của người dùng thành các vector.
𝒅 (𝒊,𝒕𝒋) : 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:
Trong trường hợp tài liệu chứa một văn bản (d) với hai từ khóa t1 và t2 xuất hiện nhiều lần, trọng số của các từ khóa này đã được tính toán để tối ưu hóa kết quả tìm kiếm Câu truy vấn của người dùng sẽ được xử lý dựa trên những trọng số này nhằm đảm bảo độ chính xác và liên quan của kết quả trả về.
Trong bài viết này, chúng ta thấy rằng truy vấn (q) bao gồm hai từ t1 và t2 với tần số xuất hiện thấp hơn Việc áp dụng khoảng cách Euclid để xác định độ tương quan giữa tài liệu (d) và truy vấn (q) không hoàn toàn chính xác, vì cả hai đều có sự phân bố từ tương tự nhau với cùng tập từ (t1, t2), chỉ khác nhau về trọng số.
(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.
Độ tương quan giữa truy vấn (q) và tài liệu (d) có thể được xác định thông qua độ tương đồng cosine (cosine similarity), khác với việc sử dụng khoảng cách Euclid Trong phương pháp này, chúng ta tính toán độ tương quan dựa trên góc giữa hai vector (q) và (d) Khi góc giữa hai vector càng lớn, giá trị CosSim(𝑞 , 𝑑 ) sẽ càng thấp, cho thấy độ tương quan giữa (q) và (d) giảm Công thức tính CosSim(𝑞 , 𝑑 ) được trình bày như sau:
Xây dựng Ontology dành cho miền tri thức CNTT (Computing Domain Ontology)
2.2 Xây dựng Ontology dành cho miền tri thức CNTT (Computing Domain Ontology)
2.2.1 Sơ lược về bản thể học (Ontology)
Trong khoa học máy tính, ontology là một mô hình dữ liệu chuẩn hóa, cung cấp một tập từ vựng chung gồm các khái niệm, định nghĩa và thuộc tính, đồng thời thể hiện các mối quan hệ ràng buộc giữa các khái niệm trong một miền tri thức nhất định Ontology thường bị nhầm lẫn với taxonomy do có những đặc điểm tương đồng như cấu trúc phân cấp và mối quan hệ cha-con Tuy nhiên, ontology được xây dựng ở mức độ cao hơn, thể hiện rõ các mối quan hệ giữa các lớp và cá thể của nó.
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)
Hai khái niệm này thường bị nhầm lẫn do sự tương đồng trong cấu trúc và tổ chức dữ liệu của chúng.
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
CÂY PHÂN CẤP (TAXONOMY) BẢN THẾ HỌC (ONTOLOGY)
Có dạng cấu trúc theo dạng các lớp khái niệm được sắp xếp theo thứ tự/trình tự nào đó – thông thường là quan hệ cha-con (parent-child)
Không bao hàm các mối quan hệ hoặc rang buộc giữa các thuộc tính trong cùng một mức
VD: Cọp Động Vật Ăn Thịt Động
Vật, Thỏ Động Vật Ăn Cỏ Động Vật
Được dùng chủ yếu cho việc phân lớp dữ liệu/tri thức (knowledge classification) – giúp phân biệt các đối tượng/khái niệm trong một
Ontology không chỉ có cấu trúc sắp xếp theo trình tự của các lớp mà còn bao gồm các thuộc tính và mối quan hệ giữa các lớp Những mối quan hệ này có thể phức tạp hơn, thể hiện sự liên kết giữa các thực thể Ví dụ, Cọp là một loại Động Vật, Thỏ cũng là một loại Động Vật, và Cọp có thể ăn thịt Thỏ.
Biểu diễn tri thức trong một lĩnh vực giúp hỗ trợ suy luận về các đối tượng và mối quan hệ giữa chúng.
Ontology là một mô hình biểu diễn các khái niệm và quan hệ trong một lĩnh vực thông tin cụ thể, giúp tổ chức và phân cấp dữ liệu một cách hiệu quả Các thực thể và quan hệ trong ontology luôn được đảm bảo tính nhất quán và đầy đủ Do đó, trong lĩnh vực truy hồi thông tin theo ngữ nghĩa, ontology được xem là nền tảng quan trọng để mô tả tri thức và giải thích mối quan hệ ngữ nghĩa giữa các đối tượng.
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
2.2.3.1 Sơ lược về rút trích thông tin (IE)
Rút trích thông tin là một phương pháp phổ biến trong ngành khoa học máy tính, đặc biệt trong các lĩnh vực như truy hồi và khai phá dữ liệu, cũng như xử lý ngôn ngữ Phương pháp này tự động hóa quá trình bóc tách các thông tin cần thiết từ nhiều dạng dữ liệu khác nhau, bao gồm văn bản, hình ảnh và âm thanh, trong đó nguồn dữ liệu dạng văn bản (có hoặc không có cấu trúc) được sử dụng nhiều nhất.
Java (đọc như "Gia-va")
[là_một] [ngôn_ngữ_lập_trình] hướng đối tượng (OOP) Java được [khởi_đầu_bởi]
[James_Gosling] và bạn đồng nghiệp ở Sun Microsystems năm
1991 Các phiên bản Java đã phát hành:
Rút Trích Thông Tin (IE) ngôn_ngữ_lập_trình
Quá trình rút trích thông tin và xây dựng mạng quan hệ ngữ nghĩa được minh họa trong Hình 2.11, nhằm hỗ trợ cho việc phát triển ontology Mô hình rút trích thông tin này được thiết kế để phân tích và trích xuất các tập khái niệm, định nghĩa cùng các mối quan hệ giữa các thực thể từ các văn bản đã được chọn lọc, được biểu diễn bằng ngôn ngữ tự nhiên Dữ liệu rút trích sẽ được chuyển đổi sang định dạng văn bản khác để phục vụ cho các mục đích nghiên cứu và ứng dụng.
Để rút trích thông tin hiệu quả từ văn bản huấn luyện, cần áp dụng các mô hình và thuật toán liên quan đến xử lý ngôn ngữ tự nhiên.
Nhận biết định dạng tài liệu (document detecting)
Phân đoạn từ (Word segmentating)
Giải quyết nhập nhằng ngữ nghĩa (sense disambiguating)
Gán nhãn từ loại (POS tagging)
Nhận biết định dạng tài liệu (document detecting)
Phân đoạn từ (Word segmentating)
Giải quyết nhập nhằng ngữ nghĩa (sense disambiguating)
Gán nhãn từ loại (POS tagging)
GIAI ĐOẠN TIỀN XỬ LÝ
Nhận biết thực thể (entity detecting)
Xác định đồng tham chiếu (coreference)
Nhận biết thực thể (entity detecting)
Xác định đồng tham chiếu (coreference)
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)
Mục tiêu chính của các hệ thống trí tuệ nhân tạo phụ thuộc vào nguồn tri thức, đóng vai trò quan trọng trong cơ chế suy diễn của hệ thống Nguồn tri thức phong phú không chỉ nâng cao khả năng đáp ứng mà còn giúp hệ thống hoạt động hiệu quả hơn Vấn đề then chốt là làm thế nào để rút trích tri thức một cách chính xác và hiệu quả, cũng như tổ chức và quản lý chúng để giải quyết các vấn đề do con người đặt ra Trong việc xây dựng ontology, phương thức rút trích thông tin được chia thành nhiều hình thức khác nhau, bao gồm rút trích thực thể, thuộc tính, và sự kiện Các kỹ thuật phổ biến trong rút trích thông tin bao gồm phân đoạn, phân lớp, kết hợp và phân cụm.
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)
XÂY DỰNG THỦ CÔNG TỰ ĐỘNG/MÁY HỌC
Các luật và tri thức mẫu được xây dựng một cách thủ công bởi con người
Được phát triển và xây dựng bởi các chuyên gia ngôn ngữ học, nội dung này tập trung vào việc khai thác tri thức từ lĩnh vực chuyên môn mà nó hướng đến.
Được thực hiện tự động thông qua các phương pháp máy học, thống kê, xây dựng mô hình…
Không đòi hỏi quá nhiều hoặc sự đóng góp của các chuyên gia, người trực tiếp phát triển không cần thành thạo ngôn ngữ học
Dựa vào kiến thức chuyên môn và quan sát
- hiệu quả cũng như tính chính xác được đảm bảo tốt hơn Tuy nhiên
Việc phát triển có thể tốn nhiều chi phí và thời gian, đồng thời gặp khó khăn trong việc điều chỉnh khi có sự thay đổi hoặc cập nhật trong lĩnh vực chuyên môn của miền tri thức.
Cần sử dụng một số lương lớn tài liệu có độ bao phủ miền tri thức cao và đầy đủ
Chi phí phát triển thấp và thời gian thực hiện nhanh chóng là những ưu điểm nổi bật, cùng với khả năng linh hoạt trong việc điều chỉnh thuật toán hoặc các bước xử lý khi có sự thay đổi.
2.2.3.2 Rút trích cụm từ khóa (Keyphrase Extraction)
KEA là thuật toán do Turkey (2003) phát triển để rút trích cụm từ khóa bằng phương pháp học có giám sát Thuật toán này hỗ trợ việc trích xuất cụm từ khóa từ dữ liệu văn bản và xác định danh sách cụm từ ứng viên thông qua các phương pháp từ vựng học Sau đó, các cụm từ ứng viên sẽ được tính toán giá trị đặc trưng và áp dụng phương pháp học máy Naive Bayes để xác định tính tiềm năng của chúng KEA hoạt động độc lập với cấu trúc ngữ pháp của ngôn ngữ, cho thấy sự độc lập hoàn toàn với ngôn ngữ học.
Rút trích và sinh tập ứng viên bao gồm việc phân tách các cụm n-grams từ 1 đến 3 từ, không bắt đầu hoặc kết thúc bằng stopword Nếu có hỗ trợ từ điển (controlled dictionary), KEA sẽ dựa vào các thuật ngữ trong từ điển để thực hiện việc phân tách Sau khi thu được các cụm ứng viên, bước tiếp theo là chuyển đổi chúng về dạng nguyên mẫu thông qua quá trình stemming.
Để xác định mức độ quan trọng của cụm từ trong tập dữ liệu, chỉ số TF-IDF được sử dụng, với giá trị càng cao cho thấy cụm từ đó có tiềm năng lớn Vị trí xuất hiện của cụm từ, thường ở đầu hoặc cuối tài liệu, cũng là một yếu tố quan trọng Các cụm từ ứng viên cần có ít nhất hai từ, và số lượng cụm ứng viên có liên quan đến cụm đang xem xét (dựa trên bộ từ điển đã định nghĩa) càng cao thì tiềm năng của chúng càng lớn.
freq(P, D) là sồ lần cụm P xuất hiện trong tài liệu D
|D|: là số lượng từ của tài liệu D
df(P) là số lượng tài liệu chứa cụm P trong kho dữ liệu
N: tổng số lượng tài liệu
Giá trị của đặc trưng vị trí xuất hiện này nằm trong khoảng [0, 1]
Ứng dụng cơ sở dữ liệu đồ thị để lưu trữ và truy vấn thông tin từ Ontology
2.3.1 Lý do cần phải chuyển đổi hình thức lưu trữ và truy vấn
Ontology được phát triển sẽ bao gồm một kho tàng lớn các định nghĩa liên quan đến lĩnh vực tri thức CNTT, bao gồm nhiều miền tri thức con và một loạt các khái niệm cũng như đối tượng mô tả cho từng miền tri thức đó.
Theo ước lượng ban đầu, lớp chủ đề sẽ bao gồm hơn 2000 thực thể, trong khi lớp thành phần sẽ mở rộng với hơn 9000 thực thể Ngoài ra, số lượng đối tượng trong lớp synset, bao gồm các quan hệ thượng danh, hạ danh và lớp câu định nghĩa cho các thực thể trong lớp chủ đề và thành phần, cũng như lớp chứa quan hệ, sẽ rất lớn, tăng theo cấp số nhân với số lượng các thực thể mà nó minh họa và kết nối.
Khối lượng dữ liệu của ontology lớn khiến việc áp dụng mô hình lưu trữ truyền thống dạng OWL (tập tin text/xml) trở nên không khả thi và kém hiệu quả Việc truy xuất dữ liệu chậm và quản lý, bổ sung định nghĩa trong ontology gặp nhiều khó khăn Để khắc phục, một giải pháp phổ biến là chuyển đổi hình thức lưu trữ từ file text/xml sang các nền tảng hệ quản trị cơ sở dữ liệu (DBMS), đảm bảo cấu trúc nguyên bản của ontology được giữ vững.
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ị Đây là cách để lưu trữ dữ liệu mới, khác với các dạng cơ sở dữ liệu sử dụng bảng quan hệ truyền thống (RDB), graph-database sử dụng và tổ chức dữ liệu lưu trữ trong nó dưới dạng một đồ thị, hay nói cách khác, dữ liệu lưu trữ trong graph- database được tổ chức thông qua các nút (node) [**] và các cạnh [**] , trong đó các nút chứa nội dung của thực thể và các cạnh thể hiện mối liên hệ với các nút khác [**] Đồ thị được định nghĩa là tập các đỉnh nối với nhau bởi các cạnh (có thể có hướng hoặc không hay còn gọi là đồ thị có hướng, đồ thị vô hướng) Gọi V là tập các định (hay node), ta có:
Đồ thị có hướng được định nghĩa bởi G = (V, A), trong đó A là tập hợp các cặp đỉnh có thứ tự Một cạnh e = được xem là có hướng khi x dẫn đến y, với x là điểm đầu và y là điểm cuối của cạnh.
Đồ thị vô hướng được định nghĩa bằng 𝐺 ≔ (𝑉, 𝐴), trong đó A là tập hợp các cặp đại diện cho cạnh giữa các đỉnh mà không có thứ tự Trong đồ thị vô hướng, một cạnh 𝑒 ∈ 𝐴 được liên kết với một cặp đỉnh < 𝑥, 𝑦 > ⊆ 𝑉, và thứ tự của các đỉnh không được phân biệt.
Các cạnh đồ thị, thuộc tập (A)
Hình 2.19: Minh họa đồ thị với định
(V) và cạnh (A) Đồ thị có hướng Đồ thị vô hướng
Các cạnh là tập các đỉnh liền kề nhau
Hình 2.20: Minh họa các dạng đồ thị
Mô hình lưu trữ dữ liệu đồ thị cho phép lưu trữ các thực thể và mối quan hệ giữa chúng, được gọi là các node, mỗi node có các thuộc tính riêng như [phân_khối], [loại_xe], [biển_số] Mỗi nút đại diện cho một đối tượng trong ứng dụng Các mối quan hệ giữa các node được gọi là các cạnh (edges), có thể có thuộc tính riêng và mang tính định hướng trong đồ thị có hướng Những cạnh này kết nối các node với nhau, tạo thành một mạng lưới đồ thị, ví dụ như trong một mô hình mạng xã hội với các mối quan hệ giữa các node.
→ , 𝑙à _𝑏ạ𝑛 → … (xem [Hình 2.21])
Trong môi trường phát triển ứng dụng thực tế, việc lưu trữ cấu trúc đồ thị tương tự như trong các cơ sở dữ liệu (CSDL) dạng bảng quan hệ, nơi dữ liệu của các node và thuộc tính được tổ chức thành các dòng trong các bảng riêng biệt và được kết nối thông qua các khóa Việc thêm một mối quan hệ mới đòi hỏi nhiều thay đổi trong sơ đồ và di chuyển dữ liệu, đặc biệt trong các mô hình tổ chức dữ liệu có số lượng mối quan hệ lớn và chồng chéo Do đó, việc thêm hoặc xóa bỏ một mối quan hệ trở nên phức tạp và tốn kém.
Trong cơ sở dữ liệu đồ thị, việc duyệt qua các thành phần và mối quan hệ diễn ra nhanh chóng và hiệu quả về chi phí, trái ngược với việc sử dụng tài nguyên máy tính và thời gian lớn trong các hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) khi thực hiện các phép join.
Cơ sở dữ liệu dạng bảng quan hệ
Lưu trữ dữ liệu theo dạng cấu trúc đồ thị các node & quan hệ
Thực thể dữ liệu hay quan hệ chứa các thuộc tính (properties) dạng
Quan hệ theo dạng khóa chính/khóa ngoại
Hình 2.21 minh họa sự khác biệt giữa lưu trữ dữ liệu dạng bảng quan hệ (RDB) truyền thống và cấu trúc đồ thị (Graph-database) Bảng 2.21 trình bày các truy vấn Cypher trên Neo4J để minh họa cho hình ảnh này.
TRUY VẤN CYPHER MINH HỌA TRÊN NEO4J
//tạo các node dữ liệu và quan hệ
CREATE (node:SinhVien {id: "5", studentName: "PHÚ PHẠM"});
Hình 2.22: Minh họa cho truy vấn cypher [Bảng 2.21.1] tại trên Neo4J
2.3.3.Hướng tiếp cận CSDL bảng quan hệ (RDBMS) và các giới hạn
2.3.3.1 Ý tưởng, phương thức thực hiện và nhận xét Đây là một hướng tiếp cận khá phổ biến [21] [19] trong việc chuyển đổi hình thức lưu trữ, quản lý dữ liệu cũng như thực thi các tác vụ truy vấn dữ liệu trên CDO
Trong lĩnh vực quản trị cơ sở dữ liệu, các hệ quản trị như Microsoft SQL Server, Oracle và MySQL cho phép tổ chức dữ liệu dưới dạng bảng quan hệ Quá trình chuyển đổi lý thuyết bao gồm việc chuyển đổi các lớp, đối tượng và thuộc tính thành các bảng riêng biệt, được kết nối theo cấu trúc ontology Ví dụ, trong ontology miền công nghệ thông tin, các bảng sẽ được xây dựng và tổ chức hợp lý để phản ánh mối quan hệ giữa các thành phần dữ liệu.
Lớp chủ dề và thành phần bao gồm tất cả các đối tượng trong lớp thành phần, được tổ chức thành một bảng để lưu trữ toàn bộ thông tin liên quan đến từng đối tượng, bao gồm id và label.
Mỗi thuộc tính và quan hệ trong lớp sẽ được lưu trữ trong các bảng riêng biệt, như HAS_PARENT, IS_A, HAS_ALTLABEL, PART_OF, và HAS_PART Các quan hệ này sẽ được biểu diễn dưới dạng ánh xạ khóa giữa các đối tượng trong lớp thành phần, theo định dạng .
Bảng lưu trữ các thực thể của lớp thành phần (ingredient).
Mỗi thuộc tính/ quan hệ sẽ được lưu trữ trong các bảng riêng biệt.
Các quan hệ ràng buộc giữa các bảng có thể là , ,
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)
Việc chuyển đổi dữ liệu của ontology sang các hệ cơ sở dữ liệu dạng bảng quan hệ mang lại nhiều lợi ích, bao gồm khả năng linh động trong lưu trữ và dễ dàng trong quản lý dữ liệu Hơn nữa, tốc độ truy vấn được cải thiện nhờ vào nền tảng tương tác lưu trữ đã được tối ưu và khả năng truy vấn bằng SQL logic.
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 /
2.4.1 Thu thập tài liệu phân tán (distributed crawling)
[crawldb] chứ toàn bộ các thông tin về tình trạng, liên kết, tham số của toàn bộ các quá trình thu thập tài liệu của toàn hệ thống
[linkdb] lưu trữ các liên kết được nạp vào crawler - chịu trách nhiệm & quản lý bởi link invertor
Chỉ block chứa dữ liệu chỉ mục phân tán & sau khi được trộn (merging) lại thành một
Mỗi lần thực hiện tác vụ thu thập (crawling job), một phân vùng lưu trữ mới sẽ được tạo ra để chứa các cơ sở dữ liệu liên quan, và phân vùng này sẽ được đặt tên hoặc ký hiệu theo thời gian bắt đầu chạy tác vụ.
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ế
Các tác vụ thu thập dữ liệu theo nguyên lý phân tán tương tự như phương pháp xử lý đơn truyền thống, nhưng điểm khác biệt là một tác vụ chính được chia thành nhiều tác vụ con nhỏ hơn Những tác vụ này sẽ được phân tán đều lên các máy con trong một cluster, nhằm nâng cao hiệu quả thu thập Dữ liệu thu thập sẽ được lưu trữ tập trung trên HDFS Cuối cùng, toàn bộ dữ liệu sẽ được tổng hợp lại thành một khối thống nhất trước khi chuyển sang giai đoạn tiếp theo.
Trong mô hình giải pháp của Apache Nutch, các quá trình thu thập dữ liệu diễn ra liên tục và phân tán trên các node trong cụm Hadoop, với dữ liệu và tham số được lưu trữ trên HDFS dưới dạng các khối dữ liệu (segments) Nutch hoạt động như một crawler theo cơ chế đệ quy, liên tục fetching từ liên kết chính đến các liên kết con cho đến khi đạt ngưỡng chiều sâu quy định Tất cả các liên kết và tình trạng thu thập đều được lưu trữ và kiểm soát chặt chẽ trong mỗi chu kỳ, trong khi các tác vụ MapReduce được thực hiện để gom dữ liệu thành các segments.
Một tác vụ thu thập (crawling job) theo Nutch sẽ bao gồm bốn tiến trình chủ yếu sau:
Kiểm tra và sinh liên kết (URL), hay còn gọi là generating, là quá trình lấy các liên kết từ những liên kết mới được nạp vào hệ thống thông qua bộ nạp liên kết (injector) Quá trình này bao gồm việc so khớp với cơ sở dữ liệu thu thập hiện có (crawldb) để xác định các liên kết cần thu thập Kết quả là các liên kết mới sẽ được đưa vào giai đoạn thu thập dữ liệu tiếp theo (crawl_generate), với liên kết đầu tiên được chọn để nạp vào giai đoạn tiếp theo.
Trong giai đoạn nạp và thu thập tài liệu (fetching), danh sách các liên kết đã được lưu trong [crawl_generate] sẽ được truy xuất để tiến hành thu thập Mỗi liên kết sẽ được thu thập kèm theo trạng thái và nội dung của tài liệu, sau đó được lưu trữ vào hai vị trí khác nhau là [crawl_fetch] và [content].
Xử lý và phân tách văn bản (parsing) là quá trình thu thập và lưu trữ các văn bản thô, bao gồm nội dung chính tại [parse_text], các liên kết ngoài tại [crawl_parse], và các tham số siêu dữ liệu như thẻ title và description trong một website tại [parse_data].
Cập nhật và tiếp tục là chu kỳ cuối cùng trong giai đoạn thu thập dữ liệu, trong đó các tham số, liên kết và trạng thái của quá trình thu thập được lưu trữ trong [crawl_fetch] và [crawl_parse] sẽ được cập nhật vào [crawldb] Quy trình này sẽ lặp lại cho đến khi đạt được tham số chiều sâu (depth) đã được thiết lập ban đầu.
2.4.2 Lập chỉ mục và chọn lọc tài liệu phân tán (distributed indexing)
Sau khi thu thập, dữ liệu sẽ được nạp vào các giai đoạn tiếp theo như tiền xử lý, phân tách từ, và loại bỏ stopwords Cuối cùng, một chỉ mục ngược sẽ được tạo ra, trong đó khóa là từ khóa và giá trị là danh sách tài liệu chứa từ khóa đó Toàn bộ quá trình này được thực hiện thông qua cơ chế phân tán MapReduce, cho phép chia nhỏ các tác vụ trên nhiều máy con và gom kết quả lại Kết quả cuối cùng là một khối chỉ mục ngược được lưu trữ trên HDFS.
2.4.2.1 Nguyên lý xây dựng ứng dụng phân tán với MapReduce
Khi xây dựng ứng dụng phân tán với MapReduce, các nhà phát triển chỉ cần tập trung vào việc triển khai hai hàm chính là Map() và Reduce(), mà không phải lo lắng về các cơ chế xử lý khác Điều này khiến cho Hadoop MapReduce trở thành lựa chọn phổ biến trong việc phát triển các giải pháp ứng dụng phân tán Mô hình lập trình MapReduce hoạt động thông qua hai thủ tục chính: Map() và Reduce().
Thủ tục Map() sẽ biến mỗi [khóa](k) thu được bằng thành cặp
Thủ tục Reduce() sẽ nhận đầu vào là khoá k' và danh sách cách giá trị v' và trả về kết quả là cặp