xây dựng một ontology
Trang 1Tóm tắt
Ngày nay, việc tìm kiếm thông tin phục vụ cho công việc, học tập là rất cần thiết, đặc biệt là trong lĩnh vực giáo dục Một sinh viên đi du học muốn tìm kiếm thông tin về những người Việt Nam làm tiến sĩ ở nước đó, hay muốn tìm kiếm thông tin về những người có cùng hướng nghiên cứu với mình… Chúng ta có thể sử dụng những công cụ tìm kiếm như Google, Yahoo search, hoặc qua những mối quan hệ, nhưng đều cho những kết quả với độ chính xác không cao và chưa đầy đủ thông tin Vì vậy việc đưa
ra một công cụ tìm kiếm thông tin về những người Việt Nam làm tiến sĩ ở nước ngoài là rất hữu ích
Có rất nhiều cách tiếp cận khác nhau để giải quyết bài toán, trong báo cáo đồ án thực tập tốt nghiệp này sẽ đề cập đến việc xây dựng một Ontology – Cơ sở tri thức về những người Việt Nam làm tiến sĩ ở nước ngoài, sau đó biểu diễn cơ sở tri thức này như một mạng xã hội Cách tiếp cận này không ngoài mục đích tìm kiếm và chia sẽ thông tin một cách
dễ dàng mà còn hướng tới một công nghệ Web của tương lai đó là Web 3.0 hay còn gọi là Web ngữ nghĩa
Lời cảm ơn
Trước tiên em xin cảm ơn Tiến sĩ Lê Thanh Hương đã tận tình hướng dẫn em trong quá trình làm đồ án thực tập tốt nghiệp này Em cũng xin cảm ơn các thầy cô giáo trong bộ môn đã tạo điều kiện cho em được thực tập tại phòng lab Cảm ơn các bạn đã làm cùng trong đợt thực tập tốt nghiệp đã đóng góp ý kiến để tôi hoàn thành đồ án tốt hơn
Trang 2Mục lục
1 Giới thiệu bài toán 3
2 Tiếp cận để giải quyết bài toán 3
3 Kiến trúc hệ thống 5
3.1 Kiến trúc Module tạo Ontology từ tập các tài liệu Web 7
3.1.1 Phase 1: Trích rút term 7
3.1.2 Phase 2: Dịch ngữ nghĩa 8
3.1.3 Phase 3: Tích hợp Ontology 13
3.2 Thiết kế hệ thống cho phép truy cập dữ liệu từ Ontology đã xây dựng 13
4 Các kĩ thuật và công nghệ sử dụng 13
4.1 Giới thiệu về Ontology 13
4.1.1 Cơ sở tri thức và cơ sở dữ liệu 14
4.1.2 Ngôn ngữ xây dựng và triển khai Ontology 14
4.2 Mạng xã hội 16
4.3 Ontology và mạng xã hội 17
4.4 Ontology Learning từ các loại văn bản 17
4.4.1 Định nghĩa Ontology Learning 17
4.4.2 Ontology Learning ‘Layer Cake’ 18
5 Tổng kết và hướng làm việc trong tương lai 31
6 Tham khảo 31
2
Trang 31 Giới thiệu bài toán.
Bài toán đặt ra là tìm kiếm thông tin về những người Việt Nam làm tiến
sĩ ở nước ngoài Ta sẽ chia ra thành các modun ứng với đề tài thực tập của nhóm
Modun thứ nhất: Từ những trang web tìm thấy được nhờ việc tìm kiếm trên google hay yahoosearch, chúng ta phải giải quyết vấn đề là làm sao
để biết đó là đúng là những trang web để ta trích rút ra những thông tin Sau khi giải quyết bài toán này xong chúng ta sẽ có được một tập các trang web liên quan đến những người cần lấy thông tin
Modun thứ hai: Bài toán đặt ra tiếp theo là khi có được một tập những trang web đó làm thế nào để trích rút được đúng và đủ những thông tin về một người Sau khi giải quyết xong bài toán này ta lại có được một tập những thông tin về những người làm tiến sĩ Nhưng đến đây vẫn chưa đủ, thông tin của mỗi người viết theo một cách khác nhau, sẽ xảy ra trường hợp là hai người cùng đề cập đến một vấn đề nhưng cách viết lại khác nhau làm sao để chúng ta có thể gộp được những thông tin này làm một Đây chính là vấn đề ngữ nghĩa của những thông tin thu thập được Giải quyết được vấn đề này chúng ta sẽ có được một cơ sở tri thức( bao gồm
cơ sở dữ liệu của những người và mối quan hệ của những người đó) Modun thứ ba: Vấn đề tiếp theo là biều diễn thông tin phục vụ cho việc truy vấn được dễ dàng hơn Có nhiều cách biểu diễn thông tin như: biểu diễn nó thành một mạng xã hội của những người Việt Nam làm tiến sĩ ở nước ngoài, hay làm ứng dụng xử lí câu truy vấn là ngôn ngữ tự nhiên, hay tạo ra được web ngữ nghĩa
2 Tiếp cận để giải quyết bài toán.
Với Modun thứ nhất ta sẽ dùng các kĩ thuật như Textmining modun này Tuấn Anh sẽ trình bày rõ hơn trong báo cáo
Bài toán thứ hai chính là bài toán trích rút thông tin, với đầu vào là một tập trang web chứa thông tin về những người làm tiến sĩ Có khá nhiều cách tiếp cận để giải quyết bài toán này như dùng cách so mẫu trong những câu viết trong các trang web tức là việc phân tích cú pháp của một câu nếu giống với mẫu câu đã có thì sẽ phân tích được các thành phần trong câu đó để đưa ra thông tin Cách tiếp cận nữa là cách tiếp cận xác suất Để giải quyết bài toán này, báo cáo sẽ đưa ra các kĩ thuật để trích rút thông tin, ứng với mỗi loại thông tin chúng ta sẽ áp dụng những phương pháp khác nhau Kĩ thuật sử dụng là Text To Ontology, báo cáo cũng đưa
ra mô hình kiến trúc của ứng dụng sẽ xây dựng Việc sử dụng Ontology ở đây là rất phù hợp cho bài toán này vì Ontology cho phép mô hình hóa các đối tượng và định nghĩa được các ràng buộc giữa các đối tượng Mặt khác Ontology cũng như một cây phân cấp các đối tượng, điều này rất tiện lợi
Trang 4cho việc gom nhóm các đối tượng phục vụ cho việc truy vấn Một điều thuận lợi nữa khi sử dụng Ontology sẽ được nói đến khi giải quyết bài toán thứ ba sau.
Bài toán thứ ba, biểu diễn thông tin phục vụ cho việc truy vấn cơ sở tri thức dễ dàng hơn Vì khi xây dựng nên một Ontology cùng với dữ liệu là ta
đã có được một cơ sở tri thức về một miền lĩnh vực, bao gồm các thực thể, mối quan hệ giữa các thực thể đó, còn mạng xã hội tập chung vào việc khai thác các mối quan hệ, ở đây chủ yếu là các mối quan hệ xã hội đây chính là một lợi điểm nữa khi xây dựng ứng dụng Ontology
4
Trang 5Tích hợp và cập nhật OntologyMáy học quy nạp
Trang 6Hình 2: Thiết kế hệ thống cho phép truy cập dữ liệu từ Ontology đã xây
Trang 7Mô tả kiến trúc hệ thống.
3.1 Kiến trúc Module tạo Ontology từ tập các tài liệu Web.
Hình 1 là kiến trúc của Module tạo Ontology từ tập các tài liệu web(OntoLearn)
Có ba phases chính:
Đầu tiên những term trong lĩnh vực được trích rút từ những tài liệu, có thể
là những trang web, có thể là từ những tài liệu liên quan Những term đó được lọc sử dụng xử lí ngôn ngữ tự nhiên và kĩ thuật xác suất
Phase thứ hai: các terms sau khi lọc được dịch nghĩa và sắp xếp theo thứ
tự vào cây phân cấp, từ đó tạo nên cây khái niệm về lĩnh vực
Phase thứ ba: Cây phân cấp khái niệm dùng để cập nhật Ontology đã xây dựng
3.1.1 Phase 1: Trích rút term
Term là tập các từ hay các cụm từ diễn đạt một nghĩa đơn trong một lĩnh vực Những term được trích rút nhờ xử lí ngôn ngữ tự nhiên, phân tích cú pháp của cụm danh từ một cách hợp lí, ví dụ trong tiếng anh thì thường sẽ có cấu trúc: từ ghép (Credit Cart), tính từ- cụm danh từ (Local Information Office), giới từ- cụm danh từ (Board of Director)
Tiếp theo là lọc những term đúng sử dụng các phương thức thống kê Đó
là liên quan lĩnh vực (Domain Relevance) và sự tương ứng trong lĩnh vực (Domain Consensus) sẽ được mô tả kĩ hơn sau đây
Tần suất xuất hiện của term trong các văn bản là điều dễ nhận thấy nhất khi phân tích Đo lường tính cụ thể của những term trong lĩnh vực đích thông qua việc phân tích so sánh qua những lĩnh vực khác Chính xác hơn, ta có n lĩnh vực {D1, D2 … Dn} và tập các tài liệu liên quan, mối liên quan lĩnh vực của term
t trong lớp Dk được tính bằng:
Trong đó xác suất điều kiện P(t|Dk) được tính:
Với f –t, k là tần suất của term t trong lĩnh vực Dk
Chúng ta cũng cần đánh giá độ phân tán sử dụng của những term, có những term có tần suất xuất hiện cao ở một tài liệu những lại hoàn thoàn không xuất hiện ở những tài liệu khác Chỉ số DC sẽ đánh giá việc sử dụng phân tán của từ trong một lĩnh vực Sự phân tán của term t trong tài liệu d thuộc lĩnh vực
Dk Entropy nó được thể hiện trong bậc tương ứng của t trong Dk với công thức:
Trang 8Một tập các terrms được chấp nhận sau phase 1 sẽ được đưa vào một cây gọi
là cây từ vựng Giống như:
Nếu không có việc phân tích ngữ nghĩa thì Transport Sevice sẽ không có liên quan gì đến Pubic Trasport Service
Dịch ngữ nghĩa là việc xử lí xác định khái niệm đúng cho mỗi thành phần của những term phức tạp Sau đó xác định mối quan hệ ngữ nghĩa của chúng để
tạo nên nghĩa của term phức tạp Ví dụ như Bus Service là sự kết hợp của hai
khái niệm Bus và Servie, hai khái niệm này đã được định nghĩa duy nhất (sử dụng Wordnet ) Khi đó mối quan hệ ngữ nghĩa của hai khái niệm xác định rằng:
Có một dịch vụ có kiểu công việc(service) thực hiện thông qua (thiết bị) đó là bus cái mà có cùng kiểu với public transport Từ đó sẽ có mối quan hệ giữa bus service và pubilc transport service
8
Trang 9Phương thức dịch nghĩa này có thể thực hiện được nếu như nghĩa của các khái niệm được thông qua nghĩa của các thành phần con trong nó Nhưng thực sự điều này là không thể, hơn nữa một vài thành phần khái niệm có thể không nằm trong Ontology ban đầu Trong trường hợp này thì phải thực hiện
bằng cách khác Thuật toán đó gọi là: structural semantic interconnection
được sử dụng để học luật và gán nhán cho những cặp khái niệm có mối quan hệ ngữ nghĩa
3.1.2.1 Structural semantic interconnection
OntoLearn là một công cụ để mở rộng cũng như cắt bớt Ontology sử dụng chung WordNet sẽ được sử dụng như một bảng kê các term và các khái niệm Để thêm được một khái niệm mới dưới một hyperonym trong Ontology đã
đa từ có nghĩa trong cây từ vựng T w1 là cú pháp đầu của t Quá trình suy diễn cấu trúc kết hợp với những từ đơn nghĩa wk của WordNet Nghĩa của t sẽ được cấu tạo :
Với Synsets(wk) là tập những nghĩa được cung cấp bởi WordNet cho từ wk Ví dụ:
Quan hệ cấu trúc ngữ nghĩa là một kiểu nhận dạng mẫu cấu trúc Có hai cách biểu diễn cấu trúc đó là dùng Vector hoặc dùng đồ thị ví dụ biểu diễn coach theo nghĩa thứ 5 trong WordNet là “a vehicle carrying many passengers; used for public transport”
Đồ thị này gọi là đồ thì ngữ nghĩa (Semantic Graph) được xây dựng nhờ WordNet
Thuật toán SSI Thuật toán SSI là cách tiếp cận lặp lại cơ sở tri thức để ghép
các từ thành một nghĩa Các vấn đề được chia ra như sau:
• t là một term
• T( ngữ cảnh của t) tập những term chứa t
• I là biểu diễn cấu trúc của T (the semantic context).
• cụ thể cấu trúc của những nghĩa có thể của t
Trang 11Thuật toán:
Trang 123.1.2.2 Tạo cây phân cấp trong lĩnh vực.
Khi dùng thuật toán SSI có thể tất cả các term trong cây từ vựng đều được ghép nghĩa Sau đó chúng ta phải làm như sau:
duy nhất dựa trên cơ sở sự giống nhau, sự đồng nghĩa … (ví dụ., manor house and manorial house, expert guide and skilled guide, bus service and coach service); chú ý là tìm mối quan hệ giữa các khái niệm chứ không phải là các từ Ví dụ, bus#1 và coach#5 là đồng nghĩa, nhưng mối quan hệ này không được gắn cho từ bus và từ coach
Cấu trúc phân cấp: Phân cấp thông tin trong WordNet là để thay thế mối quan hệ ngữ nghĩa kind-of Ví dụ: e.g., ferry service kind-of boat service)
lí thuyết về các kĩ thuật sử dụng
3.1.2.3 Thêm mối quan hệ giữa các khái niệm
Để thêm được mối quan hệ giữa các khái niệm ta phải giải quyết:
Lựa chọn bảng tóm tắt các mối quan hệ thích hợp Học kiểu mẫu mô hình quan
hệ, cái mà giữ mối quan hệ giữa cặp các khái niệm Áp dụng mô hình cho liên quan ngữ nghĩa này cho các thành phần của khái niệm phức tạp Vì mục đích của chúng ta là tạo nên được cây phân cấp khái niệm nên sẽ không tập chung vào phần này
Trang 133.1.3 Phase 3: Tích hợp Ontology
Cập nhật vào những Ontology đã tồn tại như WordNet hay các nguồn từ vựng
mà chúng ta đã sử dụng Phần này cũng chưa cần thiết và cho giai đoạn này nên không tập chung nghiên cứu
3.2 Thiết kế hệ thống cho phép truy cập dữ liệu từ Ontology đã xây dựng.
Ở giai đoạn thực tập này chỉ nghiên cứu cách tạo ra Ontology – Kết quả của Module thứ hai để giải quyết bài toán đặt ra ban đầu
Để phát triển thêm ta sẽ nghiên cứu thêm để hệ thống cho phép tự động chuyển đồi dữ liệu từ Database – Kết quả của việc giải quyết bài toán của Lương Ngọc Đức, đó là bài toán Trích rút thông tin nhưng dùng những công cụ phức tạp hơn và trích rút được nhiều thông tin hơn Việc tích hợp này sẽ làm cho hệ thống linh động hơn và dữ liệu sẽ được lọc kĩ hơn
Còn phần truy vấn cơ sở tri thức có thể đưa ra các hướng khác nhau để khai thác cơ sở tri thức Có thể viết ứng dụng xử lí câu truy vấn tự nhiên hoặc có thể mô hình hóa thành mạng xã hội
Câu truy vấn vào các file Owl hoặc RDF dựa trên các ngôn ngữ
nhưng điển hình nhất là Ngôn ngữ truy vấn SPARQL:
events for <http://www.owl-ontologies.com/Events.owl#>,
people for <http://www.owl-ontologies.com/People.owl#>,
locations for <http://www.owl-ontologies.com/Locations.owl#>,
organisations for
<http://www.owl-ontologies.com/Organisations.owl#>,
owl for http://www.w3.org/2002/07/owl#
4 Các kĩ thuật và công nghệ sử dụng.
4.1 Giới thiệu về Ontology
• Các cách tiếp cận xử lí thông tin
– Cách tiếp cận thống kê
– Cách tiếp cận mô tả tri thức
Cách tiếp cận thống kê: Dựa vào sự lặp đi lặp lại của dữ liệu để đưa ra những luật hay những quy tắc Khi có một dữ liệu mới thì sẽ áp dụng những luật đã có để suy ra kết quả
Trang 14Cách tiếp cận mô tả tri thức: Mô tả cấu trúc của những thông tin
sẽ được xử lí Dữ liệu trông sẽ như thế nào Khi có một dữ liệu mới thì
sẽ so sánh cấu trúc dữ liệu của nó rồi đưa ra kết luận
• Ưu và nhược điểm của hai cách tiếp cận
– Cách tiếp cận thống kê: Học được nhiều hơn, nhưng mức độ chính xác của việc xử lí dữ liệu sẽ thấp hơn Dư thừa thông tin, sự nhập nhằng, cần sự lặp lại của thông tin nhiều lần mới phát hiện ra luật
– Cách tiếp cận mô tả tri thức: Việc đưa ra được một kết luận hay việc xử lí cho dữ liệu sẽ chính xác hơn
Khái niệm: Ontology là một đặc tả khái niệm, ở đó bao gồm một
tập các đối tượng, khái niệm và các thực thể tồn tại trong một vài miền ứng dụng và có mối quan hệ với nhau
Mục đích: Cung cấp chia sẽ những hiểu biết về một lĩnh vực cho
cả máy tính và con người
Các thành phần: bao gồm những thành phần logic của cơ sở tri thức đó
là các luật và những mô tả hình thức về một lĩnh vực Các thành phần được suy ra từ:
– Cơ sở dữ liệu
– Suy ra từ máy
– Từ các trang web hay các tài liệu liên quan đến lĩnh vực đó
Ví dụ: thành phần ontology tri thức cơ sở gia đình có thể nói rằng: mẹ là một người, người mà có ít nhất 2 con Dữ liệu thật được lấy
từ trong Database có chứa thông tin rằng: Âu cơ có 100 con Dựa trên
cơ sở thực tế và định nghĩa hình thức về mẹ Cơ sở tri thức sẽ suy ra rằng Âu cơ là một người mẹ
4.1.1 Cơ sở tri thức và cơ sở dữ liệu
Sự khác nhau căn bản giữa cơ sở tri thức và cơ sở dữ liệu là: Cơ sở tri thức có những cơ chế suy diễn Do đó cơ sở tri thức có thể suy ra những dữ liệu mới từ những dữ liệu đã có nhờ những luật
Quan niệm về một thế giới mở: Thông tin nếu không tồn tại trong cơ sở tri thức thì không có nghĩa không tồn tại Còn đối với CSDL thì nếu không thấy nghĩa là không có
4.1.2 Ngôn ngữ xây dựng và triển khai Ontology
Ontology là giả định hình thức về một miền cụ thể -> cần một ngôn ngữ logic hình thức để mô tả nó
– Logic vị từ trình tự đầu tiên(first-order predicate logic (FOL)) – XML- RDF ví dụ như RDFS( RDF Schemas) hoặc OWL (Ontology Web Language)
14
Trang 15Ở đây ta sẽ dùng mô hình dữ liệu RDF là một đồ thị bao gồm các nút
và các cạnh Nút tương ứng với một đối tượng và cạnh tương ứng với thuộc tính Nhãn trên mỗi nút hay cạnh là 1 URI(Uniform Resource Identifiers)
a) Các cách biểu diễn thông tin
“The author of a document is Paul”
“Paul is the author of a document”
“A document is authored by Paul”
“The author of a document is Paul”
Trong XML sẽ biểu diễn:
<document href = http://doc_url author = “Paul”/>
<author>
<url> http://doc_url </url>
<name> Paul </name>
Có 3 thành phần chính cấu tạo nên :
• Resource: chứa URI chỉ định danh tới một đối tượng duy nhất
• Property: mối quan hệ hay là các thuộc tính
• Statement: tài nguyên + tính chất+ giá trị