LDA với Gibbs samppling

Một phần của tài liệu Đồ án: Mô hình Mapreduce và ứng dụng của Bigdata (Trang 57 - 59)

Nhƣ trong chƣơng 3 đã nĩi về các phƣơng án thực hiện MapReduce thì thấy phƣơng án thứ 2 tốt hơn. Và do thời gian khơng đủ đề cài đặt cả hai phƣơng án, nên em đã chọn cài đặt hƣớng tiếp cận tồn bộ (chiến lƣợc thứ 2) để giải quyết bài tốn lấy mẫu Gibbs cho LDA.

Cấu trúc dữ liệu mới cho bài tốn này đƣợc xây dựng nhƣ sau:

public class Document implements Writable {

public int[] content; //Nội dung của văn bản dưới dạng vector

}

Cấu trúc này tuy đơn giản nhƣng là bắt buộc vì Hadoop chỉ làm việc với kiểu dữ liệu cài đặt từ giao diện Writable. Sau đĩ, lớp này sẽ mơ hình cho một tài liệu. Các tài liệu này đƣợc lƣu vào trong Sequence File với định dạng key/value, trong đĩ key là số thứ tự của văn bản trong tập văn bản, value là tài liệu dƣới định dạng lớp Document.

Dữ liệu trung gian, cũng cần đƣợc bao gĩi trong lớp:

public class PhiTheta implements Writable {

public double[][] phi; //Phân phối chủ đề và từ

public double[] theta; //Phân phối chủ đề cho văn bản hiện tại

}

Nội dung của hai hàm map/reduce: Hàm map:

void map(IntWritable key, Ducument value,

OutputCollector<IntWritable, PhiTheta> output, Reporter reporter) Hầu hết các cơng việc của thuật tốn lấy mẫu Gibbs, bao gồm:

 Khởi tạo biến đếm cho văn bản thứ key

 Lặp cho tới khi các tham số hội tụ trong khuơn khổ của từng văn bản.  Ghi các kết quả này ra.

Hàm reduce:

void reduce(IntWritable key, Iterator< PhiTheta > values,

OutputCollector< IntWritable, PhiThetaSum > output, Reporter reporter)

Trong đĩ PhiThetaSum là lớp bao của Phi và Theta. Hàm reduce thực hiện các chức năng chính sau:

 Tính trung bình cộng của các phi

 Gộp các theta cho từng văn bản lại thành một mảng lớn  Ghi kết quả ra ngồi.

Nhƣ vậy việc áp dụng mơ hình MapReduce vào các thuật tốn đã cĩ cách cài đặt cụ thể. Chƣơng sau em chạy ví dụ các đoạn code chƣơng trình này cùng với việc so sánh và đánh giá hiệu năng.

Một phần của tài liệu Đồ án: Mô hình Mapreduce và ứng dụng của Bigdata (Trang 57 - 59)