Thuật toán lọc cộng tác đơn giản CFAlgorithm

Một phần của tài liệu Tư vấn học tập trong giáo dục điện tử (Trang 46)

Mô ̣t trong nhữn bước đầu tiên để thực hiê ̣n mô ̣t thuâ ̣t toán trong E- Recommender là tạo ra một lớp mới để thực thi giao diện thuật toán CFAlgorithm . Giao diê ̣n này c ó 3 phương thức mà E-Recommender sử du ̣ng để đoán đánh giá hoă ̣c lấy các tư vấn. Những phương thức này là:

public interface CFAlgorithm {

public ItemPrediction predictRating(int SinhvienID, int MonhocID) throws CFNotImplementedException;

public ItemPrediction[] getRecommendations(int activeSinhvien, int n) throws SQLException, CFNotImplementedException;

public ItemPrediction[] getRecommendationsByType(int activeSinhvien,

int n,int Bomon) throws SQLException, CFNotImplementedException;

public void updateUser(int SinhvienID) throws CFNotImplementedException;

public long getAveragePredictionTime() throws CFNotImplementedException; public String toString();

}

Nếu thuâ ̣t toán không được thực hiê ̣n mô ̣t trong các phương thức trên trong giao diê ̣n , phương thức đó được trả về a CFNotImplementedException. Thuật đoán được thực hiê ̣n trong gói org.recommender.algorithms.

4.3.1.1. Dƣ̣ đoán mô ̣t Đánh giá

ItemPrediction predictRating(int SinhvienID, int MonhocID)

throws CFNotImplementedException;

Phương thức này trả về mô ̣t đối tượng chứa giá tri ̣ mà thuâ ̣t toán đoán trước mô ̣t sinh viên sẽ đánh giá mô ̣t khóa học. Sinh viên được xác đi ̣nh bằng SinhvienID , và khóa ho ̣c được xác đi ̣nh bằng MonhocID . Đó là những trường nhâ ̣n biết duy nhất cho sinh viên và khóa học trong hê ̣ tư vấn E-Recommender

Dữ liê ̣u đang thực hiê ̣n sẽ được giới ha ̣n bới giá tri ̣ đánh giá lớn nhất và nhỏ nhất (đươ ̣c xác đi ̣nh qua đối tượng RatingData ), và giá trị được đoán phải nằm trong khoảng này

Đánh giá được đoán trước được trả về theo SinhvienID và MonhocID trong mô ̣t đối tươ ̣ng ItemPrediction.

4.3.1.2. Lấy Top-N tƣ vấn

ItemPrediction[] getRecommendations(int activeSinhvien, int n)

Phương thức này trả về mô ̣t mảng các đối tượng ItemPrediction. Mảng sẽ đươ ̣c lưu trữ bằng cách xếp loa ̣i của khóa học. Nếu thuâ ̣t tón không đưa ra N tư vấn thì nó trả về một mạng có giá trị nhỏ hơn . Nếu thuâ ̣t toán có thể dự đoán đánh giá , mỗi đối tươ ̣ng ItemPrediction trong mảng sẽ có đáng giá đã được dự đoán cho viê ̣c tư vấn.

4.3.1.3. Lấy Top-N tƣ vấn theo Bộ môn

ItemPrediction[] getRecommendationsByType(int activeSinhvien, int n, int Bomon)

throws SQLException, CFNotImplementedException;

Phương thức này giống như phương thức getRecommendations(), Ngoại trừ nó sẽ có một b iến Integer go ̣i là BomonID. Trong Hệ tư vấn này , các khóa học được nhóm vào theo từng bộ môn . Giá trị trả về của phương thức này giống như của

getRecommendations()nhưng tất cả tư vấn phải là cùng Bô ̣ môn đã được đưa ra.

4.3.1.4. Cập nhâ ̣t sinh viên

void updateUser(int SinhvienID)

Hê ̣ tư vấn go ̣i phương thức này khi mô ̣t sinh viên được chỉnh sửa bằng cách thêm, xóa và chỉnh sửa một đánh giá.

4.3.1.5. Thờ i gian dƣ̣ đoán trung bình

long getAveragePredictionTime()

Phương thức này rất có ích để kiểm thử , nó trả về kết quả thời gian trung bình khi mô ̣t có mô ̣t dự đoán được ta ̣o ra . Điều này dễ dàng được thực hiê ̣n theo đoa ̣n code dưới đây:

public class YourAlgorithm implements CFAlgorithm {

private long NumPredictions = 0; private long Time = 0;

public ItemPrediction predictRating(int activeSinhvien, int Monhoc) throws CFNotImplementedException {

long startTime = System.currentTimeMillis(); ...

long stopTime = System.currentTimeMillis(); NumPredictions++;

Time += (stopTime - startTime); return predictedRating;

}

public long getAveragePredictionTime() throws CFNotImplementedException { return (Time / NumPredictions);

}

}

Một phần của tài liệu Tư vấn học tập trong giáo dục điện tử (Trang 46)

Tải bản đầy đủ (PDF)

(64 trang)