Cài đặt chƣơng trình

Một phần của tài liệu Nghiên cứu cải tiến một số phương pháp phân loại văn bản tự động và áp dụng trong xử lý văn bản tiếng Việt (Trang 112)

Chƣơng trình đƣợc cài đặt bằng ngôn ngữ C++ trên môi trƣờng phát triển Visual Studio .NET 2005. Mã nguồn đƣợc chia sẻ và có thể tải xuống từ trang web http://vietnamese-tc.sourceforge.net/. Chƣơng trình sử dụng một file ini để thiết lập các tham số đầu vào, cấu trúc thƣ mục tập ngữ liệu và chỉ định tập huấn luyện cũng nhƣ kiểm thử.

Bảng A-2: Ánh xạ giữa lớp thiết kế và các file cài đặt

Lớp File Mô tả

IniFile IniFile.h

File header của xử lý file .ini cấu hình của chƣơng trình

Corpus Corpus.h File header corpus

Corpus.cpp File cài đặt thao tác trên corpus SuffixTree stree.h

File header thao tác dữ liệu cây hậu tố

stree.cpp Cài đặt thao tác trên cây hậu tố KSG

Ksg.h File header

Ksg.cpp Lựa và chiết xuất thuộc tính nhóm xâu con chính

Main.cpp Chƣơng trình chính, giao diện thao tác với ngƣời sử dụng

SVM

Svm.h File header thƣ viện LIBSVM Svm.cpp Interface thao tác với thƣ viện

LIBSVM FeatureSpace

FeatureSpace.h File header Không gian thuộc tính FeatureSpace.cpp Không gian thuộc tính

PHỤ LỤC B: Cấu trúc đĩa CD đi kèm

Đĩa CD kèm theo luận văn có cấu trúc nhƣ sau:

Documents

---Thesis # Luận văn

---Reference # Danh sách tài liệu tham khảo

Corpus # Lƣu trữ tập ngữ liệu tiếng Việt

---HTML # Lƣu trữ dƣới dạng HTML

---Txt-UTF8 # Dạng .txt UTF-8

Programs # Lƣu các chƣơng trình, và công cụ phát triển

---DocumentExtractor # Chƣơng trình chiết xuất nội dung

---vntextprepro # Chƣơng trình tiền xử lý văn bản tiếng Việt,

tách từ,

sinh ma trận thuộc tính, tính trọng số

---vnksg # Chƣơng trình chiết xuất thuộc tính nhóm

xâu con chính và sinh ma trận thuộc tính, tính trọng số

---DataExpansion # Chƣơng trình mở rộng dữ liệu dùng cho

phƣơng pháp clustering

---kNN # Chƣơng trình phân loại theo thuật toán kNN

---Centroid Based # Chƣơng trình phân loại theo thuật toán

Centroid based

ExperimentResults # Lƣu các kết quả thực nghiệm

---Traditional Methods # Thực nghiệm và kết quả thực nghiệm

các phƣơng pháp truyền thống

---Clustering # Thực nghiệm và kết quả thực nghiệm phƣơng pháp sử dụng phân cụm

---KSG # Thực nghiệm và kết quả thực nghiệm phƣơng pháp sử dụng thuộc tính nhóm xâu con chính

PHỤ LỤC C: Chia sẽ dữ liệu, các công cụ và chƣơng trình liên quan

Tập ngữ liệu và các công cụ và chƣơng trình liên quan trong luận văn này đƣợc đƣa lên website sau: http://vietnamese-tc.sourceforge.net/.

Corpus và các chƣơng trình đƣợc khuyến cáo sử dụng cho các mục định nghiên cứu, và cần tham chiếu đến tác giả. Tác giả không chụi trách nhiệm với các lỗi sử dụng, hay các lỗi ảnh hƣớng đến các chƣơng trình khác khi cài đặt và sử dụng. Nội dung trang web bao gồm:

1. Corpus và thống kê nguồn gốc corpus

