Nhu cầu tìm kiếm và tra cứu tài liệu khoa học chuyên ngành hiện nay 11 1 Quản lý và chia sẻ tài liệu khoa học
Tài liệu khoa học là gì
Tài liệu khoa học là các ấn phẩm, sách, báo cáo kỹ thuật, bài báo hội nghị, bài báo tạp chí, luận văn, các nghiên cứu về một công trình khoa học, một vấn đề khoa học chuyên ngành nào đó Các tài liệu này thường có một cấu trúc đặc trưng với một số thành phần chính theo thứ tự sau :
Tiêu đề (title): miêu tả ngắn gọn nội dung của tài liệu
Thông tin về tác giả (author): tên, địa chỉ, email, nơi làm việc,…
Phần tóm tắt (abstract): giới thiệu, tóm tắt một số nội dung chính của bài viết, giúp người đọc hiểu khái quát về tài liệu
Phần nội dung chính của bài viết: đặt vấn đề, giải quyết vấn đề, các phương pháp kĩ thuật thực hiện, kết quả thực hiện, đánh giá tổng kết, kết luận,… Phần tài liệu tham khảo: phần cuối cùng của bài viết, liệt kê các tài liệu được tác giả tham chiếu tới Các thông tin về tài liệu tham khảo bao gồm tựa đề, tác giả, năm xuất bản, số trang,…và theo một định dạng nhất định.
Tài liệu khoa học là kết tinh của một quá trình làm việc sáng tạo, lâu dài của tác giả, có giá trị tham khảo lớn với độc giả, nên rất cần được công bố và chia sẻ rộng rãi.
Nhu cầu trao đổi và chia sẻ tài liệu khoa học
Các nghiên cứu khoa học thường được các tác giả công bố trên các tạp chí, tập san khoa học (journal), trong các hội thảo, hay trên website cá nhân, … dưới nhiều định dạng thông dụng như doc, ps, pdf, txt,… Thế nên để có thể xem, tham khảo nội dung của các tài liệu khoa học đó ta cần dựa trên nhiều công cụ hệ thống rời rạc, hỗ trợ hoặc không hỗ trợ việc tìm kiếm Việc này sẽ gây nhiều khó khăn, bất tiện cho người đọc, tìm kiếm
Thực tế trên đã dẫn tới nhu cầu cần có một hệ thống lưu trữ và quản lý các tài liệu khoa học một cách thống nhất Nó không chỉ phải giúp người đọc dễ dàng tìm kiếm được các tài liệu, đánh giá được chất lượng bài viết mà còn cung cấp cho các
1 2 tác giả biết được mức độ quan tâm của cộng đồng với kết quả nghiên cứu của mình.
Quản lý và tìm kiếm tài liệu khoa học
Với việc quản lý các tài liệu khoa học – là các tài liệu có một số thông tin cấu trúc nhất định thì việc quản lý và tìm kiếm sẽ bao gồm:
Quản lý nội dung tài liệu - Tìm kiếm dựa trên các từ khóa
Quản lý thông tin đặc trưng của tài liệu: các thông tin đặc trưng bao gồm tiêu đề, tác giả, tóm tắt bài viết, tài liệu được tham khảo,… Khi đó việc tìm kiếm sẽ hỗ trợ tìm kiếm theo các thông tin đặc trưng, thông tin tham chiếu tài liệu Để có thể có được các thông tin đặc trưng trên của tài liệu phục vụ cho quá trình tìm kiếm cần có một thành phần có khả năng phân tích xử lý tự động trích lọc các thành phần đặc trưng và tham chiếu của tài liệu.
Các chức năng cần có của một hệ quản lý và tìm kiếm tài liệu khoa học .12 Chương 2: Cơ sở lý thuyết về hệ tìm kiếm thông tin
Từ các phân tích trên ta thấy nhu cầu cần xây dựng một hệ thống quản lý tìm kiếm các tài liệu khoa học có một số chức năng chính sau:
Tổ chức lưu trữ các tài liệu: Các thành phần được lưu trữ bao gồm nội dung bài viết, các đặc trưng như tiêu đề, tác giả, tài liệu tham chiếu đến bài viết Mỗi phần, mỗi đặc trưng có thể được lưu trong các bảng, các trường cơ sở dữ liệu để hỗ trợ tra cứu, tìm kiếm
Thêm/ Sửa/ Xóa tài liệu: Hỗ trợ cho người dùng thêm mới một tài liệu; với mỗi tài liệu có thể hiệu chỉnh, sửa chữa, chuẩn hóa nội dung cho đúng; có thể xóa tài liệu nếu được phép.
Trích rút thông tin: Thông tin được trích rút bao gồm thông tin về đặc trưng của tài liệu: tiêu đề, tên tác giả, email, địa chỉ, tóm tắt nội dung chính,… hay phần tham chiếu: các tài liệu được tham khảo đến; các thông tin về tài liệu tham khảo như tên, tác giả, năm xuất bản, số trang, đều được trích lọc lấy ra phân loại
Tìm kiếm: Với các tài liệu khoa học – các tài liệu có cấu trúc thì hệ thống ngoài khả năng tìm kiếm theo nội dung còn có thể tìm kiếm theo các đặc trưng, tham chiếu của tài liệu
Ngoài ra hệ thống có thể tìm kiếm nâng cao: theo năm, theo đánh giá xếp hạng, theo hồ sơ người dùng, … làm tăng kết quả tìm kiếm.
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Chương 2: Cơ sở lý thuyết về hệ tìm kiếm thông tin
Tổng quan về tìm kiếm thông tin
1.1 Khái niệm cơ bản về hệ tìm kiếm thông tin
Hình 1: Bản chất của tìm kiếm thông tin
Hình 1 thể hiện bản chất của hệ tìm kiếm thông tin với 2 tác nhân tham gia là người dùng và người cung cấp dịch vụ tìm kiếm.
Người cung cấp dịch vụ tìm kiếm trước hết sẽ lưu trữ thông tin về tài liệu Do số lượng tài liệu rất lớn nên không thể lưu trữ toàn bộ nội dung tài liệu mà chỉ có thể lưu lại những thông tin quan trọng phục vụ cho quá trình tìm kiếm Các thông tin này có thể là tiêu đề, tác giả, đoạn tóm tắt, đường link hay một số từ khóa quan trọng.
Người dùng muốn tìm kiếm phải đưa vào các từ khóa đặc trưng cho tài liệu mình muốn tìm Hệ thống sẽ thực hiện đối sánh các từ khóa này với các thông tin phục vụ tìm kiếm tài liệu Những tài liệu có kết quả đối sánh tốt nhất sẽ được trả về như là kết quả của quá trình tìm kiếm
Như vậy bản chất của quá trình tìm kiếm thông tin dựa trên cơ chế “đối sánh” các tài liệu được lưu trữ trong hệ thống với yêu cầu tìm kiếm của người dùng để tìm ra kết quả cho phù hợp
1.2 Mô hình của hệ tìm kiếm thông tin
Hình 2: Mô hình hệ tìm kiếm thông tin
Hình 2 trình bày mô hình hệ tìm kiếm thông tin cơ bản Các thành phần cơ bản bao gồm: Đầu vào (Input): gồm các câu truy vấn (queries) và các tài liệu (documents).
Câu truy vấn bao gồm các từ khóa (keyword) Từ khóa được hiểu là một tổ hợp các từ của một ngôn ngữ nhất định, được sắp xếp hay quan hệ với nhau thông qua các biểu thức logic mà công cụ tìm kiếm hỗ trợ Trong trường hợp từ khoá bao gồm nhiều hơn một chữ (hay từ) thì có thể gọi tập hợp các chữ đó là bộ từ khoá (set of keywords) Đầu ra ( output ) : Tập hợp các đoạn trích hay tài liệu được hệ thống đánh giá phù hợp với yêu cầu truy vấn của người dùng :
Bộ xử lý ( Processor ): Thành phần chính của hệ thống thực hiện biểu diễn lưu trữ thông tin tài liệu và tìm kiếm Nó bao gồm các thành phần cơ bản : o Bộ biểu diễn câu truy vấn : Biểu diễn câu truy vấn người dùng
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A o Bộ biểu diễn tài liệu : Biểu diễn thông tin về tài liệu , lập chỉ mục ( indexing ) phục vụ cho quá trình tìm kiếm o Bộ đối sánh : Đối sánh giữa câu truy vấn và thông tin tài liệu xem tài liệu có phù hợp không
Hoạt động của bộ xử lý : Bộ biểu diễn phân tích tài liệu, đánh chỉ mục, lưu trữ thông tin về tài liệu vào kho dữ liệu Khi nhận được một câu truy vấn, bộ biểu diễn câu truy vấn phân tích câu truy vấn thành các từ khóa và các toán tử tìm kiếm Bộ đối sánh sau đó lấy thông tin về các tài liệu trong kho dữ liệu, đối sánh với từ khóa và các toán tử tìm kiếm để tìm ra tài liệu thỏa mãn câu truy vấn của người dùng. Để phục vụ cho các hoạt động biểu diễn, lưu trữ, tìm kiếm hệ thống có thể có thêm các thành phần chức năng nâng cao như phân tích từ, phân cụm, phân lớp để trích chọn ra các thông tin của tài liệu phù hợp cho quá trình tìm kiếm.
Các thành phần của hệ tìm kiếm thông tin
Phần này sẽ đi sâu tìm hiểu về các thành phần của hệ tìm kiếm thông tin đã phân tích ở trên : bộ biểu diễn câu truy vấn, bộ biểu diễn tài liệu, bộ đối sánh.
2.1 Bộ biểu diễn câu truy vấn
Một câu truy vấn được tạo thành từ các từ khóa (keyword) và các toán tử tìm kiếm liên kết với các từ khóa Nhiệm vụ của bộ biểu diễn câu truy vấn là phân tích câu truy vấn thành các từ khóa và toán tử tìm kiếm.
2.1.1 Các toán tử tìm kiếm cơ bản
Toán tử AND: Có cú pháp (Toán hạng 1) AND (Toán hạng 2) Phép toán AND nhằm yêu cầu hệ thống tìm kiếm các tài liệu có sự hiện diện của tất cả các toán tử
Ví dụ: “student AND teacher” sẽ giúp truy tìm các trang có mặt đồng thời hai chữ student và chữ teacher
Toán tử OR: Có cú pháp là (Toán hạng 1) OR (Toán hạng 2) Lệnh này cho phép tìm những tài liệu có chứa một trong các toán tử của phép toán OR của bộ từ khoá
Ví dụ: “Hà Nội “ OR “Hồ Chí Minh “ sẽ tìm tài liệu viết về Hà Nội hoặc thành phố “ Hồ Chí Minh “
Toán tử NOT: Việc tìm kiếm sẽ loại bỏ những tài liệu mà nội dung có chứa toán hạng đứng ngay sau phép toán NOT Tuy nhiên trong nhiều máy truy tìm có hỗ trợ thì phép toán này cũng chỉ được dùng có một lần cho một bộ từ khoá
Ví dụ: để tìm tài liệu hướng dẫn về ngôn ngữ lập trình C/C++ có thể thử dùng trên Altavista: "C/C++ tutor" NOT book.
Dấu ngoặc kép “”: Khi muốn tìm nguyên văn của cụm từ, có thể dùng dấu ngoặc kép Khi đó bộ đối sánh phải tìm kiếm các tài liệu có cả cụm từ ấy trong nội dung văn bản.
Ví dụ: tìm tài liệu viết về trường đại học Bách Khoa Hà Nội, có thể tìm với cụm từ trong ngoặc kép “ Bách Khoa Hà Nội “.
2.1.2 Quá trình biểu diễn câu truy vấn
Hình 3: Minh họa cho quá trình biểu diễn câu truy vấn với câu truy vấn
Quá Trình biểu diễn câu truy vấn diễn ra theo các bước :
Bước 1 : Phân tích câu truy vấn thành các Token: Thông thường các token được định nghĩa là một chuỗi kí tự - chữ số nằm giữa các khoảng trắng và/hoặc các dấu chấm phẩy.
Trong bước này, câu truy vấn java OR programming sẽ được phân tích thành 3 token là java, OR và programming.
Bước 2 : Phân tích các Token thành các từ khóa và các toán tử tìm kiếm.
Trong bước này, ta sẽ thu được java và programming là từ khóa và OR là toán tử tìm kiếm.
Bước 3 : Gồm các xử lý:
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Loại bỏ các từ dừng: Từ dừng (stop word) là những từ xuất hiện rất nhiều trong các văn bản mà không có ý nghĩa nhiều đối với văn bản Trong tiếng anh là các từ như a, an, the, is Việc loại bỏ từ dừng được xác định bằng cách loại bỏ các từ mà tần suất xuất hiện vượt quá một ngưỡng giá trị nào đó.
Loại bỏ tiền tố, hậu tố (word stemming): Trong ngôn ngữ tự nhiên, một từ có thể xuất hiện trong câu dưới những biến thể khác nhau Một vài ví dụ trong tiếng anh như chia động từ (am, are, is - be), số nhiều (teachers – teacher). Để thực hiện việc biểu diễn ta cần phải chuẩn hóa các từ trong văn bản bằng cách đưa các biến thể của một từ về dạng chuẩn của nó.
Loại bỏ từ tương đương: Loại bỏ các từ mang ý nghĩa giống nhau.
Trong bước này, java được giữ nguyên vì nó đang ở dạng nguyên thể, programming được loại bỏ hậu tố và trở thành program.
Bước 4 : Đánh trọng số cho các từ khóa: Một hệ thống tìm kiếm thông tin có thể tiến hành đánh trọng số cho các từ khóa Trọng số thể hiện vai trò của từ khóa trong câu truy vấn Trong một số hệ tìm kiếm thông tin, trọng số của từ khóa phụ thuộc vào vị trí xuất hiện của nó trong câu truy vấn
Trong bước này, 2 từ khóa java và program được đánh trọng số Từ khóa java xuất hiện trước sẽ có trọng số cao hơn Đầu ra của bộ biểu diễn câu truy vấn là một tập (từ khóa, trọng số) và các toán tử tìm kiếm liên kết giữa các từ khóa.
2.2 Bộ biểu diễn tài liệu
Hình 4: Quá trình biểu diễn tài liệu
Vì cả tài liệu và câu truy vấn đều được tạo thành từ các văn bản ngôn ngữ tự nhiên nên việc biểu diễn chúng có một số xử lý giống nhau Hình 4 minh họa quá trình biểu diễn tài liệu.
Bước 1 : xác định các đơn vị tài liệu cần thiết để biểu diễn: có thể là cả văn bản, một đoạn, phần tiêu đề hay tóm tắt…
Bước 2 : phân tích đoạn văn bản cần biểu diễn thành “từ”: Ở đây khái niệm “từ” được hiểu là một từ hay một cụm từ tạo thành một ý nghĩa nào đó trong văn bản. Mỗi “từ” này được gọi là một term.
Bước 3 : bao gồm các xử lý loại bỏ các từ dừng, tiền tố, hậu tố, loại bỏ các từ tương đương (giống biểu diễn câu truy vấn), những từ quá hiếm gặp (loại bỏ những từ có tần suất xuất hiện trong văn bản thấp hơn một ngưỡng giá trị nào đó) Các term còn lại sau các quá trình xử lý này được gọi là các index term.
Bước 4 : đánh trọng số cho các index term Trọng số thể hiện vai trò của index term trong tài liệu Nó phụ thuộc vào nhiều yếu tố: tần suất xuất hiện của từ trong văn bản tài liệu, font chữ, cỡ chữ, vị trí xuất hiện…
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Tìm kiếm thông tin trên web
Hình 5: Các thành phần cơ bản của một hệ tìm kiếm thông tin trên
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Nó cũng bao gồm các thành phần cơ bản của một hệ tìm kiếm thông tin: bộ biểu diễn tài liệu, bộ biểu diễn câu truy vấn, bộ đối sánh Ngoài ra, nó còn có một thành phần đặc biệt là bộ thu thập web (web crawler hay còn gọi là web robot, web spider…) cho phép thu thập, tập hợp thông tin từ các nguồn khác nhau trên Internet một cách tự động.
3.2 Hoạt động của hệ thống
Mô-tơ tìm kiếm trên Internet hoạt động theo các bước cơ bản sau:
Thu thập thông tin web (web crawler): Các hệ thống tìm kiếm trên mạng internet thực hiện công việc lưu giữ thông tin về một số lượng khổng lồ các trang web nó tìm thấy trên WWW Những trang web này được lấy về từ các robot (còn gọi là nhện web) bằng cách lần theo các siêu liên kết Robot là một chương trình tự động duyệt qua các cấu trúc siêu liên kết để thu thập tài liệu và một cách đệ quy Nó nhận về tất cả tài liệu có liên kết với tài liệu này. Những trang web này được biết đến dưới nhiều tên gọi khác nhau: spider, web wanderer hoặc web worm… Các cách gọi đó đôi khi gây nhầm lẫn, như từ ‘spider’, ‘wanderer’ làm người ta nghĩ rằng robot tự di chuyển hoặc từ
‘worm’ làm người ta liên tưởng đến virus Về bản chất robot chỉ là một chương trình duyệt và thu thập thông tin từ các site theo đúng giao thức web. Những trình duyệt thông thường không được xem là robot do thiếu tính chủ động, chúng chỉ duyệt web khi có sự tác động của con người.
Nguyên tắc hoạt động của robot : Xuất phát từ một tập địa chỉ URL cho trước,
Web Robot sẽ lần theo các địa chỉ link từ mỗi tài liệu để tìm đến các tài liệu khác. Việc lần tìm này có thể tuân theo hai nguyên tắc: Tìm kiếm theo chiều sâu và tìm kiếm theo chiều rộng.
Lập chỉ mục cho các tài liệu thu thập được: Nội dung các tài liệu thu được ở trên sau đó được phân tích bằng hàm biểu diễn tài liệu, đánh chỉ mục và được lưu trữ trong hệ thống Mục đích của việc đánh chỉ mục là làm cho quá trình tìm kiếm diễn ra dễ dàng và nhanh chóng hơn Do nội dung của các tài liệu có thể luôn luôn thay đổi nên các thông tin này thường xuyên được cập nhật.
Tìm kiếm: Câu truy vấn được biểu diễn thành các từ khóa và các toán tử tìm kiếm Trọng số có thể được gán cho các từ khóa Một số hệ thống coi từ khóa có trọng số cao nhất là từ khóa xuất hiện đầu tiên Sau đó, hệ thống sẽ truy tìm các index term phù hợp với các từ khóa Theo các thông tin trong posting ta có thể tìm được các tài liệu có chứa từ khóa này và trọng số tương ứng của từ khóa trong tài liệu ấy.
Các tài liệu thỏa mãn mối liên hệ giữa các từ khóa qua các toán tử tìm kiếm được xác định là phù hợp Để xếp thứ tự các tài liệu, ta tính trọng số dựa trên các thông tin về trọng số của term ứng với từ khóa trong tài liệu và trọng số của từ khóa.
3.3 Một số kỹ thuật được sử dụng
3.3.1 Xếp hạng trang ( Page Rank )
Một số lượng lớn các tài liệu trên mạng Internet là các trang Web Ngoài việc xử lý các trang tìm thấy theo yêu cầu của một từ khoá trong kho dữ liệu cập nhật, các hệ thống tìm kiếm còn phải tìm cách chống lại sự nhiễu loạn của các trang không có nội dung phù hợp với yêu cầu nhưng vẫn lọt vào danh sách tuyển chọn của máy truy tìm Nguyên nhân của các nhiễu loạn này là việc các trang chuyên về quảng cáo hay tiếp thị luôn luôn tìm cách để lọt vào hàng đầu trong danh sách tuyển chọn của hệ thống tìm kiếm Qua đó họ có thể giới thiệu sản phẩm của họ đến người dùng Ngược lại, người dùng, trong đa số các trường hợp, không muốn tìm các quảng cáo tiếp thị mà chỉ muốn tìm các dữ liệu khác theo ý đã ghi trong từ khoá
Do các đặc điểm phức tạp trên, việc phân hạng các trang Web tìm được bởi một bộ từ khoá cho trước của máy truy tìm sẽ dựa vào việc áp dụng thêm các thuật toán hay biện pháp xử lý đặc biệt Các tiêu chí chủ yếu mà các thuật toán của các hệ thống tìm kiếm Web sử dụng để phân hạng các trang Web: tần số phát sinh, thẻ meta và câu lệnh title, ngôn ngữ, số liên kết ngoài
Phân cụm (clustering) là khái niệm gom nhóm những đối tượng tương tự nhau vào cùng một cụm
Bao gồm các loại phân cụm như sau:
Phân cụm tài liệu: Phân cụm tài liệu là khái niệm gom nhóm những tài liệu tương tự nhau vào cùng một cụm Việc phân cụm phải đảm bảo các tài liệu trong 1 cụm phải tương tự nhau và các tài liệu khác cụm phải khác nhau. Mỗi cụm sẽ tìm ra một “tâm cụm” đại diện cho cụm Việc đối sánh tìm kiếm chỉ thực hiện với tâm của cụm nhưng kết quả sẽ trả về với tất cả các tài liệu trong cụm
Việc phân cụm có những ưu điểm là đảm bảo đưa ra kết quả tìm kiếm tốt hơn và quá trình tìm kiếm diễn ra nhanh hơn.
Phân cụm người dùng: Gom nhóm những người dùng giống nhau vào cùng một cụm Sự giống nhau được đánh giá dựa trên những sở thích đã được khảo sát Tìm ra cụm gần nhất với người dùng để đưa ra kết quả tốt nhất cho người dùng dựa theo những kết quả đã có từ những người trong cụm.
Phân cụm kết quả: Các nghiên cứu cho thấy nếu ta phân cụm các kết quả thành các loại (category) thì sẽ giúp cho người dùng dễ dàng hơn trong việc duyệt qua tập kết quả Ví dụ: category về thể thao, tin tức, tin học…
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Phân lớp tài liệu là khái niệm tự động gán nhãn cho các tài liệu Mục đích là hỗ trợ cho người dùng trong việc duyệt các tài liệu trả về.
Ví dụ: Spam và non-spam hay Interesting và non-interesting
Việc phân lớp các tài liệu có thể dựa trên hướng tiếp cận học máy như sau: Thu được một tập các tài liệu đã được gán nhãn.
Sử dụng một giải thuật học máy: kNN, Bayesian, SVMs, cây quyết định… Gán nhãn cho tài liệu mới dựa theo tập các tài liệu đã được gán nhãn từ trước.
3.3.4 Phản hồi từ người dùng
Thể hiện những đánh giá của người dùng được hệ thống sử dụng trong quá trình tìm kiếm Các dạng phản hồi của người dùng như sau:
Phản hồi của người dùng trong một phiên tìm kiếm: Các bước thực hiện việc phản hồi trong phiên tìm kiếm: o Ban đầu người dùng đưa ra một câu truy vấn ngắn, đơn giản o Người dùng đánh dấu các kết quả trả về là thỏa mãn hay không thỏa mãn o Hệ thống tính toán một cách thể hiện câu truy vấn tốt hơn dựa trên những đánh dấu của người dùng o Phản hồi có thể diễn ra một lần hay lặp lại nhiều lần
Quản lý và tìm kiếm đối với tài liệu khoa học
4.1 Cấu trúc của một tài liệu khoa học
Với hệ thống tìm kiếm tài liệu khoa học, đối tượng tìm kiếm là các tài liệu báo cáo khoa học – là những tài liệu có cấu trúc Cấu trúc của nó có thể chia làm 3 phần chính:
Phần thông tin đặc trưng của tài liệu (header): bao gồm các thông tin về tiêu đề, tác giả, tóm tắt bài viết ( abstract ),…
Phần nội dung chính của bài viết : giới thiệu nội dung , các phương pháp thực hiện , kết quả thực hiện, hướng phát triển , kết luận
Phần tài liệu tham khảo (References, Citations): Phần này có thể có hoặc không tùy từng bài viết Nó liệt kê các tài liệu được tham chiếu sử dụng
2 4 trong bài viết Các thông tin về tài liệu tham khảo được trình bày theo định dạng nhất định bao gồm: tên tài liệu, tác giả, năm xuất bản, số trang, ngữ cảnh tham chiếu tài liệu (phần nào của bài viết tham khảo đến tài liệu),…
Hình 6(a): Cấu trúc một tài liệu khoa học
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Hình 6(b): Cấu trúc một tài liệu khoa học
4.2 Quản lý tài liệu khoa học
Về lưu trữ: Đối tượng được lưu trữ là tài liệu khoa học: các file thu thập được trên Internet qua bộ Crawler hoặc được người dùng thêm vào Các file thường có định dạng số như pdf, ps, hoặc được nén (zip, gzip) Hệ thống sau đó sẽ chuyển định dạng file về file text(txt) để dễ phân tích xử lý File text và những phần được phân tách ra đều được lưu trữ và quản lý thống nhất
Về biểu diễn thông tin tài liệu: Tài liệu khoa học được biểu diễn theo các từ khóa thể hiện nội dung, theo đặc trưng của tài liệu (tiêu đề, tác giả, số trang, năm xuất bản,…), theo tài liệu tham chiếu của nó Muốn có những dữ liệu đó, hệ thống phải có thành phần tự động phân tách, trích chọn những thông tin phù hợp Thành phần đó sẽ sử dụng một số kĩ thuật, thuật toán để phân loại, gán nhãn, trích lọc ra những thông tin đặc trưng, tham chiếu của tài liệu.
Về tìm kiếm tài liệu: Sau khi tài liệu khoa học đã được biểu diễn theo từ khóa và thông tin đặc trưng, tham chiếu thì người dùng có thể tiến hành tìm kiếm tài liệu.
Hệ thống hỗ trợ tìm kiếm theo nội dung tài liệu, theo thông tin đặc trưng tài liệu (tiêu đề, tác giả,nhà xuất bản ,…), theo tài liệu tham khảo của bài viết,…
Ngoài ra hệ thống còn có thể tâp hợp thống kê những bài viết khoa học theo từng mốc thời gian, theo tác giả, nhà xuất bản,… hay xếp hạng đánh giá tài liệu theo số lượng tài liệu tham khảo đến nó nhằm giúp người đọc dễ dàng tham khảo và tra cứu.
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Hệ thống tra cứu tài liệu khoa học
Kiến trúc tổng quan hệ thống tra cứu tài liệu khoa học
Ta cần xây dựng một hệ thống quản lý tài liệu khoa học dựa trên mô hình hệ thống tìm kiếm thông tin trên web Bên cạnh các chức năng của một hệ tìm kiếm chung là biểu diễn lưu trữ dữ liệu, đánh chỉ mục, thu thập, thêm mới tài liệu, đối sánh tìm kiếm thì hệ quản lý tài liệu khoa học còn cần thêm phần xử lý trích chọn thông tin đặc trưng tham chiếu của tài liệu, giúp cho việc tìm kiếm theo các đặc trưng, tham chiếu đó đạt hiệu quả Sau đây là mô hình kiến trúc tổng quan của hệ thống:
Hình 7: Mô hình tổng quan của hệ quản lý tài liệu khoa học
Phân Tích và Trích Chọn
Chỉ Mục Nôi Dung TL Chỉ Mục Đặc
ClientTrả Về Kết Quả
Miêu tả thành phần hoạt động:
Thu thập thông tin: Tài liệu được thu thập vào kho dữ liệu của hệ thống qua
2 cách: o Tự động thu thập trên Web: Thành phần Crawler tự động duyệt qua các cấu trúc siêu liên kết để thu thập tài liệu o Người dùng thêm vào: người sử dụng có thể thêm tài liệu vào hệ thống bằng cách cung cấp đường link đến tài liệu Hệ thống sau đó sẽ tự duyệt đường link để tìm tài liệu và các tài liệu liên kết tới tài liệu này qua đường link trong đó nhờ bộ Crawler
Lưu trữ, cập nhật tài liệu : Tài liệu được lưu trong kho dữ liệu của hệ thống. Kho dữ liệu sẽ lưu trữ các tài liệu thu thập được ở dạng gốc, hỗ trợ cho người dùng tải về cùng với các thông tin được xử lý trích chọn như các bảng cơ sở dữ liệu, mô tả đặc trưng, tham chiếu, các chỉ mục, … giúp người dùng tìm kiếm.
Người dùng có thẩm quyền sẽ được phép chỉnh sửa nội dung, thông tin đặc trưng của tài liệu (sửa lỗi, cập nhật, xóa) giúp tài liệu chuẩn hóa, hoàn thiện
Trích rút thông tin : Tài liệu thu thập về được bộ phận phân tách dữ liệu trích chọn những thông tin về đặc trưng, tham chiếu, lưu vào trong các bảng cơ sở dữ liệu của kho dữ liệu Bộ phân tách dữ liệu bao gồm một số thành phần cơ bản như trích rút nội dung (chuyển định dạng từ file pdf,ps sang file text), kiểm tra phần tài liệu tham khảo của bài viết, trích chọn thông tin metadata và citatons của nó…
Xử lý tìm kiếm : Những yêu cầu tìm kiếm của người dùng được biểu diễn bằng các câu truy vấn và đối sánh với thông tin đã xử lý để trả về kết quả phù hợp Hệ thống cũng tiến hành đánh chỉ mục cho nội dung bài viết, cho metadata, citations của nó giúp cho tìm kiếm nhanh, chính xác hơn.
Kỹ thuật trích chọn thông tin
2.1 Trích chọn đặc trưng tài liệu
Các thông tin đặc trưng của tài liệu như : tiêu đề, tên tác giả, địa chỉ, email, keyword, abstract, …thường phân theo các lớp tương ứng : title, author, address, emai, keyword, abstract,… và được trình bày theo từng dòng, mỗi dòng có quan hệ ngữ cảnh với nhau.
Vì thế để trích chọn được thông tin đặc trưng tài liệu ta sẽ tìm hiểu các kĩ thuật để gán nhãn text, phân loại dòng và phân dòng dựa trên thông tin ngữ cảnh
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Mỗi thông tin thuộc một trường dữ liệu đặc trưng(tiêu đề, tác giả, tóm tắt, ) thuộc các đoạn text sẽ được gán với những metatags, mỗi metatag sẽ tương ứng với một lớp Quá trình đó gọi là gán nhãn text
Hình 8: Các dòng header được metatagged
Hình trên mô tả một header của tài liệu được metatagged Những đoạn text chứa thông tin về tiêu đề, tác giả ,… được đặt trong các metatags title, author ,…Hệ thống sau đó sẽ dựa vào tên các metagtags mà lấy ra dữ liệu cho phù hợp
Với cấu trúc một header của tài liệu khoa học ta thường thấy thì một dòng thuộc header thường chứa thông tin của một hay nhiều lớp metadata
Ví dụ: Trong hình 8 mỗi dòng được đánh số thứ tự và có dấu kết thúc dòng +L+
Các dòng 1, 2, 3 chứa thông tin của 1 lớp ( title, author, abstract ) còn dòng 25 chứa thông tin về 5 lớp (email, web, affiliation, address, note ).
Các dòng header theo đó được chia ra 2 loại :
Single-class line : Dòng đơn lớp: chứa thông tin một lớp dữ liệu.
Multi-class line : Dòng đa lớp: chứa thông tin về nhiều lớp dữ liệu
Multi-author line : dòng đa lớp bao gồm tên của nhiều tác giả bài viết.
Do đó để gán nhãn text vào metatags ta phải có kĩ thuật để phân loại dòng (line classification)- xác định dòng nào đơn lớp, dòng nào đa lớp để đưa vào metatags cho phù hợp
Với các dòng đa lớp, để lấy ra thông tin cho từng lớp ta cần xác định cụm từ chứa thông tin một lớp Quá trình này gọi là gom cụm / định biên (chunk indentification)
Ví dụ: Trong dòng tác giả “ Chungki Lee Jame E.Burn “ ta phải xác định biên của tên tác giả là một hay hai tác giả.
2.1.3 Phân loại dòng dựa trên thông tin ngữ cảnh
Các dòng header thường có mối liên quan ngữ cảnh với nhau Ví dụ: dòng tiltle thường là dòng đầu tiên của header, theo sau là dòng về tên tác giả, rồi đến các thông tin địa chỉ, mail, … dòng tóm tắt bao gồm nhiều dòng đơn liên tục.
Vì thế để hỗ trợ phân loại dòng vào các lớp metadata được chính xác và hiệu quả ta kết hợp thêm phương pháp đoán nhận dựa trên thông tin ngữ cảnh (contextual information) - dùng nhiều dòng liền kề đã được gán nhãn để xác định lớp cho dòng hiện tại
Tóm lại, việc trích rút thông tin của header tài liệu khoa học có 2 vấn đề chính: Phân loại dòng ( line classification ) : Xác định dòng đơn hay đa lớp sử dụng các thông tin ngữ cảnh Định biên (chunk indentification) : Xác định nhóm từ cho một lớp trong dòng đa lớp
2.2 Thuật toán trích chọn metadata
2.2.1 Phân dòng dựa trên Support Vector Machine ( SVM )
Phân loại dòng: Quá trình sắp xếp dòng vào một trong nhiều lớp xác định trước dựa trên nội dung của chúng Sự khác nhau trong kết quả phân loại, phụ thuộc vào việc lựa chọn tập đặc trưng miêu tả đối tượng cần phân loại, kết hợp với thông tin đối tượng phân loại trước liền kề
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Thời gian gần đây kĩ thuật học máy được sử dụng nhiều để phân loại Đây là phương pháp sử dụng tập huấn luyện thông qua bộ phân loại và tập đặc trưng miêu tả đối tượng để tự động phân loại đối tượng chưa biết
Cho Tập các nhãn(phân loại, lớp) C={c1,…cn} và tập đối tượng cần phân loại D={D1, D2, …} Một bộ phân loại là hàm ánh xạ K từ D tới tập tất cả các tập con của C.
Hệ thống sử dụng một tập huấn luyện – tập đối tượng được gán nhãn trước đó bởi một chuyên gia Đối tượng cần gán nhãn được miêu tả theo các đặc trưng trích chọn và bộ phân loại dựa trên tập huấn luyện để có sự phân loại tương tự
Một trong những phương pháp học máy sử dụng cho phân loại trích chọn thông tin được sử dụng nhiều là Support Vector Machine(SVM): máy vector hỗ trợ Trong đó đối tượng cần phân loại được xem là một vector trong không gian Vector có số chiều là tập các đặc trưng trích chọn SVM dựa trên Vector hỗ trợ - sinh ra bởi tập dữ liệu huấn luyện để phân loại đối tượng
Ta sẽ sử dụng phần mềm SVM_light để thực thi SVM cùng với biểu diễn đối tượng cần phân loại (ở đây là dòng) theo các đặc trưng trích chọn để phân loại, trích rút thông tin đặc trưng của tài liệu khoa học.
Xây dựng hệ thống thu thập, quản lý tài liệu khoa học dựa trên bộ mã nguồn mở CiteSeerX
Giới thiệu về CiteSeerX
Có nhiều công cụ được cộng đồng mạng phát triển hỗ trợ cho việc xây dựng hệ thống quản lý tìm kiếm và trích rút thông tin từ tài liệu và SeerSuite là một trong những bộ công cụ thông dụng được người phát triển sử dụng Nó là bộ các công cụ mã nguồn mở được viết bằng Java và được chia sẻ miễn phí tại http://www.sourgeforge.net Nó cung cấp một số dịch vụ, kĩ thuật, bộ dữ liệu và phần mềm ứng dụng hỗ trợ tạo thư viện số quản lý, tìm kiếm tài liệu như CiteSeerX, ChemXSeer, ArchSeer,…
Mỗi công cụ trong SeerSuite là một dịch vụ, module riêng rẽ có thể thực hiện các tác vụ riêng hay tích hợp vào các ứng dụng khác nhau nhằm tạo ra hệ thống quản lý lớn, hỗ trợ đa tính năng, linh hoạt, hiệu quả Các công cụ đó một số là kết quả nghiên cứu của giáo sư, giảng viên trường đại học Pennsylvania State University, một số được cộng động mạng phát triển và cung cấp miễn phí. Để có thể sử dụng và xây dựng cài đặt hệ thống quản lý tìm kiếm tài liệu khoa học dựa trên bộ mã mở SeerSuite yêu cầu người phát triển cần có những hiểu biết, kinh nghiệm về một số phần mềm ứng dụng để cài đặt, cấu hình, xây dựng các thành phần chức năng cho hệ thống.
CiteSeer là một dự án mã nguồn mở, với mục tiêu phát triển một thư viện số về các tài liệu khoa học, bao gồm search engine với khả năng tự động tìm – tải dữ liệu và đánh chỉ mục cho các tài liệu khoa học, đặc biệt là các tài liệu trong lĩnh vực công nghệ thông tin Điểm đáng chú ý của CiteSeer chính là Autonomous Citation Indexing – ACI – tập trung vào việc trích rút ra các citation ( trích dẫn ) từ những tài liệu khoa học dựa trên các khuôn mẫu tài liệu đã có Ngoài ra, CiteSeer tự động tìm kiếm và tải về máy chủ các tài liệu khoa học tồn tại trên mạng Sau khi một tài liệu mới được tải về, nó sẽ được phân tích nhằm mục đích trích rút ra được các thông tin trích dẫn và các metadata ( siêu dữ liệu – những dữ liệu quan trọng của văn bản ) của tài liệu đấy Sau đó, tài liệu và các citation được đánh chỉ mục để phục vụ cho việc truy vấn từ phía người sử dụng, thông qua giao diện truy vấn người dùng – web interface.
Từ khi dự án được bắt đầu vào năm 1997 cho đến nay, CiteSeer đã có hơn 730
000 tài liệu với hơn 8 triệu citation CiteSeer đón nhận hơn 800 000 lượt truy cập mỗi ngày, và được hơn 100 000 thành viên chính thức truy cập mỗi tháng, cũng như
4 4 xấp xỉ 30 gigabytes dữ liệu lưu thông mỗi ngày Tuy nhiên, xuất phát từ nhu cầu ngày càng tăng cao về khả năng của hệ thống và sự giới hạn của kiến trúc hiện tại đã khiến những nhà nghiên cứu và phát triển phải thiết kế một kiến trúc mới đảm bảo cho việc dễ dàng mở rộng lưu trữ và an toàn trong vận hành.
Hình 13: Kiến trúc CiteSeer Đồng thời, khi nhìn lại mục tiêu đặt ra lúc ban đầu của dự án CiteSeer đó là không chỉ phát triển một thư viện số mà còn cần phải có một nền tảng hệ thống linh hoạt, để có thể phục vụ cho nghiên cứu và phát triển các chức năng mới ( các thuật toán khai phá dữ liệu, tìm kiếm thông tin mới ) Khi có một nền tảng kiến trúc linh hoạt, các nhà nghiên cứu và phát triển đã dễ dàng khi nghiên cứu và thử nghiệm các thuật toán mới.
Nhưng với kiến trúc hiện tại của CiteSeer là kiến trúc monolithic ( nguyên khối ) đã làm giảm sự thuận tiện trong việc quản trị và sửa chữa cũng như làm tăng chi phí vận hành hệ thống Đấy cũng là lý do ra đời của kiến trúc mới – CiteSeerX.
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Dựa trên thiết kế mới về dữ liệu, CiteSeerX ra đời nhằm khắc phục những nhược điểm tồn tại trong kiến trúc cũ của CiteSeer, với những đặc tính mới :
Extended Data Models : được phát triển từ cách tiếp cận tài liệu cũ, CiteSeerX thêm vào author và venue vào trong bản ghi hệ thống Những bản ghi này sẽ ngang hàng về mặt ý nghĩa với tài liệu, và được liên kết với tài liệu.
Virtual Documents : một ý tưởng rất hay của CiteSeerX Trên thực tế, có nhiều tài liệu, ta chỉ biết tới nó thông qua danh sách các trích dẫn hay là danh sách các bài báo Và như thế, ta không thể tìm thấy những tài liệu đấy trên hệ thống Điều này dẫn tới khái niệm virtual documents, làm chức năng giữ chỗ cho những tài liệu chưa đầy đủ về nội dung, và cho phép hệ thống cập nhật lại thông tin nếu tìm thấy nội dung đầy đủ của tài liệu.
Digital Objects : để tăng sự mềm dẻo trong vấn đề xử lý các định dạng file và các kiểu lưu trữ, ta có khái niệm digital object Nó khác với các đối tượng lưu trữ vật lý của hệ thống Thay vì sử dụng trực tiếp đối tượng vật lý và chỉ có một kết nối duy nhất tới đối tượng tại một thời điểm, các digital object sẽ được tạo ra và cho phép nhiều kết nói liên kết tới các object vừa tạo Các kết nối này chỉ cho phép client read-only đối với tài liệu Bằng cách này, một nơi lưu trữ - tức là cùng một file tài liệu khoa học - có thể được sử dụng bởi nhiều client cùng một lúc.
Tính tới thời điểm này, CiteSeerX đang có hơn 1,599,903 tài liệu cùng hơn31,041,147 citations Không chỉ vậy, nó đã vươn lên đứng thứ 2 trong bảng xếp hạng của Web of World Repositories.
Hình 15: Vị trí của CiteSeerX trên Web of World Repositories
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Mô hình hệ thống của CiteSeerX
Ta sẽ tìm hiểu tổng quan về kiến trúc mới của CiteSeerX Kiến trúc mới về cơ bản gồm 3 lớp :
Storage Layer : đảm nhận việc quản lý và điều khiển truy cập tới các đối tượng lưu trữ dữ liệu trên máy chủ lưu trữ Những đối tượng này được quản lý bởi hệ thống quản lý đối tượng số Mỗi đối tượng số đi kèm theo nó một file mô tả các metadata của đối tượng nhằm tăng hiệu năng, phần lớn dữ liệu được lấy ra từ các đối tượng ( ví dụ citation graph ) sẽ được lưu trong cơ sở dữ liệu để tăng tốc độ truy
4 8 cập Còn các tài liệu đã được phân tích, sẽ được lưu ở ổ cứng dưới dạng thô, và được liên kết với các bản ghi đối tượng.
Application Layer : là tập hợp của module và server trong CiteSeerX
Naming Server : điểm nổi bật trong kiến trúc phân tán của CiteSeer X cho phép tăng hiệu năng của hệ thống bằng cách liên kết nhiều máy chủ trên mạng lại với nhau Một naming server sẽ đảm nhiệm việc phân phối yêu cầu tới máy chủ thích hợp, để tránh tình trạng quá tải ở một số máy chủ.
Logging Server : tận dụng các logging service riêng lẽ để gom lại và quản lý các file log Logging Server là nơi tạo ra và lưu trữ các file log Mỗi module đang làm việc đều có 1 logging agent làm nhiệm vụ gửi các sự kiện tới logging server.
Crawling Server : crawl dữ liệu về nơi chứa tài liệu đã được quy định trước.
Những tài liệu được xác định thuộc lĩnh vực công nghệ thông tin sẽ được chuyển sang cho Storage Access and Management Interface để chuyển vào máy chủ lưu trữ.
Storage Access and Management Interface : cung cấp giao diện liên kết tới máy chủ lưu trữ để thực hiện nhiều mục đích Đầu tiên, để có thể truy nhập ngay lập tức tới máy chủ lưu trữ, nó cung cấp một chuẩn mặc định cho các phương thức cần truy nhập vào máy chủ lưu trữ Bên cạnh đó, một bộ điều khiển sẽ điều khiển việc truy cập đến nơi lưu trữ thông tin Cuối cùng, nó đảm nhận vai trò như là một bộ định nghĩa và trả về địa chỉ của các máy chủ lưu trữ, cung cấp một cơ chế mềm dẻo để nâng cấp, cân bằng tải, và bảo trì hệ thống dữ liệu.
Application Servers : cung cấp một giao diện web cho phép người dùng có thể truy cập tới các module của hệ thống, cũng như các module của nhà cung cấp thứ 3.
User Interface Layer : cung cấp một lớp trừu tượng, đóng vai trò như một web interface của CiteSeer X và nằm giữa user interface và các application module Bằng cách này, chúng ta có nhiều giải pháp cho việc cập nhật các thuật toán mới mà không cần băn khoăn tới việc tương thích giữa giao diện người dùng với các trang cá nhân hóa của người dùng.
Bên cạnh các đề xuất về kiến trúc mới, CiteSeer X tiếp tục nâng cấp các dịch vụ đã có để tăng hiệu quả và tính thân thiện với người sử dụng Các dịch vụ mới đang được tích hợp vào hệ thống :
CiteSeer – Specific Services : những dịch vụ giá trị gia tăng, góp phần tăng thêm hiệu quả khi sử dụng Nó cho phép xử lý tìm kiếm thông qua các trích dẫn. Tập hợp của những dịch vụ này bao gồm : metadata extraction service, citation graph service, indexing service, metadata service, electronic repository service, electronic conversion service, duplicate identification
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Acknowledgement Extraction : một thuật toán mới vừa được phát triển, cho phép tự trị trong việc trích xuất acknowledgement
Distributed Usage Logging Service : ngôn ngữ dựa trên XML cho phép quản lý và tìm kiếm thông tin hoạt động của hệ thống Nó gom việc quản lý và thu thập các logfile vào một đối tượng.
MyCiteSeer : đối tượng các truy vấn nhằm mục tiêu nâng cao hiệu năng tìm kiếm Một truy vấn từ một người dùng, sẽ được dựa trên từ khóa, các sở thích của người dùng, cũng như thói quen tìm kiếm, vấn đề quan tâm trong phiên làm việc hiện tại.
Phân tích chi tiết hệ thống CiteSeerX
Ta sẽ phân tích chi tiết về kiến trúc của CiteSeerX dựa theo đặc tả về kiến trúc đã nêu ở trên.
3.1 Mô hình cơ sở dữ liệu – Storage Layer
Tài liệu khoa học là những tài liệu có cấu trúc: phần header, phần nội dung chính, phần citations và được người dùng tìm kiếm theo những thành phần cấu trúc đó Vì thế hệ thống cần tổ chức lưu trữ cho phù hợp Những đối tượng dữ liệu được quan tâm chính là :
Người dùng (user): Người đăng nhập vào hệ thống, cập nhật dữ liệu, tìm kiếm thông tin
Bài viết (paper) : Đối tượng xử lý chính, bao gồm tất cả các thông tin đặc trưng về bài viết.
Tác giả (author) : Bao gồm những thông tin về tên, địa chỉ, email, nơi xác nhận tư cách tác giả (affiliation) Mỗi tác giả đều có liên kết tới một hay nhiều bài viết
Tài liệu tham khảo (citations): Bao gồm những thông tin về tài liệu được bài viết tham khảo tới Những thông tin này là tiêu đề, tác giả, số chương, số trang, nhà xuất bản, năm xuất bản,… Mỗi tài liệu tham khảo có liên kết tới một hay nhiều bài viết
Ngoài ra còn một số đối tượng dữ liệu cần lưu trữ như url (đường link Web được dùng trong bài viết), keyword (từ khóa bài viết), checksum (mã kiểm tra tài liệu), textsource(nội dung chính tài liệu), citationcontexts(đoạn ngữ cảnh tham chiếu của bài viết),…
Theo đó CiteSeerX có mô hình cơ sở dữ liệu như sau
Hình 17: Các bảng cơ sở dữ liệu của hệ thống
Table Paper : Bao gồm các trường chứa thông tin metadata của bài viết: tiêu đề bài viết (title), nội dung tóm tắt (abstract), nhà xuất bản (publisher), năm xuất bản (Year), số trang, số chương (pages,volume), phiên bản cập nhật (VersionName),…
3 trường xác định thông tin về tài liệu tham khảo là :
Ncite: số tài liệu tham khảo của bài viết
SelfCite: số tài liệu tham khảo có cùng tên tác giả với bài viết
Ncited: số tài liệu tham khảo đên bài viết có metadata tương ứng Đây là cơ sở để đánh giá chất lượng bài viết, giúp tác giả thấy được mức độ quan tâm của cộng đồng đến bài viết của mình
Những table liên kết với với table Paper theo quan hệ một-nhiều bao gồm Author, Url, Keyword, Citations
Table Author : Chứa thông tin về tác giả : tên, địa chỉ, email, nơi xác nhận tư cách tác giả
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Abstract Year Volume Pages Publisher PublisherAdd Tech SelfCite Ncite
PK CitationID PK,FK1 PaperID
Year Pages Volume Publisher Editor Tech Self RawStrings
PK,FK2 FileName PK,FK1 PaperID
PK AuthorID PK,FK1 PaperID
PK,FK2 UserID PK,FK1 PaperID
PK CollectionID PK,FK1 UserID
Table Url : Chứa các địa chỉ url có trong bài viết, giúp hệ thống crawler dữ liệu hoặc xác định địa chỉ web cá nhân của tác giả.
Table Keywords : Từ khóa thể hiện nội dung bài viết, giúp hệ thống tìm kiếm theo từ khóa.
Table Citations : Thông tin về tài liệu tham khảo của bài viết : tên, tác giả, số trang, nhà xuất bản, đoạn ngữ cảnh tham khảo đến tài liệu Table còn có trường kiểm tra tài liệu tham khảo đó có cùng tên tác giả với bài viết không (Self).
Table User : Chứa tất cả những thông tin về người dùng đăng nhập vào hệ thống để cập nhật, tìm kiếm tài liệu Những thông tin đó là: userID, password, họ, tên, email, địa chỉ, thời gian thay đổi thông tin cá nhân(updated), quyền xử lý tài liệu (Authority): thêm/sửa lỗi, xóa, Quyền này sẽ do người quản trị cấp.
Table UserCorrection: Nếu User được quyền chỉnh sửa tài liệu thì khi tài liệu cập nhật hệ thống sẽ lưu lại sự thay đổi đó Bảng UserCorrection cung cấp thông tin về phiên bản(version) tài liệu, thời gian sửa đổi của user với một bài viết Bảng này liên kết với 2 bảng User và Paper theo quan hệ 1-1.
Table Collection : Khi người dùng muốn lưu lại những thông tin mình cần như tài liệu , đường link , thông tin metadata ,… người dùng có thể tạo ra bộ sưu tập cho riêng mình Bảng Collection sẽ chứa những thông tin đó Mỗi người dùng có một bộ sưu tập riêng nên bảng này sẽ liên kết với bảng User theo quan hệ 1-1
Table TextSource : Lưu tên file tài liệu và nội dung tài liệu
Table PaperInfo : Liên kết với 2 bảng TextSource và Paper theo quan hệ 1-1
Thông tin về thời gian thu thập tài liệu, đường dẫn tới file tài liệu có metadata và tên file tương ứng.
Table Checksum: Chứa thông tin vật lý của file tài liệu tương ứng với metadata Đó là kiểu file (pdf, ps, ) và mã SHA1(Secure Hash Algorithm) kiểm tra tình trạng file được sinh ra khi convert file sang dạng text Bảng này liên kết với bảng Paper theo quan hệ 1-1.
3.2 Các service sử dụng trong CiteSeerX - Application Layer
3.2.1 Heritrix – Tiện ích để crawl dữ liệu – Crawling Server
Heritrix là một web crawler của Internet Archive – một thư viện số phi lợi nhuận, được thành lập vào năm 1996 bởi Brewster Kahle, với mục tiêu: “mở rộng tri thức cho tất cả mọi người”
Với mục tiêu ấy, Internet Archieve đã cố gắng để tìm kiếm, lưu trữ và cho phép mọi người truy cập đến các dữ liệu đã được tìm kiếm, số hóa và lưu trữ trên server của nó, bao gồm website, nhạc, ảnh, sách Chính vì thế, nó cần một web crawler đủ mạnh và phù hợp với nhu cầu của mình, đấy cũng là lý do ra đời của Heritrix.
Heritrix là bộ mã nguồn mở và được viết trên Java Nó được giới thiệu bởi
Internet Archive và Nordic National libraries từ năm 2003 Phiên bản đầu tiên được giới thiệu đến người dùng vào tháng 1 năm 2004 và nó vẫn đang được phát triển và hoàn thiện bới đội ngũ nhân viên của Internet Archieve và các cộng tác viên. Đặc điểm chính của nó là cho phép thao tác thông qua web-GUI hoặc thao tác qua lệnh.
Về cơ bản, Heritrix được thiết kế dựa trên nền tảng của một crawler tiêu chuẩn để có thể linh hoạt trong việc thêm các class hỗ trợ nhằm đa dạng hóa tính năng cũng như chuẩn bị cho việc tương thích với các chức năng sẽ có trong tương lai. Cài đặt các thông số cho việc chạy 1 crawl đòi hỏi người dùng phải tùy chỉnh một tập các thuộc tính Trên thực tế, việc chạy 1 crawl chỉ bao gồm các bước – sẽ được lặp lại nhiều lần như sau:
1 Chọn một URI trong danh sách.
2 Lấy giá trị từ URI.
4 Lấy ra những đường dẫn từ URI và đưa nó vào danh sách.
5 Kiểm tra lại lần nữa để chắc chắn là URI đã được chạy xong và lặp lại các bước trên.
Ba thành phần quan trọng của Heritrix là Scope, Frontier, Processor Chains Chúng là thành phần không thể thiếu để định nghĩa 1 crawl.
File Converter
Tài liệu thu thập được trên web thường có các định dạng số như pdf, ps, … hoặc được nén (zip, gzip) Để giúp cho việc xử lý thông tin được hiệu quả các file tài liệu này sẽ được chuyển sang định dạng text (txt) và module file converter sẽ đảm nhiệm vai trò này.
Module sử dụng trình bao (wrapper) là bộ chuyển đổi định dạng chính.
2 bộ Converter được sử dụng là PDFLib TET (có trả phí, bản free chỉ convert được tối đa 10 trang) và PDFBox (mã nguồn mở, miễn phí)
PDFLib TET: http://www.pdflib.com/products/tet/
PDFBox: http://www.pdfbox.org/
Bộ converter được cài đặt riêng và tham chiếu vào module file converter thông qua các file config nên rất linh hoạt và dễ dàng thay đổi khi cần thiết
Trong tương lai có thể cài đặt thêm các trình chứa khác để module hỗ trợ chuyên đổi được nhiều định dạng file hơn nữa
Chạy module ở dạng command line :
Các tham số của modun :
Tham số đầu vào: textfile - Đường dẫn đến file tài liệu cần chuyển đổi dạng pdf, ps
Tham số đầu ra: File text cùng tên file tài liệu gốc và mã SHA1- mã checksum để kiểm tra tình trạng file File text sau đó sẽ được các module dịch vụ còn lại xử lý trích rút thông tin.
ParsCit
Module trích rút phần tài liệu tham khảo của bài viết và đưa ra các thông tin về tài liệu tham khảo Các thông tin đó là author (tên tác giả), title (tiêu đề bài viết), date (ngày xuất bản), year(năm xuất bản), pages (số trang), context (đoạn văn bản của bài viết tham chiếu đến tài liệu tham khảo) ,…
Module sử dụng bộ tookit CRF++ thực thi mô hình trạng thái tuyến tính vô hướng Conditional Random Fields để phân loại gán nhãn dữ liệu vào các trường tương ứng (author, title, year,pages, context ) Để hỗ trợ cho xử lý tìm kiếm, với file text tài liệu phân tích abc.txt thì ParsCit sẽ phân tách thành 2 file abc.cite chứa phần tham chiếu và abc.body chứa phần còn lại tài liệu cùng với file xml miêu tả thành phần các trường thông tin của tài liệu tham khảo File xml có dạng:
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
NAME
TITLE
JOURNAL
BOOKTITLE
TECHREPORT #
VOLUME
START—END
EDITORS
PUBLISHER
INSTITUTION
LOCATION
NOTE
MARKER
RAW CITATION STRING
File Xml sau đó được hệ thống xử lý, nạp giá trị các tag vào đối tượng lưu trữ : author, citations, … dùng cho tìm kiếm sau này
Chạy Module ở dạng Command Line : citeExtract.pl textfile [outfile]
Tham số vào- textfile: Đường dẫn tới file cần phân tích Đầu ra -outfile: Tên file xml chưa thông tin Nếu không xác định outfile ,module sẽ tự động ghi ra STDOUT.
SVM Header Parse
Module trích rút phần header của bài viết, đưa ra các thông tin đặc trưng
(metadata) của tài liệu Những thông tin đó là tiêu đề bài viết (title), thông tin về tác giả (author) bao gồm :tên (name), địa chỉ (address), nơi chứng nhận tư cách tác giả (affiliation), địa chỉ mail (email); từ khóa thể hiện nội dung bài viết (keyword), thông tin tóm tắt bài viết (abstract), thời gian công bố (date).
Mỗi thông tin tương ứng với một lớp phân loại và được module đưa vào file xml mà mỗi thành tố (element) của nó đại diện cho một lớp File xml có dạng :
File Xml sau đó được hệ thống xử lý, nạp giá trị các tag vào đối tượng lưu trữ tương ứng: author, keywords, … dùng cho tìm kiếm sau này
Chạy Module ở dạng Command Line : extractHeader.pl textfile [outfile] Đầu vào- textfile : Đường dẫn tới file text cần trích chọn Đầu ra- outfile: file xml lưu thông tin Nếu không miêu tả đầu ra, module tự động ghi ra STDOUT
3.2.2.2 Các class xử lý dữ liệu thô Đây là các class JAVA hỗ trợ việc đưa dữ liệu vào cơ sở dữ liệu Nó nhận đầu vào là file xml chứa các thông tin đặc trưng của văn bản như : header, citation, abstract… Sau khi tách riêng các trường trong file xml, các class này thông qua Storage Access and
Management Interface : lưu dữ liệu vào MySql, đồng thời đưa dữ liệu lên Solr để cập nhật dữ liệu cho search engine Solr. Để tiện cho việc sử dụng, em đã tách ra các class cần dùng vào file citeseerx.jar
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
3.2.3 Các chức năng thêm vào để hoàn thiện hệ thống
3.2.3.1 Chức năng Upload từ máy người dùng
Bộ mã nguồn mở được cung cấp bởi IST chỉ chú trọng đến việc thu thập dữ liệu dựa vào Heritrix mà không hỗ trợ người dùng upload các tài liệu của mình Nhưng trên thực tế, một số website lớn đều hạn chế hoạt động của bộ crawler, đồng thời nhu cầu của các nhà nghiên cứu, các nhà khoa học - muốn đưa các nghiên cứu khoa học của mình lên server và chia sẻ với mọi người – là thực tế và rất lớn. Điều này đặc ra vấn đề cần có chức năng hỗ trợ người dùng tải các tài liệu khoa học của mình Nó không chỉ tạo ra sự tiện lợi cho người dùng mà còn là một nguồn để thu thập tài liệu cho hệ thống.
Hình 21: Hoạt động của trang upload
Upload.jsp : hỗ trợ việc truyền từng bite của file từ client lên server, sau đấy build lại file từ các bite đã nhận được.
Run.bat : chạy các service phân tách văn bản.
Citeseerx.jar : chạy các class xử lý dữ liệu thô.
Đặt vấn đề
Rất nhiều trường hợp,người dùng không có chính xác định nghĩa về những gì mình sẽ tìm kiếm Ví dụ như trên thực tế người dùng muốn tìm “xml parsing using DOM” nhưng họ chưa có khái niệm về DOM mà chỉ muốn tìm một cách để parse file xml Khi sử dụng chức năng Auto Suggestion, chỉ cần người dùng nhập vào
“xml parsing” sẽ có một loạt kết quả hiện ra để hỗ trợ người dùng tìm kiếm tốt hơn.
Cơ sở dữ liệu
Cấu trúc của file xml lưu trữ các query phổ biến
name : query được gửi tới máy chủ. count : số lần đã được gửi tới máy chủ.
Hoạt động
Bước 1: khi người dùng nhập một từ khóa, JavaScript sẽ được gọi để lấy ra
10 giá trị trùng với những từ vừa gõ và có độ tin cậy cao nhất Độ tin cậy được đánh giá dựa vào số lần kết quả đó được gọi trong truy vấn
Bước 2: sau khi người dùng chọn 1 giá trị trong số các từ khóa gợi ý và gửi lên server, server sẽ thực hiện kiểm tra Nếu chưa có kết quả trong cơ sở dữ liệu, từ khóa vừa dùng sẽ được lưu vào cơ sở dữ liệu với name là từ khóa, count là 1 Nếu đã có trong cơ sở dữ liệu, sẽ trả về giá trị và tăng count lên thêm 1.
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
4 Giao diện và hoạt động của hệ thống
Hình 22: Giao diện hệ thống
Các tùy chọn cơ bản cho chức năng search
Hình 23: Query khi search theo Documents
Sự khác nhau là khi search theo Authors, trong query gửi tới servlet sẽ gắn thêm
“t=auth” để servlet có thể nhận biết cách search này và chuyển thêm tham số “title:” vào string gửi tới solr.
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Ngoài ra, hệ thống còn hỗ trợ người dùng duyệt trước Abstract của mỗi kết quả trước khi quyết định sẽ duyệt văn bản nào.
Hình 25: Duyệt trước Abstract của kết quả
Search có thêm tùy chọn hiển thị citation - Include Citations
Tùy chọn này cho phép liệt kê kèm mỗi kết quả các citation của nó, đồng thời sắp xếp và hiển thị số lần một citation được liên kết bởi các văn bản khác Điều này giúp người dùng có thể đánh giá độ tin cậy về mặt lý thuyết của kết quả trả về vì tài liệu tham khảo tới những citation có giá trị thì nhìn chung độ tin cậy về mặt lý thuyết của nó sẽ đáng tin.
Hình 26: Hiển thị Citations đi kèm kết quả
Search theo chế độ metadata - Advanced Search Đây là kiểu search mà dữ liệu sẽ được lấy trực tiếp từ cơ sở dữ liệu Kiểu search này có ưu điểm là cho ra kết quả gần nhất với mong muốn của người dùng, nhưng nó sẽ tăng thời gian tìm kiếm và tăng tải đối với hệ thống.
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
Hình 28: Hiển thị một văn bản
Kết quả chỉ hiển thị ra và các citation và cho phép người dùng tải về để xem tất cả nội dung của văn bản.
4.2 Hỗ trợ người dùng upload tài liệu lên máy chủ
Hình 29: Giao diện trang submit tài liệu
Hình 30: Chạy một job trong Heritrix 4.4 Chức năng Auto Suggestion
Hình 31: Chức năng Auto Suggestion
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A
CÁC KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN TRONG
1 Các kết quả đạt được
Sau khi thực hiện đồ án, một số kết quả em đạt được:
Hiểu được các khái niệm cơ bản về hệ thống tìm kiếm tài liệu cũng như kiến trúc của một hệ tìm kiếm tài liệu nói chung.
Hiểu được các khái niệm về mô hình MVC để phục vụ cho việc nghiên cứu bộ mã nguồn mở CiteSeerX.
Hiểu kiến trúc cũng như cách thức hoạt động của các service cơ bản của CiteSeerX và tích hợp thành công vào hệ thống để convert, phân tách và gán nhãn cho các trường của văn bản.
Hiểu được mô hình kiến trúc của CiteSeerX và bộ mã nguồn mở CiteSeerX cũng như hoạt động của bộ mã nguồn mở ở cả 3 lớp cơ bản Cài đặt và chạy thành công bộ mã nguồn mở CiteSeerX.
Do kinh nghiệm làm việc với Framework cũng như mã nguồn mở còn hạn chế, nên trong đồ án này vẫn còn một số hạn chế:
Hệ thống vẫn còn thiếu các chức năng để mở rộng kết quả tìm kiếm cũng như đưa ra kết quả gần nhất với mỗi người dùng.
Hệ thống chỉ hỗ trợ tài liệu tiếng Anh.
3 Hướng phát triển trong tương lai
Các hệ thống thu thập, quản lý và hỗ trợ tìm kiếm tài liệu khoa học kỹ thuật hỗ trợ tốt ngôn ngữ tiếng Việt hiện nay vẫn chưa có, đặc biệt là hỗ trợ tìm kiếm tiếng Việt theo ngữ nghĩa Với yêu cầu tiếng Việt, ta có những hướng phát triển tiếp theo như sau:
Cần có 2 server riêng, một hỗ trợ tiếng Anh và 1 hỗ trợ tiếng Việt.
Can thiệp ở bộ parsing, cụ thể là ở các service phân tách văn bản.
Can thiệp ở bộ indexing, cụ thể là solr.
Can thiệp ở các đoạn code hiển thị để support tốt mã tiếng Việt.
Ngoài ra, hệ thống cần thêm những chức năng mới để nâng cao kết quả tìm kiếmTìm kiếm theo hướng người dùng: dựa trên những thông tin về người dùng cũng như các kết quả tìm kiếm trong quá khứ để khoanh vùng kết quả, cho ra kết quả chuẩn xác hơn đối với từng người dùng.
Hỗ trợ liên kết theo Citation: từ 1 Citation có thể tìm tất cả các tài liệu liên kết tới nó Việc này sẽ giúp người dùng mở rộng hướng tìm kiếm nhưng vẫn theo chủ đề đang quan tâm.
Sinh viên thực hiện: Trần Đinh Hưng - Khóa 50 Lớp HTTT - A