STT Ca sử dụng Mơ tả
1 Corpus
Xử lý corpus, duyệt đệ quy thƣ mục tập ngữ liệu, đƣa văn bản vào danh sách tập ngữ liệu.
2 KSG
Biểu diễn corpus dƣới dạng cây hậu tố, lựa chọn, chiết xuất thuộc tính xâu con chính sử dụng cấu trúc dữ liệu cây hậu tố và đƣa ra các ma trận thuộc tính với trọng số tính theo TF-IDF.
3 SVM Phân loại văn bản sử dụng phƣơng pháp SVM, sử dụng thƣ viện LIBSVM.
Hình A-1: Biểu đồ ca sử dụng
2.2. Biểu đồ tuần tự hệ thống và mơ hình khái niệm
: Users
System
Corpus, Parametters for KSG Feature Selection
Matrices of KSG Features
Train the classifier Modeled Classifier
Predict testing documents Predicted results
Hình A-2: Biểu đồ tuần tự hệ thống
Mơ hình khái niệm
Tác nhân: Ngƣời sử dụng chƣơng trình phân loại văn bản tự động
Lớp giao diện:
o CGuiConsole, lớp giao diện theo console cho phép ngƣời dụng thực hiện các câu lênh của chƣơng trình nhƣ chiết xuất thuộc tính xâu con chính, và thực hiện việc huấn luyện và kiểm thử cho việc phân loại văn bản.
Lớp điều khiển:
o CKSG: Thực hiện thao tác chuyển từ corpus sang câu hậu tố, lựa chọn và chiết xuât thuộc tính nhĩm xâu con chính, chuyển ra các dạng ma trận thuộc tính tƣơng thích với đầu vào của SVM.
o CSVM: Thực hiện việc chuẩn hĩa dữ liệu, huấn luyện, kiểm thử và dự đốn trong phân loại văn bản.
Lớp thực thể: CCorpus, lƣu thơng tin, cấu trúc và dữ liệu của corpus
Users (f rom VNTC_KSG) CGuiConsole CSVM (f rom VNTC_KSG) CKSG (f rom VNTC_KSG) CCorpus (f rom VNTC_KSG) Feature matrix files
Hình A-3: Mơ hình khái niệm hệ thống
3. Thiết kế
3.1. Thao tác trên tập ngữ liệu
Xác định lớp thiết kế
Lớp phân tích Lớp thiết kế Mơ tả
CCorpus
Corpus Lƣu trữ và xử lý tập
ngữ liệu, C++ class
Document Lƣu cấu trúc văn bản ,
C++ class IniFile
Xử lý file Ini, Đọc các tham số từ file Ini, C++ class
Biểu đồ lớp của Corpus với các biến và hàm của các lớp thiết kế đƣợc thể hiện nhƣ Hình A-4
Hình A-4: Biểu đồ lớp ca sử dụng thao tác corpus
Biểu đồ tuần tự: : IniFile : Corpus : Document GetSection( ) Recurs iveScanPath( ) GetType(Integer) GetValue( ) GetID(Integer) SetType( ) SetCatID( ) GetFullPath(Integer) SetFileName( ) Corpus (String) GetValue( )
3.2. Xử lý thuộc tính xâu con chính.
Xác định lớp thiết kế
Lớp phân tích Lớp thiết kế Mơ tả
CKSG
SuffixTree
Xử lý cấu trúc dữ liệu cây hậu tố, chuyển corpus sang cây hậu tố, C++ class
KSG
Thực hiện việc chiết xuất thuộc tính nhĩm xâu con chính , C++ class
FeatureSpace
Khơng gian thuộc tính nhĩm xâu con chính và chuyên ra các ma trận thuơc tính cho tập huấn luyện và tập kiểm thử, C++ class
Feature Lƣu cấu trúc các
thuộc tính, C++ class.
Hình A-6: Biểu đồ lớp KSG
Biểu đồ tuần tự
: Users
: GuiConsole : KSG : SuffixTree : Corpus : FeatureSpace : Feature
SetCorpusMode( ) ExtractKSGFeature( ) ExtractKsgFromCorpusFolder( ) stree_new_tree( ) Corpus(String) GetDataFromCorpusFile(Integer) Document Text stree_add_string( ) UpdateFeatureSpace( ) stree_get_ident( ) GetWeight( ) ExportToSVMMatrices( )
SVM Training & Testing Matrices
Show status
Show status
SetParameters( )
3.3. Phân loại văn bản bằng phƣơng pháp SVM Xác định lớp thiết kế Xác định lớp thiết kế
Lớp phân tích Lớp thiết kế Mơ tả
CSVM
SVM
Giao tiếp với thƣ viện LIBSVM qua Interface,
C++ class
GuiConsole Giao diện sử dụng, qua console
LibSVM
Interface của thƣ viện LIBSVM, C++ Header
files, DLL files
Biểu đồ lớp:
Hình A-8: Biểu đồ lớp SVM
: Users : GuiConsol e : SVM : Li bSVM Scale( ) Scale( ) Scale( ) T rain( ) T rain( ) T rain( ) Modeled Classifer Modeled Classifer Modeled Classifer Predict Predict( ) Predict( ) Cl assi fi ed results Cl assi fi ed results Cl assi fi ed results
Scaled feature m atri x Scaled feature m atri x
Scaled feature m atri x
Hình A-9: Biểu đồ tuần tự SVM
4. Cài đặt chƣơng trình
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ử.