Lời mở đầu
Với sự bùng nổ của nguồn dữ liệu trên Internet, những bài toán về xử lý thông tin như: trích chọn thông tin, tóm tắt nội dung văn bản v.v ra đời như một nhu cầu tất yếu. Thông tin trên mạng thường gồm 2 loại: sự việc và quan điểm. Ngược với loại quan điểm, thông tin về sự việc được rất nhiều công cụ giải quyết như máy tìm kiếm, lọc thông tin, Với thông tin loại quan điểm thì khó và ít hướng tới hơn tuy nhiên xét về mức độ quan trọng thì thông tin loại này cần thiết hơn, nhất là với những công ty buôn bán sản phẩm. Đối với họ, ý kiến đánh giá về sản phẩm mà người dùng đưa ra là quan trọng nhất trong việc điều chỉnh và đưa ra những chiến lược buôn bán hiệu quả. Ra đời như một thiết yếu, hệ thống đánh giá quan điểm người dùng đã được nghiên cứu mạnh mẽ trong mấy năm gần đây và cũng đưa ra được nhiều kết quả đáng mong đợi. Trong đó có phương pháp đưa ra được kết quả khá khả quan như phương pháp sử dụng kết hợp phân lớp dựa trên luật, học giám sát và học máy.
Mục lục
Lời mở đầu i
Lời cảm ơn ii
Mục lục iii
Danh sách hình vẽ vi
Danh sách bảng vii
Chương 1 Giới thiệu 1
Chương 2 Các hướng tiếp cận cho bài toán đánh giá quan điểm 3
2.1 Xu hướng các cuộc nghiên cứu gần đây 3
2.1.1 Xác định từ, cụm từ quan điểm 4
2.1.2 Xác định chiều hướng từ, cụm từ quan điểm 4
2.1.3 Phân lớp câu / tài liệu chỉ quan điểm 7
2.2 Những thách thức và công việc có thể trong tương lai 9
2.2.1 Các loại từ khác 9
2.2.2 Thuật ngữ chỉ quan điểm 10
2.2.3 Tính phủ định 10
2.2.4 Cấp độ quan điểm 11
2.2.5 Sự phức tạp của câu / tài liệu 12
2.2.6 Quan điểm theo ngữ cảnh 13
2.2.7 Tài liệu không đồng nhất 13
2.2.8 Một số vấn đề khác 14
Chương 3 Giới thiệu GATE 15
3.1 Tổng quan về GATE 15
3.1.1 Mô hình kiến trúc của GATE 16
3.1.2 Những khái niệm cơ bản trong GATE 18
3.2 Xây dựng plugin trên GATE 18
3.3 Các thành phần quan trọng của GATE 21
3.3.1 Bộ từ điển (Gazetteers) 21
3.3.2 Bộ luật JAPE 22
3.4 Các công cụ quản lý chất lượng 27
3.4.1 Công cụ đánh giá độ tương đồng khi gán nhãn hai văn bản (Annotation Diff) 27
3.4.2 Công cụ đánh giá chất lượng của hệ thống (Corpus Benchmark tool) 28
Chương 4 Hệ thống đánh giá quan điểm người dùng 30
4.1 Giới thiệu hệ thống 30
4.2 Thu thập dữ liệu và gán nhãn 31
4.2.1 Thu thập dữ liệu 32
4.2.2 Gán nhãn dữ liệu 33
4.3 Xây dựng hệ thống đánh giá quan điểm 34
4.3.1 Mô tả tổng quan hệ thống 35
4.3.2 Tiền xử lý 37
4.3.3 Xây dựng bộ từ điển 38
4.3.4 Xây dựng bộ luật 40
Chương 5 Kết quả thực nghiệm và phân tích lỗi 46
5.1 Tiến hành thực nghiệm 46
5.2 Kết quả thực nghiệm 47
5.2.1 Kết quả thực nghiệm đánh giá ở mức từ 47
5.2.2 Kết quả thực nghiệm đánh giá ở mức câu 48
5.2.3 Kết quả thực nghiệm đánh giá ở mức văn bản theo từng Features 49
5.2.4 Kết luận chung về kết quả đánh giá 53
5.3 Phân tích lỗi 54
5.3.1 Lỗi do gán nhãn từ loại (POS tag) 54
5.3.2 Lỗi do luật 56
5.3.3 Lỗi do tách câu 57
Chương 6 Tổng kết và hướng phát triển 59
Tài liệu tham khảo 60
Phụ lục A. Annotation Guideline. 63
Phụ lục B. Bảng nhãn từ loại tiếng Việt 64
Chương 1
Giới thiệu
Hiện nay nền công nghệ càng ngày càng phát triển, đặc biệt với sự ra đời của Web, lượng thông tin trên Web là một kho tàng đồ sộ và nhiệm vụ của chúng ta là làm thế nào để khai thác kho tàng to lớn đó. Chính vì nó quá khổng lồ cho nên lượng thông tin rác cũng rất nhiều, vậy làm thế nào để biết được cái gì là cần thiết và cái gì là dư thừa. Các chuyên ngành như Web mining, NLP (Nature Language Processing), hay Machine Learning đều đi tìm câu trả lời cho câu hỏi đó tuy nhiên chúng cũng chỉ tìm được câu trả lời cho những phần nhỏ của câu hỏi mà thôi. Mỗi người quan tâm một số lĩnh vực, mỗi người cần biết thông tin về một vài thứ mà trên Web thì bao gồm vô vàn thông tin thế nhưng lĩnh vực mà đa số người đều quan tâm, từ những nhà doanh nghiệp đến khách hàng - những người dùng đều quan tâm đó chính là sản phẩm. Người dùng thì quan tâm sản phẩm này có tốt không, sản phẩm kia tốt ở chỗ nào và chỗ nào không tốt. Còn doanh nghiệp thì lại thường quan tâm đến sản phẩm của họ được mọi người tiếp đón thế nào, những điểm nào chưa tốt để họ bổ sung sửa chữa, hay phát huy thêm những điểm người dùng quan tâm Câu trả lời cho những câu hỏi này nằm trong nghiên cứu về “Opinion Mining” hay còn gọi “phân tích quan điểm người dùng”. Nghiên cứu này của chúng tôi xuất phát từ sự cần thiết của doanh nghiệp và người dùng, sử dụng những công cụ có ích nhất để đánh giá một cách chính xác nhất về sản phẩm. Với mỗi sản phẩm sẽ có những điểm tính năng riêng (Features) và nhiệm vụ của chúng tôi là từ những review, comment, Feedback, trên nguồn dữ liệu khổng lồ Web để đánh giá xem tính năng của sản phẩm này được mọi người tiếp đón thế nào.
Hệ thống của chúng tôi sử dụng dữ liệu từ trên trang Web http//tinvadung.vn làm dữ liệu chuẩn để phát triển và kiểm thử hệ thống. Chúng tôi giải quyết bài toán dựa trên hướng tiếp cận về luật và phân lớp ở mức câu. Ở đây chúng tôi tạm thời chia thành 2 loại đánh giá của người dùng là hướng tích cực (positive) và hướng tiêu cực (negative). Hệ thống của chúng tôi được xây dựng trên nền GATE [3] – là một framework giúp phát triển các thành phần xử lý ngôn ngữ tự nhiên, và được sử dụng với dữ liệu về máy tính (laptop & desktop). Trong tương lai chúng tôi sẽ phát triển hệ thống để đưa ra một thước đo chính xác hơn về những đánh giá và mở rộng thêm với các lĩnh vực khác.
Phần còn lại của khóa luận được chia thành 5 chương:
ã Chương 2: Chúng tôi giới thiệu về những hướng tiếp cận cho bài toán tự động đánh giá quan điểm người dùng, những công trình nghiên cứu hiện tại và những thách thức sẽ giải quyết trong tương lai.
ã Chương 3: Chúng tôi giới thiệu một cách tổng quan về khung làm việc GATE, và cách xây dựng một hệ thống tích hợp trong GATE.
ã Chương 4: Chúng tôi mô tả chi tiết hệ thống tự động đánh giá quan điểm người dùng trong văn bản tiếng Việt được xây dựng trên khung làm việc GATE.
ã Chương 5: Chúng tôi đưa ra những kết quả thực nghiệm và phân tích những lỗi vẫn còn tồn tại.
ã Chương 6: Chúng tôi đưa ra những kết luận về hệ thống và hướng phát triển hệ thống trong tương lai.
75 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3047 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Khóa luận Tự động đánh giá quan điểm người dùng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
.
Ví dụ về thành thần thay thế (Macros) - khai báo thành phần thay thế StrongWord
Macro: StrongWord
// rất, khá, hơi, siêu,
(
{Word.string=="rất"} |
{Word.string=="siêu"} |
{Word.string=="khá"} |
{Word.string=="hơi"}
)
Sử dụng StrongWord trong mệnh đề trái của luật rulePositive1.
Rule: rulePositive1
Priority: 1
(
(StrongWord)
({Lookup.majorType=="positive"}):name
)
-->
:name.PosWord = {kind = "Trich chon positive", type="Positive", rule = " StrongWord + "}
3.3.2.4 Sử dụng đoạn mã Java trong JAPE
Có những công việc chỉ sử dụng luật đơn giản không thể quản lý tốt các nhãn được, chúng ta nghĩ đến một cách khác đó chính là sử dụng đoạn mã Java trong JAPE. Để tăng tính linh động và hiệu quả, bộ luật JAPE hỗ trợ chèn những đoạn mã JAVA vào trong mệnh đề phải. Nhờ đó ngoài việc tạo ra các nhãn (annotations) mới, mệnh đề phải còn có thể làm rất nhiều việc khác như: chèn thêm các đặc trưng (features), thay đổi kiểu nhãn (Type) hay xóa các nhãn đã tồn tại v.v…
3.3.2.5 Một vài lựa chọn khi viết luật
Thành phần đầu tiên của mỗi luật (phase) JAPE luôn là các lựa chọn như:
Kiểu điều khiển (Control) để quản lý cách so khớp mẫu. Có 5 lựa chọn cho kiểu điều khiển là “brill”, “all”, “first”, “once” và “appelt”. Nó được khai báo ở phần đầu văn bản chứa các luật để điều khiển phương thức so khớp mẫu:
Options: control =
“brill”: khi có nhiều hơn một luật cùng thỏa mãn cho một đoạn của văn bản, thì tất cả các luật này đều được thực thi. Sau khi quá trình so khớp (matching) diễn ra ở tất cả các luật thì điểm bắt đầu quá trình so khớp tiếp theo sẽ là điểm kết thúc của luật được so khớp dài nhất trong quá trình trước (longest matching).
“all”: tương tự như “brill” nó cho phép thực hiện nhiều luật trên cùng một đoạn văn bản. Tuy nhiên có điểm khác biệt với “brill” đó là: điểm bắt đầu quá trình so khớp tiếp theo là điểm bắt đầu của nhãn (annotation) gần nhất sau nó. Có thể nói all so khớp rộng hơn “brill”.
“first”: luật được thực hiện ngay khi quá trình so khớp đầu tiên được thỏa mãn. Bởi vậy nó không thích hợp cho các luật sử dụng “*”, “+”, “?”.
“once”: chỉ có luật đầu tiên thỏa mãn quá trình so khớp được thực hiện.
“appelt”: chỉ một luật thỏa mãn quá trình so khớp và có độ thực thi cao nhất được thực hiện. Độ thực thi của các luật được tính như sau:
Tất cả các luật cùng thỏa mãn so khớp từ vị trí X thì luật nào so khớp được dài nhất (longest matching) sẽ có độ thực thi cao nhất.
Nếu như nhiều hơn một luật so khớp cùng một đoạn trong văn bản thì luật nào được định nghĩa độ ưu tiên cao hơn sẽ có độ thực thi cao hơn và được thi hành.
Nếu như hai hay nhiều luật so khớp cùng một đoạn trong văn bản và có độ ưu tiên như nhau thì luật nào được định nghĩa sớm nhất sẽ có độ thực thi cao nhất và được thi hành.
Tập các nhãn đầu vào (Input Annotations): các nhãn (annotations) có kiểu (Type) thuộc tập các nhãn đầu vào sẽ được sử dụng như là đầu vào cho các mệnh đề trái (quá trình so khớp).
Ví dụ:
Phase: Entity
Input: Word Split Lookup
Options: control = appelt
3.4 Các công cụ quản lý chất lượng
Khi phát triển một hệ thống, các công cụ quản lý chất lượng là không thể thiếu để đánh giá công việc. Việc luôn luôn có sự đánh giá chất lượng ngay từ giai đoạn xây dựng tập dữ liệu cho đến những giai đoạn cuối cùng (đánh giá kết quả làm việc của hệ thống) giúp hệ thống vận hành trơn tru và dễ dàng hơn trong sự kiểm soát của người phát triển.
3.4.1 Công cụ đánh giá độ tương đồng khi gán nhãn hai văn bản (Annotation Diff)
“Annotation Diff” cho phép người sử dụng so sánh hai văn bản được gán nhãn trên từng loại nhãn. Điều này đem lại nhiều lợi ích trong giai đoạn xây dựng tập dữ liệu. Bởi để mang tính khách quan, ta luôn luôn phải có hai đội xây dựng tập dữ liệu độc lập và khi đó “Annotation Diff” sẽ giúp so sánh những phần làm việc chung, để đi đến thống nhất tạo ra một tập dữ liệu chuẩn. Giao diện như trong hình 5.
Hình 5 - Giao diện của Annotation Diff
Tuy nhiên điểm hạn chế của “Annotation Diff” là chỉ so sánh được từng cặp văn bản, và từng kiểu nhãn khác nhau. Để đánh giá toàn bộ hệ thống chúng tôi không thể dùng Annotation Diff mà chỉ dùng nó trong quá trình xây dựng từng luật cần nhìn trực quan. Corpus Benchmark tool chính là một trong những công cụ để đánh giá hệ thống.
3.4.2 Công cụ đánh giá chất lượng của hệ thống (Corpus Benchmark tool)
Đây là công cụ cho phép người sử dụng đánh giá độ tương đồng của các tập dữ liệu khác nhau như: tập dữ liệu được gán nhãn thủ công (bằng tay), tập dữ liệu được xử lý bởi hệ thống hiện hành. Corpus Benchmark tool cũng hoạt động tương tự như Annotation Diff, nhưng là trên một tập văn bản và tất cả các nhãn. Nó đưa ra được những kết quả về độ đo precision, recall và F-measure.
Giao diện của Corpus Benchmark tool như hình 6.
Hình 6 - Giao diện của Corpus Benchmark tool
Hệ thống của chúng tôi dùng tool được viết lại dựa trên công cụ đánh giá chất lượng Corpus Benchmark tool.
Chương 4Hệ thống đánh giá quan điểm người dùng
Như ở chương 2 chúng tôi đã đưa ra một số hướng tiếp cận cho bài toán đánh giá quan điểm. Có rất nhiều hướng tiếp cận để tìm ra một hướng phù hợp với ngôn ngữ và những văn bản về đánh giá sản phẩm là điều hoàn toàn không phải dễ dàng. Có thể với văn bản này ngôn ngữ này phương pháp này rất tốt nhưng với văn bản khác ngôn ngữ khác phương pháp này lại không hiệu quả cho lắm. Ngoài ra đây cũng là ngành nghiên cứu mới không chỉ ở Việt Nam mà còn trên cả thế giới cho nên những nghiên cứu áp dụng cho ngôn ngữ Việt Nam không nhiều và đạt được hiểu quả cũng chưa thực sự tốt. Hơn nữa cũng chính vì đây là một đề tài nghiên cứu mới cho nên nhiều cái chưa có một sự quy chuẩn nào cả và chúng tôi phải tự định nghĩa một số chuẩn.
Ở đây chúng tôi xây dựng hệ thống đánh giá quan điểm người dùng dựa trên hướng tiếp cận về luật và phân lớp ở mức câu.
4.1 Giới thiệu hệ thống
Hệ thống của chúng tôi được xây dựng với mục đích đánh giá những đặc điểm (Features) của sản phẩm theo 2 hướng positive và negative. Vì mục đích là đánh giá Features cho nên chúng tôi giả sử trong dữ liệu văn bản đưa ra đánh giá đều nói đến một sản phẩm. Trong quá trình thu thập dữ liệu chúng tôi cũng thấy đa phần các trang đều đánh giá về một sản phẩm trong mỗi thread.
Hệ thống của chúng tôi được xây dựng trên nền GATE cho phép chọn 1 văn bản hoặc nhiều văn bản về cùng một sản phẩm và trả ra kết quả là số câu (câu đơn) nói về Features của sản phẩm đó theo 2 hướng positive và negative.
Giao diện hệ thống của chúng tôi cho phép người dùng chọn đến một hoặc nhiều văn bản cùng nói đến một sản phẩm. Chúng tôi cũng chia sản phẩm theo 3 hướng category là: computer (laptop & desktop), ô tô và xe máy, điện thoại di động (phone) tuy nhiên hiện tại chúng tôi mới xây dựng Feature cho máy tính (computer). Sau khi đã có thêm các văn bản làm input, hệ thống của chúng tôi sẽ đưa ra kết quả về từng Feature cho thể loại computer. Ví dụ như Feature cauhinh: 6/4 nghĩa là trong văn bản nói về sản phẩm có 6 câu nói cấu hình của máy tính đó là positive còn 4 câu là negative.
Sau đây là hình ảnh mô tả giao diện và kết quả của hệ thống [Hình 7].
Hình 7 - Minh họa giao diện hệ thống
4.2 Thu thập dữ liệu và gán nhãn
Đây là phần đầu tiên để bắt đầu xây dựng hệ thống. Chúng tôi cần thu thập dữ liệu càng chuẩn càng theo chính quy càng dễ dàng cho phát triển hệ thống. Việc gán nhãn cũng rất quan trọng và cũng là phần chúng tôi làm cẩn thận và tỉ mỉ nhất bởi vì nó ảnh hưởng trực tiếp đến độ chính xác của hệ thống.
4.2.1 Thu thập dữ liệu
Ai cũng biết nguồn dữ liệu trên mạng là rất khổng lồ nhưng không phải là dễ dàng để tìm được một nguồn dữ liệu chuẩn xác và hợp lý. Mục đích của chúng tôi hướng đến nguồn dữ liệu mà được người dùng đánh giá một cách khách quan nhất và thể hiện được ý kiến của họ nhất. Khó khăn trong công việc này là văn bản trên Internet về sản phẩm cũng không phải nhiều trừ một số sản phẩm về điện tử hay công nghệ như máy tính, ô tô, xe máy, di động, … thì những sản phẩm khác lại ít được người dùng quan tâm hơn. Ngoài ra những đánh giá đo lại thường được viết theo ngôn ngữ @ hay 9x,… hay một số thể loại khác không theo chính thống làm cho việc thu thập dữ liệu cũng gặp nhiều khó khăn.
Để tránh và giải quyết những khó khăn trên chúng tôi đã tìm ở một số trang có cách viết khá chính quy giúp cho việc xử lý dữ liệu được dễ dàng hơn. Chủ yếu nguồn dữ liệu của chúng tôi được lấy về từ trang theo chủ đề (category) máy tính (laptop & desktop) trong tương lai chúng tôi sẽ mở rộng thêm các chủ đề về ô tô & xe máy, điện thoại di động. Hình 8 là hình ảnh về những bài đánh giá trên trang web này. Chúng tôi sau khi lấy dữ liệu về cũng tiến hành một số thao tác nhỏ nhằm làm cho dữ liệu trở lên chính quy hơn như: sửa một số lỗi chính tả do người dùng; một số từ theo cách viết cá nhân, viết tắt (“wa”, “ko”…); một số đoạn thiếu chấm câu, cách dòng,…
Hình 8 - Những reviews do người dùng đánh giá ở trang tinvadung.vn
Dữ liệu của chúng tôi có khoảng 3971 câu ở 20 văn bản tương ứng với 20 sản phẩm mà chúng tôi đã thu thập và xử lý qua để đưa về văn bản chuẩn. Nguồn dữ liệu cũng tương đối đủ cho chúng tôi làm tập huấn luyện (training) và kiểm tra (testing) cho hệ thống. Trong tương lai chúng tôi sẽ thu thập thêm dữ liệu về mỗi chủ đề và mở rộng thêm các chủ đề khác nữa.
4.2.2 Gán nhãn dữ liệu
Đây là phần khá quan trọng nếu không nói là phần quan trọng nhất ảnh hưởng trực tiếp đến sản phẩm. Công việc này yêu cầu độ chính xác cao, chỉ có vậy thì bộ từ điển và bộ luật chúng tôi xây dựng mới chính xác được.
Hệ thống của chúng tôi có mục đích đánh giá quan điểm như vậy xét trong phạm vi từ, những từ về quan điểm là cần thiết nhất, chúng tôi dùng 2 gán nhãn PosWord và NegWord để phân lớp cho từ quan điểm. Tiếp đó từ nói đến Feature để đưa ra đánh giá là quan trọng thứ nhì, chúng tôi gọi chung những từ này là Entity và xét riêng cho từng Feature thì lấy tên của Feature đấy làm tên của nhãn ví dụ như: cauhinh, vanhanh… Như đã nói ở chương 2 loại từ phủ định hay làm thay đổi đánh giá quan điểm chúng tôi cũng xét đến và được gán nhãn ReverseOpinion.
Hệ thống của chúng tôi đánh giá quan điểm xét ở mức câu chính vì vậy những nhãn về câu là không thể thiếu. Chúng tôi cần các nhãn PosSen, NegSen, MixSen để phân biệt cho những câu đơn đơn giản mà có những đánh giá lần lượt là positive, negative và cả 2 loại. Ngoài ra khi đối với câu không có từ quan điểm thì có một kiểu câu khác vẫn có ý nghĩa đánh giá quan điểm là câu so sánh. Để giải quyết vấn đề này chúng tôi dùng thêm hai nhãn CompWord (từ so sánh) và CompSen (câu so sánh) để phân biệt. Hình 9 sau cho thấy một dữ liệu được chúng tôi gán nhãn thủ công bằng phần mềm Callisto (
Hình 9 - Gán nhãn dữ liệu
4.3 Xây dựng hệ thống đánh giá quan điểm
Như trong chương 2 chúng tôi đã nói đến những hệ thống gần đây, hệ thống của chúng tôi cũng được xây dựng dựa trên 3 thành phần chính: xác định từ, cụm từ chỉ quan điểm; xác định xu hướng quan điểm; và phân lớp câu chỉ quan điểm. Những phần trên được chúng tôi tách ra và xây dựng dựa trên GATE. Ở phần sau chúng tôi sẽ đi sâu vào mô tả hệ thống của mình.
4.3.1 Mô tả tổng quan hệ thống
Hệ thống đánh giá quan điểm của chúng tôi được chia thành 4 phần chính như sau:
Tiền xử lý: giải quyết những vấn đề cơ bản cho văn bản làm tiền đề cho bước xử lý sau.
Xác định từ, cụm từ chỉ quan điểm và xu hướng quan điểm của nó.
Xác định câu và phân lớp câu chỉ quan điểm.
Đánh giá các đặc tính của sản phẩm (Features) dựa trên câu.
Sau đây chúng tôi đưa ra một ví dụ để chúng ta có thể hiểu rõ hơn công việc và nhiệm vụ của từng phần.
Ví dụ dữ liệu văn bản:
“HP dv 4 có thiết kế bắt mắt, ưa nhìn tuy nhiên giá quá cao.”
Sau khi tiền xử lý chúng tôi tách từ và POS tag cho văn bản:
“HP dv 4 có thiết kế bắt mắt, ưa nhìn tuy nhiên giá quá cao.”
Dựa trên tiền xử lý chúng tôi dùng luật để xác định các từ, cụm từ chỉ quan điểm:
“HP dv 4 có thiết kế bắt mắt, ưa nhìn tuy nhiên giá quá cao.”
Sau khi đã nhận dạng được các từ, cụm từ (nếu có thêm ReverseOpinion) chỉ quan điểm chúng tôi tiến hành chia câu và xác định quan điểm của câu:
“HP dv 4 có thiết kế bắt mắt, ưa nhìn tuy nhiên giá quá cao.”
Cuối cùng chúng tôi tổng hợp các câu đánh giá về Feature và hiển thị ra kết quả:
Kieudang: 1/0
Gia: 0/1
Tính hiệu quả của khung làm việc GATE cho bài toán nhận dạng thực thể đã được chứng minh qua nhiều nghiên cứu (Maynard 2001, Cao 2007), bởi vậy chúng tôi quyết định xây dựng hệ thống nhận dạng thực thể trong văn bản tiếng Việt như một thành phần tích hợp (Plugin) trên GATE nhằm tận dụng những ưu điểm mà GATE mang lại. Chúng tôi đưa ra mô hình xử lý trên GATE như sau [Hình 10]:
Hình 10 - Mô tả chi tiết hệ thống đánh giá quan điểm người dùng trên GATE
Hệ thống bao gồm 5 bộ phận chính:
Bộ tách từ
Bộ gán nhãn từ loại
Bộ từ điển
Bộ luật
Bộ đánh giá Features
Để hiểu chi tiết hơn về hệ thống đánh giá quan điểm người dùng trên văn bản tiếng Việt xây dựng trên nền GATE, chúng ta sẽ đi sâu hơn tìm hiểu về từng bộ phận của hệ thống.
4.3.2 Tiền xử lý
Một nét đặc trưng rất khác biệt của tiếng Việt so với tiếng Anh đó là vấn đề tách từ (word segmentation). Trong tiếng Anh các từ được phân biệt bởi dấu trống, tuy nhiên từ trong tiếng Việt thì không như vậy. Trong tiếng Việt chỉ coi những từ phân biệt với nhau bởi dấu trống như ở từ trong tiếng Anh là một tiếng và một từ có thể bao gồm một, hai, ba hoặc nhiều tiếng. Một tiếng có thể liên kết với từ đứng trước nó, hoặc đứng sau nó để tạo thành từ. Ví dụ như câu:
“Học sinh học sinh học.”
Có thể tách câu trên như sau:
“Học_sinh học sinh_học.”
hay
“Học sinh_học sinh_học.”
Như vậy tiếng “sinh” có thể kết hợp với tiếng “Học” đứng trước nó để tạo thành từ “Học sinh”, hay nó còn có thể kết hợp với tiếng “học” đứng sau nó để tạo thành từ “sinh_học”.
Ngoài yêu cầu bắt buộc về một bộ tách từ, chúng tôi còn sử dụng thêm bộ gán nhãn từ loại trong giai đoạn tiền xử lý của hệ thống, nhằm cung cấp được nhiều thông tin cho các giai đoạn xử lý tiếp theo. Chúng tôi đóng gói bộ tách từ [6] thành plugin Coltech.NLP.tokenizer trong khung làm việc GATE. Nhờ đó bộ tách từ và gán nhãn từ loại có thể dễ dàng thay đổi, cải tiến mà không làm ảnh hưởng đến kiến trúc của hệ thống.
Các văn bản sau khi được xử lý bởi Coltech.NLP.tokenizer sẽ trở thành văn bản ở định dạng của GATE tức là gồm: nội dung văn bản, tập các nhãn (annotation) và tập các đặc trưng (tham khảo thêm về GATE trong chương 3). Ở đây chúng tôi chỉ tạo ra các nhãn “Word” và “Split”.
Mỗi nhãn (annotation) “Word” được tạo mới trên một từ gồm một vài đặc trưng như:
Từ loại (POS): là từ loại của từ. Ví dụ: Np, Nn v.v…(tham khảo tại phụ lục B).
Nội dung (string): là xâu thể hiện từ. Ví dụ: “học sinh”, “đại ca” v.v…
Viết hoa (upper): nếu ký tự đầu tiên của từ viết hoa thì upper = “true”. Ngược lại upper = “false”.
Ngoài ra còn một số đặc trưng như: kind, nation v.v…để giúp ích cho quá trình viết luật.
Mỗi nhãn “Split” được tạo mới trên một dấu tách câu như: “.”, “?”, “!”, cũng có những đặc trưng tương tự như nhãn “Word”.
Sau khi Coltech.NLP.tokenizer hoàn thành, chúng tôi bước vào xây dựng thành phần xử lý chính trong hệ thống gồm hai nguồn xử lý (Processing Resource):
Coltech.Opinion.ListOpinion như một bộ từ điển.
Coltech.Opinion.Rule như một bộ luật.
Hai nguồn xử lý này được xây dựng và phát triển song song cùng với quá trình tạo tập dữ liệu được gán nhãn (Annotated corpus).
4.3.3 Xây dựng bộ từ điển
Bộ từ điển (Coltech.Opinion.ListOpinion) được tạo từ nhiều từ điển với các tiêu chí khác nhau, nhằm nhận dạng một lớp các thực thể nhờ quá trình so khớp đồng thời cũng cung cấp những thông tin cần thiết cho quá trình nhận dạng trong bộ luật. Mỗi từ điển gồm các từ mang cùng một ý nghĩa nào đó, có thể là chứa các thực thể cùng loại như: từ mang nghĩa positive, từ mang nghĩa negative,… hay chứa các từ, cụm từ đóng những vai trò giống nhau về mặt cú pháp, ngữ nghĩa, hoặc chỉ đơn giản là để sử dụng cho một luật nào đó trong bộ luật. Do đây là hướng nghiên cứu mới ngay cả trên thế giới cho nên những bộ từ điển chuẩn dành cho tiếng Việt hiện tại chưa được định nghĩa. Do đó mà những bộ từ điển này được chúng tôi xây dựng nhờ những kinh nghiệm có được trong quá trình gán nhãn thủ công (bằng tay với sự hỗ trợ của phần mềm Callisto [7]), và vẫn đang được tiếp tục phát triển.
Có thể chia bộ từ điển thành các nhóm sau:
Những từ điển chứa các tên các thực thể trong nhận dạng Features:
Từ điển những từ liên quan đến cấu hình (feature trong sản phẩm về máy tính): cấu hình, hệ thống, thông số, vi xử lý, chất lượng xử lý ...
Từ điển những từ liên quan đến kiểu dáng: kiểu dáng, hình thức, thiết kế, thân hình, kích thước, trang trí, màu sắc …
Những từ điển chứa các từ dùng để viết luật xác định từ quan điểm:
Từ điển từ mang tính positive: tốt, tuyệt vời, hoàn hảo, nổi bật, hài lòng …
Từ điển từ mang tính negative: xấu, đắt, thô, phàn nàn, tù túng, thất vọng…
Từ điển từ làm thay đổi ý nghĩa quan điểm (Reverse Opinion): không thể, không quá, không bị, chưa được …
Coltech.Opinion.ListOpinion hoạt động tạo ra một tập các nhãn (annotation) Lookup (loại nhãn mặc định của GATE). Mỗi một nhãn Lookup được tạo mới tương ứng với một từ hoặc cụm từ của văn bản xuất hiện trong bộ từ điển (gazetteer) và chứa các đặc trưng của từ điển (bao gồm majorType và minorType). Như vậy sau hai quá trình xử lý là Coltech.NLP.tokenizer và Coltech.Opinion.ListOpinion, văn bản đã được gán ba kiểu nhãn (annotation) là: “Word”, “Split” và “Lookup” [Hình 11].
Hình 11 - GATE sau khi POS Tag và Lookup
4.3.4 Xây dựng bộ luật
Song song với quá trình xây dựng bộ từ điển (Coltech.Opinion.ListOpinion) chúng tôi tiến hành xây dựng bộ luật (Coltech.Opinion.Rule) – thành phần quan trọng nhất trong hệ thống của chúng tôi. Bộ luật sử dụng các thông tin do các thành phần khác trong hệ thống (bộ tách từ, bộ gán nhãn từ loại, bộ từ điển) cung cấp để nhận dạng các thực thể (thực thể và loại thực thể). Có thể mô tả các bước hoạt động của bộ luật do chúng tôi xây dựng như sau:
Tiền xử lý
Loại bỏ các nhãn “Lookup” không cần thiết, hoặc có thể đưa những thông tin sai cho quá trình nhận dạng.
Xử lý
Xác định những từ chỉ quan điểm và phân loại thành 2 hướng positive (PosWord) và negative (NegWord).
Xác định các từ dùng để so sánh CompWord.
Xác định câu đơn (SimpSenten) và phân loại theo 5 hướng positive (PosSen), negative (NegSen), cả hai positive và negative (MixSen), câu thông thường không mang quan điểm và câu so sánh (CompSen).
Bộ luật được phát triển dựa trên những kinh nghiệm của quá trình phân tích lỗi, hay nói cách khác nó ngày càng hoàn thiện hơn sau mỗi lần chúng tôi phát hiện lỗi và sửa lỗi. Để đảm bảo việc phát triển các luật không làm ảnh hưởng đến những thành quả đã có của hệ thống, chúng tôi luôn sử dụng unit testing trong suốt quá trình viết luật.
Đây là ví dụ về một luật được viết trên GATE của chúng tôi:
Rule: rulePositive1
Priority: 1
(
(StrongWord)
({Word.category=="O"})?
({Lookup.majorType=="positive"}):name
)
-->
:name.PosWordFirst = {kind = "StrongWord + ? +", type="Positive", rule = "Trich chon positive"}
Luật trên có ý nghĩa:
+ -> từ mang quan điểm
4.3.4.1 Chuẩn hóa tập nhãn Lookup
Hoạt động đầu tiên của bộ luật là loại bỏ đi những nhãn Lookup chỉ là tiếng không phải là từ, không mang đúng ngữ nghĩa trong văn cảnh. Ví dụ trong 2 câu:
“Macbook Pro MB471ZPA có giá quá cao. Tuy nhiên chiếc Laptop này vẫn được đánh giá cao.”
Vì trong từ điển chúng tôi xác định từ “giá” để chỉ đến Feature “giá cả” của sản phẩm cho nên khi xây dựng bộ từ điển cũng sẽ xác định luôn từ “giá” trong “đánh giá” là Feature “giá cả”. Những nhãn (annotation) như vậy bị chúng tôi loại bỏ vì nó sẽ mang lại những sai lầm trong quá trình nhận dạng.
4.3.4.2 Xác định những từ chỉ quan điểm
Đây được coi như là nhiệm vụ quan trọng có ảnh hưởng trực tiếp đến kết quả của hệ thống. Do vậy nếu như càng đánh giá được chính xác những từ chỉ quan điểm hệ thống càng có độ chính xác cao.
Những từ chỉ quan điểm được xác định dựa trên từ điển các từ chỉ quan điểm tuy nhiên có nhiều từ trong một số ngữ cảnh lại không mang ý chỉ quan điểm (như từ “thời trang”: “Phong cách rất thời trang” và “Thiết kế của máy có nét thời trang giống với chiếc xe ô tô”) hay lại vừa mang ý positive vừa mang ý negative như từ “cao” nếu nói đến cấu hình thì là positive còn nói đến giá cả thì lại là negative.
Thông thường theo một cách dễ thấy các từ mang ý chỉ quan điểm thường đi cùng với một số từ có ý nghĩa nhấn mạnh như: rất, siêu, khá… Với PosWord có những từ nhấn mạnh như: cực, đáp ứng, tương đối, luôn … Với NegWord thì lại có một số từ khác như: dễ, hơi, gây, bị … Kết hợp những từ nhấn mạnh này với những từ có trong bộ từ điển thì khả năng rất cao từ này mang ý nghĩa quan điểm. Luật mà chúng tôi đưa ra có dạng:
+ + -> từ mang quan điểm
Hay một luật đơn giản thứ hai cần xét đến đó là những từ quan điểm hay được người dùng đánh giá bằng nhiều từ để làm rõ lên ý kiến của anh ta (cô ta) như:
“Laptop cho doanh nhân Acer Aspire 3935 sử dụng thiết kế phá cách, hiện đại.”
Những từ này thường được đi cùng nhau và dùng những liên từ để nối chúng lại. Luật chúng tôi đưa ra là:
Tiếp theo phải kể đến những từ quan trọng làm thay đổi nghĩa của quan điểm. Nó có ý nghĩa quan trọng trong việc phân loại. Luật chúng tôi đưa ra cho công việc này hiểu theo một cách đơn giản có dạng:
->
Ngoài ra chúng tôi cũng áp dụng nhiều luật khác nhau để đánh giá quan điểm theo cấu trúc câu dựa vào POS tag ở tiền xử lý và mỗi luật mới lại dùng unit testing để kiểm tra và loại bỏ nếu như nó làm kết quả trở lên tồi tệ.
4.3.4.4 Xác định từ so sánh
Trong việc xác định từ so sánh chúng tôi chỉ xác định với mục đích giúp cho việc đánh giá quan điểm tốt hơn cho nên không xét những câu mang ý nghĩa quan điểm. Có nghĩa từ so sánh ở đây đứng độc lập và không kèm theo từ đánh giá quan điểm. Ví dụ: “Laptop của Acer thường có giá hơn hẳn Dell” và không xét dạng so sánh này: “Laptop của Acer có giá cao hơn Dell”
So sánh được chia làm 4 loại: so sánh hơn, so sánh kém, so sánh bằng, và so sánh nhất. Với từng loại ta có những từ đi riêng với nó và dựa trên những từ đó để xác định so sánh.
So sánh bằng: chẳng thua kém, giống với, tương tự như... So sánh hơn thường dựa trên những từ: hơn, hơn so với…
So sánh kém: kém so với, kém hơn, thua kém…
So sánh hơn: hơn hẳn, hơn so với, vượt qua…
So sánh nhất: đứng nhất, đứng đầu…
4.3.3.5 Xác định câu đơn và phân loại
Như đã nói ở chương 2 sự phức tạp ở câu là một vấn đề gây nhiều khó khăn cho việc đánh giá chính xác quan điểm. Câu càng dài lại càng khó khăn để xử lý do đó mà chúng tôi tiến hành việc chia những câu ghép thành các câu đơn đơn giản cho việc xử lý. Tuy nhiên dựa trên sự phức tạp của câu cho nên công việc này không đơn giản chúng tôi chỉ có thể tiến hành một số việc phân tách với độ chính xác tương đối.
Ngoài cách tách câu dựa vào một số dấu câu cơ bản như: “.”, “?”, “!”, “:”, “;”. Chúng tôi xét một số từ thường dùng để tách hai vế của câu như: trong khi đó, tuy nhiên… Thêm nữa là một phương pháp tách dựa trên một số luật xét theo cấu trúc câu như:
… …
thì sẽ dùng liên từ làm vị trí tách câu.
Sau khi đã tách các câu thành câu đơn, việc tiếp theo cần làm là phân loại câu đơn này theo 5 hướng:
Câu đánh giá positive (PosSen): chỉ gồm những từ đánh giá positive.
Câu đánh giá negative (NegSen): chỉ gồm những từ đánh giá negative.
Câu đánh giá cả hai hướng (MixSen): có cả hai loại từ đánh giá quan điểm positive và negative.
Câu thông thường: câu không mang từ đánh giá quan điểm nào.
Câu so sánh (CompSen): câu thông thường mang từ so sánh.
Đối với câu so sánh, do những câu so sánh thường nói đến sản phẩm này so với sản phẩm kia trong khi mục đích của chúng tôi hạn hẹp hơn một chút là liên quan đến các Features do đó mà chúng tôi coi như câu so sánh là một dạng của câu đánh giá quan điểm. Với mục đích như vậy nên ở câu so sánh chúng tôi coi như sản phẩm đầu tiên mà câu đem ra so sánh là sản phẩm chính của văn bản mà đã được giả thiết rằng văn bản này chỉ nói đến sản phẩm đó. Câu so sánh lúc này lại được chia làm 3 loại:
So sánh hơn, so sánh nhất và việc phân loại dạng câu này về dạng positive.
So sánh kém: phân loại về dạng negative.
So sánh bằng: câu thông thường.
4.3.3.6 Xây dựng đánh giá Features
Việc xây dựng đánh giá Features chính là dựa trên sự phân loại các câu đơn. Đối với những câu đơn được chia thành 2 loại PosSen và NegSen thì việc đánh giá Features trở lên dễ dàng hơn vì quan điểm lúc này đã được xác định và việc còn lại là dựa trên các entity để xác định xem câu đó có nói đến Features này hay không.
Với những câu có cả hai loại đánh giá quan điểm là MixSen chúng tôi phải xét từng thành phần trong câu và những câu này thường có dạng và chúng tôi sẽ coi như những opinion đi sau Feature gần nó chính là đánh giá về Feature đó.
Kết quả đánh giá về Feature sẽ được tính bằng đơn vị câu (không phải số từ đánh giá) là kết quả thu được khi xét những Feature ở trong các câu đã được phân loại như trên. Nếu số câu nói về positive nhiều hơn số câu negative thì Feature đó được xác định là positive và ngược lại nếu số câu negative nhiều hơn thì xác định là negative.
Chương 5Kết quả thực nghiệm và phân tích lỗi
Dữ liệu của chúng tôi có khoảng 3971 câu ở 20 văn bản tương ứng với 20 sản phẩm mà chúng tôi đã thu thập và xử lý qua để đưa về văn bản chuẩn (Xem phần 4.2 về thu thập dữ liệu). Chúng tôi đánh giá hệ thống trên hai tập dữ liệu, tập dữ liệu được dùng trong quá trình viết luật (tập huấn luyện) gồm 16 văn bản (khoảng 3182 câu), và tập dữ liệu mới (tập kiểm tra) gồm 4 văn bản (khoảng 789 câu). Do giả thuyết của chúng tôi về hệ thống (xem chương 4) mỗi sản phẩm sẽ tương đương với một hoặc nhiều văn bản, tuy nhiên ở đây chúng tôi thiết kế dữ liệu thành mỗi văn bản tương đương với một sản phẩm và đánh giá về sản phẩm chính là đánh giá văn bản tương ứng của nó.
5.1 Tiến hành thực nghiệm
Bước 1: Sử dụng hệ thống nhận dạng thực thể trong văn bản tiếng Việt do chúng tôi xây dựng để tự động nhận dạng và gán nhãn.
Bước 2: So sánh tập dữ liệu được gán nhãn tự động và tập dữ liệu chuẩn được gán nhãn thủ công (bằng tay với sự hỗ trợ của phần mềm Callisto), qua đó đưa ra các thông số đánh giá chất lượng của hệ thống (Precision, Recall, F-measure).
Chúng tôi đánh giá theo 3 mức: từ, câu và features. Ở mức từ và câu chúng tôi sử dụng so sánh nhãn để đánh giá. Nhãn của từ hay câu gọi là giống nhau khi mà chúng cùng kiểu và vị trí xuất phát, kết thúc của chúng trong văn bản chênh lệch nhau không quá mức sai số. Ở đây chúng tôi cho sai số là 1 có nghĩa vị trí có thể sai lệch nhau 1 để tránh trường hợp trong quá trình gán nhãn có gán nhãn thừa các ký tự trống, ký tự đặc biệt,…
5.2 Kết quả thực nghiệm
Chúng tôi chia dữ liệu thực nghiệm thành 2 tập huấn luyện và kiểm tra. Mỗi tập văn bản chúng tôi chọn ra một số văn bản để đánh giá theo 3 mức từ, câu và Features. Mức từ và mức câu chúng tôi đánh giá theo các thông số cơ bản về chất lượng hệ thống (Precision, Recall, F-measure). Còn về đánh giá Features chúng tôi sẽ đưa ra một phương pháp mà theo chúng tôi là hợp lý cho hệ thống của chúng tôi.
5.2.1 Kết quả thực nghiệm đánh giá ở mức từ
Ở mức từ chúng tôi chỉ dùng những nhãn từ cần thiết quyết định cho cả hệ thống đó là: PosWord (từ quan điểm mang nghĩa tích cực), NegWord (từ quan điểm mang nghĩa tiêu cực) (xem thêm ở phụ lục A về các nhãn). Kết quả của hệ thống chủ yếu dựa vào độ chính xác của 2 loại từ này
Sau đây là kết quả nhận dạng trên tập huấn luyện mới chỉ dừng lại ở kết quả 78.45%, trong tương lai chúng tôi sẽ cải tiến để đạt kết quả tốt hơn nữa.
Bảng 1 - Kết quả nhận dạng từ đánh giá trên tập huấn luyện
Loại
Số thực thể
Số thực thể được nhận dạng
Số thực thể được nhận đúng
Precision
Recall
F-measure
PosWord
441
376
334
88.83 %
75.74 %
82.28 %
NegWord
153
122
93
76.23 %
60.78 %
68.51 %
All
598
502
431
85.86 %
72.07 %
78.97 %
Bảng 2 - Kết quả nhận dạng từ đánh giá trên tập kiểm tra
Loại
Số thực thể
Số thực thể được nhận dạng
Số thực thể được nhận đúng
Precision
Recall
F-measure
PosWord
300
237
214
90.30 %
71.33 %
79.70 %
NegWord
60
62
42
67.74 %
70.00 %
68.85 %
All
362
301
258
85.71 %
71.27 %
77.83 %
Qua tập huấn luyện chúng tôi thu được kết quả với F-measure đạt 78% đối với từ đánh giá (bảng 2).
5.2.2 Kết quả thực nghiệm đánh giá ở mức câu
Ở mức câu chúng tôi đánh giá qua 3 nhãn: PosSen (câu đơn mang nghĩa tích cực), NegSen (câu đơn mang nghĩa tiêu cực), MixSen (câu đơn mang cả 2 nghĩa).
Bảng 3 - Kết quả nhận dạng câu đánh giá trên tập huấn luyện
Loại
Số thực thể
Số thực thể được nhận dạng
Số thực thể được nhận đúng
Precision
Recall
F-measure
PosSen
231
218
154
70.64 %
66.67 %
68.60 %
NegSen
97
96
67
69.79 %
69.07 %
69.43 %
MixSen
9
26
7
26.92 %
77.78 %
40.00 %
All
340
343
231
67.35 %
67.94 %
67.64 %
Bảng 4 - Kết quả nhận dạng câu đánh giá trên tập kiểm tra
Loại
Số thực thể
Số thực thể được nhận dạng
Số thực thể được nhận đúng
Precision
Recall
F-measure
PosSen
157
157
99
63.06 %
63.06 %
63.06 %
NegSen
49
45
34
75.56 %
69.39 %
72.34 %
MixSen
5
21
3
14.29 %
60.00 %
23.08 %
All
212
224
137
61.16 %
64.62 %
62.84 %
Qua đánh giá kiểm tra chúng tôi thu được kết quả đối với đánh giá ở mức câu là 63% (bảng 4). Đối với câu rất khó chính xác bởi vì khi chia câu độ chính xác vốn dĩ không cao tuy nhiên càng chia câu phức tạp thành câu đơn thì việc đánh giá Feature càng chính xác bởi vì câu lúc này chỉ có 2 dạng đánh giá là positive và negative, số lượng câu có cả 2 sẽ ít đi và độ chính xác về feature được tăng cao.
5.2.3 Kết quả thực nghiệm đánh giá ở mức văn bản theo từng Features
Kết quả của chúng tôi theo Feature là khá đặc biệt và hầu như không có hệ thống nào ra kết quả tương tự cho nên ở phần này chúng tôi đưa ra một phương pháp đánh giá sơ bộ cho hệ thống của chúng tôi. Đây chỉ là đánh giá theo hướng cá nhân của chúng tôi và chúng tôi thấy phương pháp là hợp lý và chấp nhận được cho hệ thống.
Chúng tôi đánh giá một sản phẩm và hệ thống đưa các kết quả đo cho từng feature của sản phẩm đó. Ở đây tôi kiểm tra 5 features: vanhanh, cauhinh, manhinh, gia, và kieudang. Kết quả đo của hệ thống có dạng a/b với a là độ đo positive, b là độ đo negative; đơn vị đo là số câu đơn giản. Ví dụ 15/10 có nghĩa 15 câu đơn nói feature này positive và 10 câu đơn nói feature này negative.
Để được các độ đo chuẩn chúng tôi kiểm tra thủ công trên văn bản gốc và đưa ra những kết quả theo số đo đã được định nghĩa. Ở đây chúng tôi quy đổi ra theo đơn vị đo độ quan điểm tích cực theo thang đo từ 0.0 -> 1.0 nghĩa là:
0.0 positive nếu Feature đó mang tính hoàn toàn là tiêu cực không có chút tích cực nào.
0.5 positive nếu Feature đó mang một nửa là ý kiến là tích cực và một nửa ý kiến là tiêu cực.
1.0 positive nghĩa là Feature này hoàn toàn được đánh giá tích cực và không có chút tiêu cực nào.
Độ quan điểm tích cực = {số positive} / {số positive + số negative}
Độ lệch quan điểm tích cực = | Độ quan điểm tích cực hệ thống – Độ quan điểm tích cực chuẩn |
Và để đo độ chính xác giữa hệ thống và kết quả chuẩn được đánh giá thủ công, chúng tôi định nghĩa correctness theo công thức:
Kết quả trung bình 1 văn bản sẽ bằng trung bình cộng của tất cả các features được xét đến.
Bảng 5 - Kết quả đánh giá Acer Aspire 3935 trên tập huấn luyện
Loại
Độ quan điểm tích cực của Feature đánh giá bởi hệ thống (số positive / số negative)
Độ quan điểm tích cực của Feature đánh giá chuẩn (%) (số positive / số negative)
Correctness
vanhanh
0.5833 (14/10)
0.4 (12/18)
81.67 %
cauhinh
0.6 (9/6)
0.6364 (14/8)
96.36 %
manhinh
0.8889 (8/1)
0.8333 (10/2)
94.44 %
gia
0.8333 (1/5)
0.75 (2/6)
91.67 %
kieudang
1.0 (12/0)
1.0 (19/0)
100 %
Average
92.83 %
Bảng 6 - Kết quả đánh giá Apple Macbook Air MB543ZPA trên tập huấn luyện
Loại
Độ quan điểm tích cực của Feature đánh giá bởi hệ thống (số positive / số negative)
Độ quan điểm tích cực của Feature đánh giá chuẩn (%) (số positive / số negative)
Correctness
vanhanh
0.8 (8/2)
0.6875 (11/5)
88.75 %
cauhinh
0.9411 (16/1)
0.8333 (15/3)
89.22 %
manhinh
1.0 (1/0)
0.5 (0/0)
50 %
Gia
0.0 (0/11)
0.0667 (1/14)
93.33 %
kieudang
1.0 (15/0)
1.0 (18/0)
100 %
Average
84.26 %
Bảng 7 - Kết quả đánh giá Acer Aspire AS4736 trên tập huấn luyện
Loại
Độ quan điểm tích cực của Feature đánh giá bởi hệ thống (số positive / số negative)
Độ quan điểm tích cực của Feature đánh giá chuẩn (%) (số positive / số negative)
Correctness
vanhanh
0.6061 (20/13)
0.7059 (24/10)
90.02 %
cauhinh
0.5357 (15/13)
0.5313 (17/15)
99.56 %
manhinh
0.9 (9/1)
0.9231 (12/1)
97.69 %
Gia
0.3636 (4/7)
0.375 (6/10)
98.86 %
kieudang
0.8636 (19/3)
0.8077 (25/5)
94.41 %
Average
96.11 %
Sau khi đánh giá 3 sản phẩm ở tập huấn luyện chúng tôi rút ra kết quả độ chính xác trung bình cho hệ thống:
Bảng 8 - Kết quả đánh giá Feature trên tập huấn luyện
Sản phẩm
Correctness
Acer Aspire 3935
92.83%
Apple Macbook Air MB543ZPA
84.26%
Acer Aspire AS4736
96.11%
All
91.07%
Bảng 9 - Kết quả đánh giá Dell Inspiron 1210 trên tập kiểm tra
Loại
Độ quan điểm tích cực của Feature đánh giá bởi hệ thống (số positive / số negative)
Độ quan điểm tích cực của Feature đánh giá chuẩn (%) (số positive / số negative)
Correctness
vanhanh
1.0 (5/0)
0.875 (7/1)
87.5 %
cauhinh
0.8333 (5/1)
0.625 (5/3)
79.17 %
manhinh
0.6667 (2/1)
1.0 (6/0)
66.67 %
gia
1.0 (3/0)
1.0 (3/0)
100.00 %
kieudang
1.0 (11/0)
88.24 (15/2)
88.24 %
Average
84.32 %
Bảng 10 - Kết quả đánh giá Compaq Presario CQ40 trên tập kiểm tra
Loại
Độ quan điểm tích cực của Feature đánh giá bởi hệ thống (số positive / số negative)
Độ quan điểm tích cực của Feature đánh giá chuẩn (%) (số positive / số negative)
Correctness
vanhanh
0.8 (12/3)
0.75 (15/5)
95.00 %
cauhinh
0.875 (14/2)
0.7826 (18/5)
90.76 %
manhinh
1.0 (10/0)
0.75 (12/4)
75.00 %
gia
0.8333 (10/2)
0.9412 (16/1)
89.21 %
kieudang
1.0 (12/0)
1.0 (16/0)
100.00 %
Average
89.99 %
Bảng 11 - Kết quả đánh giá HP Pavilion dv3 trên tập kiểm tra
Loại
Độ quan điểm tích cực của Feature đánh giá bởi hệ thống (số positive / số negative)
Độ quan điểm tích cực của Feature đánh giá chuẩn (%) (số positive / số negative)
Correctness
vanhanh
0.8182 (18/4)
0.7 (21/9)
88.18 %
cauhinh
0.9 (18/2)
0.7143 (20/8)
81.43 %
manhinh
1.0 (4/0)
1.0 (8/0)
100.00 %
gia
0.0833 (2/22)
0.125 (4/28)
95.83 %
kieudang
0.8824 (15/2)
0.8333 (20/4)
95.09 %
Average
92.11 %
Sau khi đánh giá 3 sản phẩm ở tập huấn luyện chúng tôi rút ra kết quả độ chính xác trung bình cho hệ thống:
Bảng 12 - Kết quả đánh giá Feature trên tập kiểm tra
Sản phẩm
Correctness
Dell Inspiron 1210
84.32 %
Compaq Presario CQ40
89.99%
HP Pavilion dv3
92.11%
All
88.81%
Theo mức toàn bộ văn bản theo từng Features chúng tôi đạt được kết quả là 88.81% theo phương pháp đánh giá của chúng tôi. Đây là cách đánh giá theo phương pháp của chúng tôi mà chúng tôi thấy hợp lý với hệ thống của mình. Trong tương lai chúng tôi hy vọng sẽ có phương pháp khác đánh giá chuẩn xác hơn.
5.2.4 Kết luận chung về kết quả đánh giá
Sau khi thử nghiệm chúng tôi cũng nhận thấy kết quả của chúng tôi hiện tại cũng là rất khả quan theo mức từ (khoảng 77%), theo mức Feature (89%) còn theo mức câu thì hệ thống có độ chính xác không cao lắm (63%) chủ yếu do lỗi tách câu khá lớn. Tuy so với những hệ thống trên thế giới thì kết quả hệ thống của chúng tôi là không cao tuy nhiên hệ thống của chúng tôi được xây dựng cho tiếng Việt điều mà chưa có hệ thống nào làm được. Và hệ thống này cũng là mở đầu cho hướng giải quyết các bài toán dạng này. Tiếp theo từ những kết quả đánh giá chúng tôi sẽ đi sâu hơn về những lỗi sai của hệ thống.
5.3 Phân tích lỗi
Trước hết dữ liệu của chúng tôi tự lấy về từ các trang web trên Internet cho nên khó tránh khỏi có nhiều lỗi viết sai của người dùng. Mặc dù chúng tôi đã đọc và sửa lại theo dạng chuẩn tuy nhiên vẫn không tránh khỏi còn có lỗi viết sai, lỗi diễn đạt của người dùng. Trong phần này chúng tôi tập trung vào các lỗi có tầm ảnh hưởng quan trọng đến độ chính xác của hệ thống như là: gán nhãn từ loại (POS tag), luật, tách câu…
5.3.1 Lỗi do gán nhãn từ loại (POS tag)
Chúng tôi sử dụng bộ gán nhãn từ loại trong plugin Coltech.NLP.tokenizer với độ chính xác chưa cao. Việc viết luật phụ thuộc khá nhiều vào công việc này chính vì vậy mà với một sai lầm trong công việc này cũng ảnh hưởng không nhỏ đến độ chính xác của việc nhận dạng các từ, các câu đánh giá quan điểm.
Ví dụ như câu sau:
“Laptop này thỏa mãn được hầu hết các nhu cầu giải trí, làm việc, nhưng vẫn rất thời trang, tiện lợi và thể hiện được đẳng cấp.”
Trong câu này chúng tôi chỉ nhận dạng được 3 từ PosWord là thời trang, tiện lợi và đẳng cấp. Trong khi đó từ “thỏa mãn” cũng mang ý nghĩa positive tuy nhiên do bộ gán nhãn từ loại không xác định được từ loại của từ đó (nhãn là X) [Hình 12] cho nên hệ thống của chúng tôi cũng không xác định được từ quan điểm này.
Hình 12 - Lỗi do POS Tag ảnh hưởng đến nhận dạng từ
Một trường hợp nữa khá nguy hiểm khi nó làm ảnh hưởng đến việc tách câu như trong ví dụ:
“Kiểu dáng máy đẹp, thời trang và thời lượng dùng Pin dài.”
Trong việc tách câu của chúng tôi, chúng tôi có một luật là:
* +
Thì chúng tôi sẽ tách ở vị trí dấu câu.
Tuy nhiên trong trường hợp này từ “thời trang” theo gán nhãn từ loại là “Na” tức là danh từ trong khi chính xác phải là tính từ. Chính vì vậy làm cho hệ thống tách câu như sau:
“Kiểu dáng máy đẹp” | “thời trang và thời lượng dùng Pin dài.” [Hình 13]
Hình 13 - Lỗi do POS tag ảnh hưởng đến tách câu
5.3.2 Lỗi do luật
Và cuối cùng đây là một lỗi dường như một lẽ tất nhiên. Chúng tôi không thể viết chính xác các luật và luật cũng không thể chính xác hết cho mọi trường hợp. Chính vì vậy mà việc nhận dạng sai cũng là điều đương nhiên. Ở đây chúng tôi đưa ra một số ví dụ mà với những luật khá cơ bản cũng vẫn có thể sai.
Ví dụ:
“Tuy nhiên, độ nhạy và sự thoải mái khi dùng lâu ở touchpad trên MacBook 13 inch vẫn được đánh giá cao hơn.”
Ở đây từ “lâu” được nhận dạng là từ PosWord dựa trên luật
“ ”
Tuy nhiên trong trường hợp này thì việc nhận dạng này là sai [Hình 14].
Hình 14 - Lỗi do viết luật ảnh hưởng đến nhận dạng từ
5.3.3 Lỗi do tách câu
Ở phần đánh giá chúng tôi cũng đề cập đến việc độ chính xác mức câu là không cao và có nói nguyên nhân chủ yếu là do tách câu và tất nhiên cũng một phần là do việc nhận dạng từ không chuẩn. Lỗi do tách câu thực ra cũng chính là do viết luật nhưng ở đây chúng tôi tách ra để cho thấy được tầm quan trọng của công việc này. Việc tách câu ghép thành các câu đơn là không hề dễ dàng nhất là với văn bản tiếng Việt thì độ chính xác về phân tích cấu trúc câu không cao do đó mà chúng tôi không thể mượn việc phân tích cấu trúc câu để tách câu. Chúng tôi hoàn toàn chỉ dựa vào luật và với sự nhập nhằng các câu gây nên rất nhiều vấn đề khó khăn để tách chúng ra.
Ví dụ:
“Một chiếc máy tính hạng sang với tốc độ xử lí, dung lượng ổ cứng... đáp ứng đủ cho yêu cầu đa số nhiều người”
Câu trên được tách thành 2 câu một cách không chính xác:
“Một chiếc máy tính hạng sang với tốc độ xử lí”
“dung lượng ổ cứng... đáp ứng đủ cho yêu cầu đa số nhiều người”
Hình 15 – Lỗi do tách câu
Ngoài ra cũng còn nhiều nguyên nhân từ việc tách từ hay sử dụng bộ từ điển thiếu sót tuy không phải là vấn đề chủ yếu nhưng trong một vài trường hợp cũng gây ra một số lỗi sai cho hệ thống.
Từ việc phân tích lỗi chúng tôi cũng nhận thấy một số lỗi có khả năng sửa được để nâng cao độ chính xác của hệ thống. Ví dụ như dùng luật chính xác và đầy đủ hơn cho ngữ cảnh hay dùng bộ gán nhãn, tách từ có độ chính xác cao hơn, xây dựng bộ từ điển chuẩn xác hơn, … Đó là những công việc trong tương lai để hệ thống có độ chính xác cao hơn.
Chương 6 Tổng kết và hướng phát triển
Chúng tôi bước đầu xây dựng một hệ thống đánh giá quan điểm người dùng cho tiếng Việt dựa trên luật và phân lớp ở mức câu. Hệ thống được thiết kế trên nền GATE để cộng đồng có thể dễ dàng tiếp cận và phát triển cho bài toán đánh giá quan điểm người dùng. Với kết quả độ chính xác được thực hiện trên dữ liệu về máy tính (computer) theo mức từ (F-measure: 77%), mức câu (F-measure: 63%) và mức văn bản theo Features (89%) có thể nói là một kết quả đáng khả quan mở đầu cho bài toán đánh giá quan điểm người dùng trên hệ thống tiếng Việt.
Tuy nhiên trong quá trình xây dựng hệ thống vẫn còn một vài thiếu sót cả do vấn đề khách quan lẫn chủ quan. Trong tương lai chúng tôi sẽ cố gắng phát triển hệ thống một cách chuẩn xác hơn. Bên cạnh hệ thống đánh giá quan điểm cho văn bản tiếng Việt, chúng tôi còn xây dựng được một tài liệu định nghĩa và một tập dữ liệu đã được gán nhãn chuẩn. Khi tập dữ liệu được gán nhãn đủ lớn, chúng tôi có thể sử dụng thêm các thành phần nhận dạng thực thể (từ, câu, features) bằng các phương pháp học máy, làm tăng sức mạnh của hệ thống. Với những kết quả đã đạt được và khả năng có thể cải tiển hệ thống ở nhiều mặt như: cải tiến bộ từ điển, thêm những thành phần xử lý sâu về ngữ cảnh, kết hợp với bộ nhận dạng sử dụng các phương pháp học máy v.v… sẽ hứa hẹn đem lại một hệ thống đánh giá quan điểm trong văn bản tiếng Việt đạt kết quả cao trong tương lai.
Tài liệu tham khảo
[1] Eric Brill. 1994. Some Advances in Transformation-Based Part of Speech Tagging. Proceedings of the 12th National Conference on Artificial Intelligence. 1994, Menlo Park, CA: AAAI Press, pp722–727.
[2] Rebecca F. Bruce and Janyce M. Wiebe. 1999. Recognizing subjectivity: a case study in manual tagging. Natural Language Engineering 5(2):187–205.
[3] H. Cunningham, D. Maynard, K. Bontcheva, V. Tablan. 2002. GATE, A Framework and Graphical Development Environment for Robust NLP Tools and Applications. Proceedings of the 40th Anniversary Meeting of the Association for Computational Linguistics (ACL'02). Philadelphia, July 2002.
[4] Kenneth Ward Church, Patrick Hanks.1989. Word association norms, mutual information and lexicography. Proceedings of the 27th Annual Meeting of the Association for Computational Linguistics.1989, Vancouver, B.C., Canada, pp76–83.
[5] Dang Duc Pham, Giang Binh Tran, Son Bao Pham. 2009. A Hybrid Approach to Vietnamese Word Segmentation using Part of Speech tags. International Conference on Knowledge and Systems Engineering.
[6] Dat Ba Nguyen, Son Huu Hoang, Son Bao Pham and Thai Phuong Nguyen. 2010. Named Entity Recognition for Vietnamese. Springer Berlin / Heidelberg. April , 2010.
[7] David Day, Chad McHenry, Robyn Kozierok, Laurel Riek. 2004. Callisto: A Configurable Annotation Workbench. In Proceedings of the Fourth International Conference on Language Resources and Evaluation. (LREC 2004). ELRA. May, 2004.
[8] Xiaowen Ding, Bing Liu, Lei Zhang. 2009. Entity Discovery and Assignment for Opinion Mining Applications. Proceedings of the 15th ACM SIGKDD international conference on Knowledge discovery and data mining.
[9] Andrea Esuli and Fabrizio Sebastiani 2006. Senti-WordNet: A Publicly Available Lexical Resource for Opinion Mining. Proceedings of the 5th Conference on Language Resources and Evaluation (LREC-06). 2006, Genova, Italy.
[10] Christiane Fellbaum. 1998. WordNet: an electronic lexical database. MIT Press.
[11] Vasileios Hatzivassiloglou and Kathleen R. McKeown. 1997. Predicting the Semantic Orientation of Adjectives. Proceedings of the 8th conference on European chapter of the Association for Computational Linguis- tics. 1997, Madrid, Spain.
[12] Minqing Hu and Bing Liu. 2004a. Mining and summarizing customer reviews. Proceedings of the 10th ACM SIGKDD international conference on Knowledge discovery and data mining. Aug. 22–25, 2004, Seattle, WA, USA.
[13] Minqing Hu and Bing Liu. 2004b. Mining opinion features in customer reviews. Proceedings of 9th National Conference on Artificial Intellgience. Jul. 2004, San Jose, USA.
[14] Chris Manning and Hinrich Schutze. 1999. Foundations of Statistical Natural Language Processing. MIT Press, Cambridge, MA.
[15] Tetsuya Nasukawa, Jeonghee Yi. 2003. Sentiment Analysis: Capturing Favorability Using Natural Language Processing. Proceedings of the 2nd international conference on Knowledge capture. Technology systems (SEALTS).
[16] Mary S. Neff, Roy J. Byrd, and Branimir K. Boguraev. 2003. The Talent System: TEXTRACT Architecture and Data Model. Proceedings of the HLT-NAACL2003 Workshop on Software Engineering and Architecture of Language .
[17] Bo Pang, Lillian Lee and Shivakumar Vaithyanathan. 2002. Thumbs up? Sentiment classification using machine learning techniques. Proceedings of the 7th Conference on Empirical Methods in Natural Lan- guage Processing (EMNLP-02).
[18] Bo Pang and Lillian Lee. 2004. A sentiment education: sentiment analysis using subjectivity summrarization based on minimum cuts. Proceedings of the Conference of the Association for Computational Linguistics (ACL-04).
[19] Gong Tianxia. Processing Sentiments and Opinions in Text: A Survey.
[20] Tong. 2001. An operational system for detecting and tracking opinions in online discussion. Proceedings of SIGIR Workshop on Operational Text Classification. 2001, New York, pp1–6.
[21] Peter Turney. 2001. Mining the Web for synonyms: PMI-IR versus LSA on TOEFL. Proceedings of the 12th European Conference on Machine Learning. Berlin: Spinger-Verlag, pp. 491–502.
[22] Peter Turney. 2002. Thumbs up or thumbs down? Semantic orientation applied to unsupervised classification of reviews. Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics (ACL-02). Jun. 2002, Philadelphia, PN, USA, pp.417–424. [23] Peter Turney and Michael Littman. 2002. Unsupervised Learning of Semantic Orientation from a Hundred- Billion-Word Corpus. Technical Report NRC Technical Report ERB-1094. Institute for Information Technology, National Research Council Canada.
[24] Peter Turney and Michael Littman. 2003. Measuring praise and criticism: Inference of semantic orientation from association. ACM Tranctions on Information Systems, 21(4): 315-346.
[25] Janyce M. Wiebe, Theresa Wilson and Matthew Bell. 2001. Identifying collocations for recognizing opinions. Proceedings of the ACL/EACL Workshop on Collocation. 2001.
[26] Hong Yu and Vasileios Hatzivassiloglou. 2003. Towards answering opinion questions: Seperating facts from opinions and identifying the polarity of opinion sentences. Proceedings of the 8th Conference on Empirical Methods in Natural Language Processing (EMNLP-03). 2003, Sapporo, Japan, pp129–136.
Phụ lục A. Annotation Guideline.
Feature tag: những từ nêu lên đặc điểm của sản phẩm như: giá, thiết kế, cấu hình, …
Entity tag: là những từ chính có ý chỉ đến feature của sản phẩm như: bề ngoài -> feature thiết kế, số tiền -> giá, máy -> feature chung cho sản phẩm về computer (laptop và desktop), …
PosWord tag: những từ nêu lên đặc điểm, tính chất của entity có ý nghĩa đánh giá khen: đẹp, tốt, cao (đối với cấu hình), vừa phải (giá cả), nổi bật (thiết kế), bắt mắt (thiết kế), …
NegWord tag: tương tự như PosWord tag nhưng đánh giá chê: xấu, thấp (đối với cấu hình), cao (đối với giá), …
CompWord: những từ mang ý nghĩa so sánh: xấu hơn, đẹp hơn, kém hơn, tốt nhất, tốt hơn so với, … Chú ý những từ so sánh mà không mang ý nghĩa so sánh: Máy tốt hơn nếu cấu hình cao hơn -> câu bình thường không phải là opinion sentence.
ReverseWord: những từ làm trái ngược ý nghĩa đánh giá như: không, không phải, chỉ, không được, …
PosSen: là 1 câu trong đấy gồm những từ mang ý nghĩa đánh giá tốt. Chỉ gồm PosWord trong câu và không có ReverseWord cho PosWord nào, có cả NegWord nhưng có ReverseWord cho NegWord đó.
NegSen: trái ngược với PosSen.
MixSen: có cả 2 loại PosWord và NegWord trong câu (tính cả ReverseWord cho nó rồi) hay không thuộc 2 loại câu trên và ko phải câu ko có ý nghĩa đánh giá.
CompSen: Câu mang từ CompWord.
Phụ lục B. Bảng nhãn từ loại tiếng Việt
Np danh từ riêng proper noun
Nc danh từ đơn thể countable noun
Ng danh từ tổng thể collective noun
Nt danh từ loại thể classifier noun
Nu danh từ chỉ đơn vị concrete noun
Na danh từ trừu tượng abstract noun
Nn danh từ số lượng numeral
Nl danh từ vị trí locative noun
Vt động từ ngoại động transitive verb
Vit động từ nội động intransitive verb
Vim động từ cảm nghĩ impression verb
Vo động từ chỉ hướng orientation verb
Vs động từ tồn tại state verb
Vb động từ biến hoá transformation verb
Vv động từ ý chí volotive verb
Va động từ tiếp thụ acceptation verb
Vc động từ so sánh comparative verb
Vm động từ chuyển động move verb
Vla động từ "là" “là” verb
Vtim động từ ngoại động cảm nghĩ transitive-impression verb
Vta động từ ngoại động tiếp thụ transitive-acceptation verb
Vtc động từ ngoại động so sánh transitive-comparative verb
Vtb động từ ngoại động biến hoá transitive-transformation verb
Vto động từ ngoại động chỉ hướng transitive-orientation verb
Vts động từ ngoại động tồn tại transitive-state verb
Vtm động từ ngoại động chuyển động transitive-move verb
Vtv động từ ngoại động ý chí transitive-volotive verb
Vitim động từ nội động cảm nghĩ intransitive-impression verb
Vitb động từ nội động biến hoá intransitive-transformation verb
Vits động từ nội động tồn tại intransitive-state verb
Vitc động từ nội động so sánh intransitive-comparative verb
Vitm động từ nội động chuyển động intransitive-move verb
Aa tính từ hàm chất quality adjective
An tính từ hàm lượng quantity adjective
Pp đại từ xưng hô personal pronoun
Pd đại từ không gian, thời gian demonstrative pronoun
Pn đại từ số lượng quantity pronoun
Pa đại từ hoạt động, tính chất quality pronoun
Pi đại từ nghi vấn interrogative pronoun
Jt phụ từ chỉ thời gian time adjunct
Jd phụ từ chỉ mức độ degree adjunct
Jr phụ từ so sánh rapport adjunct
Ja phụ từ khẳng định, phủ định adjunct of negation and acceptation
Ji phụ từ mệnh lệnh imperative adjunct
Cm giới từ major/minor conjunction
Cc liên từ combination conjunction
E cảm từ emotion word
I trợ từ introductory word
X không xác định
Các file đính kèm theo tài liệu này:
- Tự động đánh giá quan điểm người dùng.doc