Posted on November 10, 2009 by minhpham0902
Chương trình screen đúng là một trình quản lý terminal rất thông minh và tiện lợi trên unix. Very nice idea.
+ Cho phép mình mở nhiều terminal ảo trên cùng một cửa sổ terminal vật lý
+ Chuyển đổi giữa các terminal dễ dàng
+ Trong trường hợp kết nối tới server (bằng ssh client), khi đường truyền bị ngắt, mình không phải chạy lại từ đầu, có thể khôi phục dễ dàng bằng các tùy chọn lệnh của screen (quá tuyệt)
Nói chung ai nghĩ ra ý tưởng này quả là giỏi.
Filed under: Góc kỹ thuật và lập trình | Leave a Comment »
Posted on November 9, 2009 by minhpham0902
Vấn đề: Mình muốn thiết lập prompt tcsh shell theo định dạng mong muốn như sau:
[username@pc-name current_dir]
%
Sau khi search từ khóa set prompt tcsh mình đã tìm được cách làm. Rất đơn giản, chỉ cần chỉnh file .cshrc (file cấu hình shell). Thêm vào dòng sau đây
set prompt=”[$user@$HOST %c]\n% “
Giải thích chi tiết xem trong: http://asellus.cee.odu.edu/uclhd/uclhd_unix_prompt.php
Filed under: Góc kỹ thuật và lập trình | Leave a Comment »
Posted on November 6, 2009 by minhpham0902
Minipar là một tool dependency parsing cho tiếng Anh, viết bởi Dekang Lin (http://www.cs.ualberta.ca/~lindek/minipar.htm). Chạy tương đối nhanh, ví dụ trên máy Pentium II 300 với 128MB memory, nó phân tích khoảng 300 từ trên giây, khá nhanh so với một bộ phân tích Denpendency Parsing khác là Stanford Parser (http://nlp.stanford.edu/software/lex-parser.shtml)
Bài viết nhắm hướng dẫn cách sử dụng tool minipar cho dependency parsing, step by step. Môi trường sử dụng là Unix hoặc Unix-like ví dụ như Cygwin
Step 0: Download minipar từ trang chủ http://www.cs.ualberta.ca/~lindek/minipar/. Có nhiều version khác nhau, ở đây tôi sử dụng version cho linux 32bit. Giả sử tôi chép vào thư mục ~/nlp/local-tools
Step 1: Giải nénfile minipar-0.5-Linux32.tgz dùng lệnh tar
tar xvfz minipar-0.5-Linux32.tgz
sau đó đổi tên thư mục vừa giải nén ra thánh minipar, xóa file tgz
mv minipar-0.5-Linux32 minipar
rm minipar-0.5-Linux32.tgz
Step 2: Thiết lập đường dẫn cho minipar. Với bash shell, thêm dòng sau vào file .bashrc
export MINIPATH=/cygdrive/d/workspaces/minipar
Step 3: Sử dụng pdemo để phân tích Dependency
Filed under: Góc kỹ thuật và lập trình | Leave a Comment »
Posted on November 5, 2009 by minhpham0902
Bài viết này trình bày cách cài đặt English Wordnet 3.0 (Từ điển từ vựng điện tử) trên Unix hoặc Cygwin từ mã nguồn
Step 0: Download mã nguồn của Wordnet 3.0 tại địa chỉ http://wordnetcode.princeton.edu/3.0/WordNet-3.0.tar.gz vào một thư mục nào đó chẳng hạn /home/user-name/nlp/src
Step 1: Chuyển vào thư mục chứa file mã nguồn (lệnh cd), giải nén file vừa Download
$tar xvfz WordNet-3.0.tar.gz
Step 2: Chuyển vào thư mục vừa giải nén, trong TH này là: ~/nlp/src/WordNet-3.0
Step 3: Cấu hình file make, dùng lệnh
$./configure –prefix=~/nlp/local-tools/wn-3.0
Lệnh này sẽ chỉ ra đường dẫn để cài đặt Wordnet 3.0. Ở đây tôi muốn đặt đường dẫn tại ~/nlp/local-tools/wn-3.0
Step 4: Sau khi thực thi lệnh configure thành công, gõ lệnh make để biên dịch mã nguồn
make
Step 5: Install
$make install
Sau khi cài đặt thành công, ta phải cấu hình đường dẫn mới có thể sử dụng WordNet
Step 6: Tạo biến môi trường WNHOME là đường dẫn tới thư mục mà ta cài đặt WordNet, ở đây là /home/user-name/nlp/local-tools/wn-3.0
Nếu shell đang sử dụng là bash, thêm vào dòng
export WNHOME=/home/user-name/nlp/local-tools/wn-3.0
Thêm đường dẫn thư mục bin (file binary) của wordnet 3.0 vào đường dẫn PATH
export PATH=/home/minhpqn/nlp/local-tools/wn-3.0/bin:$PATH
Bây giờ có thể sử dụng wordnet rồi đó. Cheer!
Filed under: Góc kỹ thuật và lập trình | Leave a Comment »
Posted on September 12, 2009 by minhpham0902
Posted on September 8, 2009 by minhpham0902
Posted on August 17, 2009 by minhpham0902
(1) Đọc từng dòng của một file text vào một mảng các string, bỏ qua dòng trống
// read_line.cpp
// read all lines of a text file into an array of strings
#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
// remove space after the string s
void rtrim(char *s)
{
unsigned int len = strlen(s);
while (len > 0 && s[len-1] == ‘ ‘) len–;
s[len] = 0;
}
void readToArr(char* fileName, vector<string> & arr)
{
ifstream fin(fileName, ifstream::in);
char line[10000];
while (fin.getline(line, 1000)) {
rtrim(line);
if (strlen(line) == 0) continue;
arr.push_back(line);
}
fin.close();
}
int main(int argc, char* argv[])
{
vector<string> arr;
readToArr(argv[1], arr);
// print all line in arr
vector<string>::iterator it;
for( it = arr.begin(); it < arr.end(); it++ )
{
cout << *it << endl;
}
return 0;
}
Filed under: C Plus Plus, Thư viện code | Leave a Comment »
Posted on August 16, 2009 by minhpham0902
def is_substr?(str1, str2)
re = Regexp.new(str1)
if re =~ str2
return true
else
return false
end
end
Filed under: Lập trình Ruby, Thư viện code | Leave a Comment »
Posted on August 11, 2009 by minhpham0902
Posted on August 6, 2009 by minhpham0902
http://themachinelearningforum.org/
Filed under: Link collection, Machine Learning | Leave a Comment »