Phân tích thiết kế

Một phần của tài liệu ĐÁNH GIÁ NĂNG LỰC NGHIÊN CỨU CỦA CÁ NHÂN, TỔ CHỨC DỰA TRÊN PHÂN TÍCH, TÍNH TOÁN CÁC CHỈ SỐ KHOA HỌC (Trang 131 - 138)

Để thu thập dữ liệu chỉ mục cần thiết, đề tài đã xây dựng một chương trình web crawler. Về cơ bản, web crawler này tương tự như web crawler ở phần

trên và sử dụng lại nhiều ý tưởng cũng như các đoạn mã chức năng. Tuy nhiên, do dữ liệu nhập và mục đích khác nhau nên vẫn có một số điểm khác biệt quan trọng trong thiết kế và cài đặt.

Cũng như web crawler ở phần trên, web crawler ở đây là một dạng crawler tập trung, và là dạng crawler cho deep web. Những dữ liệu chỉ mục cần lấy liên quan đến nhiều giảng viên khác nhau được phân bố hỗn độn trên MAS nên cách tốt nhất để tiến hành lấy dữ liệu là sử dụng chức năng tìm kiếm của MAS. Để sử dụng chức năng này, chương trình sẽ dùng dữ liệu đầu vào là danh sách giảng viên, kết hợp với các mẫu được định nghĩa trước để sinh ra các url truy vấn máy tìm kiếm của MAS, các kết quả trả về sẽ được trích xuất và lưu xuống cơ sở dữ liệu, sau đó sẽ được xử lý tiếp.

Để nâng cao hiệu quả hoạt động, chương trình sẽ sử dụng chức năng tìm kiếm nâng cao theo tên tác giả trong lĩnh vực cụ thể là khoa học máy tính (Computer Science) để hạn chế nhầm lẫn với các kết quả khác. Ngoài ra, chương trình còn sử dụng chức năng gợi ý tác giả của MAS. Khi sử dụng chức năng này, trong kết quả trả về sẽ có gợi ý các tác giả tương ứng với từ khóa tìm kiếm, chương trình sẽ trích xuất danh sách các tác giả này lưu lại. Sau đó người dùng sẽ kiểm tra bằng tay và chọn lọc giữ lại các tác giả cần quan tâm, bỏ qua các tác giả trùng trên.

Dựa trên danh sách tác giả sau khi chọn lọc, chương trình sẽ thu thập dữ liệu chỉ mục liên quan đến các tác giả trên MAS và lưu trữ xuống cơ sở dữ liệu. Sau khi đã hoàn tất việc thu thập, dữ liệu chỉ mục này sẽ được dùng để tính toán các chỉ số. Sau khi tính toán xong, người dùng sẽ kiểm tra lại bằng tay các bài báo nằm trong Hirsch core và trong các nhóm đầu khác, việc kiểm tra sau này là để giảm thiểu số lượng dữ liệu cần kiểm tra mà vẫn bảo đảm độ chính xác.

Đối tượng tìm kiếm ban đầu của chương trình là các tác giả, sau đó sẽ duyệt danh sách tác giả để lấy danh sách bài viết, sau đó sẽ duyệt danh sách bài viết để lấy dữ liệu chỉ mục, các đối tượng khác sẽ được lấy dựa trên sự liên kết đến từng bài viết, ví dụ như mối quan hệ được viết bởi, mối quan hệ xuất bản tại…

Để các chỉ số đánh giá hoạt động hiệu quả thì dữ liệu càng chính xác càng tốt. Dữ liệu chỉ mục thu thập trong trường hợp này không quá lớn nên sẽ được kiểm tra bằng tay nhiều lần. Thuật giải của quy trình thu thập dữ liệu như sau:

Bảng 5.2 – Thuật giải của quy trình thu thập dữ liệu.

/**

* Thuật toán chạy Crawler lấy dữ liệu trên MAS theo hướng duyệt Author.

* @author Nghiep

* Date created: 18-08-2011 */

Input:

- Org, Author in Org. - URL patterns

Output:

- Dữ liệu publication, author, organization, conference, journal,

keyword với sự kết nối ngữ nghĩa với nhau và với subdomain, domain. Note:

- Khi thử nghiệm các độ đo, dữ liệu càng chính xác càng tốt.

- Có một vấn đề chung mà các quá trình thu thập dữ liệu luôn gặp phải, đó là độ chính xác, vấn đề nổi bật nhất là các tác giả trùng tên.

- Để giải quyết vấn đề này, cũng như hầu hết các nhóm nghiên cứu khác trên thế giới, tác giả sẽ sử dụng cơ chế bán tự động trong đó người dùng sẽ kiểm tra lại bằng tay kết quả thu thập dữ liệu.

BEGIN

* Bước 1: Lấy danh sách Org từ DB.

- Với mỗi Org: lấy danh sách Author tương ứng từ DB.

- Với mỗi Author: query MAS: Lấy danh sách suggested authors:

- Nếu không có suggested author nào thì coi như author đó không có bài báo nào, chuyển sang author tiếp theo.

- Nếu có thì:

- Duyệt qua tất cả các suggested author:

- Đi đến trang chi tiết của mỗi tác giả đề xuất:

- Lưu các instances của tác giả đang xét.

* Bước 2: Kiểm tra các instance của các tác giả.

* Bước 3: Lấy danh sách authorinstance từ DB.

- Đi đến trang chi tiết của mỗi tác giả đề xuất:

- Lấy số lượng publication.