Copus đƣợc sƣu tầm từ các website báo điện phổ biến ở Việt Nam, trên nhiều lĩnh vực để đảm bào tính cân bằng cho từ vựng. Corpus đƣợc kèm theo thông tin thống kê nguồn gốc và số lƣợng các file văn bản tƣơng ứng với từng nhóm văn bản. Corpus có dung lƣợng hơn 40M, gồm hơn 10 nghìn văn bản đƣợc chia làm 10 nhóm.

2. Các công cụ và chƣơng trình

i) Công cụ chiết xuất nội dung từ các site báo điện tử, có thể config để tự động lấy tin, chiết xuất nội dung, chuyển đổi định dạng sang dạng text, và có kèm theo chức năng tự động chia dữ liệu cho k-fold cross validation.

Chƣơng trình đƣợc viết trên ngôn ngữ C#.NET 2.0

ii) Chƣơng trình phân đoạn từ tiếng việt và đƣa ra các ma trận thuộc tính với trong số đƣợc tính theo TFIDF, tƣơng thích với SVMLight,

http://www.svmlight.joachims.org và LibSVM, http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Chƣơng trình đƣợc viết trên ngôn ngữ Java, có sử dụng và mở rộng từ chƣơng trình JVNSegmentor, http://jvnsegmenter.sourceforge.net/, của tác giả Phan Xuân Hiếu.

iii) Chƣơng trình chiết xuất thuộc tính nhóm xâu con chính, có xử lý Unicode và đƣa ra các ma trận thuộc tính với trong số đƣợc tính theo TFIDF,

tƣơng thích với SVMLight

, http://www.svmlight.joachims.org và LibSVM, http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Chƣơng trình cài đặt, mở rộng và cải tiến thuật toán chiết xuất thuộc tính nhóm xâu con chính, viết bằng ngôn ngữ C++.

iv) Chƣơng trình phân loại văn bản cài đặt thuật toán kNN và Centroid based Vector.

v) Chƣơng trình mở rộng tập dữ liệu sử dụng phân cụm, và chƣơng trình phân loại văn bản sử dụng phân cụm. Chƣơng trình có sử dụng thƣ viện phân cụm dữ liệu CLUTO, http://glaros.dtc.umn.edu/gkhome/views/cluto/.

Chỉ mục từ

Adaptive Resonance Associative Map

ARAM, 32

Âm tiết, 35, 37, 41, 45 Bảng ngẫu nhiên, 19, 20 Biểu diễn văn bản, 15 Bộ từ vựng, 19

Cấu trúc từ trong tiếng Việt, 9, 35 Cây hậu tố, 71, 80

Cây hậu tố của tập ngữ liệu, 73 Cây quyết định, 12

Centroid Based Vector, 48, 51 Chiều sâu theo xâu của một nút, 72 Chọn thuộc tính, 13, 14

Cơ sở dữ liệu, 8

Common Random Fields, 45 Công cụ chiết xuất nội dung, 47 Cƣờng độ của từ, 21

Đặc điểm của tiếng Việt, 9, 35 Dấu thanh, 35 Dịch tự động, 8 Độ bao Recall, 32 Độ chính xác Precision, 32 Độ phức tạp bộ nhớ, 19 Độ phức tạp thời gian, 19, 79 Dữ liệu gán nhãn, 53

Dữ liệu huấn luyện, 47

Dữ liệu kiểm thử, 47 Gốc của từ, 16, 17 Hàm nhân, 82 Hậu tố, 38 Hệ chuyên gia, 11 Hệ tọa độ trực giao, 22 Heuristic, 11 Học không giám sát, 12 Học máy, 11, 14, 15, 54 Học máy thống kê, 73 Huấn luyện, 15 Internet, 8, 11 Intranet, 11

Kết quả phân loại, 16 Khai phá dữ liệu, 54

Không gian thuộc tính, 12, 16, 17, 22, 56, 58, 73

Không gian vector, 17 Khớp chính xác, 71

Khớp không chính xác, 71 kNN, 9, 12, 48, 51, 53

k-way clustering, 62 Kỹ sƣ trí thức, 11 Kỹ thuật kiểm tra chéo

