Đề tài Xây dựng và làm giàu ontology tiếng việt chuyên ngành công nghệ thông tin

Để tạo quan hệ mới ta cũng chọn nút Create object property , và đổi tên quan hệ ở textbox bên tay phải nhƣ tạo lớp. Đối với quan hệ ta chú ý đến Domain và Range có thể đƣợc chỉnh sửa và thêm ở bên phải. Và một số tính chất của quan hệ nhƣ: Functional, InverseFunctional, Symmetric, Transit ive, ngoài ra ta có thể thêm một vào quan hệ nghịch đảo của một quan hệ bằng cách thêm tại textbox Inverse. Để tạo thuộc tính mới ta chọn tab Datatype và cũng chọn nút Create Datatype property theo hình ở dƣới

pdf102 trang | Chia sẻ: lylyngoc | Lượt xem: 3279 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng và làm giàu ontology tiếng việt chuyên ngành công nghệ thông tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Vì vậy chúng ta cần có một công cụ để thu thập dữ liệu và nhập thông tin vào ontology một cách tự động. Tuy nhiên, nếu làm tự động từ bƣớc từ thập dữ liệu đến việc rút trích và lƣu trữ thông tin vào ontology thì độ chính xác không cao vì mỗi giai đoạn đều có xác xuất sai của nó, do đó chúng em sẽ xây dựng công cụ làm giàu ontology bán tự động. Có nghĩa là từ việc thu thập dữ liệu đến rút trích ra thông tin để lƣu trữ sẽ thực hiện tự động, sau đó sẽ cho ngƣời dùng kiểm tra và xem xét lại kết quả trƣớc khi lƣu trữ vào ontology. Nhƣ vậy sẽ giúp loại bỏ bớt một số kết quả sai, giảm bớt lƣợng thông tin rác trong ontology. Quá trình làm giàu ontology tự động hay bán tự động trong giai đoạn phát triển ontology gọi là quá trình học của ontology (ontology learning) [42]. Ontology có thể 44 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh học từ text, từ từ điển, từ cơ sở tri thức (knowledge base), từ những lƣợc đồ bán cấu trúc hoặc từ lƣợc đồ quan hệ [43]. Theo tài liệu [44] thì việc học của ontology đƣợc chia thành 2 loại là học từ lúc xây dựng ontology và học để mở rộng ontology hiện có. Do đó việc học của ontology sẽ gồm có những giai đoạn sau: Trong trƣờng hợp chƣa có ontology thì sẽ tiến hành tập hợp lại những thuật ngữ thành dạng cây khái niệm để xây dựng ontology ở dạng thô. Giai đoạn này có thể biểu diễn bằng vec tơ không gian, mạng liên kết, lý thuyết tập hợp. Với trƣờng hợp đã có sẵn ontology thì việc học của ontology với dữ liệu đã có sẵn sẽ bắt đầu với việc phân lớp tài liệu. Giai đoạn này sẽ dùng những đặc trƣng của tập dữ liệu có sẵn đã đƣợc phân lớp để huấn luyện cho một phƣơng pháp máy học (Machine Learning) để tạo ra bộ phân lớp (classifier). Sau đó dùng bộ phân lớp này để phân lớp các tài liệu dùng để làm giàu ontology. Cuối cùng là rút trích thông tin cho các thành phần của ontology từ tài liệu có liên quan đã đƣợc phân lớp trƣớc đó. Các hệ thống rút trích từ trƣớc đến nay đƣợc thiết kế để rút trích các thực thể có tên nên chủ yếu đƣợc dùng để tìm các thực thể của các khái niệm. 3.2.2. Khảo sát phƣơng pháp làm giàu ontology a. Phƣơng pháp làm giàu Wordnet [45] Trong nghiên cứu này, tác giả đã xây dựng công cụ tự động làm giàu Wordnet từ nguồn internet. Theo [46] thì Wordnet là một từ điển trực tuyến tiếng Anh dựa trên lý thuyết về ngôn ngữ tâm lý. Theo wikipedia nó đƣợc dùng nhƣ là một ontology từ vựng trong lĩnh vực khoa học máy tính. Nó bao gồm các danh từ, động từ, tính từ, trạng từ đƣợc sắp xếp theo nghĩa của chúng và có các quan hệ từ vựng-ngữ nghĩa. Trong nghiên cứu này, tác giả xây dựng công cụ tự động làm giàu Wordnet phiên bản 1.6 [50]. 45 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Phƣơng pháp làm giàu trong nghiên cứu này là tạo ra câu truy vấn bằng cách dùng thông tin trong ontology cụ thể là các khái niệm của nó. Sau đó dùng câu truy vấn để tìm tất cả tài liệu có liên quan đến các khái niệm từ internet dùng công cụ tìm kiếm Alta Vista [47]. Các tài liệu tìm đƣợc sẽ đƣợc phân lớp theo các khái niệm trong ontology. Từ đó rút ra danh sách các từ có quan hệ ngữ nghĩa bằng cách đo số lần xuất hiện của từ trong mỗi tập đã phân lớp và thực hiện một số công thức tính toán khác [45]. Trong tài liệu tác giả không đề cập đến việc đã sử dụng phƣơng pháp phân lớp nào. Những khái niệm đƣợc rút ra sẽ đƣợc giải quyết vấn đề nhập nhằng ngữ nghĩa dùng tập SemCor [48] chứa các câu giải thích nghĩa của từ tƣơng ứng với các khái niệm trong Wordnet (tập hợp những câu này trong Wordnet gọi là word sense). Cuối cùng sẽ gom lại danh sách các từ rút đƣợc theo nghĩa của từ trong Wordnet. Nhận xét: Trong nghiên cứu này đã đề xuất phƣơng pháp làm giàu Wordnet, một dạng ontology. Với phƣơng pháp này thì chỉ có thể sử dụng cho Wordnet để làm giàu các khái niệm theo nghĩa của từ (word sense) vì nó phụ thuộc vào cấu trúc của Wordnet và tập SemCor. Vì vậy không thể áp dụng phƣơng pháp này để làm giàu ontology tiếng Việt chuyên ngành Công nghệ thông tin. b. Phƣơng pháp làm giàu ontology về lĩnh vực sinh học Để làm giàu cho ontology này, trong tài liệu [43] tác giả đề xuất phƣơng pháp làm giàu bán tự động. Để thực hiện việc này, tác giả đã xây dựng framework cho việc học ontology (ontology learning), hệ thống này hỗ trợ tự động lấy tài liệu từ web dùng phƣơng pháp crawl tập trung (focused crawling), đây là một cơ chế tìm kiếm tài liệu dựa trên kỹ thuật thông minh [43]. Sau đó phân lớp tài liệu dùng bộ phân lớp SVM (Support Vector Machine) để xác định những tài liệu liên quan đến lĩnh vực cần tìm. Cuối cùng hệ thống sẽ tự động rút trích những thông tin cần thiết để 46 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh làm giàu cá thể và thuộc tính cho ontology dùng phƣơng pháp khai mỏ văn bản (text mining). Kết quả sau khi rút trích đƣợc sẽ đƣợc các chuyên gia chọn lọc lại rồi mới cập nhật vào ontology. Nguồn dữ liệu để làm giàu ontology là từ internet, tác giả dùng crawler để tìm kiếm tài liệu kết hợp với công cụ tìm kiếm tổng quát nhƣ Google, Yahoo và công cụ tìm kiếm khoa học nhƣ Google Scholar và thƣ viện từ điển trực tuyến nhƣ amphibanat.org. Để phân lớp tài liệu tác giả dùng công cụ phân lớp LibSVM [26] để phân tài liệu ra thành 2 lớp chính là có liên quan và không có liên quan đến lĩnh vực lƣỡng cƣ và hình thái học. Ngoài ra trong tài liệu [49] tác giả đã đề xuất dùng các từ biểu diễn nghĩa của khái niệm trong Wordnet (word sense) để làm giàu những mô tả khái niệm trong ontology về động vật lƣỡng cƣ (một phần trong ontology về sinh học). Nhận xét: Nguồn dữ liệu lấy từ internet dùng các công cụ tìm kiếm phổ biến hiện nay rất phong phú và đa dạng. Dùng SVM để phân lớp tài liệu với độ chính xác 77,5% (theo bài báo [51]) kết quả này theo chúng em là chấp nhận đƣợc. Và phƣơng pháp làm giàu ontology bán tự động này theo chúng em sẽ cho kết quả tốt hơn vì có sự chọn lọc lại kết quả sau khi rút trích. Vì vậy chúng em sẽ thực hiện xây dựng công cụ làm giàu ontology tiếng Việt chuyên ngành công nghệ thông t in bằng phƣơng pháp bán tự động. 3.2.3. Phƣơng pháp thực hiện Vì cấu trúc của mỗi ontology khác nhau nên công cụ làm giàu này chỉ phục vụ cho việc làm giàu ontology về công nghệ thông tin bằng tiếng Việt (ITVO). Tuy nhiên, việc xây dựng công cụ làm giàu cho các ontology khác có thể thực hiện tƣơng tự. 47 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình 8: Mô hình phƣơng pháp làm giàu ontology Việc làm giàu ontology có thể chia làm các phần nhỏ nhƣ: làm giàu các lớp, các cá thể, các quan hệ trong ontology. Ở mức giới hạn của đề tài tốt nghiệp, chúng em chỉ dừng ở việc xây dựng công cụ làm giàu cá thể. Hƣớng phát triển sau này của chúng em là cải tiến giai đoạn rút trích để làm giàu các lớp và các quan hệ trong ontology. a. Nguồn dữ liệu Chúng em sẽ làm giàu ontology ITVO từ nguồn dữ liệu là internet. Cụ thể sẽ đƣa các từ khóa, chính là các khái niệm trong ontology lên internet và dùng Google, Yahoo API để tìm kiếm những tài liệu có liên quan làm nguồn dữ liệu đầu vào cho công cụ làm giàu ontology. b. Phân loại Sau khi dùng Google và Yahoo API để tìm kiếm các tài liệu có liên quan đến từ khóa trong ontology ta tiến hành phân loại các tài liệu đó. P hân loại văn bản là một tiến 48 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh trình đƣa các văn bản chƣa biết chủ đề vào các lớp văn bản đã biết (tƣơng ứng với các chủ đề hay lĩnh vực khác nhau). Mỗi lĩnh vực đƣợc xác định bởi một số tài liệu mẫu của lĩnh vực đó. Để thực hiện quá trình phân loại, các phƣơng pháp huấn luyện đƣợc sử dụng để xây dựng bộ phân loại từ các tài liệu mẫu, sau đó dùng bộ phân loại này để dự đoán lớp của những tài liệu mới (chƣa biết chủ đề). Trong quá trình phân loại, các văn bản đƣợc biểu diễn dƣới dạng vector với các thành phần (chiều) của vector này là các đặc trƣng của lớp. Cụ thể ở bài toán phân loại này các tài liệu đƣợc phân thành 2 lớp là lớp tài l iệu về công nghệ thông tin và lớp tài liệu không thuộc công nghệ thông tin. Ở đây chúng em sử dụng thuật toán SVM để phân loại văn bản. SVM (Support Vector Machine) là một phƣơng pháp học có giám sát bằng cách phân tích dữ liệu và nhận ra các mẫu đƣợc sử dụng để phân lớp và phân tích hồi quy (wikipedia). Phƣơng pháp này do Vapnik cùng nhóm nghiên cứu của ông đề nghị ở phòng thí nghiệm AT&T Bell vào năm 1992 [25].  Các phƣơng pháp và công cụ hỗ trợ phân loại tài liệu Phƣơng pháp tính trọng số TF*IDF: Đây là một phƣơng pháp để đánh giá các thuật ngữ trong một tài liệu, là một cách định trọng số từ thông dụng. Ở đây ta sẽ dùng trọng số này để chọn các đặc trƣng cho thuật toán phân loại SVM. Tần suất từ (term frequency - TF): Trọng số từ là tần suất xuất hiện của từ đó trong tài liệu. Cách định trọng số này nói rằng một từ là quan trọng đối với một tài liệu nếu nó xuất hiện nhiều lần trong tài liệu đó. TFIDF: Trọng số từ là tích của tần suất từ TF và tần suất tài liệu nghịch đảo của từ đó và đƣợc xác định bằng công thức IDF = log(N / DF) + 1 49 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh trong đó: N là kích thƣớc của tập tài liệu huấn luyện; DF là tần suất tài liệu: là số tài liệu mà một từ xuất hiện trong đó. Trọng số TFIDF kết hợp thêm giá trị tần suất tài liệu DF vào trọng số TF. Khi một từ xuất hiện trong càng ít tài liệu (tƣơng ứng với giá trị DF nhỏ) thì khả năng phân biệt các tài liệu dựa trên từ đó càng cao. Các từ đƣợc dùng để biểu diễn các tài liệu cũng thƣờng đƣợc gọi là các đặc trƣng. Để nâng cao tốc độ và độ chính xác phân loại, tại bƣớc tiền xử lý văn bản, ta loại bỏ các từ không có ý nghĩa cho phân loại văn bản. Tại bƣớc này, chúng ta gặp phải một bài toán nữa đó là tách từ tiếng Việt. Nhƣ chúng ta đã biết, nếu nhƣ đối với tài liệu tiếng Anh mỗi từ sẽ mang một nghĩa của riêng nó do vậy việc tách từ không mấy khó khăn và hiện nay cũng có nhiều công cụ hỗ trợ tốt cho việc này ví dụ nhƣ Gate. Đối với tiếng Việt thì mỗi từ (2 từ cách nhau bằng 1 khoảng trắng) nếu đi với những từ khác nhau sẽ có nghĩa khác nhau, có khi 2 hoặc 3 từ mới tạo thành nghĩa. Sau một thời gian khảo sát và tìm kiếm, chúng em quyết định sử dụng công cụ hỗ trợ tách từ tiếng Việt vnTokenizer do nhóm của tác giả Lê Hồng Phƣơng xây dựng đƣợc nêu trong bài báo [23]. Công cụ tách từ vnTokenizer: Đây là công cụ tách từ tự đông cho tiếng Việt đƣợc viết bằng ngôn ngữ Java và độc lập nền. Phiên bản cũ nhất hiện giờ còn đƣợc công bố trên website chính thức của tác giả [24] là phiên bản vnTokenizer 2.0 đƣợc xây dựng vào năm 2005 khi đó nó mới là một ứng dụng đơn với giao diện đơn giản. Và phiên bản chúng em sử dụng là phiên bản mới nhất hiện giờ đƣợc công bố chính thức trên website vào ngày 4/8/2010, phiên bản vnTokenizer 4.1.1c. Công cụ này đƣợc xây dựng sử dụng kết hợp từ điển (từ điển tiếng Việt đƣợc lấy từ đề tài VLSP [28]) và giải thuật ngram, trong đó mô hình ngram đƣợc huấn luyện 50 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh sử dụng treebank tiếng Việt (70,000 câu đã đƣợc tách từ). Treebank là kho ngữ liệu câu đƣợc chú giải ngữ pháp. Với độ chính xác xấp xỉ 97% (theo thống kê của tác giả trên website[24]) công cụ có thể thực hiện tốt việc tách từ tiếng Việt nên chúng em quyết định sử dụng nó cho công đoạn tiền xử lý tài liệu để rút ra các đặc trƣng. Sau khi tách từ, chúng ta tiến hành loại bỏ những hƣ từ trong tiếng Việt vì không những các từ này không có ý nghĩa gì đối với việc phân lớp mà nó còn có thể gây nhiễu cho việc tìm các đặc trƣng. Danh sách hƣ từ tham khảo từ website [29] và từ đề tài “Nghiên Cứu Phân Loại Văn Bản Tiếng Việt” của Trịnh Quốc Sơn. Danh sách tổng hợp các hƣ từ đƣợc liệt kê trong bảng phụ lục B. Công cụ LibSVM: Đây là một thƣ viện đơn giản, dễ sử dụng và hiệu quả đối với việc phân lớp bằng SVM. Thƣ viện này đƣợc tạo ra bởi hai tác giả Chih-Chung Chan và Chih-Jen Lin. Mục tiêu của nó là để giúp ngƣời dùng từ các lĩnh vực khác nhau dễ dàng sử dụng nhƣ một công cụ. LIBSVM cung cấp một giao diện đơn giản mà ngƣời sử dụng có thể dễ dàng liên kết nó với các chƣơng trình riêng của họ. Phiên bản hiện tại của của Libsvm là 3.0 đƣợc công bố vào tháng 9 năm 2010 [26]. Để có thể tiến hành sử dụng công cụ trên, ta phải xây dựng một tập tin huấn luyện và một tập tin để test. Hai tập tin này đều có định dạng giống nhau và đƣợc trình bày nhƣ bên dƣới: : : ... : : ... Trong đó: 51 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh là giá trị đích của tập huấn luyện. Đối với việc phân lớp, nó là một số nguyên xác định một lớp. là một số nguyên bắt đầu từ 1. Cụ thể trong bài toán phân loại, nó đại diện cho các đặt trƣng. là một số thực. Giá trị này thể hiện mức độ liên quan của đặc trƣng đối với một phân loại nằm trong khoảng [-1,1]. Nếu là đặc trƣng nhị phân thì lúc huấn luyện giá trị này sẽ là 1. Sau khi có đƣợc tập tin huấn luyện đúng định dạng, nhiệm vụ của libsvm là sẽ huấn luyện dựa trên tập tin định dạng và cho kết quả trả về là một tập tin train_model có đuôi là .model. Tập tin này là mô hình xây dựng dựa trên việc huấn luyện. Từ đó, ta chỉ việc sử dụng lại mô hình này để dự đoán các dữ liệu kiểm thử. Quá trình đƣa dữ liệu kiểm thử cũng giống nhƣ huấn luyện, vẫn phải xây dựng tập tin kiểm thử theo định dạng nhƣ trên. c. Rút trích cá thể Sau khi đã phân loại các tài liệu tìm đƣợc, chúng ta tiến hành rút trích các cá thể trong các tài liệu thuộc lĩnh vực công nghệ thông tin. Trong phần này chúng em xin trình bày cách rút trích các khái niệm thuộc lĩnh vực công nghệ thông tin. Nhƣ cấu trúc của ontology ITVO đã trình bày ở phần trên thì một cá thể của lớp Khái niệm công nghệ thông tin sẽ gồm có 2 thuộc tính là Định nghĩa và Nguồn của nó. Ở đây chúng ta sẽ rút ra định nghĩa của các khái niệm cũng chính là từ khóa đƣợc gửi lên để tìm kiếm tài liệu. Sau khi đọc và tìm hiểu một số bài viết về cú pháp và ngôn ngữ tiếng Việt [14, 15, 22] và quan sát một tập các câu dùng để định nghĩa cho khái niệm hay thuật ngữ (khoảng 300 định nghĩa), chúng em đề xuất một số mẫu cho các câu định nghĩa của 52 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh một khái niệm. Các bƣớc để xác định một câu là định nghĩa của một khái niệm nhƣ sau: Định nghĩa cho một khái niệm sẽ là 1 câu đƣợc rút ra từ văn bản dùng các dấu câu để tách câu (tham khảo từ [35]) nhƣ: dấu chấm . dấu chấm hỏi ? dấu cảm ! dấu lửng … dấu chấm phẩy ; dấu ngoặc kép “ ” Loại bỏ một số từ đứng đầu câu nhƣng không có nghĩa nhƣ: Trong đó, Vì vậy, Theo đó, Do đó. Một câu thỏa một trong các mẫu sau sẽ đƣợc chọn là một khái niệm: Có từ khóa (khái niệm) đứng đầu câu và theo sau là một trong các từ: là, có nghĩa là, đƣợc định nghĩa là, đƣợc hiểu nhƣ là, đƣợc hiểu là, có thể là, đƣợc biết nhƣ là, đƣợc biết là, đƣợc dùng trong, đƣợc dùng để, gồm, dấu “:”, dấu “-”. Hoặc có từ khóa đứng đầu câu theo sau là một mệnh đề nằm trong dấu ngoặc đơn và tiếp theo là các từ nhƣ trên. Từ khóa nằm cuối câu và trƣớc nó là một trong các từ: gọi là, đƣợc gọi là. Một cá thể đƣợc tạo ra với tên có dạng tenlop_sothutu với các thuộc tính Định nghĩa chính là câu định nghĩa rút đƣợc và Nguồn là từ nguồn của tài liệu chứa nó. d. Lƣu trữ cá thể 53 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Trƣớc khi lƣu trữ vào ITVO, thì các cá thể sau khi rút trích sẽ đƣợc hiển thị lên cho ngƣời dùng xem và chỉnh sửa, có thể loại bỏ bớt những kết quả rút trích sai. Sau khi ngƣời dùng đã đồng ý với kết quả thì sẽ lƣu trữ vào ontology (ITVO) dùng API của Protégé. 3.3. Tổng kết chƣơng Trong chƣơng này chúng em đã trình bày phƣơng pháp để xây dựng và làm giàu ontology tiếng Việt chuyên ngành công nghệ thông tin (ITVO). Cụ thể phần này đã: giới thiệu công cụ để xây dựng ontology phổ biến hiện nay đó là Protégé, trình bày các bƣớc để xây dựng nên ITVO dùng Protégé và thống kê kết quả công việc nhập dữ liệu cho ontology. Ngoài ra, chúng em còn trình bày các phƣơng pháp sử dụng ở từng giai đoạn để xây dựng công cụ làm giàu ontology, giới thiệu các công cụ, thuật toán và cách sử dụng chúng. 54 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh CHƢƠNG 4: HIỆN THỰC HỆ THỐNG VÀ ĐÁNH GIÁ 4.1. Mở đầu Trong chƣơng này chúng em sẽ hiện thực hệ thống làm giàu ontology sử dụng phƣơng pháp và công cụ đã đề cập ở chƣơng trƣớc. Phần này sẽ trình bày chi tiết về kiến trúc của chƣơng trình làm giàu ontology, cách cài đặt cũng nhƣ các bƣớc chạy thử chƣơng trình. Ngoài ra, chúng em sẽ nêu phần tự đánh giá về công cụ sau khi đƣợc hiện thực. Công cụ dự kiến sẽ thực hiện việc tìm kiếm, phân loại tài liệu có liên quan và rút trích các cá thể của lớp Khái niệm thuộc ngành công nghệ thông tin một cách tự động. Sau đó sẽ cho phép ngƣời dùng chọn lọc lại rồi cập nhật vào ontology. 4.2. Kiến trúc chƣơng trình làm giàu ontology 55 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình 9: Kiến trúc chƣơng trình làm giàu ontology ITVO Công cụ đƣợc xây dựng trên nền web để có thể dễ dàng biểu diễn dữ liệu và chia sẻ hệ thống cho nhiều ngƣời có quan tâm đến ITVO và việc cập nhật nó. Các package trong chƣơng trình gồm: com.tkorg.search: dùng trong giai đoạn tìm kiếm link của các tài liệu liên quan. ClassAction.java: dùng để load Ontology lên trang web. GoogleSearchEngine.java: dùng để tìm kiếm trang web bởi google. YahooSearchEngine.java: dùng để tìm kiếm trang web bởi yahoo. 56 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh SearchEngineAction.java: dùng để phân loại link nào sẽ đƣợc tìm kiếm theo google hay yahoo. Com.tkorg.token: dùng trong giai đoạn down, tách từ và loại bỏ stopwords của nội dung các link của các tài liệu liên quan. SeperateWords.java: down nội dung theo các link của các tài liệu liên quan. Sau đó tách từ chúng. Nó cũng đƣợc dùng trong giai đoạn tách từ của quá trình Train. Stopwords.java: load nội dung đã tách từ xong, và loại bỏ stopwords. com.tkorg.features: tính TFIDF, tìm đặc trƣng. DF.java: lớp thể hiện DF. IDF.java: lớp thể hiện IDF. MyFile.java: lớp thể hiện của một file (dùng trong tính TFIDF). TF.java: lớp thể hiện TF. TFIDF.java: lớp thể hiện TFIDF. Features_Main.java: toàn bộ quá trình tính TFIDF hay tìm đặc trƣng. com.tkorg.svm.train: thể hiện toàn bộ quá trình Train. SVMTrain.java: sử dụng svm để train. Train_Main.java: thực hiện quá trình Train từ tách từ, loại bỏ stopwords, tìm kiếm đặc trƣng và sử dụng svm để train. com.tkorg.svm.classify: thể hiện toàn bộ quá trình từ lúc lấy link đến lúc phân loại bằng svm. SVMTest.java: sử dụng svm để phân loại. Classify_Main.java: thể hiện toàn bộ quá trình từ lấy link, download, tách từ, loại bỏ stopwords, tính TFIDF và sử dụng svm để phân loại. com.tkorg.extraction: thể hiện giai đoạn rút trích. MyFile.java: lớp thể hiện của một file (dùng trong giai đoạn rút trích). MyKeyword.java: lớp thể hiện của một từ khóa. 57 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Extraction_Main.java: thể hiện giai đoạn rút trích. com.tkorg.util: chứa file Constant.java thể hiện các biến hằng. com.tkorg.data: chứa dữ liệu. com.tkorg.actions: xử lý ở tầng Action. WelcomeAction.java: xử lý trong trang web Welcome. SearchOntologyAction.java: xử lý trong trang web SearchOntology. DisplayLinksAction.java: xử lý trong trang web DisplayLinks. com.tkorg.bussinesslogic: xử lý ở tầng Bussiness. SearchOntologyBL.java: xử lý quá trình tìm kiếm link theo từ khóa. DisplayLinksBL.java: xử lý quá trình download, tách từ, loại bỏ stopwords, tính TFIDF, phân loại và rút trích nội dung. Nhóm package vn.hus... : đây là api của tokenizer dùng để tách từ. Chƣơng trình thực hiện những chức năng chính: tìm kiếm tài liệu, phân loại tài liệu, rút trích cá thể từ tài liệu, và cập nhật cá thể vào ontology. Cụ thể nhƣ sau: Tìm kiếm tài liệu: Package ontology chứa thƣ viện: icu4j_3_4, iri, jena, log4j-1.2.14, orphanNodesAlg, owlsyntax, protege, protege-owl, xercesImpl. Package search chứa thƣ viện: htmlparser, json, yahoo_search-2.0.1. Dùng thƣ viện pdfbox-app-1.4.0. Mục đích: cho phép ngƣời dùng chọn các khái niệm trong ontology để tìm kiếm tài liệu liên quan trên internet. Các tài liệu tìm thấy đƣợc tải xuống máy tính dƣới dạng file html và pdf. Phân loại tài liệu: Dùng thƣ viện libsvm. Các package có dạng đuôi: vn.hus. 58 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Mục đích là để chọn ra những tài liệu liên quan đến công nghệ thông tin và loại bỏ bớt những tài liệu không liên quan.Bƣớc này gồm 2 quá trình huấn luyện cho thuật toán SVM (tạo ra train_model) và quá trình phân loại tài liệu dùng SVM. Trong hai quá trình, quá trình thứ nhất chỉ cần làm một lần sẽ tạo ra model có thể sử dụng nhiều lần cho quá trình thứ hai. Bây giờ ta sẽ xét từng quá trình: Quá trình huấn luyện cho thuật toán SVM: Để huấn luyện cho thuật toán SVM trƣớc tiên ta cần có tập dữ liệu huấn luyện: Ở đây, chúng em tập hợp đƣợc tập huấn luyện từ internet gồm 200 file text đƣợc chia làm hai phần: 100 file là phần thuộc công nghệ thông tin và 100 file phần không thuộc công nghệ thông tin. Tiếp theo, chúng ta cần tìm ra đƣợc đặc trƣng của các tài liệu thuộc lĩnh vực công nghệ thông tin dùng phƣơng pháp tính TFIDF. Tuy nhiên, để tăng độ chính xác cho các đặc trƣng tìm đƣợc thì trƣớc tiên các tài liệu trong tập huấn luyện cần đƣợc xử lý qua giai đoạn tách từ và loại bỏ hư từ: Quá trình tách từ sử dụng tokenizer để tách từ tiếng Việt. Sau đó, ta sẽ loại bỏ các hƣ từ trong các nội dung đó (đã đƣợc tách từ). Cuối cùng, các nội dung này (đã đƣợc tách từ và loại bỏ hƣ từ) sẽ đƣợc lƣu xuống tƣơng ứng với tên các file. Giai đoạn tìm đặc trưng tài liệu công nghệ thông tin: giai đoạn này ta có thể chia làm hai phân đoạn nhỏ. Phân đoạn 1: ta sẽ tính TFIDF trong phần thuộc công nghệ thông tin của tập huấn luyện rồi chọn ra những từ có giá trị TFIDF lớn nhất làm đặc trƣng (ở đây ta chọn 20 từ). Phân đoạn 2: ta tính tần số xuất hiện của từng đặc trƣng đó theo từng file thuộc công nghệ thông tin. Tiếp theo, ta lƣu thành từng dòng với ký hiệu mỗi file là “1” và lƣu lại thành chuỗi String gọi là chuỗi cntt. Tiếp đó, ta sẽ tính tần số xuất hiện của từng đặc trƣng đó theo từng file không thuộc công nghệ thông tin của 59 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh tập huấn luyện. Sau đó, ta cũng lƣu thành dòng với ký hiệu mỗi file là “-1” và lƣu lại thành chuỗi String gọi là chuỗi không cnnt. Sau cùng, ta ghép chuỗi cnnt và chuỗi không cntt lại rồi lƣu xuống file gọi là file tfidf_features.txt. Đây là file chứa các đặc trƣng đƣợc định dạng theo chuẩn của LibSVM. Giai đoạn SVM_Train: đầu vào của quá trình này là file tfidf_features.txt và đầu ra là file train_model.txt. File này sẽ đƣợc sử dụng để phân loại tài liệu sau này. Quá trình phân loại tài liệu dùng SVM: Các tài liệu ở dạng file HTML và PDF sau khi lƣu xuống máy tính sẽ đƣợc chuyển sang dạng file. Giai đoạn này cần sử dụng gói htmlparser. Tất cả các file text có đƣợc sẽ đƣợc chứa trong folder download_files. Giai đoạn tách từ và loại bỏ hư từ: ta sẽ sử dụng API Tokenizer trong giai đoạn này. Đầu tiên, ta load nội dung các file trong folder download_files lên máy. Tiếp theo, ta sử dụng tokenizer để tách từ theo ngôn ngữ việt. Sau đó, ta sẽ loại bỏ các hƣ từ trong các nội dung đó (đã đƣợc tách từ). Cuối cùng, các nội dung này (đã đƣợc tách từ và loại bỏ hƣ từ) sẽ đƣợc lƣu xuống tƣơng ứng với tên các file. Giai đoạn tính TFIDF theo đặc trưng: ở giai đoạn này, ta sẽ sử dụng đặc trƣng có đƣợc để tính TFIDF của từng file (là những file đã tách từ và loại bỏ hƣ từ). Tất cả các kết quả của chúng sẽ đƣợc lƣu xuống một file text tên tfidf_download_files.txt. Giai đoạn phân loại bằng SVM: trong giai đoạn này, ta sẽ dùng SVM để phân loại văn bản, kết quả của chúng là ta có thể lấy ra đƣợc nhƣng file có liên quan đến các từ khóa. Đầu vào của giai đoạn phân loại bằng SVM là file tfidf_download_files.txt và SVM_Train. Còn đầu ra của chúng là một file text result.txt cho chúng ta biết file nào đƣợc chọn, để từ đó chúng ta sẽ lƣu lại các file đƣợc chọn này (tài liệu công nghệ thông tin). Rút trích cá thể: đầu tiên ta sẽ sử dụng nhiều bài báo để có thể rút ra đƣợc các luật, ví dụ nhƣ “thì, mà, là”. Sau đó, ta sẽ dùng các luật này vào trong tài liệu công nghệ 60 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh thông tin để rút ra đƣợc những định nghĩa và những thuộc tính liên quan đến các từ khóa. Trong quá trình tìm hiểu, ta đã rút ra hai dạng câu định nghĩa. Dạng thứ nhất là: từ trạng thái (nếu có) + „, „(nếu có) + từ khóa + followwords (thì, mà, là, ...) + định nghĩa. Dạng thứ hai là: định nghĩa + forwardwords (thì, mà, là, ...) + từ khóa. Ta sử dụng hai dạng câu này để tạo ra hai luật rút trích. Cập nhật ontology: sau khi rút ra đƣợc những định nghĩa và những thuộc tính trên, ta mới cập nhật vào ontology theo từ khóa. Sau đó, ta sẽ hiện kết quả ra màn hình. 4.3. Các bƣớc chạy chƣơng trình Giao diện chƣơng trình dùng ngôn ngữ là tiếng việt. Khi chạy chƣơng trình sẽ truy xuất file index.jsp trƣớc tiên và hiển thị màn hình giao diện giới thiệu (hình 1). Giao diện này sẽ giới thiệu mục đích làm đề tài và nêu tên các thành viên trong nhóm. Nó có đƣờng link để thực thi quá trình làm giàu ontology. Hình 10: Màn hình giới thiệu 61 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Khi ta nhấp vào link Nhấn vào đây để chạy chƣơng trình, nó sẽ sang giao diện thu thập dữ liệu (hình 2). Giao diện này đƣợc chia làm 2 phần chính: phần hiển thị ontology và phần chọn lựa. a. Trƣớc tiên, ta cần mở ontology ra và nhấp vào những khái niệm mà ta muốn làm giàu. Tên những khái niệm này sẽ hiện ra bên phần Những khái niệm được chọn. Ta có thể làm giàu nhiều lớp một lúc, nhƣng tốt đa chỉ đƣợc bốn lớp. Ở đây, ta chọn khái niệm Phần mềm. b. Bên phần Chọn công cụ tìm kiếm, ta cần check vào checkbox Google hay Yahoo và chọn số lƣợng link cần tìm ở bên cạnh. c. Sau khi đã chọn lựa xong, ta nhấn nút Tìm kiếm. Hình 11: Màn hình thu thập tài liệu Chƣơng trình bây giờ sẽ ở giao diện màn hình kết quả thu thập (hình 3). Giao diện này chia làm hai phần. Giao diện bên phải sẽ hiện ra tất các link (và tiêu đề tƣơng 62 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh ứng) mà công cụ tìm kiếm tra đƣợc. Phần bên trái sẽ thể hiện các giai đoạn chạy. Có tất cả bốn giai đoạn: Danh sách các link, Tải về máy và phân lớp, Rút trích tài liệu công nghệ thông tin, Cập nhật vào Ontology. Các giai đoạn này tuần tự từ trên xuống dƣới và không thể quay ngƣợc lại. Lúc này ta đang ở giai đoạn Thu thập tài liệu, giai đoạn tiếp theo là Tải về máy và phân lớp. Muốn đến giai đoạn tiếp theo, ta chỉ việc nhấn vào link Tải về máy và phân lớp. Hình 12: Màn hình kết quả thu thập Sau khi nhấp vào link Tải về máy và phân lớp chƣơng trình sẽ thực hiện các công đoạn: tải dữ liệu về máy theo các đƣờng link đã có, tách từ, loại bỏ hƣ từ, phân lớp theo SVM. Khi giai đoạn kết thúc thì chƣơng trình sẽ hiện ra màn hình kết quả phân lớp (hình 4) chứa danh sách các link (và tiêu đề tƣơng ứng) đƣợc chọn ở phần bên phải. Còn phần bên trái sẽ hiện thị cho biết ta đang ở giai đoạn Tải về máy và phân lớp và giai đoạn tiếp theo là Rút trích tài liệu công nghệ thông tin. 63 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình 13: Màn hình kết quả phân lớp Sau khi nhấp vào link Rút trích tài liệu công nghệ thông tin sẽ thực hiện công đoạn rút trích ra định nghĩa từ những tài liệu đƣợc chọn. Khi xử lý xong thì chƣơng trình sẽ hiện ra danh sách các định nghĩa đƣợc rút ra và nguồn của chúng ở phần bên phải. Ngƣời dùng có thể check vào các ô checkox tƣơng ứng để loại bỏ những định nghĩa không chính xác cho khái niệm cần làm giàu, các ô không chọn sẽ đƣợc dùng để cập nhật ontology. Còn phần bên trái sẽ hiện thị cho biết ta đang ở giai đoạn Rút trích tài liệu công nghệ thông tin và giai đoạn tiếp theo là Cập nhật Ontology. 64 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình 14: Màn hình kết quả rút trích Sau khi nhấp vào link Cập nhật Ontology chƣơng trình sẽ thực hiện công đoạn: cập nhật các định nghĩa và nguồn tƣơng ứng với nó vào ontology. Sau đó, chƣơng trình sẽ hiện lên thông báo cập nhật ontology có thành công hay không (hình 6). Đến đây, ta đã kết thúc toàn bộ quá trình làm giàu ontology. Nếu ta muốn tiếp tục làm giàu một khái niệm nào đó thì ta nhấn link Trở lại trang đầu. 65 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình 15: Màn hình cập nhật thành công 4.4. Thực nghiệm và đánh giá Thực nghiệm chƣơng trình: STT Tên từ khóa Số từ khóa Số link chọn Thời gian chạy chƣơng trình Số định nghĩa thu đƣợc Số định nghĩa đúng (không tính trùng nhau) 1 Phần mềm 1 10 1 phút 35 giây 2 1 2 Tin học 1 10 1 phút 17 giây 2 1 3 Tin học 1 25 2 phút 50 giây 6 1 4 Phần mềm 1 30 1 phút 55 giây 12 1 4 Phần mềm – Tin học 2 10 1 phút 48 giây 4 2 66 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh 5 Phần mềm – Tin học 2 20 5 phút 14 giây 13 2 6 Công nghệ thông tin 1 10 30 giây 4 2 7 Hệ thống thông tin 1 10 55 giây 0 0 8 Hợp đồng 1 15 1phút 52 giây 2 1 9 Bộ nhớ ảo – Hệ điều hành 2 60 10 phủ 16 giây 0 0 10 Phần mềm – Tin học – Hệ điều hành 3 30 3 phút 39 giây 11 4 11 Phần mềm – Tin học – Hệ điều hành – Ngôn ngữ lập trình 4 20 6 phút 38 giây 11 4 12 Lập trình 1 50 12 phút 5 giây 1 0 Đánh giá chƣơng trình: Chƣơng trình có thể làm giàu những khái niệm trong Ontology chuyên ngành công nghệ thông tin tiếng việt. Chƣa thực hiện phần làm giàu cho các cá thể khác trừ các khái niệm trong ngành công nghệ thông tin, chƣa làm giàu quan hệ trong Ontology. Kết quả tìm kiếm từ các công cụ tìm kiếm, phân lớp dùng LibSVM khá chính xác. Kết quả rút trích từ tài liệu đã phân loại theo các mẫu định sẵn cho kết quả chấp nhận đƣợc với sai số 25%. 67 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh CHƢƠNG 5: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 5.1. Kết luận Sau khi thực hiện đề tài này, chúng em đã thu đƣợc những kết quả sau: Về kiến thức: Chúng em đã nắm đƣợc khái niệm, công cụ, phƣơng pháp xây dựng ontology, các ngôn ngữ biểu diễn ontology. Chúng em đã có kinh nghiệm sử dụng Google và Yahoo API để tìm kiếm tài liệu, Protégé API để lập trình thao tác và truy xuất ontology. Ngoài ra chúng em còn có thêm kiến thức về phƣơng pháp phân lớp SVM. Về công cụ: Chúng em có kinh nghiệm sử dụng công cụ Protégé để xây dựng ontology bằng tay, sử dụng công cụ vnTokenizer để tách từ tiếng Việt và công cụ LibSVM để phân lớp tài liệu. Thực hiện đề tài này tạo cơ hội cho chúng em thực hành lập trình trên Netbean sử dụng Strut Framework. Về phƣơng pháp: Chúng em biết đƣợc các phƣơng pháp để xây dựng và làm giàu ontology hiện nay và cài đặt theo một số phƣơng pháp. Đề tài là bƣớc khởi đầu cho một ontology hoàn thiện tiếng Việt về lĩnh vực công nghệ thông tin. Lƣợng dữ liệu hiện nay có thể dùng để xác định những thực thể có tên, tuy nhiên cần nhập thêm nhiều dữ liệu để có thể sử dụng cho các yêu cầu khác đã đặt ra. Công cụ làm giàu ontology đã có thể sử dụng để làm giàu các cá thể khái niệm trong lĩnh vực công nghệ thông tin, tuy nhiên vẫn cần đƣợc cải thiện để có thể làm giàu thêm lớp và quan hệ. 5.2. Hƣớng phát triển Chƣơng trình còn một số điểm cần khắc phục và phát triển nhƣ sau: Xử lý trùng lắp khi làm giàu ontology Làm giàu lớp và quan hệ trong ontology 68 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Cải thiện quá trình rút trích các thuộc tính của cá thể Bổ sung dữ liệu cho ontology. Mở rộng ontology, thêm các lớp thuộc Chƣơng trình đào tạo để phục phụ cho ứng dụng tƣ vấn chƣơng trình đào tạo của các trƣờng. 69 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Tài liệu tham khảo  Tiếng Việt: [1] Lƣơng Quý Tịnh Hà, Xây dựng công cụ tìm kiếm tài liệu học tập bằng các truy vấn ngôn ngữ tự nhiên trên kho học liệu mở tiếng Việt, Luận văn thạc sĩ, khoa Khoa học máy tính, trường Đại học Công nghệ Thông tin, Tp. HCM, 2009. [3] Lê Thành Nhân, Võ Trung Hùng, Cao Xuân Tuấn, Hoàng Thị Mỹ Lệ, MATHIS – Hệ thống hỗ trợ tạo chú thích và tìm kiếm tài liệu khoa học, Tạp chí khoa học và công nghệ, Đại học Đà Nẵng - Số 4(39).2010 [4] Trần Đình Khang, Vũ Tuyết Trinh, Đỗ Đức Thành, Đỗ Thị Ngọc Quỳnh, Một phương pháp tìm kiếm dựa trên Ontology phục vụ quản lý thông tin khoa học công nghệ, Bộ môn Hệ thống Thông tin, Trƣờng Đại Học Bách Khoa Hà Nội, 2007. [5] Phạm Thị Mỹ Phƣợng, Từ Thị Ngọc Thanh, Tìm kiếm ngữ nghĩa ứng dụng trên lĩnh vực eDoc, Đại học Khoa học tự nhiên, 2005. [6] Tài liệu hướng dẫn phiên bản mã nguồn mở OVL – Open 1.0. [22] Nhóm nghiên cứu của thầy Đỗ Phúc, Phát triển một Hệ thống S.E Hỗ trợ Tìm kiếm Thông tin, thuộc lãnh vực CNTT trên Internet qua từ khóa bằng tiếng Việt, Đại học Công nghệ thông tin, khoa Công nghệ thông tin, Đại học Khoa học tự nhiên Tp. HCM, 2010. [27] Nguyễn Linh Giang, Nguyễn Mạnh Hiển, Phân loại văn bản tiếng Việt với bộ phân loại vectơ hỗ trợ SVM, khoa Công nghệ thông tin, Đại học Bách Khoa Hà Nội, khoa Công nghệ thông tin, Đại học Thủy lợi, 2009.  Tiếng Anh: [2] Natalya F. Noy and Deborah L. McGuinness, Ontology Development 101: A Guide to Creating Your First Ontology, Stanford University, Stanford, CA, 9430, 2001. 70 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh [20] Thomas R.Gruber, Toward Principles for the Design of Ontologies Used for Knowledge Sharing, Stanford Knowledge Systems Laboratory, 701 Welch Road, Building C Palo Alto, CA 94304, 1993. [42] Paul Buitelaar, Philipp Cimiano and Bernardo Magnini, Ontology Learning from Text: An Overview, DFKI, Language Technology lab, AIFB, University of Karlsruhe, ITC-irst, Centro per la Ricerca Scientifica e Tecnologica, 2005. [37] Matthew Horridge, A Practical Guide To Building OWL Ontologies Using Protégé 4 and CO-ODE Tools Edition 1.2, The University Of Manchester, 2009. [9] Bijan Parsia and Evren Sirin, Pellet: An OWL DL Reasoner, MINDSWAP Research Group, University of Maryland, College Park, MD, 2004. [43] Hiep Phuc Luong, Susan Gauch, Qiang Wang, Ontology-based Focused Crawling, CSCE Department, University of Arkansas, 2009. [34] Boanerges Aleman-Meza, Farshad Hakimpour, I. Budak Arpinar. SwetoDblp Ontology of Computer Science Publications, LSDIS Lab, Computer Science Department, University of Georgia, Athens, GA, 2007. [36] Grigoris Antoniou and Frank van Harmelen, A Semantic web Primer, The MIT Press Cambridge, Massachusett, London, England, p.31-33, 2004. [45] Eneko Agirre, Olatz Ansa, Eduard Hovy and David Martinez, Enriching very large ontologies using WWW, IxA NLP group, University of the Basque Country, 649 pk, 20.080 Donostia, Spain, USC Informat on Sciences Institute 4676 Admiralty Way, Marina del Rey, CA 90292-6695, USA, 2000. [49] Hiep Phuc Luong, Susan Gauch, Mirco Speretta, Enriching concept descriptions in an Amphibian Ontology with vocabulary extracted from Wordnet , Deparment of Computer Science & Computer Engineering, University of Arkansas, 2009. 71 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh [51] Hiep Phuc Luong, Susan Gauch, Qiang Wang, Ontology learning through focused crawling and information extraction, CSCE Department, University of Arkansas, 2009. [25] B. E. Boser, I. M. Guyon, and V. N. Vapnik, A training algorithm for optimal margin classifiers, In D. Haussler, editor, 5th Annual ACM Workshop on COLT, pages 144-152. Pittsburgh, PA, 1992. [23] L. H. Phuong, N. T.M. Huyen, R. Azim, H. T. Vinh, A hybrid approach to word segmentation of Vietnamese texts, Proceedings of the 2nd International Conference on Language and Automata Theory and Applications, LATA 2008, Springer LNCS 5196, Tarragona, Spain, 2008. [46] Fellbaum, C, Wordnet: An Electronic Lexical Database . Cambridge: MIT Press, 1998. [7] Nguyen Phi Minh Tri, Nguyen Tuan Dang, Building a Universal Ontology for Vietnamese Language, Faculty of Computer Science, University of Information Technology, 2010. [48] Miller, G., C. Leacock, R. Tengi, and T. Bunker, A Semantic Concordance. Proc. Of ARPA Workshop on Human Language Technology, 1993. Website tham khảo: [10] [11] [12] [13] [2001 -- 2005 curriculum recommendations] [14] [15] 72 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh [16] [17] [18] [19] [21] [24] ∼lehong/tools/vnTokenizer.php [26] [28] [29] [30] [33] [46] [35] tieng-viet.html [40] [41] [38] [39] [47] www.altavista.com [50] 73 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Phụ lục A: Hƣớng dẫn sử dụng Protégé Trong phần hƣớng dẫn sử dụng này sử dụng chƣơng trình Protégé 3.4.4 với giao diện Protégé-OWL. Chúng ta sẽ cùng tìm hiểu cách để: Tạo và mở một ontology Lƣu một ontology Tạo lớp và ràng buộc Tạo các thuộc tính và quan hệ Tạo cá thể 1. Tạo và mở một ontology: a. Hiểu khái niệm Project trong Protégé: Khi vừa khởi động Protégé lên chúng ta sẽ thấy cửa sổ "Welcome to Protégé" hiện ra đâu tiên nhƣ hình sau: Hình: Giao diện “Welcome to Protégé” Khi dùng Protégé để tạo và chỉnh sửa ontology chúng ta sẽ tạo ra ít nhất là 2 file: 74 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh File project (có đuôi là .pprj): Lƣu trữ thông tin liên quan đến việc tùy biến giao diện hoặc tùy chọn của trình soạn thảo mà bạn cài đặt. Nếu không có file này chúng ta vẫn có thể tạo một file project khác cho một ontology từ file nguồn. File nguồn (có đuôi là .owl, .rdf hoặc .rdfs): đây là file chứa dữ liệu thật sự của ontology, nó chứa các lớp, cá thể và thuộc tính đƣợc định nghĩa. b. Mở một ontology có sẵn: có thể mở từ file project hoặc file nguồn. Nếu có sẵn trên màn hình welcome thì nhấp đúp lên file ontology, hoặc chọn ontology muốn mở rồi bấm nút Open Recent. Nếu không có sẵn trên màn hình welcome thì chọn nút Open Other và chọn ontology muốn mở. c. Tạo một ontology mới: Từ giao diện welcome, chọn New Project hiển thị hộp thoại tạo project mới nhƣ hình sau: 75 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình: Hộp thoại tạo project mới Chọn OWL/RDF Files và bấm Next > Màn hình xuất hiện cho bạn xác nhận một URI cho ontology của mình. Thông thƣờng, URI sẽ biểu diễn nơi mà chúng ta công bố ontology, tuy nhiên cũng không bắt buộc phải tuân theo. Việc thiết lập một URI duy nhất cho ontology sẽ giúp phòng những vấn đề sau này nếu ta nhập thêm những ontology khác. 76 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình : Hộp thoại đặt URI cho ontology mới Bấm Next >. Một hộp thoại xuất hiện cho phép chọn ngôn ngữ muốn dùng 77 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình: Hộp thoại chọn ngôn ngữ xây dựng ontology Bấm Finish để tạo ontology mới. Một hộp thoại xuất hiện để chúng ta có thể chọn cách hiển thị. Logic View là giao diện phù hợp hơn cho ngƣời dùng đã quen thuộc vì nó không đƣợc trực quan lắm, còn với ngƣời mới bắt đầu thì nên chọn Properties View vì nó có giao diện đơn giản hơn. 78 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình: hộp thoại chọn cách hiển thị Bấn Finish và một project mới đƣợc tạo sẵn sang để bạn có thể nhập và chỉnh sửa một ontology. Nếu lúc mở Protégé lên mà hộp thoại welcome không xuất hiện thì ta chọn File | New Project 2. Lƣu một ontology: bấm bút Save trên trình soạn thảo hoặc vào File chọn Save Project. Một hộp thoại xuất hiện để ta nhập tên ontology và tên project vào nếu nhƣ ta một project mới. 79 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình : hộp thoại lƣu ontology. Thông thƣờng tên project giống với tên của file OWL. 3. Tạo lớp: Tại giao diện của Protégé ta chọn tab OWL Classes, mặc định mỗi ontology mới tạo có lớp cha là Thing. Để tạo một lớp mới ta chọn nút Create subclass sẽ tạo ra lớp con tên Class_1 nhƣ hình, ta có thể đổi tên ở textbox bên phải 80 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình: tạo lớp mới trong ontology Để tạo lớp con của lớp Class_1 ta chọn nó rồi làm tƣơng tự, hoặc nhấp chuột phải lên nó chọn Create subclass. Để tạo lớp ngang hàng với một lớp ta chọn nó rồi chọn nút Create Sibling Class , hoặc nhấp chuột phải chọn Create Sibling Class. Để tạo ra một cấu trúc cây của gồn nhiều lớp có lớp cha là Class_1 ta nhấp phải vào nó chọn Create subclasses, sau đó một hộp thoại sẽ xuất hiện để ta nhập vào cấu trúc lớp với mỗi lớp là 1 dòng và lớp con thụt vào so với lớp cha. Ví dụ ta nhập: A C D B 81 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Ta sẽ tạo ra cấu trúc cây trong Class_1 nhƣ sau: Hình: Tạo nhiều lớp trong ontology Xóa một lớp ta chọn Delete Class . Nếu xóa lớp cha thì tất cả lớp con của nó đều bị xóa. Ta có thể tạo các ràng buộc cho lớp dùng các nút có sẵn nhƣ Create new expression , Create restriction và Add Named Class để thêm lớp cha cho lớp đang chọn. Hoặc xóa đi các ràng buộc đã thêm dùng Delete selected row . 4. Tạo các thuộc tính và quan hệ: Tại giao diện Protégé ta chọn tab Properties. Trong đó ta chọn tab Object để thêm và chỉnh sửa các quan hệ trong ontology, chọn tab Datatype để thêm và chỉnh sửa các thuộc tính trong ontology. 82 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình : Tạo quan hệ mới Để tạo quan hệ mới ta cũng chọn nút Create object property , và đổi tên quan hệ ở textbox bên tay phải nhƣ tạo lớp. Đối với quan hệ ta chú ý đến Domain và Range có thể đƣợc chỉnh sửa và thêm ở bên phải. Và một số tính chất của quan hệ nhƣ: Functional, InverseFunctional, Symmetric, Transitive, ngoài ra ta có thể thêm một vào quan hệ nghịch đảo của một quan hệ bằng cách thêm tại textbox Inverse. Để tạo thuộc tính mới ta chọn tab Datatype và cũng chọn nút Create Datatype property theo hình ở dƣới 83 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình : Tạo thuộc tính mới. Đối với thuộc tính ta cũng có thể thay đổi Domain và Range cho nó bên phải màn hình. Domain sẽ xác định nó thuộc lớp nào, và Range sẽ xác định loại dữ liệu của nó. Ngoài ra, ta cũng có thể thêm vào một vài ràng buộc đơn giản cho nó nhƣ giới hạn một số giá trị đƣợc cho phép cho thuộc tính này. 5. Tạo cá thể Để tạo cá thể ta chọn tab Individuals, chọn lớp mình muốn tạo cá thể rồi chọn nút Create instance ta sẽ tạo đƣợc cá thể nhƣ hình dƣới. Các chức năng khác tƣơng tự nhƣ trên. 84 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Hình: Tạo cá thể mới 85 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh Phụ lục B: Danh sách các hƣ từ bao giờ chúng mình nhất định thật ra á chúng nó nhất loạt thật vậy à chung qui nhất luật thẩy ạ chung quy nhất mực thế á à chung quy lại nhất nhất thế à a ha chúng ta nhất quyết thế đấy a lô chúng tao nhất sinh thế là à ơi chúng tôi nhất tâm thế mà ạ ơi có nhất tề thế nào ai cô nhất thiết thế nên ái cơ nhau thế nhƣng ai ai cô ấy nhé thế ra ái chà có chăng là nhỉ thế thì ái dà cơ chừng nhiên hậu thếch ai nấy cỡ chừng nhiệt liệt theo alô có dễ nhiều thì amen cơ hồ nhỡ ra thì ra áng cổ lai nhón nhén thi thoảng anh cơ mà nhƣ thình lình anh ta cô mình nhƣ chơi thỉnh thoảng 86 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh ào có vẻ nhƣ không thoắt ắt cóc khô nhƣ quả thoạt ắt hẳn coi bộ nhƣ thể thoạt nhiên ắt là coi mòi nhƣ tuồng thốc âu là con nhƣ vậy thộc ầu ơ còn nhƣng thốc tháo ấy cơn những thôi ba công nhiên những thôi thì bài cứ những ai thỏm bản cu cậu nhƣng mà thốt bạn cụ thể nhung nhăng thọt bằng cứ việc những nhƣ thốt nhiên bằng ấy của nhƣợc bằng thửa bằng không của bạn nó thuần bằng nấy của mày nọ thục mạng bao giờ của tôi nớ thực ra bao gồm cực kì nóc thực vậy bao lâu cực kỳ nổi thúng thắng bao nả cực lực nữa thuộc bao nhiêu cùng nức nở thƣơng ôi bập bà bập bõm cũng ồ tiện thể 87 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh bập bõm cùng cực ơ tiếp đến bất cùng nhau ớ tiếp đó bất chấp cũng nhƣ ờ tiếp theo bất chợt cũng vậy ở tiếp tục bất cứ cũng vậy thôi ô hay tít mù bắt đầu từ cùng với ơ hay tớ bất đồ cuộc ô hô tỏ ra bất giác cuối ô kê tò te bất kể cuối cùng ô kìa tỏ vẻ bất kì cuốn ơ kìa toà bất kỳ dạ oái tốc tả bất luận đã oai oái toé khói bất nhƣợc đại để ôi toẹt bất quá đại loại ối tôi bất thình lình đại nhân ơi tối ƣ bất tử đại phàm ôi chao tông tốc bấy dần dà ối dào tọt bảy dần dần ối giời tột bây bẩy đang ối giời ơi trái bay biến đáng lẽ ôi thôi tràn cung mây bấy chầy đáng lí ối trời trên 88 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh bây chừ đáng lý ôkê trển bấy chừ đằng sau ổng trệt bây giờ đằng trƣớc phải trếu tráo bấy giờ đành đạch phải chăng trệu trạo bấy lâu đánh đùng phải chi trời đất ơi bấy lâu nay dào phăn phắt trời ơi bấy nay đáo để phắt trong bây nhiêu dẫu phè trỏng bấy nhiêu đâu phỉ phui trong khi bèn dầu sao pho trong lúc bên dẫu sao phóc trừ khi bển đây phốc trừ phi bên dƣới để phỏng trƣớc bên phải dễ sợ phỏng nhƣ trƣớc đây bên trái dễ thƣờng phót trƣớc đó bên trên đều phƣơng chi trƣớc khi béng do phụt trƣớc kia bệt đó phứt trƣớc lúc bị dở chừng quá trƣớc nay biết bao do đó quả trƣớc tiên biết bao nhiêu do vậy quá chừng từ 89 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh biết chừng nào do vì quá độ tự biết đâu đồng thời quá đỗi tù tì biết đâu chừng dù quả đúng tự vì biết đâu đấy dữ quả là tuần tự biết mấy đủ quá lắm tức bớ dù cho qua quít tức khắc bộ dù là qua quýt tức là bỏ mẹ dù rằng quá sá tức thì bởi dù thế quả tang tức tốc bởi nhƣng đƣợc quả thật từng bội phần dƣới quá thể tuốt luốt bởi thế duy quả tình tuốt tuồn tuột bởi vậy gì quá trời tuốt tuột bởi vì giữa quá ƣ tựu trung bốn gồm quả vậy tuy bông hai quá xá tuy là bỗng hầu hết quý hồ tuy nhiên bỗng chốc Hay quyển tuy rằng bỗng đâu hãy quyết tuy thế bỗng dƣng hiện nay quyết nhiên tuy vậy bỗng không họ ra tuyệt nhiên 90 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh bỗng nhiên hoặc ra phết ƣ bức hoàn toàn ra trò ừ cả hỡi răng ử cả thảy hồi nãy rằng ứ hự cả thể hơn rằng là ứ ừ các ít ráo ủa cái kế tiếp ráo trọi úi cái gì khi rất úi chà căn khoảng rất chi là úi dào cần khoảng chừng rất đỗi và căn cắt không rất mực vả chăng càng là rày vả lại cật lực lại rén vài cật sức làm ren rén vẫn cây lẫn rích vẫn là cha lên riêng vạn nhất cha chả liên tiếp riệt vân vân chắc liên tục riu ríu vâng chậc lúc rồi văng tê chắc hẳn lúc ấy rón rén vào lúc chầm chập lúc trƣớc rốt cục vậy 91 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh chăn chắn luôn rốt cuộc vậy là chăng luôn luôn rứa vậy mà chẳng mà rút cục vậy nên chẳng lẽ mặc dù sa sả vậy thế chẳng những mặc kệ sạch vậy thì chẳng nữa mãi sẵn sàng vậy thôi chẳng phải mãi mãi sao về chành chạnh mặt khác sắp về mặt chao ôi mày sất về phía chết nỗi mầy sau veo chết thật mi sáu vèo chết tiệt mỗi sau chót veo veo chỉ mọi sau cùng vì chị một sau cuối ví bằng chí chết mƣời sau đó vì chƣng chỉ do năm sẽ ví dù chỉ là này sì ví dụ chỉ tại nãy số ví phỏng chỉ vì nấy sở dĩ vị tất chiếc nè số là vì thế chín nên song le ví thử 92 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh chỉn nền sốt sột vì vậy chính nên chi sự vở chính anh nếu suýt vô hình trung chính chị nếu nhƣ tà tà vô kể chính là ngăn ngắt tại vô luận chính thị ngay tại vì vô vàn chính tôi ngay cả tám với cho ngày càng tấm với lại chớ ngay khi tăm tắp vốn dĩ chớ chi ngay lập tức tấn vừa cho đến ngay lúc tanh vừa mới cho đến khi ngày ngày tao vung tán tàn cho là ngay từ tắp vung tàn tán cho nên ngay tức khắc tắp lự vung thiên địa cho rằng ngày xƣa tất cả vụt cho tới ngày xửa tất tần tật xa xả cho tới khi nghe chừng tất tật xăm xăm choa nghe đâu tất thảy xăm xắm chốc chốc nghen tênh xăm xúi chợt nghĩa là thà xềnh xệch chú nghiễm nhiên tha hồ xệp 93 GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh chứ nghỉm thà là xiết bao chu cha ngõ hầu thà rằng xoẳn chứ lị ngộ nhỡ thái quá xoành xoạch chú mày ngoài thậm xoét chú mình ngoải thậm chí xoẹt chƣa ngôi than ôi xon xón chui cha ngọn thanh xuất kì bất ý chủn ngọt thành ra xuất kỳ bất ý chùn chùn ngƣơi thành thử xuể chùn chũn nhân dịp thảo hèn xuống chúng nhân tiện thảo nào ý chung cục nhất thật là ý chừng chúng mày nhất đán thật lực ý da

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

  • pdfĐỀ TÀI XÂY DỰNG VÀ LÀM GIÀU ONTOLOGY TIẾNG VIỆT CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN.pdf