- Duyệt qua trang danh sách publication, lấy danh sách các publication.

- Duyệt qua các publication.

- Lưu hết dữ liệu liên quan đến các publication trong publication list: tác giả nằm trong authorinstance sẽ được coi như chính là tác giả đại diện, không cần lưu, author_paper sẽ lưu theo tác giả đại diện. Các tác giả khác lưu bình thường.

* Bước 4: Kiểm tra toàn bộ dữ liệu.

END

Trong quy trình trên, bước hai và bước bốn sẽ được thực hiện bằng tay, chương trình web crawler sẽ thực hiện bước một và bước ba.

Mô hình hoạt động của chương trình ở bước một như sau:

Mô hình hoạt động của chương trình ở bước ba như sau:

Trong mỗi bước một và bước ba của chương trình, quá trình thu thập dữ liệu có thể chia làm 4 bước nhỏ như sau:

MAS Dữ liệu chỉ mục Nội dung html Các mẫu Xử lý Danh sách url URL query Phân tích html Dữ liệu danh sách tác giả trên MAS MAS Dữ liệu danh sách tác giả trên MAS Nội dung html Các mẫu Xử lý Danh sách url URL query Phân tích html Dữ liệu danh sách tổ chức, tác giả

Hình 5.2 – Mô hình hoạt động của chương trình ở bước một.

Từ danh sách đầu vào, sử dụng các pattern đã định nghĩa trước, chương trình sinh ra các url nền tảng để tìm kiếm tác giả trên MAS ở bước một, hay để duyệt qua các bài viết của các tác giả ở bước ba.

Bước nhỏ 2: Tải các trang html.

Chương trình sẽ tải các trang html kết quả tìm kiếm ở bước một, hay các trang thông tin đối tượng ở bước ba.

Ở các trang html kết quả tìm kiếm, dữ liệu html về gợi ý tác giả chỉ được sinh ra sau khi trang html đã được tải về hoàn chỉnh bằng JavaScript theo cơ chế AJAX, vì vậy không thể lấy dữ liệu này bằng cách tải trang thông thường. Muốn lấy được dữ liệu gợi ý này phải xử lý được JavaScript và AJAX của trang html ban đầu, cách giải quyết vấn đề này sẽ được trình bày trong phần cài đặt.

Các trang thông tin đối tượng sẽ được tải bình thường như web crawler ở phần trên.

Bước nhỏ 3: Phân tích các trang html.

Khi đã nhận được các trang html, chương trình sẽ tiến hành phân tích nội dung html để lấy các dữ liệu cần thiết. Quá trình phân tích được thực hiện dựa vào các pattern của trang html được xác định dựa vào việc phân tích bằng tay các trang html mẫu. Quá trình phân tích các trang html này cũng sẽ trích ra các url cần thiết, bổ sung chúng vào danh sách các url sẽ request tiếp theo.

Bước nhỏ 4: Lưu dữ liệu.

Sau khi thu nhận được dữ liệu cần thiết, chương trình sẽ lưu chúng vào cơ sở dữ liệu để sử dụng sau ở các bước tiếp theo.

Ngoài các mẫu url được sử dụng trong chương trình web crawler ở phần trên, còn có các mẫu url sau:

Bảng 5.3 – Các mẫu url được dùng trong crawler.

STT Mẫu url Giải thích

2&s=0&query=author%

3a%28 giả. Trong đó searchdomain=2 tức là tìm kiếm trong lĩnh vực computer science, s=0 tức là có gợi ý.

Ví dụ:

http://academic.research.microsoft.com/Searc h?searchdomain=2&s=0&query=author%3a %28Hoang%20Van%20Kiem%29

2. %29 Phần cuối của mẫu url tìm kiếm nâng cao tác giả.

3. /Detail?entitytype=2&se

archtype=2&id= Mẫu url dùng để duyệt danh sách các bài báo của của một tác giả. Ví dụ: Thêm id = 9187431 để có địa chỉ url của trang duyệt danh sách các bài báo của của tác giả Hoang Van Kiem:

http://academic.research.microsoft.com/Detai l?entitytype=2&searchtype=2&id=9187431 Ngoài các mẫu pattern được sử dụng trong chương trình web crawler ở phần trên, còn có các mẫu pattern sau:

Bảng 5.4 – Các mẫu dùng trong phân tích html để lấy dữ liệu.

STT Tên Mẫu Giải thích

1. SUGGESTED_ AUTHOR_DIV _ID

ctl00_divSearchSu

ggestion Id thẻ div chứa thông tin gợi ý trong trang kết quả tìm kiếm. Chương trình web crawler này cũng sẽ sử dụng chung thiết kế cơ sở dữ liệu với web crawler ở phần trên. Sơ đồ ERD của cơ sở dữ liệu được thiết kế trong công cụ MySQL Workbench như sau:

Trong cơ sở dữ liệu này, bảng AuthorInstance sẽ lưu các dữ liệu về gợi ý tác giả thu được ở bước một của quy trình thu thập dữ liệu. Người dùng sẽ xóa các bản ghi không đúng đi để chương trình tiếp tục bước ba. Các dữ liệu khác được lưu giống như cũ.

Một phần của tài liệu ĐÁNH GIÁ NĂNG LỰC NGHIÊN CỨU CỦA CÁ NHÂN, TỔ CHỨC DỰA TRÊN PHÂN TÍCH, TÍNH TOÁN CÁC CHỈ SỐ KHOA HỌC (Trang 131 - 138)