Cài đặt srilm trên Ubuntu
|

Hướng dẫn cài đặt SRILM trên Ubuntu

SRILM là bộ công cụ hỗ trợ đắc lực cho chúng ta trong việc xây dựng các mô hình ngôn ngữ thống kê (Language Model), bài toán này thường được sử dụng trong nhận dạng giọng nói(auto speech recognition), gắn thẻ(statistical tagging), phân đoạn(segmentation) và dịch máy(machine translation). Bài viết này Lập trình không khó xin chia sẻ cách cài đặt SRILM trên Ubuntu.

Cài đặt srilm trên Ubuntu
Cài đặt srilm trên Ubuntu

Cài đặt srilm trên Ubuntu

Để cài đặt srilm, việc đầu tiên là bạn vào đây để download(nên download phiên bản mới nhất, hiện tại là bản 1.7.2): http://www.speech.sri.com/projects/srilm/download.html

Sau khi download xong, bạn sẽ được một file nén. Giờ chúng ta sẽ cài nó vào trong /usr/share/srilm. Do vậy, bạn hãy mở Terminal tại nơi chứa file vừa tải về mà thực thi các command dưới đây:

Do chúng ta đang thao tác trong vùng nhớ hệ điều hành nên các command phải được thực thi với quyền super user.

Tiếp theo, bạn cần sửa đường dẫn cài đặt của nó, mở Makefile trong thư mục srilm vừa giải nén và sửa như sau:

 

Sau khi quay lại Terminal, tiếp tục thực hiện các lệnh sau:

Một số lỗi khi cài đặt srilm

Xây dựng mô hình ngôn ngữ với srilm

Bạn vừa mới cài thành công srilm trên Ubuntu. Bây giờ chúng ta sẽ đi build thử một cái language model và đánh giá nó nhé. Chúng ta sẽ sử dụng ngram-count để xây language model và sử dụng ngram để đánh giá perplexity của language model sau khi xây xong.

Máy mình là Ubuntu x64 nên đường dẫn tới ngram-countngram nằm trong thư mục /usr/share/srilm/bin/i686-m64/.

Bây giờ chúng ta sẽ cần có một bộ corpus(một file chứa nhiều câu văn) và bộ từ điển từ đơn tiếng việt(vocab) để chạy thử language model. Bạn có thể download dữ liệu demo của tôi tại đây.

Bạn có thể để 2 file này ở bất cứ thư mục nào, rồi mở terminal tại đó để thực thi lệnh sau để train language model trên tập dữ liệu train.txt:

Các tham số:

  • order: chọn số gram tối đa, mặc định là 3-gram
  • gtnmin: tần suất tối thiểu của n-gram

Nếu như bước này thành công, thư mục này sẽ có thêm một file mới có tên model.arpa. File này có định dạng ARPA. Bạn có thể mở lên bằng một text editer bất kỳ để xem.

Đánh giá language model có hoạt động tốt không trên tập dữ liệu mới test.txt như sau:

Sau đó bạn mở file eval.out để xem kết quả. Câu có điểm perplexity càng thấp thì chứng tỏ language model của chúng ta là tốt với câu đó. Kéo xuống cuối file để xem perplexity của cả tập test.

Giảm kích thước của language model

– Để giảm kích thước lưu trữ trên máy tính, bạn hãy lưu language model ở dạng file nén, srilm hỗ trợ việc đọc/ghi file nén cho bạn luôn, bạn chỉ cần chỉ định output model có đuôi .gz là được:

– Bạn cũng có thể ghi LM file ở dạng binary bằng cách sau:

– Đặc biệt, khi train lm thì output của file thường rất lớn dẫn đến việc khó khăn hoặc không thể deploy ở các máy cấu hình yếu, khi đó bạn có thể xem xét việc cắt tỉa file lm của mình như sau:

Ở đây 1e-8 là con số mình minh họa, bạn có thể tăng/giảm nó để có được kích thước lm phù hợp. Tất nhiên là việc cắt tỉa này sẽ ảnh hưởng đến một chút tới perplexity nhưng đôi khi ta cần đánh đổi.

Tài liệu tham khảo thêm

  1. http://www.speech.sri.com/projects/srilm/manpages/ngram-count.1.html
  2. http://idiom.ucsd.edu/~rlevy/teaching/2015winter/lign165/lectures/lecture13/lecture13_ngrams_with_SRILM.pdf

Chúc các bạn thành công!

Similar Posts

Subscribe
Notify of
guest
1 Bình luận
Inline Feedbacks
View all comments