Bài toán lựa chọn phản biện cho bài báo (RAP) được mô hình hóa như sau: Mỗi phản biện Ri được đặc trưng bởi tập các từ khóa { 1, 2,..., }
i im i
i R R
R , (i = 1,2,…, M); bài
báo P được đặc trưng bởi các từ khóa {P1,P2,...,Pn}. Theo cách tiếp cận này, chúng tôi đưa ra khoảng cách chuyên môn làm thước đo trong lựa chọn phản biện, khoảng cách chuyên môn giữa phản biện Ri được xác định là
Max c
d i 1
nếu phản biện Ri có chung với bài báo P ít nhất một từ khóa, trong đó ci là số lượng từ khóa dùng chung giữa Ri
và P, Max là hằng số dương lớn tùy ý, thông thường chọn Max >> ci; d là một hằng số dương và chọn sao cho 0<d<1. RAP tìm phản biện Rk sao cho:
) , ( min ) , (R P 1 D R P
D k iM i và thỏa mãn D(Rk,P)d,Rk Dk, ở đây Dk là miền ràng buộc mà Rk phải thỏa mãn như: các ràng buộc về tính sẵn sàng hoặc là các điều kiện
về số lượng tối đa bài báo dành cho mỗi phản biện,….
Việc xác định các từ khóa dùng chung giữa phản biện và bài báo một cách chính xác hay các từ khóa được định nghĩa từ trước thì ta có thể sử dụng các thuật toán so khớp đã trình bày ở mục 1.2.1 và mục 1.2.2, trong trường hợp này đã có nhiều kết quả được công bố như đã trình bày ở phần tổng quan (mục 1.1). Tuy nhiên, trong trường hợp các từ khóa là không được định nghĩa trước trong cơ sở dữ liệu, các từ khóa giữa phản biện và bài báo có thể giống nhau về nội dung nhưng lại khác nhau về hình thái từ khi đó sử dụng thuật toán so khớp mẫu chính xác sẽ không mang lại hiệu quả mà thay vào đó ta sẽ sử dụng các phương pháp tìm kiếm xấp xỉ.
Trước hết chúng tôi định nghĩa từ khóa được gọi là từ dùng chung giữa phản biện và bài báo như sau: Với hằng số dương e cho trước, nếu khoảng cách Edit giữa từ khóa bài báo Pk và từ khóa phản biện Rij không lớn hơn e thì từ khóa đó được gọi là từ khóa chung giữa bài báo và phản biện Rij. Như vậy, bài toán đặt ra là tìm kiếm xấp xỉ
sự xuất hiện của một mẫu trong văn bản với sai số cho phép là e ký tự. Ví dụ cho từ khóa bái báo là Matching và d = 0.5, các từ khóa phản biện được cho trong Bảng 1
ReviewerID Keyword
1 Matching
2 Random sequence
1 Paper reviewer assignment 3 Machanics
2 Machining
1 Dynamic programming
Bảng 1: Các từ khóa của phản biện (ReviewerKeyword)
ReviewerID Expertise distance
1 0.5
2 x
3 x
Bảng 2: Khoảng cách chuyên môn (ExpertiseDistance)
Thuật toán thực hiện 2 việc chính, việc thứ nhất là tính toán khoảng cách chuyên môn và phần thứ 2 là thực hiện tìm kiếm, kết quả tìm kiếm là những phản biện có khoảng cách chuyên môn nhỏ nhất và thỏa mãn các điều kiện ràng buộc của bài toán đặt ra. Thuật toán được mô tả như sau:
Thuật toán tìm kiếm xấp xỉ
Input:P, R,e,d, Max, Sum= M i i m 1
Output: Return reviewer Rk that satifies (1)
struct ReviewerKeyword {
int ReviewerID;
char Keyword [Length];
};
struct ExpertiseDistance {
int ReviewerID; double Distance; };
struct ReviewerKeyword RK[Sum]; struct ExpertiseDistance ED[M];
int ApproximateSearching(P, R,e,d, Max){ for (int i = 1; i <= M; i++)
ED(i). Distance=Max;
for (int i = 1; i <= Sum; i++)
for (int j = 1; j <= n; j++){
= Edit_distance(Pj, RK(i). Keyword);
if ( <=e){
Finding k such that ED(k). ReviewerID is equal RK(i). ReviewerID;
if (ED(k). Distance>d) ED(k). Distance=d; Else
ED(k). Distance= ED(k). Distance-1/Max Break;
} }
Finding k such that ED(k).Distance =min1≤i≤M{ED(i).Distance} and satisfying the
constraints in (1).
return ED(k).ReviewerID; }
Trong trường hợp hình thái từ khóa của phản biện và từ khóa bài báo có sự thay đổi nhưng có cùng ý nghĩa hay mô tả cùng một chủ đề, khi đó chúng tôi phân tách các từ khóa bài báo thành các từ đơn. Ví dụ: Từ khóa bài báo là “string matching” và từ khóa phản biện là “pattern matching”, các từ khóa này cùng mô tả một nội dung là kỹ thuật so khớp. Tuy nhiên, nếu tính khoảng cách chuyên môn của phản biện và bài báo bằng khoảng cách Edit thì khoảng cách này sẽ là 5. Nếu e <5 thì kết quả của thuật toán cho thấy không có sự liên quan nào giữa bài báo và phản biện. Vì vậy, để khắc phục hạn chế này chúng tôi sử dụng thuật toán sau:
Algorithm 5: Modified version of algorithm 4 for Approximate searching int ApproximateSearching(P, R,e,d, µ, Max){
for (int i = 1; i <= M; i++)
ED(i). Distance=Max;
for (int i = 1; i <= Sum; i++)
for (int j = 1; j <= n; j++){
= Edit_distance(Pj, RK(i). Keyword);
if ( <=e){
Finding k such that ED(k). ReviewerID is equal RK(i). ReviewerID;
if (ED(k). Distance>d) ED(k). Distance=d; Else
ED(k). Distance= ED(k). Distance-1/Max; Break;
} else{
If(Pj is substring of RK(i). Keyword
or RK(i). Keyword is substring of Pj){
if (ED(k). Distance> µ) ED(k). Distance= µ; Else
ED(k). Distance= ED(k). Distance-1/Max Break;
} }
Finding k such that ED(k).Distance =min1≤i≤M{ED(i).Distance} and satisfying
constraints
D(Rk,P)≤µ and Rk∊ Dk;
return ED(k).ReviewerID; }
Trong Thuật toán này, chúng tôi sử dụng tham số µ thay thế d trong trường hợp hình thái từ khóa có sự thay đổi mà và d là đại lượng thỏa mãn 0<d<µ<1. Khi tìm kiếm sự xuất hiện của Pj trong RK(i). Keyword hoặc sự xuất hiện của RK(i).
Keyword trong Pj, chúng tôi sử dụng thuật toán so khớp như đã trình bày trong mục 1.2.1 và mục 1.2.2.
Sau đây chúng tôi trình bày một số kết quả thử nghiệm cho thuật toán nhằm minh họa và khẳng định tính đúng đắn cho thuật toán: Đặt e=2, μ = 0.5, d=0.1 và Max=10000. Bài báo có các từ khóa là {Pattern matching; Dynamic programming; Edit distance; Reviewer keyword; paper reviewer assignment}. Bảng RK được cho như sau:
Table -3: Example to illustrate algorithm
Reviewer ReviewerID Keyword
R1 1 Machine learning 1 Dynamic programming 1 Random sequence R2 2 Clinical Document Architecture 2 Drug bills 2 String matching R3 3 Soft computing 3 Artificial neural network R4 4 String matching 4 Paper reviewer assignment 4 Dynamic programming 4 Neural network 4 Reviewer’s keyword Bảng 3: Bảng RK minh họa thuật toán Các kết quả tinh toán được cho trong bảng sau
ReviewerID Expertise
distance Relevance keywords
4 0.0998 Paper reviewer assignment; Dynamic programming, Reviewer’s keyword 1 0.1000 Dynamic programming 2 0.5000 String matching
Bảng 4: Kết quả thực hiện thuật toán
Sau khi tính toán, thuật toán trả về kết quả các ứng viên là R4, R1, R2. R4 phủ 3 trong 5 từ khóa của bài báo và có khoảng cách chuyên môn là 0.0998, đây là khoảng cách nhỏ nhất trong tập các khoảng cách chuyên môn. Vậy bài báo sẽ được gán cho phản biện R4. Nếu R4 không thỏa mãn các điều kiện ràng buộc như bận hoặc đã đủ số lượng bài báo để phản biện thì thuật toán sẽ xét tới R1 (R4∉D4). Nếu R1∉D1 thì thuật toán xét tới R2, Nếu R2∉D2 thì kết quả sẽ không có phản biện để phản biện bài báo.
Một vấn đề đặt ra là nếu có nhiều phản biện có cùng khoảng cách chuyên môn với bài báo thì bài báo sẽ được gán cho phản biện có số lượng từ khóa ít hơn vì xác suất bận cho phản biện các bài báo khác đối với phản biện này là thấp hơn.