K-Fold cross validation, 47 Latent Semantic Indexing, 22 LIBSVM, 48, 94

Liên kết hậu tố, 73 LLFS, 12

Lọc và quản lý tài nguyên, 11 Lợi ích thông tin, 18

(IG), 14 IG, 18

Lựa chọn thuộc tính, 14, 16, 17 Mạng chuyển dịch trạng thái hữu

hạn có trọng số WFST, 42 Mạng Neutral, 12 Maximum Entropy, 32 Máy trạng thái hữu hạn

FSM, 45 Naïve Bayes, 9, 12 N-gram, 41 Nguyên âm, 35 Nhận dạng mẫu, 12, 54 Nhãn đƣờng đi, 72 Nhóm xâu con, 74 Nhóm xâu con chính, 75 Phân cụm, 9, 53

Phân cụm k-way clustering, 55 Phân cụm cứng, 56

Phân cụm dữ liệu, 54 Phân cụm kết hợp

coclustering, 55 Phân cụm văn bản, 21

Phân đoạn dữ liệu tuần tự, 45 Phân đoạn từ, 79

Phân đoạn từ tiếng Việt, 9, 47 Phân loại văn bản, 8, 11, 15

Phân loại văn bản không phụ thuộc vào ngôn ngữ, 79

Phân loại văn bản theo chủ đề, 12 Phân loại văn bản theo ngữ nghĩa,

12

Phân loại văn bản tiếng Việt, 9, 39, 79

Phân loại văn bản tự động, 8 Phân tích ảnh, 54

Phụ âm, 35

Phƣơng pháp Centroid- based vector, 28

Phƣơng pháp k- Nearest Neighbour, 24

Phƣơng pháp khớp tối đa, 41 Phƣơng pháp Linear Least Square

Fit, 27

Phƣơng pháp Naïve Bayes, 25 Phƣơng pháp Rocchio, 24 Phƣơng pháp SVM, 28 Phƣơng pháp TBL, 42 Siêu phằng, 29 Siêu thuộc tính, 61, 62 meta-feature, 61 SVM, 9, 12, 48, 51, 53, 82

Tách từ trong văn bản tiếng Việt, 39, 45 Tần suất của từ TF, 18 Tần suất văn bản, 14, 17 Tần suất văn bản ngƣợc, 18 Tạo chỉ mục, 13, 14 Tập dữ liệu gán nhãn, 12 Tập dữ liệu gán nhãn mở rộng, 58

Tập huấn luyện, 18, 63 Tập luật, 11

Tập ngữ liệu tiếng Việt, 9 Tập thử nghiệm, 63

Tập văn bản huấn luyện, 17 TF-IDF, 18, 80

Thống kê Chi bình phƣơng, 20 Thống kê dựa trên công cụ tìm

kiếm Internet, 41 Thông tin, 8

Thông tin tƣơng hỗ, 19 (MI), 14

Thuật toán Adaboots, 32 Thuật toán Bầu cử, 32 Thuật toán di truyền, 43 Thuật toán phân cấp, 54 Thuật toán phân vùng, 54 Thuộc tính, 15, 16, 57

Thuộc tính nhóm xâu con chính, 9, 73, 79

Tiền tố, 38

Tiền xử lý, 13, 47 Tìm kiếm, 8

Tìm kiếm thông tin, 8, 15 Tin sinh học, 54

Tóm tắt văn bản, 8 Tri thức chuyên gia, 11 Trọng số tin cậy, 22 Trung bình Macro Macro average, 33 Trung bình Micro Micro average, 33 Từ dừng, 16, 47 Từ láy, 38

Từ mới trong tiếng Việt, 36 Từ trong tiếng Việt, 36 Unigram, 41

Văn bản huấn luyện, 21 Vector thuộc tính, 53 World Wide Web, 8 Xác suất điều kiện, 19

Một phần của tài liệu Nghiên cứu cải tiến một số phương pháp phân loại văn bản tự động và áp dụng trong xử lý văn bản tiếng Việt (Trang 112)