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
75 trang |
Chia sẻ: netpro | Lượt xem: 1900 | Lượt tải: 4
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
m vụ xử lý cho các định dạng văn bản khác nhau.
Tầng dữ liệu (Corpus Layer): Đây là kho tài liệu gồm nhiều thành phần khác nhau như: tập dữ liệu (Corpus) chứa các văn bản (Document), nội dung văn bản (Document Content), …
Tầng xử lý (Processing Layer): Gồm các thành phần xử lý khác nhau như: tách từ (word segmentation), gán nhãn từ loại (POS tag), nhận dạng từ quan điểm,…
Tầng nguồn ngôn ngữ (Language Resource Layer): gồm nhiều tập dữ liệu khác nhau như: tập từ điển (gazetteers), tập từ vựng (lexicon) v.v…
Tầng lưu trữ (DataStore Layer): tầng này lưu trữ dữ liệu ở các dạng khác nhau.
Về cơ bản có thể nói GATE chạy khá tốt trong công việc xử lý ngôn ngữ tự nhiên tuy nhiên trong khi vận hành vẫn còn một vài hạn chế nhỏ về giao diện chưa ổn định hay quản lý lưu trữ chưa tốt…
3.1.2 Những khái niệm cơ bản trong GATE
Một số khái niệm cơ bản được dùng trong GATE:
Tập dữ liệu (corpus): là một tập gồm một hay nhiều văn bản (Documents).
Văn bản (Document): là một tập gồm nội dung văn bản, tập nhãn (Annotation Set).
Tập nhãn (Annotation Set): là một tập hợp nhiều nhãn (Annotations).
Nhãn (Annotation): là một tập các cấu trúc gồm có khóa (Id), vị trí đầu (startNode) vị trí cuối (endNode) nhằm xác định vị trí của nhãn trong văn bản, kiểu (Type) và tập các đặc trưng (FeatureMap).
Tập đặc trưng (FeatureMap): là kiểu tập hợp (trong java nó có kiểu Map) của các đặc trưng.
Đặc trưng (Features): là một tập gồm tên (kiểu String) và giá trị (kiểu Object).
3.2 Xây dựng plugin trên GATE
Một thành phần tích hợp (Plugin) có thể gồm ba loại: thành phần ngôn ngữ (Language Resources), thành phần xử lý (processing Resource), và thành phần thể hiện (Visual Resource). Ví dụ: Hệ thống đánh giá quan điểm người dùng của chúng tôi gồm các thành phần:
Bộ từ điển – Coltech.Opinion.ListOpinion.
Bộ luật – Coltech.Opinion.Rule.
Việc tạo ra một thành phần xử lý rất đơn giản, được thực hiện qua các bước:
Tạo lớp Plugin (tên thành phần xử lý) kế thừa (extends) từ lớp AbstractProcessingResource và thể hiện (implements) lớp ProcessingResource.
Tạo file creole.xml khai báo thành phần xử lý mới. Ví dụ về Coltech.Opinion.Rule :
Coltech.Opinion.Rule
VNOpinion.jar
VNOpinion
A program demo the Vietnamese Natural Language Processing
Sau khi đã có thành phần tích hợp (Plugin), có hai cách để thêm thành phần này vào khung làm việc của GATE.
Cách 1: đặt thư mục chứa toàn bộ thành phần tích hợp vào trong %GATE-HOME%/plugins. Chạy lệnh “bin/ant plugins.build”, hệ thống GATE sẽ tự động thêm thành phần tích hợp vào hệ thống.
Cách 2: Chọn File -> Manage CREOLE plugins -> Add new CREOLE repository -> Select a directory và chọn thư mục chứa thành phần tích hợp mới tạo (hình 3).
Sau bước này, ta được một thành phần tích hợp mới hoạt động trên khung làm việc GATE. Và trong thành phần này ta có thể chọn những công việc cho nó [Hình 4].
Hình 3 - Giao diện thêm một thành phần tích hợp vào GATE.
Hình 4 - Chọn các thành phần cho ứng dụng GATE
3.3 Các thành phần quan trọng của GATE
Trong GATE khi nói đến thành phần quan trọng phải kể đến bộ từ điển (Gazetteers) và bộ luật (Rule) – 2 thành phần làm lên sự khác biệt của GATE.
3.3.1 Bộ từ điển (Gazetteers)
Bộ từ điển (gazetteers) gồm một tập hợp các từ điển nhỏ chứa các từ được định nghĩa theo một tiêu chí nào đó.
Ví dụ:
Theo tiêu chí loại tên riêng ta có thể có các từ điển:
từ điển theo tên người: Kiều Thanh Bình, Nguyễn Bá Đạt, Nguyễn Quốc Đạt, …
từ điển theo tên trường đại học: Đại học Công Nghệ, Đại học Tài Chính, Đại học Kinh Tế, Đại học Ngoại Thương…
từ điển tên thành phố: Hà Nội, Hải Dương, Hải Phòng, …
Theo tiêu chí vị trí của từ ta có thể có các từ điển:
từ điển các thành phần đứng trước tên người: Mr, Mrs, Miss, Sir v.v…
từ điển các thành phần đứng trước địa điểm: leave, live in v.v…
Mỗi một từ điển trong bộ từ điển được khai báo trong file list.def với bộ giá trị: tên file chứa từ điển, giá trị đặc trưng thứ nhất (majorType), giá trị đặc trưng thứ hai (minorType – có thể có hoặc không). Ví dụ: entity.lst:name_entity: entity – khai báo một từ điển trong file entity.lst với hai đặc trưng majorType = “name_entity” và minorType = “entity”.
Khi bộ từ điển hoạt động trên văn bản, các nhãn (annotations) kiểu Lookup (một kiểu nhãn mặc định trong GATE) được tạo ra bằng cách so khớp các từ trong bộ từ điển với các xâu trong văn bản. Ví dụ: trong văn bản xuất hiện từ “thiết kế” có trong từ điển entity.lst như khai báo ở trên. Thì tại xâu “thiết kế” trong văn bản sẽ xuất hiện một nhãn (annotation) mới kiểu Lookup với hai đặc trưng: majorType = “name_entity” và minorType = “entity”. Các nhãn (annotation) Lookup này sẽ được sử dụng trong khi viết các luật JAPE.
3.3.2 Bộ luật JAPE
Đây là thành phần quan trọng nhất trong GATE nó đóng vai trò chính giúp công cụ này xử lý ngôn ngữ tự nhiên.
Bộ luật JAPE là thành phần cơ bản trong khung làm việc của GATE, cho phép người dùng viết biểu thức chính quy trên nhãn (annotation) và tạo ra các nhãn mới trong văn bản. Một bộ luật JAPE có thể bao gồm nhiều luật nhỏ. Mỗi luật nhỏ gồm các mẫu và cách thực thi khác nhau có dạng:
LHS (left-hand-side) à RHS (right-hand-side).
Ví dụ:
Rule: rulePositive1
Priority: 1
(
(StrongWord)
({Lookup.majorType=="positive"}):name
)
-->
:name.PosWord = {kind = "Trich chon positive", type="Positive", rule = " StrongWord + "}
Khi một luật JAPE thực thi thì các luật nhỏ trong nó được thi hành một cách tuần tự, từ trên xuống nếu như cùng Priority và nó thi hành các luật từ Priority thấp nhất đến cao nhất (mặc định là -1 nếu không khai báo Priority).
Luật JAPE gồm 2 thành phần chính: mệnh đề trái (LHS) là các biểu thức chính quy trên nhãn (annotation). Trong khi đó mệnh đề phải (RHS) thể hiện hành động cần được thực thi khi mệnh đề trái được thỏa mãn (so khớp).
3.3.2.1 Mệnh đề trái (LHS)
Mệnh đề trái (LHS) là một biểu thức của các mẫu (annotation pattern) và các phép toán như “ *, ?, +, | ”
Các phép toán sử dụng trong mệnh đề trái
| : phép hoặc
*: phép lặp (không hoặc nhiều lần)
?: phép lặp không hoặc một lần
+: phép lặp một hoặc nhiều lần
Ví dụ cho một mệnh đề trái:
({Lookup.majorType=="positive"}):name
Các mẫu được gán trong mệnh đề trái sẽ được sử dụng trong mệnh đề phải (RHS).
3.3.2.3 Mệnh đề phải (RHS)
Mệnh đề phải sử dụng các mẫu (pattern) được cung cấp bởi mệnh đề trái để thực thi một mệnh lệnh nào đó, thông thường là tạo ra các nhãn (annotation) mới.
Trong ví dụ trên, mệnh đề trái cung cấp cho mệnh đề phải các mẫu (pattern) là tên của nhãn PosWord. Mệnh đề phải tạo ra các nhãn mới (annotations) tương ứng với các mẫu (pattern) nhận được. Nhãn (annotation) mới được tạo ra có kiểu là “PosWord” và 3 đặc trưng (feature) là kind = “Trich chon positive” và rule = “StrongWord + ”.
3.3.2.2 Thành phần thay thế (Macros)
Ngoài ra trong việc xây dựng luật để cho thuận tiện và có khả năng sử dụng lại các thành phần ta có thể dùng thêm thành phần thay thế (Macros). Thành phần thay thế (Macros) thường xuyên được sử dụng trong các mệnh đề trái. Nó thay thế cho một tập các lệnh, giúp cho bộ luật đơn giản và rõ ràng hơn. Ngoài ra, khi một thành phần thay thế đã được khai báo thì mọi luật trong bộ luật đều có thể sử dụng nó mà không cần phải khai báo lại.
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ừ
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