Hướng tiếp cận thực nghiệm 3.2.1
Sau quá trình nghiên cứu và tìm hiểu các phƣơng pháp, luận văn đã đề xuất mơ hình giải quyết bài tốn nhƣ đã trình bày ở phần trƣớc. Để kiểm tra và đánh giá đƣợc hiệu quả của mơ hình đã đề xuất, chúng tơi đã tiến hành làm thực nghiệm.
Mục tiêu của thực nghiệm là kiểm tra tính khả thi của mơ hình, vì mơ hình mới dừng lại ở mức đề xuất dựa trên các phân tích và nghiên cứu liên quan, chƣa cĩ kết quả thực tế.
Thực nghiệm sẽ đƣợc tiến hành theo từng pha của mơ hình, dựa vào kết quả thực nghiệm mà rút ra nhận xét, đánh giá để cải thiện mơ hình, nâng cao kết quả cuối cùng.
Cuối cùng, sau khi cĩ kết quả thực nghiệm, cải tiến hệ thống, luận văn sẽ áp dụng vào trong thực tế, trong một số yêu cầu và lĩnh vực nhất định để đem lại hiệu quả trong cuộc sống.
45
Phương pháp sử dụng các đặc trưng trong thực nghiệm 3.2.2
Luận văn sử dụng nhiều đặc trƣng khác nhau trong quá trình thực nghiệm. Danh sách đặc trƣng đƣợc liệt kê nhƣ dƣới đây:
Bảng 3.2 Bảng các đặc trƣng sử dụng
Đặc trƣng Mơ tả
Unigram Đặc trƣng từng từ riêng lẻ trong câu
Bigram Đặc trƣng chuỗi chuỗi 2 từ liên tiếp trong câu Trigram Đặc trƣng chuỗi gồm 3 từ liên tiếp trong câu Đặc trƣng tweet Bao gồm các đặc trƣng Tag, Hashtag, Link
Biểu tƣợng cảm xúc Các đặc trƣng biểu tƣợng cảm xúc: tích cực, tiêu cực, trung lập, tích cực mạnh, tiêu cực mạnh Từ phủ định Đặc trƣng chứa các từ phủ định nhƣ “no”,
“not”... Độ tƣơng đồng dựa trên
tâm (CBS) Đặc trƣng độ tƣơng đồng dựa trên tâm Đặc trƣng Log-count ratio Đặc trƣng theo Log-count ratio
Trong đĩ, các đặc trƣng đƣợc đề cập chính là Unigram, Bigram, Trigram, Độ tƣơng đồng dựa trên tâm (CBS), Đặc trƣng Log-count-ratio. Các đặc trƣng cịn lại sẽ luơn đƣợc sử dụng.
Chúng tơi sẽ tiến hành thử nghiệm với từng đặc trƣng chính, bắt đầu từ Unigram, sau đĩ nâng dần số đặc trƣng bằng cách kết hợp các đặc trƣng lại với nhau. Việc này nhằm lựa chọn ra sự kết hợp đặc trƣng đƣợc sử dụng mang lại kết quả phân lớp chính xác nhất cho hệ thống.
46
Bảng 3.3 Bảng danh sách kết hợp đặc trƣng
Đặc trƣng sử dụng Unigram
Unigram + Bigram
Unigram + Bigram + Trigram Unigram + Log-count ratio
Unigram + Bigram + Log-count ratio
Unigram + Bigram + Trigram + Log-count ratio Unigram + CBS
Unigram + Bigram + CBS
Unigram + Bigram + Trigram + CBS
Unigram + Bigram + Trigram + CBS + Log-count ratio
Phương pháp đánh giá tập dữ liệu 3.2.3
Đánh giá độ chính xác của bộ phân lớp rất quan trọng, bởi vì nĩ cho phép dự đốn đƣợc độ chính xác của các kết quả phân lớp những dữ liệu tƣơng lai. Độ chính xác cịn giúp so sánh các mơ hình phân lớp khác nhau. Một số phƣơng pháp đánh giá phổ biến nhƣ Holdout, K-fold cross validation và Leave-one-out cross validation hoặc sử dụng kết hợp độ chính xác Precision, độ bao phủ Recall và độ điều hịa F.
a) Phƣơng pháp K-fold Cross Validation
Do tập dữ liệu sử dụng bao gồm 20.000 câu, chúng tơi sử dụng phƣơng pháp K-fold cross validation cho việc đánh giá tập dữ liệu để tránh việc trùng lặp giữa các tập kiểm thử (một số ví dụ cùng xuất hiện trong các tập kiểm thử khác nhau).
47
Hình 3.2 Minh họa K-fold cross validation
K-fold cross validation cĩ các đặc điểm sau:
- Tập tồn bộ các ví dụ D đƣợc chia ngẫu nhiên thành k tập con khơng giao nhau (gọi là “fold”) cĩ kích thƣớc xấp xỉ nhau.
- Mỗi lần (trong số k lần) lặp, một tập con đƣợc sử dụng làm tập kiểm thử, và (k-1) tập con cịn lại đƣợc dùng làm tập huấn luyện.
- k giá trị lỗi (mỗi giá trị tƣơng ứng với một fold) đƣợc tính trung bình cộng để thu đƣợc giá trị lỗi tổng thể.
Độ chính xác của dự báo là giá trị trung bình của k lần dự đốn tƣơng ứng với k lần lặp. Các lựa chọn thơng thƣờng của k: 5.
Ở trong luận văn, chúng tơi đã thử k với nhiều trƣờng hợp khác nhau và cuối cùng đã sử dụng 5-fold để đánh giá độ chính xác phân lớp của bài tốn. Áp dụng trong luận văn, chúng tơi chia bộ dữ liệu 20.000 câu thành 5 phần khơng trùng nhau và giữ nguyên tỷ lệ số câu tích cực với số câu tiêu cực nhƣ bộ dữ liệu gốc.
48
b) Độ chính xác Precision, độ bao phủ Recall và độ điều hịa F
Để đánh giá chính xác hơn chất lƣợng của mơ hình ta sử dụng thêm 2 độ đo là Precision và Recall. Precision cho biết bộ phân loại đốn chính xác bao nhiêu phần trăm với từng nhãn phân loại (ví dụ nếu bộ phân loại kết luận phản hồi là tích cực thì khả năng phản hồi đĩ thật sự là tích cực chiếm bao nhiêu phần trăm). Recall thì ngƣợc lại, nĩ cho biết nếu một câu phản hồi là tích cực, khả năng bộ phân loại đốn đúng là bao nhiêu phần trăm.
Thực tế thì hai độ đo trên khơng phải lúc nào cũng tăng giảm tƣơng ứng với nhau, cĩ trƣờng hợp Recall cao cịn Precision thấp và ngƣợc lại, để cho đánh giá tổng quát hơn ta dùng độ đo F-measure là trung bình điều hịa của 2 độ đo trên với hệ số 0.5 (tầm quan trọng của 2 hệ số ngang nhau):
Precision hay cịn gọi là Độ chính xác đối với lớp :
Recall hay cịn gọi là Độ bao phủ đối với lớp :
Trung bình điều hịa F:
Trong đĩ:
: Số lƣợng các ví dụ thuộc lớp đƣợc phân loại chính xác vào lớp : Số lƣợng các ví dụ khơng thuộc lớp bị phân loại nhầm xác vào lớp : Số lƣợng các ví dụ khơng thuộc lớp đƣợc phân loại chính xác : Số lƣợng các ví dụ thuộc lớp bị phân loại nhầm
49 Bảng 3.4 Bảng ma trận nhầm lẫn Lớp Đƣợc phân lớp bởi hệ thống Thuộc Khơng thuộc Phân lớp thực sự (đúng) Thuộc Khơng thuộc 3.3 Cơng cụ thực nghiệm
Mơi trường thực nghiệm 3.3.1
Dƣới đây là thơng tin cấu hình phần cứng đƣợc sử dụng trong quá trình thực nghiệm của luận văn.
Bảng 3.5 Bảng cấu hình phần cứng
Thành phần Chỉ số
CPU Intel Core I5 2.6GHz
RAM 4GB
Bộ nhớ ngồi (HDD) SATA 500GB
Hệ điều hành (OS) Windows 10 Professional 64bit
Cơng cụ phần mềm 3.3.2
Bảng 3.6 Bảng cơng cụ phần mềm
Tên cơng cụ Mơ tả
Visual Studio Enterprise 2015
IDE lập trình ngơn ngữ C#
LibSVM Bộ phần mềm cho học máy và phân loại bằng thuật tốn SVM. Nguồn: http://www.csie.ntu.edu.tw/~cjlin/libsvm
LibSVMsharp Thƣ viện hỗ trợ LibSVM trên .Net. Nguồn:
https://github.com/ccerhan/LibSVMsharp
50
Giới thiệu LibSVM 3.3.3
a) Giới thiệu
Hình 3.3 Hình ảnh giới thiệu LibSVM
LibSVM là một thƣ viện đơn giản, dễ sử dụng và hiệu quả đối với phân lớp SVM và hồi quy. Nĩ cĩ thể giải quyết phân lớp C-SVM, nu-SVM, hồi quy epsilon- SVM và hồi quy nu-SVM. Thƣ viện này cũng cung cấp một cơng cụ lựa chọn mơ hình tự động đối với phân lớp C-SVM. LibSVM hỗ trợ phân loại đa lớp.
Phiên bản tính mới nhất tính đến thời điểm hiện tại là phiên bản 3.21 đƣợc phát hành ngày 14/12/2015.
b) Tính năng chính
LibSVM cung cấp một giao diện đơn giản cho phép ngƣời dùng dễ dàng sử dụng trong các chƣơng trình của họ. Các tính năng chính bao gồm:
51
- Phân lớp đa lớp hiệu quả (multi-class classification). - Kiểm chứng chéo (cross validation) để lựa chọn mơ hình. - Ƣớc lƣợng xác suất.
- Bao gồm nhiều loại kernel khác nhau.
- Trọng số SVM cho các dữ liệu khơng cân đối. - Bao gồm cả mã nguồn C++ và Java.
- Giao diện GUI thể hiện phân lớp SVM và hồi quy SVM.
- Cĩ phần mở rộng hỗ trợ nhiều ngơn ngữ lập trình khác nhau: Python, R, MATLAB, Perl, Ruby, Weka, Common LISP, CLISP, Haskell, OCaml, LabVIEW, giao diện PHP, C# .NET và CUDA.
- Tự động chọn mơ hình đƣợc sinh ra theo tính chính xác của kiểm chứng chéo.
Trong luận văn, chúng tơi sử dụng LibSVM cho việc xây dựng mơ hình, đánh giá kiểm chứng chéo (cross validation). Ngồi ra, chúng tơi cịn sử dụng phần mở rộng của LibSVM cho ngơn ngữ lập trình C# là LibSVM Sharp để phục vụ cho việc phát triển ứng dụng.
c) Định dạng dữ liệu
LibSVM yêu cầu dữ liệu đầu vào phải theo khuơn dạng đã đƣợc quy định sẵn, bao gồm cả tập tin dữ liệu huấn luyện và tập tin dữ liệu thử nghiệm.
Khuơn dạng nhƣ sau:
<label> <index1>:<value1> <index2>:<value2>...
Trong đĩ:
<label>: là giá trị đích của tập huấn luyện. Đối với việc phân lớp, nĩ là một số nguyên xác định một lớp. Đối với hồi quy, nĩ là một số thực bất kỳ.
52
<value>: là một số thực
Các nhãn trong tập tin dữ liệu kiểm thử chỉ đƣợc sử dụng để tính tốn độ chính xác hoặc lỗi.
Với các index mà cĩ value = 0, cĩ thể khơng xuất hiện trong định dạng vector dữ liệu của LibSVM. Cách lƣu trữ này giúp tiết kiệm bộ nhớ trong quá trình xử lý.
d) Các tham số sử dụng trong LibSVM
Dƣới đây là danh sách các tham số lựa chọn khi sử dụng LibSVM:
Bảng 3.7 Danh sách tham số trong LibSVM
Tham
số Mơ tả Giá trị mặc định
-s svm_type: loại của SVM 0 -- C-SVC 1 -- nu-SVC 2 -- one-class SVM 3 -- epsilon-SVR 4 -- nu-SVR 0
-t kernel_type : loại của hàm lõi 0 -- linear: u'*v
1 -- polynomial: (gamma*u'*v + coef0)^degree 2 -- radial basis function: exp(-gamma*|u-v|^2) 3 -- sigmoid: tanh(gamma*u'*v + coef0)
2
-d degree: bậc của hàm lõi 3
-g gamma: giá trị gamma của hàm lõi 1/ số đặc trƣng -r coef0: giá trị coef0 của hàm lõi 0
-c cost: tham số C của C-SVC, epsilon-SVR và nu- SVR
1 -n nu: tham số nu trong nu-SVC, one-class SVM và
nu-SVR
0.5 -p epsilon: giá trị epsilon trong epsilon-SVR 0.1 -m cachesize: kích thƣớc bộ nhớ cache bằng MB 100 -e epsilon: dung sai 0.01 -h shrinking: giá trị shrinking heuristics. 0 hoặc 1 1 -b probability_estimates: ƣớc tính xác suất trong
mơ hình SVC hoặc SVR. 0 hoặc 1
0 -wi weight: giá trị tham số C của lớp i là weight * C,
đối với C-SVC
53
3.4 Kết quả thực nghiệm
Kết quả 3.4.1
Bảng 3.8 Bảng so sánh số liệu trƣớc và sau tiền xử lý
Mơ tả Trƣớc tiền xử lý Sau tiền xử lý
Số lƣợng từ 297.935 từ 130.237 từ
Số từ trung bình / câu 14,89675 từ 6,51185 từ
Cĩ thể nhận thấy, sau quá trình tiền xử lý và chuẩn hĩa dữ liệu thơ, số lƣợng từ nhiễu, khơng quan trọng, sai chính tả đã đƣợc loại bỏ nhiều so với số lƣợng gốc ban đầu.
Bảng 3.9 Bảng số kết quả thực nghiệm
Accuracy (%)
Negative Positive
Precision Recall F Precision Recall F
Unigram 79.94 70.50 86.93 77.68 89.40 75.19 81.68 Bigram 79.49 70.75 85.76 77.54 88.25 75.11 81.15 Trigram 78.44 69.75 84.44 76.39 87.15 74.23 80.17 Unigram + Log-count ratio 80.35 71.25 87.1 78.38 89.45 75.68 81.99 Bigram + Log-count ratio 81.05 71.25 88.62 78.99 90.85 75.96 82.74 Trigram + Log-count ratio 80.99 70.75 88.99 78.83 91.25 75.73 82.77 CBS 60.05 55.95 60.95 58.34 64.14 59.29 61.62 Unigram + CBS 69.15 60.01 73.44 66.04 78.30 66.19 71.74 Bigram + CBS 65.05 60.90 66.41 63.54 69.20 63.90 66.44 Trigram + CBS 64.01 60.00 65.22 62.50 68.00 62.96 65.38 Unigram 80.22 77.50 81.97 81.97 82.95 78.66 80.75
54 + Log-count ratio + CBS Bigram + Log-count ratio + CBS 80.98 79.45 81.95 81.95 82.50 80.06 81.26 Trigram + Log-count ratio + CBS 80.83 80.05 81.31 81.31 81.60 80.35 80.97 Đánh giá kết quả 3.4.2 a) So sánh độ chính xác của các phƣơng pháp trích chọn đặc trƣng Hình 3.4 Biểu đồ độ chính xác theo đặc trƣng 0 10 20 30 40 50 60 70 80 90 Độ chính xác Độ chính xác
55
Từ biểu đồ cĩ thể thấy khi sử dụng đặc trƣng N-gram, độ chính xác bộ phân loại đạt khoảng 78%-80% với cả Unigram, Bigram và Trigram. Khi kết hợp CBS với Ngram thì kết quả lại giảm xuống đáng kể. Tuy nhiên, khi kết hợp Ngram với Log-count ratio hoặc cả 3 loại đặc trƣng thì kết quả lại cải thiện hơn so với chỉ dùng Ngram.
b) So sánh độ chính xác phân loại giữa các nhãn
Xem xét các kết quả thí nghiệm ở trên thì độ chính xác của bộ phân loại (tính theo độ đo F ở trên) khác nhau tùy theo tập đặc trƣng và chênh lệch khá nhiều ở một số tập đặc trƣng khác nhau. Tuy nhiên độ chính xác của bộ phân loại chênh lệch khá nhỏ giữa các nhãn. Nhiều khả năng là do số lƣợng các nhãn phân loại trong tập huấn luyện đồng đều, các nhãn “POSITIVE” và “NEGATIVE” chiếm số lƣợng bằng nhau theo tỷ lệ dữ liệu gốc, điều này ảnh hƣởng đến quá trình xây dựng bộ phân loại cĩ xu hƣớng đồng đều độ chính xác cho các nhãn “POSITIVE” và “NEGATIVE”. Trong bảng dƣới đây thống kê lại chất lƣợng phân loại tốt nhất với từng nhãn ở cả hai phƣơng pháp:
Bảng 3.10 Thống kê độ chính xác phân loại theo nhãn
Nhãn Số câu Độ chính xác phân loại Precision Recall F POSITIVE 10.000 91.25 80.3 5 82.7 7 NEGATIVE 10.000 80.05 88.9 9 80.8 6 20.000
Từ bảng trên ta nhận thấy độ chính xác phân loại theo nhãn khá tƣơng đồng, mức chênh lệnh cũng khơng quá nhiều.
56
Hình 3.5 Biểu đồ chất lƣợng phân loại của các nhãn
Đối chiếu với biểu đồ ta cĩ thể thấy độ chính xác Precision và độ bao phủ Recall đối với các nhãn cĩ sự chênh lệch, tuy nhiên cũng khơng quá 10%. Trong khi đĩ, độ chính xác (tính theo độ đo F-measure) lại xấp xỉ bằng nhau.
3.5 Kết luận chƣơng 3
Nội dung chƣơng này trình quá trình thực hệ thống khai phá quan điểm cho dữ liệu Twitter. Trên cơ sở kết quả thực nghiệm ở chƣơng này luận văn đƣa ra phân tích đánh giá về phƣơng pháp thực hiện. Các kết quả cho thấy việc sử dụng các đặc trƣng riêng rẽ mang lại hiệu quả và độ chính xác khơng cao. Khi tăng dần việc kết hợp các đặc trƣng, độ chính xác phân lớp đƣợc cải thiện hơn. Điều này chứng tỏ tầm quan trọng trong việc trích chọn đặc trƣng và sử dụng kết hợp các đặc trƣng trong bài tốn phân lớp.
74 76 78 80 82 84 86 88 90 92 Precision Recall F POSITIVE NEGATIVE Độ đo %
57
KẾT LUẬN
Trong thời đại hiện nay, ứng dụng cơng nghệ thơng tin vào cuộc sống đang đƣợc áp dụng rộng rãi. Đây thực sự là một cơng cụ hỗ trợ đắc lực giúp cho con ngƣời giải quyết đƣợc nhiều vấn đề, nhiều bài tốn một cách nhanh chĩng, chính xác và hiệu quả cao. Một trong những ứng dụng đĩ là giúp con ngƣời khai phá quan điểm. Với nguồn thơng tin phong phú, cập nhật thƣờng xuyên, gần nhƣ tức thời về quan điểm của ngƣời dùng đối với cái vấn đề xung quanh, mạng xã hội Twitter mở là một cơ hội to lớn với con ngƣời để khai thác đƣợc thơng tin về quan điểm trên đĩ. Xuất phát từ cơ hội đĩ, kết hợp với quá trình nghiên cứu, chúng tơi đã lựa chọn bài tốn Khai phá quan điểm trên mạng xã hội Twitter để thực hiện luận văn này.
Nghiên cứu về xử lý ngơn ngữ tự nhiên nĩi chung, về bài tốn khai phá quan điểm nĩi riêng với chúng tơi là cơng nghệ mới, thời gian nghiên cứu cịn ngắn nên vẫn cịn nhiều vấn đề chƣa thực sự nắm bắt tốt. Tuy nhiên qua quá trình nghiên cứu luận văn, chúng tơi cũng thu đƣợc một số kết quả cũng nhƣ nhận thấy một số hạn chế nhƣ sau:
1. Kết quả đạt đƣợc
Về mặt lý thuyết:
- Tìm hiểu về mạng xã hội Twitter, đặc điểm về dữ liệu trên mạng xã hội Twitter.
- Nghiên cứu về bài tốn khai phá quan điểm trên mạng xã hội Twitter, vai