Chương n y tiến h nh th c nghiệm phân lớp chủ quan trên miền dữ liệu đánh giá ản phẩm (điện thoại) v các kiện xã hội (giá xăng, biển Đơng). Chúng tơi xây d ng bộ phân lớp câu chủ quan ử dụng học máy thống kê, tiến h nh thử nghiệm với các thuật tốn Naive Bayes, SVM, đồng thời thử nghiệm với các đặc trưng khác nhau của văn bản để tìm ra phương án l a chọn phù hợp nhất cho phân lớp câu chủ quan tiếng Việt.
4.1.Mơi trường th c nghiệm
4.1.1.Phần cứng
Quá trình th c nghiệm chúng tơi ử dụng máy tính cĩ cấu hình như dưới đây:
Th nh phần Chỉ số
CPU CHIP Core I7
RAM 12GB
OS Windows 8.1
Driver 1T
Bảng 4.1: Cấu h nh phần cứng hệ thống thử nghiệm
4.1.2.Phần mềm v các cơng cụ
Quá trình th c nghiệm chúng tơi ử dụng phần mềm v một ố cơng cụ như dưới đây:
STT Tên Tác giả Nguồn
1 Eclipse IDE https://eclipse.org/downloads/ 2 Python 2.7 https://www.python.org/download
3 LibSVM http://www.csie.ntu.edu.tw/~cjlin/ libsvm/ 4 N-gram Extraction http://homepages.inf.ed.ac.uk/lzhang10/n gram. html#intro 5 JvnTextPro Nguyễn Cẩm Tú http://jvntextpro.sourceforge.net/ 6 vnTagger Lê ồng Phương http://mim.hus.vnu.edu.vn/phuonglh/soft wares/vnTagger
7 vnTokenizer Lê Hơng Phương
http://mim.hus.vnu.edu.vn/phuonglh/soft wares/vnTokenizer
4.2.Quá tr nh th c nghiệm
4.2.1.Dữ liệu sử dụng cho th c nghiệm
D a theo các kết quả nghiên cứu về phân lớp câu chủ quan được trình b y trong chương III, chúng tơi dùng bộ phân lớp ử dụng học máy thống kê cho hệ thống phân lớp chủ quan trên hai miền dữ liệu: ản phẩm v các kiện xã hội.
Tiến h nh thu thập các bình luận trên một ố trang web lớn về ản phẩm điện thoại, điện thoại thơng minh, máy tính, tivi, camera… v cĩ nhiều đánh giá của người dùng như: Thế giới di động, FPTShop, Viettel Store, cellphones.com.vn... Tiến h nh thu thập các bình luận trên một ố trang web lớn, mạng xã hội về một ố kiện xã hội (giá xăng thay đổi, tranh chấp biển đơng, đăng k xe chính chủ… v cĩ nhiều đánh giá của người dùng như: VnExpress, DanTri, Twitter, Facebook… chúng tơi cĩ được ố lượng bình luận như bảng dưới đây.
Miền dữ liệu Lớp Mẫu huấn luyện Mẫu kiểm chứng
ản phẩm Sub 1666 555
Obj 1912 637
Giá xăng Sub 1203 401
Obj 658 219
Tổng số 5439 1812
Bảng 4.3: ố lượng mẫu b nh luận dùng trong th c nghiệm
Chương tr nh thu thập dữ liệu:
Chương trình thu thập dữ liệu bình luận do chính tơi viết bằng ngơn ngữ C#.NET cĩ giao diện minh họa như ở bên dưới.
nh 4.1: Minh họa chương tr nh thu thập các b nh luận trên báo điện tử
nh 4.3: Giao diện giới thiệu chương tr nh thu thập các b nh luận Th c hiện quá tr nh tiền xử lý dữ liệu:
- Loại bỏ các bình luận tiếng Việt viết khơng cĩ dấu.
- ửa lỗi chính tả v viết tắt: th c hiện ửa lỗi chính tả bằng tay chẳng hạn như: “k”, “ko” – ửa th nh “khơng”, “đc” – ửa th nh “được”…). Tương lai, chúng tơi mong muốn áp dụng một ố cơng cụ t động ửa lỗi chính tả cho tiếng Việt cho phần n y.
- Loại bỏ các từ dừng top-word) cho tập dữ liệu huấn luyện v kiểm thử: Sau khi văn bản được áp dụng cơng cụ phân đoạn từ hoặc gán nhãn từ loại v trước khi đánh trọng ố cho các từ khố chúng tơi tiến h nh loại bỏ các từ dừng. Danh ách các từ dừng do chúng tơi xây d ng được đính kèm trong phần các t i liệu tham khảo.
Gán nhãn dữ liệu cho tập huấn luyện:
Tiến h nh gán nhãn dữ liệu bằng tay cho 3/4 tổng ố bình luận thu thập được vào hai loại nhãn chủ quan ub v khách quan obj đây được gọi l tập dữ liệu huấn luyện. au đĩ, ử dụng 1/4 ố bình luận cịn lại gọi l tập kiểm thử để tiến h nh kiểm tra kết quả phân lớp.
4.2.2.Th c hiện gán nhãn dữ liệu
Gán nhãn dữ liệu l một quá trình quan trọng trong cách tiếp cận ử dụng học máy cĩ giám át. Nĩ l cơ ở để tìm hiểu các mẫu pattern chứa quan điểm. Trong luận văn n y, các dữ liệu huấn luyện được gán bởi hai loại nhãn l : < ub> chủ quan và <obj> (khách quan).
Một ố ví dụ minh họa cho quá trình gán nhãn:
Câu chủ quan Câu khách quan
Nếu cứ như thế n y mãi thì chắc chết quá. xăng lên, mọi thứ lên theo, m lương thì khơng lên.
ọ bảo lỗ thì dân chỉ biết l lỗ, họ bảo bù thì dân cũng chỉ biết bù.
Tất cả mọi vấn đề xấu ẽ xảy ra đều bắt nguồn từ việc tăng giá xăng vơ tội vạ.
ơm nay, mình đi xe đạp điện... Đang mùa nắng nĩng mua về trữ rất nguy
hiểm cho tính mạng v người dân xung quanh.
Minh vừa bán chiếc Wave đã ử dụng 7 năm, mới mua chiếc xe đạp điện.
Cái điện thoại n y tơi thấy rất đẹp. Xem v o ánh iPhone 6 Plu 64GB với các ản phẩm tương t .
Tơi thấy iphone 6 plu dùng pin lion kém bền hơn o với iphone 6 dùng pin lipo.
iện tại mình vẫn chưa cĩ thơng tin chính xác khi n o ản phẩm Iphone 6 cĩ h ng bạn nhé.
Bảng 4.4: Minh họa quá tr nh gán nhãn dữ liệu
4.2.3.Trích chọn đ c trưng trong hệ thống của chúng tơi
Chúng tơi tiến h nh thử nghiệm v đánh giá ảnh hưởng của các đặc trưng khác nhau tới kết quả phân lớp.
Đ c trưng thứ nhất:
Đặc trưng đầu tiên được ử dụng l bag-of-word. Để ử dụng bag-of-word, chúng tơi ử dụng cơng cụ tách từ tiếng Việt vnTokenizer của Thầy Lê ồng Phương. Theo kết quả cơng bố thì cơng cụ n y cĩ độ chính xác khoảng 98% trên miền dữ liệu tiếng Việt [31].
Các bước th c hiện được mơ tả trong ví dụ au đây:
B nh luận 1: Khơng thể chấp nhận được. Khơng biết giá xăng tăng đến mức nào
nữa đây.
au khi ử dụng vnTokenizer ta nhận được như au:
khơng_thể chấp_nhận được . khơng biết giá xăng tăng đến mức nào nữa đây .
ử dụng Regex C# với cú pháp:
var words = Regex.Split(text.Trim(), @"\W+");
Ta thu được danh sách các từ của bình luận
words = [“khơng thể”, “chấp nhận”, “được”, “khơng”, “biết”, “giá”, “xăng”, “tăng”, “đến”, “mức”, “nào”, “nữa”, “đây”];
Th c hiện cơng việc trên với tất cả các bình luận trong tập dữ liệu huấn luyện. Từ danh ách từ của tất cả các bình luận trong tập huấn luyện, th c hiện loại bỏ top-word nếu cần , au đĩ, ta xây d ng từ điển đặc trưng. Trong đĩ, mỗi phần từ của từ điển được mơ tả như sau:
<key, value> = <word, count>;
Ví dụ: <”khơng thể”, 100> nghĩa l từ “khơng thể” xuất hiện ở một lớp cla 100 lần.
Tiếp theo, chúng tơi lưu trữ từ điển đặc trưng đã xây d ng được v o cơ ở dữ liệu databa e hoặc lên đĩa cứng harddi k . Xem hình minh họa bên dưới:
nh 4.4: Minh họa xây d ng từ điển đ c trưng
B nh luận 2: SAMSUNG cĩ 1 em phổ thơng sim sĩng, wifi 3G 7. đầy đủ, chụp
hình 5Mp lun, xài cảm ứng rất good và máy rất đẹp, chỉ là em nĩ khơng bán ch nh thức ở VN, mình xài qua 6 tháng em nĩ đúng là tuyệt vời, đặc biết nhất là khơng mất giá.
au khi ử dụng vnTokenizer ta nhận được như au:
SAMSUNG cĩ 1 em phổ_thơng sim sĩng , wifi 3G 7. đầy_đủ , chụp hình 5Mp lun , xài cảm_ứng rất good và máy rất đẹp , chỉ là em nĩ khơng bán ch nh_thức ở VN , mình xài qua 6 tháng em nĩ đúng là tuyệt_vời , đặc biết nhất_là khơng mất_giá .
Đ c trưng thứ hai: Đặc trưng tiếp theo được ử dụng l động từ hoặc tính từ trong tiếng Việt. Để trích chọn các đặc trưng n y, chúng tơi ử dụng cơng cụ tách từ và gán nhãn từ loại tiếng Việt vn.hus.nlp.tagger-4.2.0 của Thầy Lê ồng Phương. Theo kết quả cơng bố thì cơng cụ n y cĩ độ chính xác khoảng 96% trên miền dữ liệu tiếng Việt [31].
Ví dụ một bình luận:
Khơng thể chấp nhận được. Khơng biết giá xăng tăng đến mức nào nữa đây.
au khi ử dụng vnTagger ta nhận được như au:
khơng_thể/R chấp_nhận/V được/R ./. khơng/R biết/V giá/N xăng/N tăng/V đến/E mức/N nào/P nữa/R đây/P ./.
var re = new Regex(@"\w+/[VA]"); var words = re.Matches(text);
Ta thu được danh ách các từ l tính từ hoặc động từ của bình luận
words = [“chấp nhận”, “biết”];
Th c hiện cơng việc trên với tất cả các bình luận trong tập dữ liệu huấn luyện. Từ danh ách từ của tất cả các bình luận trong tập huấn luyện, th c hiện loại bỏ top-word nếu cần , au đĩ, ta xây d ng từ điển đặc trưng. Trong đĩ, mỗi phần từ của từ điển được mơ tả như au:
<key, value> = <word, count>;
Ví dụ: <”khơng thể”, 100> nghĩa l từ “khơng thể” xuất hiện ở một lớp cla 100 lần.
Tiếp theo, chúng tơi lưu trữ từ điển đặc trưng đã xây d ng được v o cơ ở dữ liệu databa e hoặc lên đĩa cứng drive . Xem hình minh họa bên trên.
B nh luận 2: SAMSUNG cĩ 1 em phổ thơng sim sĩng, wifi 3G 7. đầy đủ, chụp
hình 5Mp lun, xài cảm ứng rất good và máy rất đẹp, chỉ là em nĩ khơng bán ch nh thức ở VN, mình xài qua 6 tháng em nĩ đúng là tuyệt vời, đặc biết nhất là khơng mất giá.
au khi ử dụng vnTokenizer ta nhận được như au:
SAMSUNG/Np cĩ/V 1/M em/N phổ_thơng/N /M sim/N /M sĩng/N ,/, wifi/V 3G/M 7. /M đầy_đủ/A ,/, chụp/V hình/N 5Mp/M lun/N ,/, xài/V cảm_ứng/N rất/R good/A và/CC máy/N rất/R đẹp/A ,/, chỉ/R là/V em/N nĩ/P khơng/R bán/V ch nh_thức/A ở/E VN/Np ,/, mình/P xài/V qua/E 6/M tháng/N em/N nĩ/P đúng/A là/C tuyệt_vời/A ,/, đặc/A biết/V nhất_là/X khơng/R mất_giá/V ./.
4.2.4.Bộ phân lớp Naive Bayes 4.2.4.1.Tiến h nh phân lớp 4.2.4.1.Tiến h nh phân lớp
Th c hiện việc c i đặt chương trình theo thuật tốn đã trình b y ở phần trên. Chúng tơi áp dụng kỹ thuật l m trơn Additive smoothing. Đầu v o của chương trình l các mẫu huấn luyện đã được gán nhãn. Chương trình ẽ học từ các dữ liệu huấn luyện n y au đĩ th c hiện phân lớp cho một t i liệu cần phân lớp. Chương trình n y do chúng tơi t viết gồm một ố bước cơ bản au:
- Dữ liệu huấn luyện được phân đoạn từ hoặc trích chọn tính từ v động từ. au đĩ, dùng để xây d ng từ điển đặc trưng cho mỗi lớp Key: bằng tên đặc trưng, Value: bằng tần uất xuất hiện của đặc trưng trên lớp
- Tính xác uất của mỗi lớp P Ci) =
từ dữ liệu th c
nghiệm.
- Tính xác uất của mỗi đặc trưng đồng thời áp dụng kỹ thuật l m trơn Additive smoothing.
- Tính tích các xác uất của tất cả các đặc trưng. - Đưa ra kết quả phân lớp cho các mẫu kiểm chứng. Xem chi tiết c i đặt ở phần mơ phỏng chương trình.
4.2.4.2.Kết quả th c nghiệm
Bộ phân lớp Nạve Baye chủ quan ử dụng các đặc trưng mơ tả ở phần trên cho kết quả trong bảng dưới đây.
Miền dữ liệu Đ c trưng Độ chính xác Độ hồi tưởng Độ đo 1
ản phẩm bag-of-word 71% 83% 76% động từ hoặc
tính từ
63% 68% 66%
Giá xăng bag-of-word 74% 72% 73% động từ hoặc
tính từ
81% 68% 74%
Bảng 4.5: Kết quả th c nghiệm với bộ phân lớp Nạve Bayes
4.2.4.3.Giao diện chương tr nh th c nghiệm
nh 4.6: Giao diện form th c hiện phân lớp NBS (Classify)
4.2.5.Bộ phân lớp VM 4.2.5.1.Tiến h nh phân lớp
Từ dữ liệu huấn luyện đã được gán nhãn được lưu ở file text như mơ tả au đây:
nh 4.8: Minh họa biểu diễn dữ liệu huấn luyện
Chúng tơi xây d ng từ điển đặc trưng theo phương pháp đã mơ tả trong bộ phân lớp Nạve Bayes.
Th c hiện việc chuyển đổi dữ liệu từ dạng text ang vector theo phương pháp được trình bày trong mơ hình vector ở chương 3. Đối với trường hợp đặc trưng dạng Bag-of- Word thì kết hợp với điều kiện tần uất của từ lớn hơn 3 để giảm ố chiều của vector đặc trưng. Chúng tơi thu được tập vector huấn luyện được minh họa au đây với các vị trí thể hiện xuất hiện hay khơng xuất hiện một đặc trưng n o đĩ.
nh 4.9: Minh họa mảng các vector huấn luyện
Để huấn luyện VM, tập dữ liệu đang xét đã được mơ hình hĩa như ma trận Amxn). Trong đĩ, m l ố mẫu huấn luyện, n l ố lượng đặc trưng.
Trong th c nghiệm n y l máy học SVM với h m nhân kernel SVMKernelType.RBF. Th c nghiệm cũng đã thử nghiệm với một ố tham ố khác của C và Gama, các bộ tham ố được chọn bằng phương pháp thử nghiệm và t đánh giá của cá nhân tơi.
4.2.5.2.Kết quả th c nghiệm
Tiến h nh th c nghiệm tơi ghi nhận được kết quả au đây:
Miền dữ liệu Đ c trưng Độ chính xác Độ hồi tưởng Độ đo 1
ản phẩm bag-of-word 78% 75.8% 77% động từ hoặc
tính từ
77% 82.8% 80%
Giá xăng bag-of-word 82% 77% 79% động từ hoặc
tính từ
82.7% 61% 70%
Bảng 4.6: Kết quả th c nghiệm với bộ phân lớp VM
Giao diện chương tr nh th c nghiệm:
nh 4.11: Giao diện form chuyển đổi văn bản text sang vector
4.3.Đánh giá kết quả
Do ố lượng câu gán nhãn bằng tay cịn hạn chế nên ban đầu chúng tơi mới chỉ tiến hành th c nghiệm xây d ng bộ phân lớp ử dụng Nạve Baye , VM cho hai miền dữ liệu l ản phẩm v giá xăng.
4.3.1.Phương pháp đánh giá
Do đặc tính đa nghĩa của ngơn ngữ t nhiên, phức tạp của b i tốn phân lớp dẫn đến dù con người hay bộ phân lớp t động th c hiện việc phân lớp thì đều cĩ thể xảy ra sai sĩt. iệu quả của bộ phân lớp thường được đánh giá qua việc o ánh quyết định của bộ phân lớp đĩ với quyết định của con người khi tiến h nh trên một tập kiểm thử te t et).
Cĩ ba độ đo điển hình được ử dụng để đánh giá độ chất lượng của thuật tốn phân lớp, đĩ l độ chính xác π preci ion , độ hồi tưởng ρ recall v độ đo 1 được làm rõ ở các phần au đây [20].
Độ chính xác π (precision): l khả năng của mơ hình để d đốn chính xác nhãn lớp của dữ liệu mới hay dữ liệu chưa biết. Nĩi ngắn gọn, nĩ thể hiện độ chính xác của thuật tốn.
Độ hồi tưởng ρ (recall): thể hiện mức độ bao phủ của thuật tốn.
Độ đo F1: được tính tốn d a trên độ chính xác v độ hồi tưởng.
Một số tiêu ch đánh giá khác:
- Tốc độ peed Tốc độ l những chi phí tính tốn liên quan đến quá trình tạo ra v ử dụng mơ hình.
- ức mạnh robu tne ức mạnh l khả năng mơ hình tạo ta những d đốn đúng từ những dữ liệu noi e hay dữ liệu với những giá trị thiếu.
- Khả năng mở rộng calability Khả năng mở rộng l khả năng th c thi hiệu quả trên lượng lớn dữ liệu của mơ hình đã học.