Phát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhânPhát triển một số tính năng trên nền tảng Nextcloud để hỗ trợ sinh viên công nghệ thông tin quản lý kho tài liệu học tập cá nhân
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
ĐỖ XUÂN DUY
PHÁT TRIỂN MỘT SỐ TÍNH NĂNG TRÊN NỀN TẢNG NEXTCLOUD ĐỂ HỖ TRỢ SINH VIÊN CÔNG NGHỆ THÔNG TIN QUẢN LÝ KHO TÀI LIỆU HỌC TẬP CÁ
Trang 2Đề án được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: PGS.TS Đỗ Văn Nhơn
Phản biện 1: PGS.TS Nguyễn Tuấn Đăng
Phản biện 2: TS Đàm Quang Hồng Hải
Đề án tốt nghiệp sẽ được bảo vệ trước Hội đồng chấm đề án tốt nghiệp thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc:…….giờ…….ngày………tháng………năm………
Có thể tìm hiểu đề án tốt nghiệp tại:
-Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MỞ ĐẦU
Lý do chọn đề tài
Trong thời đại thông tin hiện nay, việc truy cập và sử dụng dữ liệu một cách nhanh chóng và hiệu quả là quan trọng, đặc biệt với sinh viên Công Nghệ Thông Tin Tuy nhiên, các hệ thống tìm kiếm hiện nay chủ yếu dựa vào từ khóa mà không xem xét ngữ cảnh hoặc ý nghĩa, dẫn đến kết quả không chính xác và lãng phí thời gian của người dùng Trong bối cảnh này, việc phát triển một hệ thống tìm kiếm thông minh trên nền tảng lưu trữ đám mây phổ biến như Nextcloud, với khả năng hiểu và xử lý ngữ nghĩa của tài liệu, trở nên cấp bách Hệ thống này hứa hẹn không chỉ nâng cao hiệu quả học tập và nghiên cứu cho sinh viên CNTT mà còn mở ra hướng phát triển mới cho quản lý và sử dụng tài nguyên tri thức ở nhiều lĩnh vực khác
Mục tiêu nghiên cứu
Đề tài này nhằm tận dụng và mở rộng các tính năng hiện có của nền tảng Nextcloud, bao gồm lưu trữ, chia sẻ, và tìm kiếm cơ bản, để phát triển một tính năng tìm kiếm theo ngữ nghĩa cho kho tài liệu sinh viên ngành CNTT Mục tiêu chính là thiết lập một mô hình tổ chức và lưu trữ tài liệu chuẩn hóa, bao gồm hệ thống tiền xử lý khi tải tài liệu lên và tính năng tìm kiếm thông minh dựa trên ngữ nghĩa Điều này sẽ cho phép sinh viên quản lý, tìm kiếm, và truy cập dữ liệu một cách hiệu quả, đồng thời duy trì tốc độ xử lý nhanh chóng Bằng cách áp dụng kỹ thuật tìm kiếm ngữ nghĩa,
đề tài hy vọng mở ra một bước đột phá cho cộng đồng người dùng đông đảo của Nextcloud và tạo điều kiện áp dụng hệ thống này rộng rãi trên nhiều lĩnh vực khác, từ đó cải thiện và nâng cao chất lượng học tập và nghiên cứu
Phương pháp nghiên cứu
Phương pháp thu thập thông tin và thử nghiệm
Trang 4
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về semantic web và truy hồi thông tin
1.1.1 Giới thiệu về Semantic web (web ngữ nghĩa)
Semantic Web, một sự mở rộng của World Wide Web, được thiết
kế để cho phép thông tin được định nghĩa một cách rõ ràng, thúc đẩy sự hợp tác giữa máy tính và con người Được khởi xướng bởi Tim Berners-Lee, mục tiêu là tạo ra một hệ thống thông tin logic để máy tính có thể dễ dàng
xử lý dữ liệu toàn cầu, phân tích và mô tả dữ liệu chi tiết, và xây dựng các tệp tin mô tả mối quan hệ giữa các tập dữ liệu, từ đó mở rộng kết nối thông tin và tạo ra mối quan hệ phong phú hơn trên Web
1.1.2 Quá trình phát triển Web ngữ nghĩa
Quá trình phát triển của Semantic Web dựa trên ba trụ cột chính: tiêu chuẩn hóa ngôn ngữ thể hiện dữ liệu (XML) và siêu dữ liệu (RDF) trên Web, chuẩn hóa ngôn ngữ biểu đạt Ontology cho Web ngữ nghĩa, và tăng cường phát triển qua dự án Semantic Web Advanced Development
(SWAD)
1.1.3 Cấu trúc phân tầng của Semantic Web
Semantic Web được cấu trúc từ một hệ thống lớp ngôn ngữ đa tầng, từ Lớp Unicode & URI, Lớp XML, Lớp RDF và RDFSchema, đến Lớp Ontology, và các lớp Unifying Logic, Proof, và Trust Mỗi tầng đều có vai trò quan trọng trong việc đảm bảo an ninh thông tin và nâng cao chất lượng dữ liệu
Trang 5Hình 1.1: Kiến trúc phân tần của Semantic web
1.1.4 Nội dung phát triển Web Ngữ nghĩa
Phát triển Web Ngữ nghĩa tập trung vào ba phương diện chính: chuẩn hóa ngôn ngữ thể hiện dữ liệu và meta-dữ liệu (XML và RDF) trên Web, chuẩn hóa ngôn ngữ biểu diễn Ontology, và phát triển cũng như cải thiện Web Ngữ nghĩa thông qua chương trình SWAD
1.1.5 Truy tìm thông tin
Trong truy tìm thông tin trên Web, sử dụng keyphrase chọn lọc dựa trên ontology là phương pháp tiên tiến giúp phản ánh chính xác nội dung tài liệu và tăng độ liên quan Điều này cải thiện đáng kể khả năng truy xuất thông tin bằng cách so sánh đồ thị từ khóa giữa câu truy vấn và tài liệu,
từ đó nâng cao độ chính xác và khai thác thông tin, đặc biệt hữu ích cho
Trang 6sinh viên công nghệ thông tin, thông qua việc áp dụng ngữ nghĩa và xử lý tri thức qua ontology
Đánh giá một hệ thống tìm kiếm thông tin
Đánh giá hiệu suất của một hệ thống tìm kiếm thông tin thường dựa trên các chỉ số nhất định[3]:
Khi xem xét hiệu quả của hệ thống truy vấn thông tin, hai chỉ số quan trọng thường được sử dụng là độ chính xác và độ bao phủ Các chỉ số này được sử dụng để đánh giá mức độ hài lòng của người dùng đối với kết quả mà hệ thống cung cấp Giả sử rằng S là tập hợp các tài liệu mà hệ thống tìm kiếm xác định là liên quan U là tập hợp các tài liệu được người dùng đánh giá là liên quan Độ chính xác và độ bao phủ được định nghĩa như sau:
Độ chính xác: Đây là tỉ lệ giữa số tài liệu liên quan mà hệ thống trả
về và mà người dùng xác định là liên quan so với tổng số tài liệu mà hệ thống truy vấn trả về
1.2 Giới thiệu Ontology
Ontology, một thuật ngữ xuất phát từ triết học được Aristotle giới thiệu, ngày nay trong khoa học máy tính, nó đề cập đến việc định nghĩa cấu trúc của các đối tượng và mối quan hệ giữa chúng trong một ngữ cảnh nhất định Mục tiêu là phát triển một ngôn ngữ chung cho một lĩnh vực cụ thể, với thuật ngữ, khái niệm và quy tắc sử dụng rõ ràng Ontology đóng vai trò
Trang 7quan trọng trong trí tuệ nhân tạo, Semantic Web và nhiều lĩnh vực khác, cung cấp một nền tảng cho việc tổ chức kiến thức
và OWL (Web Ontology Language) để biểu diễn Ontology, với mục đích phụ thuộc vào yêu cầu ứng dụng cụ thể RDF thích hợp cho việc lưu trữ và mô tả tài nguyên, trong khi OWL cung cấp khả năng suy luận cao hơn
1.3 Phương pháp biểu diễn tài liệu dạng đồ thị keyphrase
Định nghĩa: Một đồ thị keyphrase (KG) bao gồm ba phần tử cơ bản (GK, E, l) trong đó:
- GK K đại diện cho một tập hợp có số lượng hữu hạn, không trống các từ khóa, được gọi là tập đỉnh của đồ thị
- E là một tập hợp hữu hạn của các cặp phần tử trong GK GK, được mô tả là tập cạnh của đồ thị, nơi mỗi cạnh đại diện cho một mối quan
hệ ngữ nghĩa giữa hai đỉnh liền kề
- là hàm gán nhãn cho các cạnh trong đồ thị, sao cho: một cạnh e được gắn nhãn bởi l(e) RKK chỉ ra một quan hệ ngữ nghĩa giữa hai đỉnh
từ khóa liền kề với e
Trang 8Ví dụ: Ta có đồ thi keyphrase như sau:
GK = {Artificial Intelligence, Machine Learning, Algorithms, Computer Science, Deep Learning}
E = { e1 = (Artificial Intelligence, Machine Learning), e2 = (Algorithms, Machine Learning), e3 = (Python, Programming Language), e4 = (Deep Learning, Machine Learning), e5 = (Machine Learning, Artificial Intelligence), e6 = (Deep Learning, Machine Learning), e7 = (Machine Learning, Computer Science) }
I(e1) = Đồng nghĩa, I(e2) = Có Liên Quan, I(e3) = Thuộc Về, I(e4)
= Là-một, I(e5) = Phần của, I(e6) = Gần Nghĩa, I(e7) = Mở Rộng
Thuật toán tính khoảng cách giữa 2 keyphrase
Đầu vào: hai keyphrase k1 và k2
Đầu ra: Khoảng cách ngữ nghĩa giữa k1 và k2
Sem_Dis(k1, k2)
{
If k1, k2 là 2 keyphrase giống nhau
Sem_Dis(k1, k2):= 0 Else If tồn tại liên kết trực tiếp giữa k1 và k2
Sem_Dis(k, k):= w(k, k)
Machine Learning
Là 1 phần của Có liên quan
Trang 9Else If tồn tại liên kết gián tiếp giữa k1 và k2
}
So khớp đồ thị keyphrase
Định nghĩa: Một cơ chế ánh xạ giữa hai đồ thị keyphrase H = (KH,
RH, EH) chuyển tới đồ thị keyphrase G = (KG, RG, EG) là một cặp ánh xạ ( , ) f g
của 2 ánh xạ f: R H R G , g: K H K G thỏa điều kiện:
Là hàm một-đối-một
Ánh xạ này duy trì được sự liên kết "quan hệ kề" giữa các đỉnh và
các cạnh, tức là cho mọi r R H , g(adj i (r)) = adj i (f(r)) với 1 i 2 Trong đó,
adji(r) là đỉnh keyphrase thứ i kề với đỉnh quan hệ r Nếu hai đỉnh trong H kề nhau thì đỉnh tương ứng trong G cũng vậy
r R H , β(r,f(r)) ≠ 0
k K H , α(k,g(k)) ≠ 0
Định nghĩa: Định nghĩa: Một mô hình lượng giá cho việc ánh xạ
từ đồ thị H sang G được xác định như sau, với giá trị trong khoảng [0,1]:
Σ α(k,g(k)) + Σ β(r,f(r))
r R H
k K H
|KH| + |RH|
Trang 101.4 Giới thiệu Nextcloud
Nextcloud là một nền tảng máy khách-máy chủ để tạo dịch vụ lưu trữ tệp và sử dụng chúng Về mặt chức năng rất giống với nhiều với Google Suite và Dropbox, với sự khác biệt về chức năng chính là Nextcloud miễn phí và là mã nguồn mở, do đó cho phép bất kỳ ai cũng có thể cài đặt và vận hành nó miễn phí trên máy chủ riêng Trái ngược với các dịch vụ độc quyền như Google Drive, Dropbox, kiến trúc và mã nguồn mở cho phép thay đổi, thêm chức năng bổ sung vào nền tảng này
Hình 1.2: Logo Nextcloud
Nextcloud, nền tảng lưu trữ và làm việc cộng tác dựa trên đám mây nguồn mở, mang lại cho người dùng, đặc biệt là sinh viên công nghệ thông tin, một loạt tính năng phong phú và linh hoạt Điều này bao gồm:
- Đồng bộ hóa và chia sẻ File: Cho phép đồng bộ hóa dữ liệu giữa các thiết bị và chia sẻ an toàn, hỗ trợ sinh viên truy cập và chia sẻ tài liệu học tập mọi lúc, mọi nơi
- Quản lý Lịch và Công việc: Tích hợp công cụ quản lý lịch giúp sinh viên sắp xếp lịch học và dự án một cách hiệu quả
- Gọi trực tiếp Video Call: Nextcloud Talk hỗ trợ video call, chat nhóm, giao tiếp trực tiếp, thúc đẩy hợp tác và làm việc nhóm không giới hạn không gian
- An Toàn và Bảo mật: Mã hóa dữ liệu, quản lý quyền truy cập, và các công cụ bảo mật khác đảm bảo bảo vệ thông tin cá nhân và tài liệu học tập
Trang 11- Khả năng mở rộng và tích hợp: Có thể tùy chỉnh nền tảng theo nhu cầu cá nhân hoặc nhóm thông qua các ứng dụng và plugin, hỗ trợ
từ chỉnh sửa tài liệu trực tuyến đến quản lý dự án
- Tự quản lý và Tùy chỉnh: Sinh viên và tổ chức giáo dục có thể tự cài đặt và quản lý nền tảng trên server riêng, tùy chỉnh tính năng theo yêu
cầu
1.5 Kết luận Chương 1
Trong chương này, chúng ta đã xem xét sâu rộng về công nghệ Web Ngữ Nghĩa, Ontology và nhấn mạnh đặc biệt vào nền tảng Nextcloud, một giải pháp đám mây linh hoạt và mạnh mẽ Từ khả năng đồng bộ hóa và chia sẻ dữ liệu đến quản lý lịch và nhiệm vụ, Nextcloud cung cấp một loạt công cụ hỗ trợ sinh viên công nghệ thông tin trong việc quản lý và tương tác
với kho tài liệu học tập cá nhân
Trang 12CHƯƠNG 2: THIẾT KẾ 2.1 Xây dựng Ontology cho lĩnh vực Công nghệ thông tin
Bao gồm tổng cộng sáu phần tử Tuy nhiên, do bộ dữ liệu sử dụng trong nghiên cứu này không chứa cấu trúc phân cấp rõ ràng, phần tử gán nhãn đã được bỏ qua Điều này dẫn đến việc mô hình chỉ còn bao gồm năm
phần tử chính là: (K, C, R KC , R CC , R KK ) mỗi phần tử đều có vai trò và mô
- Một tập hợp RKK các quan hệ giữa các keyphrase
Quy trình xây dựng Ontology:
Hình 2.1: Quy trình xây dựng ontology 2.2 Mô hình tổ chức, lưu trữ và biểu diễn tài liệu theo ngữ nghĩa trên Nextcloud
Mô hình “Cơ sở tài liệu có ngữ nghĩa” (viết tắt là mô hình SDB - Semantic Document Base) là một hệ thống gồm có 5 thành phần (D, FS,
DB, CK_ONTO, SBD_R), được học viên lược bớt thành phần thứ năm
Thu thập tài liệu Xây dựng ontology
Chuẩn hóa ontology
Chuẩn hóa ontology cho
phù hợp với yêu cầu
Xây dựng các lớp và các
quan hệ
Thu thập KeyPhrase
từ các nguồn
Trang 13SBD_R vì cách tổ chức hệ thống file FS trong Nextcloud cũng như trong đề
án khác với mô hình FS đề xuất
- Mô hình ontology CK_ONTO mô tả tri thức của lĩnh vực CNTT
- Mô hình Cơ sở dữ liệu DB mô tả liên kết giữa DB tài liệu Nextcloud với DB CK_ONTO
Các tài liệu có thể được sắp xếp và lưu trữ trong môi trường Nextcloud theo cách sau:
(1) Hệ thống cây thư mục phân cấp có quy chuẩn lưu trữ các tập tin tài liệu
(2) Tập tin “nextcloud.sql” lưu trữ database của các tài liệu cụ thể là tài liệu lĩnh vực công nghệ thông tin
(3) Tập tin “ontology.sql” lưu trữ database của ontology CK_ONTO
và các đồ thị keyphrase biểu diễn tài liệu
Cơ sở dữ liệu lưu trữ tài liệu Nextcloud: nextcloud.sql: Trong khuôn khổ của đề tài, tôi tập trung vào khía cạnh xử lý ngữ nghĩa của tài liệu
và tối ưu hóa việc lưu trữ trên Nextcloud, đồng thời phát triển hệ thống tìm kiếm thông minh hơn Để đáp ứng với những mục tiêu này mà không làm phức tạp thêm việc quản lý các siêu dữ liệu, mô hình CSDL quan hệ mổ tả dưới đây được tinh giản để chỉ mô tả các bảng thông tin cốt lõi liên quan đến việc lưu trữ tài liệu trên Nextcloud và hỗ trợ hệ thống tìm kiếm, không đề cập đến các bảng khác cho đến khi cần thiết:
Trang 14Hình 2.2: Tổ chức CSDL của Nextcloud liên quan đến việc lưu trữ tài
Hình 2.3: Tổ chức CSDL lưu trữ Ontology
Trang 152.3 Tính toán độ tương đồng ngữ nghĩa
Sử dụng một hàng đợi ưu tiên dựa trên các tiêu chuẩn trọng số cao nhất để ghi nhận các keyphrase được kích hoạt theo quy tắc đã nêu
Input: Ontology CK_ONTO
Ri := {}; // quan hệ ri giữa các
keyphrase với i = 1, 2, …14 tương ứng 14 quan hệ có độ ưu tiên (thứ tự dò tìm trên tập các quan hệ) giảm dần Mỗi phần tử trong Ri là một bộ
[keyphrase 1, keyphrase 2, val_ri (keyphrase 1, keyphrase 2)]
(val_ri(keyphrase 1, keyphrase 2) là trọng số phản ánh độ tương đồng giữa keyphrase 1 và keyphrase 2)
minValR := [] // lưu giá trị của 17 quan hệ trên keyphrase
Trang 16Các bước thực hiện:
Bước 1: Khởi tạo
Đặt trạng thái ban đầu cho một số biến điều khiển
KQueue: = {}; // hàng đợi ưu tiên
Threshold: = 0,5; // ngưỡng, khoảng cách ngữ nghĩa nhỏ nhất cho phép giữa các keyprhase
Bước 2: Thêm keyphrase k1 vào hạng đợi ưu tiên với giá trị ưu tiên được thiết lập là 1
KQueue.add(k1, 1);
Bước 3: Bắt đầu quá trình tìm kiếm để sinh ra các keyphrase mới
có quan hệ ngữ nghĩa với k1 và thêm chúng vào hàng đợi
while not (KQueue.empty())
<3.1> Chọn và loại bỏ phần tử có độ ưu tiên cao nhất khỏi hàng đợi
(key, val) : = KQueue.dequeue();
<3.2> Kiểm tra mục tiêu
if (key == k2) then return val;
<3.3> Tìm kiếm qua các quan hệ ngữ nghĩa để phát hiện keyphrase liên quan đến key
for i from 1 to 14 then
if ( ( val * minValR[i] ) > Threshold ) then
Trang 17for ( each k such that k ri (ri-1) key ) do // Thêm keyphrase mới vào hàng đợi cùng với độ ưu tiên được tính toán
KQueue.add(k, val*val_ri (key, k)); return 0; // trả về 0 nếu không tìm được một liên kết ngữ nghĩa nào giữa k1 và k2
Trang 18For ( each key in Keyphrases ) do
if ( EXIST ( key , d.Title ) ) then
for I := 1 to n do // Duyệt qua n class ở mức cao nhất
if ( key có trong class[i] )
Save(key, strKeyphrase, i) Bước 3: Lưu chuỗi từ biến strKeyphrase vào cơ sở dữ liệu (trường strKeyphrase trong bảng tblCKOnto)
tblCKOnto.strKeyphrase strKeyphrase
Giải thích: Đoạn giải thuật ở Bước 2, có sử dụng các hàm sau:
Hàm EXIST (key, Trường dữ liệu)
Phương pháp này kiểm tra sự xuất hiện của key trong một trường
dữ liệu (ví dụ: trường Title trong tin tức d), trả về True nếu key tồn tại, và False nếu không
Hàm Save(keyphrase, strKeyphrase, i)
Lưu keyphrase vào cụm thứ i của biến strKeyphrase
2.5 Giải pháp xử lý câu truy vấn
Với tính năng tìm kiếm dựa vào ý nghĩa, quy trình xử lý câu truy vấn sẽ tương tự như việc xử lý tài liệu: thực hiện trích xuất keyphrase và biểu diễn câu truy vấn dưới dạng một tập hợp các keyphrase tương ứng Thay vì giả định rằng câu truy vấn là một câu hoàn chỉnh bằng ngôn ngữ tự nhiên, phạm vi của cấu trúc câu truy vấn được giới hạn ở việc sử dụng một hoặc một số nhóm từ ngữ chính xác diễn đạt nội dung mà người dùng muốn tìm kiếm