Tách thông tin từ văn bản trên web.
Với nhiều tỷ trang Web phân bố trên hầu hết các quốc gia, World Wide Web (WWW) là môi trường tốt cho việc biểu diễn và truy cập thông tin dạng số. Tuy nhiên, lượng thông tin khổng lồ đó cũng tạo ra những khó khăn lớn trong việc tìm kiếm, chia sẻ thông tin trên WWW. Hiện nay, thông tin trên WWW được biểu diễn chủ yếu dưới dạng ngôn ngữ tự nhiên (các trang Web trên ngôn ngữ HTML). Cách biểu diễn đó
phù hợp với con người nhưng lại gây ra nhiều khó khăn cho các...
Công cụ hỗ trợ tạo ngữ nghĩa trang Web
sử dụng kỹ thuật tách thông tin từ văn bản
A Toolkit for Creating Semantic Web Contents Using
Information Extraction Techniques
Từ Minh Phương, Trịnh Hữu Kiên
Abstract. The Semantic Web is an extension of the cha đẻ của WWW, Web có ngữ nghĩa là sự mở rộng
current Web in which information is given formal and của WWW hiện tại bằng cách thêm vào các mô tả ý
explicit meaning. The Semantic Web enables computer nghĩa (hay ngữ nghĩa) của thông tin dưới dạng mà
programs to understand information contents and thus chương trình máy tính có thể “hiểu” và do vậy cho
facilitates more efficient discovery, automation, integration phép xử lý thông tin hiệu quả hơn [1]. Như vậy, Web
and sharing of data. To create Semantic Web contents one
có ngữ nghĩa sẽ bao gồm các thông tin (trang Web)
needs appropriate tools. In this paper, we describe such a
được biểu diễn theo cách truyền thống cùng với ngữ
toolkit we have constructed. The most important feature of
nghĩa của các thông tin này được biểu diễn một cách
the toolkit is that it makes use of information extraction
techniques for automatically annotating Webpage contents. tường minh. Việc thêm phần ngữ nghĩa cung cấp thêm
Experiments with a real life application show promising tri thức cho các chương trình (các agent), giúp nâng
results and demonstrate the usefulness of the toolkit. cao chất lượng phân loại, tìm kiếm, trao đổi thông tin.
Muốn xây dựng Web có ngữ nghĩa cần có công cụ
I. ĐẶT VẤN ĐỀ hỗ trợ. Trong bài báo này, chúng tôi mô tả bộ công cụ
Với nhiều tỷ trang Web phân bố trên hầu hết các mà chúng tôi xây dựng phục vụ mục đích này cùng
quốc gia, World Wide Web (WWW) là môi trường tốt với các giải pháp kỹ thuật được lựa chọn và sử dụng.
cho việc biểu diễn và truy cập thông tin dạng số. Tuy Phần quan trọng của bộ công cụ là phần tách thông tin
nhiên, lượng thông tin khổng lồ đó cũng tạo ra những tự động cho phép rút ngắn thời gian tạo phần ngữ
khó khăn lớn trong việc tìm kiếm, chia sẻ thông tin nghĩa cho trang Web. Để minh hoạ cho việc sử dụng
trên WWW. Hiện nay, thông tin trên WWW được và thử nghiệm bộ công cụ, bài báo cũng trình bầy một
biểu diễn chủ yếu dưới dạng ngôn ngữ tự nhiên (các ứng dụng tìm kiếm thông tin với những trang Web có
trang Web trên ngôn ngữ HTML). Cách biểu diễn đó ngữ nghĩa do bộ công cụ tạo ra.
phù hợp với con người nhưng lại gây ra nhiều khó
khăn cho các chương trình làm nhiệm vụ hỗ trợ tìm II. THÀNH PHẦN CỦA WEB CÓ NGỮ NGHĨA
kiếm, chia sẻ và trao đổi tin. Chương trình máy tính Để tiện cho việc mô tả chức năng của bộ công cụ,
không “hiểu” được thông tin và dữ liệu biểu diễn dưới phần này sẽ trình bầy sơ lược về các thành phần của
dạng thích hợp với con người. Web có ngữ nghĩa. Các thành phần của Web có ngữ
Để giải quyết vấn đề này, nhiều tổ chức nghiên cứu nghĩa được chia thành ba nhóm chính như sau:
và kinh doanh đã phối hợp nghiên cứu và phát triển − Ontology và các ngôn ngữ dùng để biểu diễn ngữ
Web có ngữ nghĩa (Semantic Web). Theo định nghĩa nghĩa thông tin.
của Tim Berners_Lee giám đốc tổ chức World Wide − Các công cụ tạo nên phần ngữ nghĩa cũng như cấu
Web Consortium (http://www.w3c.org), đồng thời là trúc hạ tầng của Web có ngữ nghĩa.
− Các ứng dụng sử dụng Web có ngữ nghĩa. bool khi mô tả quan hệ giữc các đối tượng và có nhiều
kiểu quan hệ cơ sở hơn so với RDFS.
Chức năng từng nhóm được trình bầy dưới đây.
2. Công cụ cho Web có ngữ nghĩa
1. Ngôn ngữ cho Web có ngữ nghĩa
Để tạo và sử dụng Web có ngữ nghĩa cần có sự hỗ
Cơ chế cho phép chia sẻ và trao đổi ngữ nghĩa của trợ của các loại công cụ sau.
thông tin được biết đến và sử dụng lâu nhất là − Công cụ tạo và liên kết ontology. Các công cụ này
ontology. Ontology là bản mô tả một cách tường minh cho phép tạo ra khái niệm, thuộc tính của khái niệm,
các khái niệm trong một miền ứng dụng nào đó cùng quan hệ và phân cấp giữa các khái niệm. Công cụ
với quan hệ giữa những khái niệm này. Ontology loại này thường có giao diện đồ hoạ và tuân theo
cung cấp từ vựng chung cho việc trao đổi thông tin chuẩn của ứng dụng Web. Ví dụ điển hình cho công
giữa các ứng dụng và dịch vụ Web. Bản thân phần cụ loại này là Protégé [11].
ngữ nghĩa của Web có ngữ nghĩa bao gồm ontology − Công cụ chú giải (annotation tools). Công cụ chú
và giá trị cụ thể của khái niệm định nghĩa trong giải cho phép tạo phần ngữ nghĩa, tức là giá trị cụ
ontology. Để biểu diễn ontology và dữ liệu cần có thể của khái niệm, thuộc tính và quan hệ từ dữ liệu
ngôn ngữ thích hợp. Trong quá trình hình thành Web thông thường phù hợp với một ontology nào đó. Giá
có ngữ nghĩa, nhiều ngôn ngữ như vậy đã được đề trị tạo ra có thể được biểu diễn bởi các ngôn ngữ
xuất và phát triển, trong đó được biết đến nhiều nhất được nhắc tới ở phần trên. Hiện nay đa số công cụ
là RDF và RDFS [2], DAML+OIL [8,9]. chỉ cho phép chú giải bằng tay, do vậy quá trình chú
giải thường đòi hỏi nhiều thời gian [6].
RDF và RDF Schema. RDF (Resource Description
Framework) là cơ chế cho phép mô tả dữ liệu về dữ − Các kho chứa. Sau khi tạo ra, các ontology và phần
liệu (meta data). RDF coi các đối tượng trên Web ngữ nghĩa phải được lưu vào kho chứa. Những kho
(trang Web, đoạn văn, người, các đối tượng khác.v.v.) này thực chất là cơ sở dữ liệu cho phép lưu các mô
là các tài nguyên. Mỗi tài nguyên được mô tả bởi bộ tả trên ngôn ngữ RDFS hay DAML+OIL và cho
ba đối tượng - thuộc tính – giá trị. Ví dụ, mệnh đề phép biến đổi câu truy vấn trên những ngôn ngữ này
“Phương là tác giả bài báo tại trang Web nào đó” sẽ thành câu truy vấn SQL. Một trong những kho chứa
được mô tả bởi bộ ba: http:// www…, tác giả, điển hình là Sesame [7].
“Phương”. RDF Schema (RDFS) là một biến thể đơn − Dịch vụ suy diễn. Dịch vụ suy diễn cho phép tìm ra
giản sử dụng cơ chế RDF. RDFS cho phép mô tả các giá trị cụ thể của các khái niệm hoặc thuộc tính
thuộc tính đặc thù cho ứng dụng, đồng thời định nghĩa tương ứng với ontology có trong kho chứa. Một ví
lớp các đối tượng có cùng thuộc tính đó. Việc định dụ hệ thống suy diễn kiểu này là Ontobroker [5].
nghĩa lớp đối tượng với thuộc tính và quan hệ rất cần 3. Các ứng dụng
thiết cho việc xây dựng ontology.
Web có ngữ nghĩa cho phép tăng cường chức năng,
DAML + OIL. RDF và RDF Schema chỉ cho phép mức độ thông minh và tính tự động hoá của nhiều ứng
biểu diễn ngữ nghĩa ở mức độ đơn giản. Để biểu diễn dụng hiện có. Những lĩnh vực ứng dụng đặc biệt hứa
ngữ nghĩa bao gồm nhiều đối tượng có quan hệ lôgic hẹn cho Web có ngữ nghĩa là các dịch vụ Web, quản
phức tạp với nhau cần các phương tiện biểu diễn lý tri thức và thương mại điện tử [3].
mạnh hơn. DAML (Darpa Agent Markup Language) Dịch vụ Web là các chương trình và thiết bị có thể
và OIL (Ontology Interface Layer) là các phương tiện truy cập thông qua hạ tầng WWW. Web có ngữ nghĩa
như vậy. DAML+OIL là một mở rộng của RDFS. cung cấp thông tin và tri thức cần thiết cho việc tìm
Trong DAML+OIL, ngữ nghĩa được mô tả thông qua kiếm, tương tác, chia sẻ và kết hợp các dịch vụ Web.
lôgic mô tả (descriptive logic) cho phép sử dụng lôgic
Quản lý tri thức liên quan đến việc thu thập, lưu trữ, công cụ có sẵn song chúng tôi cho rằng, việc kết hợp
tìm kiếm, truy cập và cung cấp thông tin, tri thức chúng trong một hệ thống thống nhất (với một số
trong các tổ chức với mục đích tận dụng tài sản trí tuệ chỉnh sửa nhất định) là cần thiết để hỗ trợ quá trình
của chính tổ chức đó. Công việc này đòi hỏi một số tạo lập và truy vấn Web có ngữ nghĩa một cách hoàn
chức năng hoàn chỉnh hơn các hệ thống quản lý văn chỉnh và đồng bộ.
bản hoặc dữ liệu thông thường như tìm kiếm thông Ngoài những công cụ có sẵn, hệ thống còn có một
minh, tự động tách thông tin từ văn bản, liên kết cơ sở số thành phần do chúng tôi tự xây dựng. Quan trọng
dữ liệu, từ động tổng hợp văn bản. Những chức năng nhất trong số đó là mô đun chú giải trang Web tự
này có thể thực hiện được trên hạ tầng mà Web có động sử dụng kỹ thuật tách thông tin từ văn bản. Chi
ngữ nghĩa cung cấp. tiết về việc tách thông tin về văn bản sẽ được trình
Sự phát triển mạnh của thương mại điện tử hiện nay bầy chi tiết trong phần sau của bài báo. Để minh hoạ
dẫn đến số lượng khổng lồ các giao dịch trên mạng. cho hoạt động của bộ công cụ tạo ngữ nghĩa, một số
Để tự động hoá những giao dịch này, phần mềm hỗ môđun tìm kiếm thông tin dựa trên phần ngữ nghĩa
trợ cần có khả năng: chuyển đổi giữa những dạng văn vừa tạo ra cũng được bổ sung vào hệ thống. Các thành
bản tồn tại trong giao dịch điện tử, hỗ trợ ontology mô phần của toàn hệ thống được thể hiện trên hình 1.
tả hàng hoá và dịch vụ cho phép các agent tìm kiếm, Trong hình 1, hình chữ nhật là các khối chức năng,
phân loại và thương lượng về hàng hoá. hình elip biểu diễn thông tin hoặc dữ liệu sinh ra từ
những khối chức năng đó. Các hình chữ nhật có
III. KHÁI QUÁT VỀ BỘ CÔNG CỤ đường bao đậm và nền xám là những thành phần do
Mục tiêu của bộ công cụ là hỗ trợ toàn bộ quá trình chúng tôi tự xây dựng, hình với đường bao nhạt là
những thành phần có
Tạo ngữ nghĩa Công cụ tạo
Soạn thảo với RDF trang Web
sẵn được tích hợp vào
Ontology
hệ thống. Các thành
phần có sẵn bao gồm bộ
Bộ tải RDF soạn thảo ontology
Trang Web
Ontology Schema
Protégé [11], kho chứa
mô tả RDF Sesame [7],
Bộ sinh chú
Đánh chỉ mục
bộ tải RDF và RDFS,
giải dưới Information
dạng RDF Extractor HTML một phần máy tìm kiếm
sử dụng từ khoá truyền
thống.
Chỉ mục Phần tạo ngữ nghĩa
Chú giải Bộ tải RDF HTML
Kho chứa được thực hiện bởi các
Sesame
mô đun nằm trong hình
Đánh chỉ mục chữ nhật không liền nét
truyền thống
ở góc trên bên trái. Đây
Giao diện RDF & HTML cũng là phần chính của
người dùng Search engine
Tìm kiếm hệ thống. Phần ngữ
nghĩa sinh ra sẽ được sử
Hình 1. Bộ công cụ tạo Web có ngữ nghĩa và ứng dụng đi kèm
dụng cho ứng dụng tìm
tạo lập, lưu trữ và truy vấn phần ngữ nghĩa của trang
kiếm thông tin thông minh với máy tìm kiếm và giao
Web. Quá trình này đòi hỏi sự hỗ trợ của nhiều công
diện thể hiện ở phía dưới hình vẽ. Để đảm bảo tính
cụ riêng biệt. Mặc dù nhiều công cụ như vậy là những
tương thích của phần tìm kiếm cho Web truyền thống IV. TÁCH THÔNG TIN TỪ VĂN BẢN VÀ CHÚ
(không có ngữ nghĩa), hệ thống còn bao gồm mô đun GIẢI TỰ ĐỘNG
đánh chỉ mục HTML theo từ khoá (ở phía bên phải Nhiệm vụ của khối tách thông tin từ văn bản là phát
trên hình 1). hiện những thông tin, dữ liệu tương ứng với các khái
Hệ thống hoạt động như sau. niệm trong ontology, tách những thông tin này và
chuyển cho khối sinh chú giải. Ví dụ, xét đoạn văn
Trước tiên, người sử dụng tạo ra ontology cho một bản sau lấy từ trang Web đăng thông tin tuyển dụng
miền ứng dụng cụ thể nhờ công cụ soạn thảo lao động (Để tiện cho việc trình bầy thuật toán, ví dụ
ontology. Sau đó ontology được chuyển thành mô tả được sử dụng là tiếng Việt. Trên thực tế, phương pháp
trên RDFS và được chứa trong kho chứa Sesame. tách văn bản được đề xuất cho tiếng Anh. Việc nghiên
cứu ứng dụng cho tiếng Việt không nằm trong phạm
− Sau khi đã tạo được ontology, bước tiếp theo là chú
vi bài báo này và có thể được trình bầy trong khuôn
giải các trang Web, tức là thêm phần ngữ nghĩa cho
khổ những nghiên cứu khác).
trang Web bằng cách điền giá trị cho các khái niệm
Cần tuyển lập trình viên cho dự án thương
và thuộc tính trong ontology bằng thông tin lấy từ
mại điện tử. Ứng viên cần có ít nhất bốn năm
trang Web. Thông thường, việc chú giải được thực
kinh nghiệm, có khả năng làm việc với hệ
hiện bằng tay. Với số lượng trang Web lớn, công
điều hành Windows và Unix. Ứng viên phải
đoạn này đòi hỏi nhiều thời gian và dễ sinh lỗi như
sử dụng thành thạo các ngôn ngữ lập trình
để thiếu chú giải, chú giải không chính xác. Bộ công
Java, Javascript, đặc biệt phải có kinh
cụ của chúng tôi cho phép giải quyết vấn đề đó nhờ
nghiệm lập trình Java không dưới ba năm.
mô đun tách thông tin từ trang Web và tạo chú giải
Ưu tiên những ứng viên có kỹ năng làm việc
tự động. Để chú giải cho một trang Web, trang Web
với cơ sở dữ liệu Oracle.
được đưa và mô đun tách thông tin tự động. Dựa
trên cấu trúc ontology, mô đun này tách từ trang Giả sử ontology có các khái niệm, thuộc tính và
Web những thông tin về giá trị cụ thể của khái niệm quan hệ như mô tả trên hình 2. Quá trình tách thông
và thuộc tính chứa trong ontology. tin phải cho kết quả sau:
nghề: lập trình viên
Thông tin được tách ra ở bước trên được đưa sang lập trình viên: kinh nghiệm :bốn năm
kỹ năng:
bộ sinh chú giải. Mô đun này có nhiệm vụ tạo các bộ
hệ điều hành: Windows, Unix
ba RDF mô tả những thông tin được tách ra và chuyển ngôn ngữ: Javascript
mô tả vừa được tạo ra sang kho chứa Sesame. Java: kinh nghiệm :ba năm.
Có nhiều kỹ thuật tách thông tin được đề cập đến
− Song song với quá trình trên, trang Web cũng được
trong các nghiên cứu [4,10,12]. Do văn bản cần chú
đánh chỉ mục theo từ khoá như cách truyền thống.
giải là văn bản có cấu trúc yếu (viết dưới dạng ngôn
Cuối cùng, phần ngữ nghĩa được sử dụng trong máy ngữ tự nhiên), đồng thời thông tin tách ra phải có cấu
tìm kiếm. Máy tìm kiếm sử dụng ngôn ngữ RQL để trúc như ontology quy định nên chúng tôi đã lựa chọn
truy vấn kho chứa, đồng thời kết hợp với cơ chế suy kỹ thuật tách thông tin mô tả trong [4] - kỹ thuật cho
diễn dựa trên ngữ nghĩa để đưa ra kết quả tìm kiếm phép thoả mãn tốt nhất hai yêu cầu này. Chúng tôi
thông minh. Câu truy vấn có thể được cho dưới dạng cũng thực hiện một số sửa đổi để quá trình tách thông
ngôn ngữ tự nhiên. Trong trường hợp đó, phần ngữ tin phù hợp hơn với yêu cầu bộ công cụ [13].
nghĩa của câu truy vấn được tách ra cùng bằng kỹ
thuật tương tự như phần tách thông tin phục vụ chú
giải.
Nghề
khoá có trong văn bản. Kết quả nhận dạng hằng và từ
HĐH
rdfs:subClassOf khoá được chứa trong bảng như mô tả ở bước 2.
rdfs:domain − Bước 2: Tạo bảng Tên|Giá trị|Vị trí. Những hằng
Lập trình Kỹ năng và từ khoá được nhận dạng ở bước trên được chứa
viên
rdfs:domain rdfs:domain trong một bảng. Mỗi dòng của bảng này chứa tên
Kinh của khái niệm hoặc thuộc tính ứng với hằng hay từ
Ngôn ngữ Kinh
nghiệm
nghiệm
khoá tìm được, giá trị tìm được, vị trí bắt đầu và kết
Hình 2: Một ví dụ ontology (không đầy đủ) thúc trong văn bản. Từ khoá được phân biệt với
hằng bằng cách cho tiền tố KEYWORD ở trước. Ví
Quá trình tách thông tin bao gồm những bước sau:
dụ, từ đoạn văn bản trong ví dụ trên, ta xây dựng
− Bước1: Nhận biết hằng và từ khoá. Hằng là giá trị được bảng sau (chỉ thể hiện một phần của bảng)
cụ thể của khái niệm hay thuộc tính chứa trong …
ontology. Từ khoá là từ hoặc cụm từ cho phép xác lập trình viên:kinh nghiệm|bốn năm|80|86
ngôn ngữ:kinh nghiệm|bốn năm|80|86
định hằng thuộc về khái niệm hay thuộc tính nào. KEYWORD lập trình viên:kinh nghiệm|kinh
Chẳng hạn, trong ví dụ trên “Java” là một hằng, còn nghiệm|88|98
KEYWORD kỹ năng:hệ điều hành|hệ điều
“ngôn ngữ lập trình” là từ khoá cho biết hằng đó hành|126|137
thuộc về thuộc tính “ngôn ngữ” của khái niệm “kỹ kỹ năng:hệ điều hành|Windows|139|145
năng”. kỹ năng:hệ điều hành|Unix|151|154
KEYWORD kỹ năng:ngôn ngữ|ngôn ngữ
Hằng và từ khoá được xác định bằng cách sử dụng lập trình|196|213
kỹ năng:ngôn ngữ|Java|212|215
các quy tắc. Quy tắc ở đây là các mẫu được biểu diễn kỹ năng:ngôn ngữ|Javascript|218|227
dưới dạng regular expression (như ở trong Perl) kỹ năng:ngôn ngữ|Java|270|273
nhưng được mở rộng thêm bởi một số từ vựng. Ví dụ, …
mẫu nhận dạng thời gian kinh nghiệm được cho như − Bước 3: Tạo thông tin ứng với ontology từ bảng
sau: trên. Ở bước này, thông tin từ bảng Tên|Giá trị|Vị
Lập trình viên: Kinh nghiệm case trí được sử dụng để sinh ra giá trị cho khái niệm và
insensitive thuộc tính trong bảng. Thực chất của bước này là
constant {extract Số, “[a-zA-
Z\s]*\s+năm” }; giải quyết mâu thuẫn hoặc không rõ ràng về thông
lexicon {Số case insensitive, filename tin trong bảng bằng cách sử dụng một số quy tắc
“number.dat” }; heuristic. Ví dụ, trong bảng trên, ta thấy “bốn năm”
keyword {“\bkinh nghiệm\b” }
end;
được nhận dạng ở bước 1 vừa thuộc loại kinh
nghiệm lập trình nói chung, vừa thuộc loại kinh
Mẫu trên cho biết thuộc tính “kinh nghiệm” của
nghiệm lập trình ngôn ngữ do phù hợp với mẫu của
“lập trình viên” được nhận dạng bởi biểu thức bắt đầu
cả hai thuộc tính này. Hay “Java” cũng được nhận
bởi một “Số”, kết thúc bởi “năm”; “Số” là từ vựng
dạng hai lần, trong khi chỉ có thể cho một giá trị vào
chứa trong file có tên “number.dat” (từ vựng này liệt
kho chứa. Ở đây, ta sử dụng một số heuristic sau:
kê các xâu “một”, “hai”, “ba”.v.v.); từ khoá đi kèm là
“\bkinh nghiệm\b”. Nếu một khái niệm hoặc thuộc tính chỉ được phép
có một giá trị nhưng bảng lại chứa nhiều giá trị thì
Các mẫu nhận dạng hằng và từ khoá được chứa
chỉ giữ lại giá trị gần từ khoá tương ứng nhất. Ví dụ,
trong ontology cùng với mô tả khái niệm và thuộc
trong bảng trên có hai hằng cho thuộc tính “lập trình
tính. Như vậy, chúng tôi đã mở rộng ontology bình
viên:kinh nghiệm” là “ba năm” và “bốn năm”.
thường để chứa thêm những thông tin này.
Heuristic này cho phép loại giá trị “ba năm” do nằm
Khi bắt đầu quá trình tách thông tin, tất cả các mẫu xa từ khoá “lập trình viên : kinh nghiệm”.
được lần lượt sử dụng để tìm kiếm các hằng và từ
Nếu có nhiều hằng trùng nhau thì chỉ giữ lại hằng liệu miễn phí với nhiều ưu điểm như nhanh, không đòi
tương ứng với từ khoá gần nhất. Chẳng hạn, trong hỏi nhiều tài nguyên.
bảng trên có hai hằng “bốn năm” thì chỉ giữ lại hằng Phần mềm máy chủ Web là Tomcat 4.1
ứng với “lập trình viên:kinh nghiệm” vì nằm gần từ (http://jakarta.apache.org/tomcat). Đây là phần mềm
khoá này hơn. miễn phí hỗ trợ Servlet / JSP.
Nếu có nhiều giá trị hằng / từ khoá lồng nhau thì Phần đánh chỉ mục trang Web và tìm kiếm theo từ
chỉ giữ lại hằng / từ khoá dài hơn. Chẳng hạn, từ khoá được xây dựng dựa trên máy tìm kiếm Jakarta
khoá “kinh nghiệm lập trình” lồng từ khoá “kinh Lucene (http://jakarta.apache.org/lucene). Đây là máy
nghiệm” nhưng lại dài hơn, do đó chỉ giữ lại “kinh tìm kiếm mã nguỗn mở được viết trên Java và hỗ trợ
nghiệm lập trình” cho vị trí đó. nhiều tính năng tìm kiếm mở rộng với từ khoá.
Nếu một khái niệm chỉ có thể có một giá trị thì chọn 2. Ứng dụng minh hoạ và thử nghiệm
hằng đầu tiên xuất hiện trong bảng. Với mục đích minh hoạ và thử nghiệm, hệ thống
Các quan hệ một-nhiều thường được thể hiện bởi được sử dụng chú giải các trang Web chứa thông tin
các hằng có vị trí lồng nhau trong văn bản. cá nhân và kỹ năng của lập trình viên, sau đó phần tìm
kiếm cho phép tìm kiếm thông tin về những người này
Trong các quy tắc trên, khoảng cách dùng để so
dựa trên ngữ nghĩa hoặc từ khoá. Trước hết, một
sáng được tính theo vị trí xuất hiện hằng và từ khoá
ontology về nghề lập trình và những kỹ năng, kinh
trong văn bản. Sau khi áp dụng những heuristic trên,
nghiệm liên quan được tạo ra. Ontology này chỉ cần
các hằng còn lại được chuyển sang bộ sinh chú giải để
tạo một lần cho tất cả các trang Web.
biến đổi về dạng RDF.
Sau khi có ontology, người dùng sử dụng giao diện
của hệ thống để nhập trang Web cần chú giải. Ở đây
V. TRIỂN KHAI VÀ THỬ NGHIỆM
có thể tạo mới trang Web và chú giải luôn hoặc tạo
1. Triển khai hệ thống chú giải một trang có sẵn bằng cách tải trang đó lên.
Giao diện nhập trang Web cần chú giải được cho trên
Hệ thống được triển khai như một ứng dụng Web,
hình 3.
mọi giao diện đều sử dụng Web form và được hiển thị
bằng trình duyệt. Lựa chọn này cho phép xây dựng và
lưu trữ phần ngữ nghĩa tập trung trên máy chủ hoặc
ngay trên máy cục bộ. Chúng tôi đã sử dụng những
ngôn ngữ và công cụ sau để triển khai hệ thống.
Ngôn ngữ lập trình là ngôn ngữ Java. Java được lựa
chọn do có nhiều ưu điểm: thích hợp với lập trình ứng
dụng Web, cụ thể là hỗ trợ Servlet/JSP; là ngôn ngữ
hoàn toàn hướng đối tượng; không phụ thuộc phần
cứng và hệ điều hành, có thể kết nối với cơ sở dữ liệu
thông qua JDBC. Ngoài ra, thư viện chuẩn của Java
(từ phiên bản 1.4) hỗ trợ regular expression cần thiết
cho phần tách thông tin. Hình 3. Nhập trang Web cần chú giải
Hệ thống bao gồm hai cơ sở dữ liệu, một dùng cho Sau khi xác định trang Web cần tạo ngữ nghĩa và
kho chứa Sesame và một chứa các thông tin quản lý bấm nút “Create”, bộ sinh tách thông tin sẽ sinh ra
của hệ thống. Cả hai đều được xây dựng sử dụng hệ chú giải. Người dùng có thể xem những chú giải được
quản trị CSDL MySQL. Đây là hệ quản trị cơ sở dữ tạo ra và có thể chỉnh sửa theo mong muốn. Hình 4
minh hoạ phần chú giải về kỹ năng của lập trình viên lượng xây dựng ontology ảnh hưởng nhiều nhất tới
được tạo ra cho một trang Web ví dụ chất lượng chú giải. Sau khi hiệu chỉnh ontology, với
30 trang Web cá nhân, giá trị của recall và precision
tương ứng là 88% và 95%. Các chỉ số recall và
precision như vậy là tương đối cao và phù hợp với đặc
điểm của phương pháp tách thông tin đã lựa chọn. Kết
quả chú giải tự động có thể hiệu chỉnh bằng tay sau đó
để cho kết quả tốt nhất.
Do nội dung chủ yếu của bài báo là trình bầy về bộ
công cụ nên những thử nghiệm nói trên chỉ mang tính
chất minh hoạ cho hoạt động của hệ thống. Số lượng
mẫu thử được sử dụng, do vậy, không lớn và không
đa dạng. Tuy nhiên, kết quả thử nghiệm đầy đủ hơn
về hoạt động của thuật toán tách thông tinh từ văn bản
đã được trình bầy trong [4] và các bài báo liên quan.
Hình 4: Chú giải về kỹ năng được tách từ trang Web
VI. KẾT LUẬN
Sau khi đã chú giải các trang Web, người dùng có
Bài báo trình bầy việc thiết kế và xây dựng bộ công
thể tìm kiếm thông tin theo từ khoá và/hoặc theo ngữ
cụ hỗ trợ tạo Web có ngữ nghĩa cùng với ứng dụng
nghĩa như ví dụ trên hình 5.
minh hoạ. Kết quả xây dựng công cụ cho thấy, việc sử
dụng kỹ thuật tách thông tin từ văn bản cho phép giảm
đáng kể thời gian chú giải thông tin trên trang Web,
phần việc chiếm nhiều thời gian nhất khi tạo Web có
ngữ nghĩa. Phần chú giải thông tin tự động sử dụng
thuật toán tách thông tin có độ chính xác khá cao.
Kinh nghiệm xây dựng bộ công cụ cũng cho thấy,
việc hiệu chỉnh và tích hợp một số công cụ đã có sẵn
cho phép giảm thời gian đồng thời tăng thêm tính
năng bộ công cụ và tạo thuận lợi cho người sử dụng
so với dùng từng công cụ riêng lẻ. Tuy nhiên, bộ công
cụ còn thiếu một số chức năng tự động khác như tự
động sinh ontology từ văn bản.
Hình 5: Kết quả tìm kiếm kết hợp từ khoá và ngữ nghĩa
Phần chú giải tự động trang Web đóng vai trò quan
Để thử nghiệm hệ thống, chúng tôi sử dụng 30 trọng trong việc sinh ra ngữ nghĩa cho những trang
trang thông tin cá nhân của lập trình viên đang làm Web đã có sẵn. Chất lượng chú giải phụ thuộc nhiều
việc tại trung tâm xuất khẩu phần mềm FPT Fsoft và vào quá trình tách thông tin. Theo chúng tôi được biết,
một số trang lấy từ Internet. Những trang này được hiện chưa có nghiên cứu nào đề cập tới việc tách
chú giải tự động bởi bộ công cụ, sau đó chú giải bằng thông tin từ văn bản tiếng Việt. Phương pháp tách
tay và so sánh kết quả. Kết quả được đánh giá theo hai thông tin trình bầy ở trên cũng chỉ được đề xuất cho
chỉ số recall (tỷ lệ thông tin tách được/thông tin có tiếng Anh và chưa được nghiên cứu áp dụng cho văn
trong văn bản) và precision (tỷ lệ thông tin tách bản tiếng Việt. Tuy nhiên, do đặc điểm của phần tách
đúng/thông tin tách được). Thử nghiệm cho thấy, chất thông tin sử dụng khoảng cách giữa các từ, trong khi
ngữ pháp tiếng Anh và tiếng Việt đều quy định chặt [13] Tu Minh Phuong, Information Extraction and
chẽ thứ tự các từ trong câu, thuật toán tách thông tin Evaluation of Candidates with Fuzzy Set techniques,
được trình bầy ở trên có thể sử dụng cho văn bản Proc. of Inter. Conf. on Fuzzy syst. and Knowl.
discovery, FSKD 2002, Singapore, 2002, pp 481-485.
tiếng Việt với một số sửa đổi không lớn. Giả thiết này
cần được nghiên cứu thêm và có thể là mục tiêu của
những nghiên cứu tiếp theo. PHỤ LỤC
Lời cảm ơn: Nghiên cứu được thực hiện với sự hỗ
trợ kinh phí của Hội đồng Khoa học tự nhiên. Ví dụ một phần ontology được tạo ra cho ví dụ
trong phần 5.2. Ontology được cho dưới dạng giao
TÀI LIỆU THAM KHẢO diện Protégé.
[1] T. Berners-Lee, J. Hendler, O. Lassila, The Semantic
Web, Scientific American, May 2001. A. Các thực thể trong Ontology Skills
[2] D. Brickley, R.V. Guha, Resource Description
Framework (RDF) Schema Specification, World Wide
Web Consortium, Proposed recommendation 2001.
[3] Y. Ding, D. FenselL, M. Klein, B. Omelayenko, The
semantic Web: yet another hip? Data & Knowledge
Engineering 41, Elsevier 2002, pp 205–227.
[4] D.W. Embley, D.M. Campbell, R.D. Smith, S.W.
Liddle, Ontology-Based Extraction and Structuring of
Information from Data-Rich Unstructured
Documents, Proc. of 1998 ACM Inter. Conf. on
Inform. and Knowledge Man., CIKM 1998, USA, pp
52-59.
[5] D. Fensel, S. Decker, M. Erdmann, H.-P. Schnurr, R.
Studer, A. Witt, Lessons learned from applying AI to
the Web, Journal of Cooperative Information Systems B. Định nghĩa các class trong ontology Skills
9 (4) (2000).
[6] S. Handschuh, S. Staab, CREAM – Creating metadata
for the semantic Web, Computer networks, vol. 42,
Elsevier 2003, pp 557-571.
[7] http://sesame.aidministrator.nl/.
[8] http://www.ontoknowledge.org/oil.
[9] http://www.daml.org.
[10] N. Kushmeric, Wrapper induction: efficiency and
expressiveness, Artificial intelligence, vol.118,2000.
[11] N. F. Noy, M. Sintek, S. Decker, M. Crubézy, R.
W. Fergerson, M. A. Musen, Creating semantic Web
contents with Protégé -2000, IEEE Intelligent
systems, 3-4/2001, pp 60-71.
[12] S. Soderland, Learning information extraction rules
Ngày nhận bài 26/4/2004
for semi-structured and free text. Machine learning,
34. Kluwer Academic Publishers.(1999)
SƠ LƯỢC TÁC GIẢ
TỪ MINH PHƯƠNG TRỊNH HỮU KIÊN
Sinh năm 1971 tại Hà Nội. Sinh năm: 1982
Tốt nghiệp đại học tại ĐH Tốt nghiệp Đại học tại Học
Bách khoa Taskent năm 1993, viện Bưu chính viễn thông
bảo vệ tiến sỹ tại Viện hàn lâm năm 2003.
khoa học Uzbekistant, Hiện đang công tác tại Công
Taskent, năm 1995 ty phần mềm FPT (Fsoft).
Hiện là giảng viên khoa Hướng nghiên cứu: Phát
Công nghệ thông tin 1, Học triển các ứng dụng sử dụng trí
viện công nghệ Bưu chính tuệ nhân tạo.
Viễn thông.
Email: [email protected]
Hướng nghiên cứu: trí tuệ nhân tạo, hệ tác tử, logic
mờ, bioinformatics.
Email: [email protected]