Đâ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 + <PosWord> "}
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 tốn như “ *, ?, +, | ”
Các phép tố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 +
<PosWord>”.
3.3.2.2 Thành phần thay thế (Macros)
Ngồ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. Ngồ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"} ) 24
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 + <PosWord> "}
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ờ đĩ ngồ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 = <kiểu điều khiển (chẳng hạn applet)>
o “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).
o “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”.
o “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 “*”, “+”, “?”. o “once”: chỉ cĩ luật đầu tiên thỏa mãn quá trình so khớp được thực hiện. o “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 số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á tồ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 4
Hệ 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 tố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 hồn tồ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. Ngồ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. Ngồ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 http://tinvadung.vn 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. Ngồ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 (http://callisto.mitre.org/download.html).
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:
“<X>HP dv 4</X> <Vts>cĩ</Vts> <Vt>thiết kế</Vt> <V>bắt mắt</V>, <A>ưa nhìn</A> <Cc>tuy nhiên</Cc> <Na>giá</Na> <Jd>quá</Jd> <An>cao</An>.”
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ĩ <kieudang>thiết kế</kieudang> <PosWord>bắt mắt</PosWord>, <PosWord>ưa nhìn</PosWord> tuy nhiên <gia>giá</gia> quá
<NegWord>cao</NegWord>.”
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: