Install SRILM on Windows

-Please scroll down for English-

SRILM là 1 toolkit khá nổi trong việc huấn luyện các mô hình ngôn ngữ n-gram. Có 2 hệ điều hành mình đã thử:

  • Linux: Xem tại đây.
  • Window: Sử dụng cyqwin để cài đặt, sau 4,5 lần tháo ra rồi cài vào thì đã nắm được bí quyết. Hệ điều hành Window 10.

Bài viết này sẽ hướng dẫn cách bạn cài đặt cyqwin (1 dạng giả lập Linux) để chạy SRILM trên Window. Các nguyên vật liệu cần chuẩn bị:

  1. Download SRILM phiên bản mới nhất.
  2. Download cyqwin, lưu ý kĩ 32 hay 64 bit.
  3. Ổ C dư khoảng 1GB đổ lại (chỉ là đề phòng thôi, chứ tốn khoảng chừng 500MB là max)
  4. Ổ D/E dư khoảng 1GB (là nơi để chứa các package của cyqwin được down về)

 

Mặc định nơi down Cyqwin (32 bit) là ổ D, bạn sẽ có file thực thi tên setup-x86.exe. Đây là file sẽ giúp bạn cài đặt cyqwin, sau này muốn cài thêm package mới thì cũng cài bằng nó luôn nhé.

  1. DOWN CYQWIN VÀ PACKAGES:
  • Choose a download source: Install from Internet -> Next
  • Root Directory, mặc định là C:/cyqwin. Mình sẽ giữ y chang, bạn có thể đổi tùy ý -> Next
  • Local Package Directory: nơi sẽ chứa các package down về. Mình chọn ổ D -> Next.
  • Select Your Internet Connection: Direct Connection -> Next.
  •  Choose a download site: chọn trang để down package về. Mỗi trang sẽ có những default package khác nhau. Mình chọn http://mirrors.kernel.org -> Next.
  • Select Packages: bạn cần chọn thêm những package sau: binutils, bzip2, cyqwin, cyqwin-devel, gawk, gcc-core, gcc-g++, gzip, libargp, libcharset1, libiconv, libiconv-devel, libiconv2, make, tar, tcl, tcl-devel, tcl-tk, tcl-tk-devel, tcsh, xz, zlib-devel, zib0. Những package nếu được chọn sẽ có version ở phía trước tên nó -> Next.
  • Resolving Dependencies: Mục này sẽ có nếu package bạn chọn cần cài thêm những package khác mới chạy được. Đánh dấu chọn vào mục “Select required packages(RECOMMEND)” -> Next.
  • Lấy sách ra đọc đợi tới khi down xong.
  • Chọn create shortcut icon để tiện mở chương trình.

2) THIẾT LẬP CYQWIN:

  • Mở Cygwin Terminal. Nó sẽ tạo các file ‘.bash_profile’, ‘.bashrc’, ‘.inputrc’  trong đường dẫn ‘C:\cyqwin\home\yourname\’
  • Gõ lệnh sau:
$ cd /
$ mkdir srilm  // tạo thư mục tên 'srilm'
$ cd srilm
  • Copy file ‘srilm-1.7.1.tar.gz’ vào đường dẫn ‘C:\cyqwin\srilm’. Sau đó giải nén bằng dòng sau:
$ tar zxvf srilm-1.7.1.tar.gz
  • Vào ‘C:\cyqwin\home\yourname\.bashrc’, thêm mấy dòng sau vào đầu file rồi save lại:
export SRILM=/srilm
export MACHINE_TYPE=cyqwin
export PATH=$PATH:$pwd:$SRILM/bin/cygwin
export MANPATH=$MANPATH:$SRILM/man
  • Restart Cyqwin.

Theo hướng dẫn chính thức, khi download các package, Cyqwin đã tự động cài đặt chúng và bạn có thể nhảy nhay tới bước 4. Nếu không thành công, bạn quay lại làm bước 3.

3) CÀI ĐẶT PACKAGE THỦ CÔNG:

Bạn vào thư mục dùng để down package, có folder tên đại loại như sau: ‘http%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f’, click vào và tìm những package có tên bên dưới, lưu ý đuôi version có thể khác nhau nhé, đây chỉ phiên bản mới nhất tại thời điểm viết bài mà thôi:

  • binutils-2.25-4.tar.xz
  • gawk-4.1.3-1.tar.xz
  • gcc-core-4.9.3-1.tar.xz
  • gcc-g++-4.9.3-1.tar.xz
  • gzip-1.6-1.tar.xz
  • make-4.1-1.tar.xz
  • tcl-8.5.18-1.tar.xz
  • tcl-devel-8.5.18-1.tar.xz
  • tcl-tk-8.5.18-1.tar.xz
  • tcl-tk-devel-8.5.18-1.tar.xz
  • tcsh-6.19.00-2.tar.xz

Sau đó bạn mở Cyqwin, ‘cd \’, lần lượt làm với từng file như sau:

$ cd \
$ tar xvf binutils-2.25-4.tar.xz

Restart Cyqwin.

4) CÀI ĐẶT SRILM:

Vào ‘C:\cyqwin\srilm’, mở file ‘Makefile’, thêm vào dòng:

SRILM = /srilm

Trong Cyqwin, di chuyển vào thư mục srilm và cài đặt:

$ cd /srilm
$ make World
$ make all
$ make cleanest

Ở đoạn ‘make World’, nếu xuất hiện lỗi, bạn bình tĩnh đọc thông báo, thường lỗi sẽ nằm ở dòng 5 hoặc 6 đếm từ dưới lên, có dạng ‘Command not found’ hoặc ‘tcl.h do not exist’. Bạn mò theo tên của nó, cài đặt bổ sung các package đó rồi thử lại. Nếu không được thì làm bước 3.

Change cyqwin’s maximum memory: Gõ dòng sau vào Cyqwin:

$ regtool -i set /HKLM/Software/Cygnus\ Solutions/Cygwin/heap_chunk_in_mb 2048

5) CHẠY THỬ SRILM:

Bạn vào link này để down ngữ liệu và code liên quan. Lưu ý mình chạy thử trên file tiếng Anh, chẳng hạn làm trên tiếng Hoa thì bạn có thể vào phần tham khảo xem thêm.

Copy 2 file corpus.txt và vocab.txt(danh sách từ trong corpus) vào ‘C:\cyqwin\srilm’.

$ ngram-count -vocab vocab.txt -text corpus.txt -order 3 -write count.txt -unk
$ ngram-count -vocab vocab.txt -read count.txt -order 3 -lm lm.lm -gt1min 3 -gt1max 7 -gt2min 3 -gt2max 7 -gt3min 3 -gt3max 7

Mở file lm.lm và xem nhé :))

Tham khảo:

[1] http://www.cs.brandeis.edu/~cs114/CS114_docs/SRILM_Tutorial_20080512.pdf

[2] Rất rất nhiều FAQ của StackOverFlow, Cyqwin, Google, AskUbuntu, Youtube.

 



 

SRILM is popular toolkit in training n-gram language model. There are 2 operating systems I have tried:

  • Linux: Check here.
  • Window: using cyqwin to install after 4 to 5 attemps. OS: Window 10 .

This post will help you install cyqwin (Linux simulation) to run SRILM on Window. These are requirement materials:

  1. Download SRILM.
  2. Download cyqwin, careful on choosing  32 or 64 bit.
  3. Disk C should have 1GB free (just in case, it only consumes about 500MB)
  4. Disk D/E with 1GB free( where all packages of cyqwin downloaded)

 

In default, I choose Dish D is where I download Cyqwin (32 bit) and its packages. You will see file named setup-x86.exe. This is the one to help you install cyqwin. In the future, if you want to install other packages, just run it and do the samething.

  1. DOWNLOAD CYQWIN AND PACKAGES:
  • Choose a download source: Install from Internet -> Next
  • Root Directory, default is C:/cyqwin. You can change if you want to -> Next
  • Local Package Directory: where contains downloaded package. I choose disk D -> Next.
  • Select Your Internet Connection: Direct Connection -> Next.
  •  Choose a download site: each site will have different default packages. I recommend http://mirrors.kernel.org -> Next.
  • Select Packages: You need to choose the following packages: binutils, bzip2, cyqwin, cyqwin-devel, gawk, gcc-core, gcc-g++, gzip, libargp, libcharset1, libiconv, libiconv-devel, libiconv2, make, tar, tcl, tcl-devel, tcl-tk, tcl-tk-devel, tcsh, xz, zlib-devel, zib0. If they are choosed, the version name will show up-> Next.
  • Resolving Dependencies: If the package you chose need to install other packages so it can run, this window will show up. Make sure you tick on “Select required packages(RECOMMEND)” -> Next.
  • Get 1 book to read and wait for them all downloaded.
  • Choose create shortcut icon.

2) SETUPS CYQWIN:

  • Open Cygwin Terminal. It will generate ‘.bash_profile’, ‘.bashrc’, ‘.inputrc’  in dir ‘C:\cyqwin\home\yourname\’
  • Type these commands:
$ cd /
$ mkdir srilm  // creare folder 'srilm'
$ cd srilm
  • Copy file ‘srilm-1.7.1.tar.gz’ into ‘C:\cyqwin\srilm’. Extracting it with:
$ tar zxvf srilm-1.7.1.tar.gz
  • In ‘C:\cyqwin\home\yourname\.bashrc’, add these line on the top of the file and save:
export SRILM=/srilm
export MACHINE_TYPE=cyqwin
export PATH=$PATH:$pwd:$SRILM/bin/cygwin
export MANPATH=$MANPATH:$SRILM/man
  • Restart Cyqwin.

In the official instruction, when downloading package, Cyqwin automatically install them and you can jump to step 4. If you didn’t make it, come back to step 3.

3) INSTALL PACKAGES MANUALLY:

In the folder containing downloaded packages, there is a folder name somehow look like this: ‘http%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f’, click on and find the packages have the name below. A small note here: you may find your file have diffrent version but don’t worry about it, these are only the latest version at the moment I write this post:

  • binutils-2.25-4.tar.xz
  • gawk-4.1.3-1.tar.xz
  • gcc-core-4.9.3-1.tar.xz
  • gcc-g++-4.9.3-1.tar.xz
  • gzip-1.6-1.tar.xz
  • make-4.1-1.tar.xz
  • tcl-8.5.18-1.tar.xz
  • tcl-devel-8.5.18-1.tar.xz
  • tcl-tk-8.5.18-1.tar.xz
  • tcl-tk-devel-8.5.18-1.tar.xz
  • tcsh-6.19.00-2.tar.xz

Open Cyqwin and do this for each file:

$ cd \
$ tar xvf binutils-2.25-4.tar.xz

Restart Cyqwin.

4) INSTALL SRILM:

In ‘C:\cyqwin\srilm’, open ‘Makefile’, add:

SRILM = /srilm

In Cyqwin, move to srilm and install it:

$ cd /srilm
$ make World
$ make all
$ make cleanest

In the line ‘make World’, if there is a bug show up, be patient and check the notification, the error usually lie in line 5 or 6 counted from below, with format like  ‘Command not found’ or ‘tcl.h do not exist’. Google it name to find the packages you should install and run setup file in step 2, try it again. If not, come to step 3.

Change cyqwin’s maximum memory: Type this command in Cyqwin:

$ regtool -i set /HKLM/Software/Cygnus\ Solutions/Cygwin/heap_chunk_in_mb 2048

5) INSTALL SRILM:

You open this link to download corpus and relating code. I test on English language, if you want to do it with Chinese for example, check the file in Reference part.

Copy 2 file corpus.txt and vocab.txt(list of words in corpus) into ‘C:\cyqwin\srilm’.

$ ngram-count -vocab vocab.txt -text corpus.txt -order 3 -write count.txt -unk
$ ngram-count -vocab vocab.txt -read count.txt -order 3 -lm lm.lm -gt1min 3 -gt1max 7 -gt2min 3 -gt2max 7 -gt3min 3 -gt3max 7

Open lm.lm and check it :))

Reference:

[1] http://www.cs.brandeis.edu/~cs114/CS114_docs/SRILM_Tutorial_20080512.pdf

[2] A lot of FAQ of StackOverFlow, Cyqwin, Google, AskUbuntu, Youtube.

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.