2013-02-07 27 views
5

Hiện tại Mahout 0.8-SNAPSHOT bao gồm một phiên bản Variational Bayes (cvb) cho mô hình chủ đề và loại bỏ phương pháp phân tích gián tiếp Dirichlet (lda), vì cvb có thể được song song theo cách tốt hơn. Rất tiếc, chỉ có tài liệu cho lda về cách chạy một ví dụ và tạo ra kết quả có ý nghĩa.Chạy cvb trong mahout 0.8

Vì vậy, tôi muốn:

  • preprocess một số văn bản một cách chính xác
  • chạy phiên bản cvb0_local của CVB
  • kiểm tra kết quả bằng cách nhìn vào dòng chữ n hàng đầu tại mỗi trong những chủ đề được tạo ra

Trả lời

12

Vì vậy, đây là các lệnh Mahout tiếp theo mà tôi phải gọi trong trình bao Linux để thực hiện. $ MAHOUT_HOME điểm vào thư mục mahout/bin của tôi.

$MAHOUT_HOME/mahout seqdirectory \ 
    -i path/to/directory/with/texts \ 
    -o out/sequenced 

$MAHOUT_HOME/mahout seq2sparse -i out/sequenced \ 
    -o out/sparseVectors \ 
    --namedVector \ 
    -wt tf 

$MAHOUT_HOME/mahout rowid \ 
    -i out/sparseVectors/tf-vectors/ \ 
    -o out/matrix 

$MAHOUT_HOME/mahout cvb0_local \ 
    -i out/matrix/matrix \ 
    -d out/sparseVectors/dictionary.file-0 \ 
    -a 0.5 \ 
    -top 4 -do out/cvb/do_out \ 
    -to out/cvb/to_out 

Kiểm tra đầu ra bằng cách hiển thị 10 từ đầu mỗi chủ đề:

$MAHOUT_HOME/mahout vectordump \ 
    -i out/cvb/to_out \ 
    --dictionary out/sparseVectors/dictionary.file-0 \ 
    --dictionaryType sequencefile \ 
    --vectorSize 10 \ 
    -sort out/cvb/to_out 
+0

có cách nào để retrive eache chủ đề documen ts? hoặc cách khác, để lấy lại chủ đề tài liệu? –

3

Nhờ JoKnopp cho các lệnh chi tiết.

Nếu bạn nhận được: Exception in thread "main" java.lang.ClassCastException: java.lang.Integer không thể được đúc để java.lang.String

bạn cần phải thêm các tùy chọn dòng lệnh "maxIterations" : --maxIterations (-m) maxIterations

tôi sử dụng -m 20 và nó hoạt động

tham khảo: https://issues.apache.org/jira/browse/MAHOUT-1141

Các vấn đề liên quan