2.3.1 Định nghĩa Dãy con và siêu dãy
Gọi I = {i1, i2, ..., in} là tập mục, một dãy là một danh sách các tập mục được sắp xếp theo thứ tự.
Một tập phổ biến X là một tập mục khơng rỗng.
Ta biểu diễn dãy s bởi 〈a1a2...ar〉, với ai là một tập phổ biến, cịn gọi là phần tử của s. Ta biểu diễn phần tử của dãy bởi {x1, x2, ..., xk}, trong đĩ mỗi xj là một mục.
Một mục chỉ cĩ thể xuất hiện một lần trong một phần tử của dãy, nhưng cĩ thể xuất hiện nhiều lần trong các phần tử khác nhau.
Dãy s1 = 〈a1a2...ar〉 là dãy con của dãy s2 = 〈b1b2…bm〉 hoặc s2 là siêu dãy của s1 nếu tồn tại các số nguyên 1 ≤ j1 < j2 < ... < jr-1 ≤ jr sao cho a1 ⊆ bj1, a2 ⊆ bj2,..., ar⊆ bjr.
Ta cũng cĩ thể nĩi s2 chứa s1.
Ví dụ 11: Ta cĩ I = {1, 2, 3, 4, 5, 6, 7}. Dãy 〈{3}{4, 5}〉 được chứa trong 〈{6}{3, 7}{4, 5, 6}〉 vì {3} ⊆ {3, 7} và {4, 5} ⊆ {4, 5, 6}.
Tuy nhiên, 〈{3, 6}〉 khơng được chứa trong 〈{3}{6}〉 và ngược lại
Luật tuần tự phân lớp và cơ sở dữ liệu các luật
Một luật tuần tự phân lớp (Class Sequential Rules - CSR) là một luật gồm một dãy tuần tự nằm ở về trái và nhãn lớp nằm ở vế phải.
Gọi Y là tập các lớp, I ∩ Y = ∅.
Gọi S là tập dữ liệu các dãy. Mỗi dãy được gán nhãn là lớp y. Do đĩ, dữ liệu đầu vào D cho khai phá được biểu diễn như sau: D = {(s1, y1), (s2, y2), ..., (sn, yn)}
Ta biểu diễn luật tuần tự phân lớp bởi phép kéo theo dạng: X → y, với X là 1 dãy, và y ∈ Y
Một bộ dữ liệu (si, yi) trong D được cho là bao phủ (cover) CSR nếu X là dãy con của si. Một bộ dữ liệu (si, yi) được cho là thỏa mãn (satisfy) một CSR nếu X là dãy con của si và yi = y.
Độ hỗ trợ (support) của luật là tỷ lệ của tổng các ví dụ trong D thỏa mãn X với tổng các ví dụ trong D.
Độ tin cậy (confident) của luật là tỷ lệ của các ví dụ trong D thoản mãn X với các ví dụ trong D bao X
Cho một tập dữ liệu các dãy được gán nhãn D, ngưỡng cho độ hỗ trợ tối thiểu (minsup) và độ tin cậy tối thiểu (minconf), giải thuật khai phá CSR tìm ra tất cả CSR trong D để xây dựng tập dữ liệu huấn luyện cho bộ phân lớp
Bảng 2.1 đưa ra một ví dụ về cơ sở dữ liệu các dãy với 5 dãy thuộc 2 lớp khác nhau là c1 và c2. Sử dụng ngưỡi minsup=20%, minconf=40%, một trong những CSR được khai phá là: 〈{1}{3}{7, 8}〉→ c1 [support = 2/5 and confidence = 2/3]
Dãy 1 và 2 là thỏa mãn luật, dãy 1, 2, 5 là bao phủ luật
Bảng 2.1: Ví dụ về cơ sở dữ liệu các luật cho khai phá CSR
STT Dãy Lớp 1 〈{1}{3}{5}{7, 8, 9}〉 c1 2 〈{1}{3}{6}{7, 8}〉 c1 3 〈{1, 6}{9}〉 c2 4 〈{3}{5, 6}〉 c2 5 〈{1}{3}{4}{7, 8}〉 c2
2.3.2 Xây dựng cơ sở dữ liệu luật
Trong mục này chúng tơi trình bày cách thức xây dựng cơ sở dữ liệu các luật từ dữ liệu văn bản. Phương pháp này được thực hiện ở cấp độ câu, mỗi câu được coi là một dãy. Ta khơng thể sử dụng trực tiếp các từ trong câu vì nhiều câu cĩ nội dung khác nhau nhưng lại cĩ cùng một mẫu ngơn ngữ.
Ví dụ 12: Cho 2 câu so sánh
“Intel is better than Amd”, and
“Laptops are smaller than desktop PCs”
Hai câu trên là hai câu so sánh hai cặp đối tượng khác nhau. Bằng cách so sánh từng từ trong câu thì hệ thống khơng thể nhận biết chúng cĩ cùng một mẫu ngơn ngữ. Nếu thay thế các từ bằng thẻ từ loại của chúng, mọi việc sẽ trở nên rõ ràng hơn. Trong phần thực nghiệm ở chương sau, chúng tơi sử dụng cơng cụ gán thẻ từ loại Stanford POS Tagger để thực hiện gán thẻ từ loại cho dữ liệu văn bản.
Sử dụng các từ khĩa
Việc sử dụng các từ khĩa đem lại độ hồi tưởng cao nhưng độ chính xác lại thấp. Chúng tơi sẽ chỉ xem xét những câu cĩ chứa ít nhất một từ khĩa, và sau đĩ tạo ra các luật tuần tự phân lớp để lọc ra những câu khơng phải câu so sánh. Trong quá trình sinh dữ liệu, những câu khơng chứa bất kỳ từ khố nào sẽ được loại bỏ.
Tập các từ khĩa bao gồm:
1. Tính từ so sánh hơn: (với thẻ từ loại là JJR) và đại từ so sánh hơn (với thẻ từ loại là RBR), ví dụ, more, less, better, longer và các từ kết thúc bởi hậu tố –er
2. Tính từ so sánh nhất: (với thẻ từ loại là JJS) và đại từ so sánh nhất (với thẻ từ loại là RBS), ví dụ, most, least, best, smallest và các từ kết thúc bởi hậu tốt –est
3. Các từ khĩa như: same, similar, differ, as same as, as well as, .vv.
4. Các từ khĩa khác như: favor, beat, win, exceed, outperform, prefer, ahead, than, superior, inferior, number one, up against, .vv.
Ở đây, những từ với thẻ từ loại là JJR, RBR, JJS và RBS khơng được coi là các từ khĩa. Thay vào đĩ, thẻ từ loại của chúng là JJR, RBR, JJS và RBS, mới được coi là từ khố. Cĩ bốn trường hợp ngoại lệ: more, less, most, và least được coi là từ khố riêng lẻ vì cách sử dụng của chúng rất đa dạng, khi ta sử dụng chúng như từ khố riêng lẻ sẽ giúp hệ thống nắm bắt được kiểu sử dụng riêng biệt để phân loại.
Xây dựng tập dữ liệu luật
Bước 1: Với mỗi câu chứa ít nhất một từ khĩa, ta sẽ sử dụng những từ trong bán kính 3 từ của từ khĩa đĩ. Lý do là các mẫu ngơn ngữ xác định câu so sánh thường xuất hiện trong bán kính 3 từ của từ khĩa so sánh. Nếu sử dụng bán kính lớn hơn hoặc nhỏ hơn 3 sẽ cho kết quả khơng thực sự tốt [9], được chứng minh bằng thực nghiệm.
Bước 2: Mỗi từ được thay thế bởi thẻ từ loại của chúng thay vì sử dụng trực tiếp các từ. Riêng với mỗi từ khĩa, ta thực hiện ghép từ khĩa đĩ với thẻ từ loại của chúng để tạo thành một phần tử. Lý do là mỗi từ khĩa lại cĩ một thẻ từ loại khác nhau tùy theo ngữ cảnh chúng được sử dụng. Ví dụ từ khĩa “more” cĩ thể là tính từ so sánh (more/JJR) hoặc là trạng từ so sánh (more/RBR).
Bước 3: Một nhãn lớp được gán cho mỗi câu tùy theo câu đĩ là câu so sánh hay khơng phải.
Ví dụ 14: Cho câu so sánh cùng thẻ từ loại
Its_PRP$ fast-forward_JJ and_CC rewind_JJ work_NN much_RB more_RBR
smoothly_RB and_CC consistently_RB than_IN those_DT of_IN other_JJ models_NNS i_FW 've_VBP had_VBN
Luật được sinh ra và đưa vào cơ sở dữ liệu cĩ dạng sau:
〈{JJ}, {NN}, {RB}, {moreRBR}, {RB}, {CC}, {RB}〉 <comparative>
Nếu câu cĩ chứa nhiều từ khĩa, mỗi từ khĩa sẽ sinh một luật vào trong cơ sở dữ liệu.
Giải thuật khai phá
Từ tập dữ liệu CSR ban đầu, thực hiện khai phá CSR. Các bước của giải thuật khai phá cũng tương tự như khai phá luật kết hợp cĩ gán nhãn lớp (Class Association Rules - CAR) [1], dựa trên tư tưởng của giải thuật Apriori trong khai phá luật kết hợp. Ta gọi đây là giải thuật CSR-Apriori (hình 2.1).
Giống như giải thuật Apriori, CSR-Apriori sinh tất cả các luật phổ biến, bằng việc duyệt qua tồn bộ dữ liệu. Trước tiên, giải thuật tính độ hỗ trợ cho tất cả các luật đơn (luật chỉ chứa 1 mục). Tập các luật đơn được sinh bằng việc kết hợp từng mục trong I với từng nhãn lớp (dịng 1):
C1 = {(i y) | i I, y Y}
Ở đây, I là các phần tử của dãy nằm ở vế trái luật được sinh bởi bước trước đĩ, I= {JJ, NN, RB, moreRBR, CC, …}, Y là tập nhãn lớp, Y = {comparative, non-comparative}
1 C1 = {(i y) | i I, y Y};
2 F1 {f | f C1, f.ruleSatisfyCount/n ≥ minsup};
3 CSR1 {f | f F1, f.ruleSatisfyCount/f.ruleCoverCount ≥ minconf}; 4 for (k = 2; Fk-1 ≠ Ø; k++) do
5 Ck CSRcandidate-gen(Fk-1); 6 for each transaction t T do
7 for each candidate c Ck do
8 if t cover c then // c is a subset of t 9 c.ruleCoverCount ++;
10 if t.class = c.class then
11 c.ruleSatisfyCount ++ 12 endfor 13 endfor 14 Fk {c Ck | c.ruleSatisfyCount/n ≥ minsup}; 15 CSRk {f | f Fk, f.ruleSatisfyCount/f.ruleCoverCount ≥ minconf}; 16 endfor 17 return CSR k CSRk;
Hình 2.2: Giải thuật CSR-Apriori
Dịng 2 xác định xem luật đơn nào là phổ biến (thỏa mãn minsup). Từ các luật đơn phổ biến, thực hiện sinh tập CSR1 sử dụng ngưỡng minconf. Trong các bước duyệt k tiếp theo, từ tập hạt giống của các luật phổ biến cĩ k-1 phần tử được sinh ở bước k-1, giải thuật sinh tập các luật phổ biến Ck gồm k phần tử (dịng 5).
Giải thuật sinh ứng viên CSRcandidate-gen gồm 2 bước
1. Nối: Các dãy ứng viên được sinh ra bằng ghép nối các Fk-1 với Fk-1. Dãy tuần tự s1 ghép nối với s2 nếu như dãy con được sinh bằng việc bỏ đi phần tử đầu tiên của s1 giống với dãy con được sinh bằng việc bỏ đi phần tử cuối cùng của s2. Các dãy cĩ cùng nhãn lớp mới cĩ thể ghép nối với nhau. Dãy ứng viên phải thỏa mãn độ hỗ trợ tối thiểu (minsup).
2. Cắt tỉa: Dãy ứng viên sẽ bị cắt tỉa nếu dãy con k-1 của chúng khơng thỏa mãn độ tin cậy tối thiểu (minconf).
2.4 Học phân lớp
Các CSR cho thấy một câu cĩ khả năng là câu so sánh nếu nĩ cĩ chứa các mẫu ngơn ngữ so sánh. Mơ hình phân lớp Nạve Bayesian (NB) cung cấp giải pháp tốt để giải quyết vấn đề này. Mơ hình thực hiện tính tốn các xác xuất cĩ điều kiện dựa trên việc thống kê các mẫu ngơn ngữ để quyết định phân lớp. Đây là mơ hình khá đơn giản, dễ xây dựng,
khơng sử dụng nhiều tham số ước lượng phức tạp và được sử dụng rộng rãi trong học máy. Vì vậy chúng tơi đã sử dụng Nạve Bayesian để thực nghiệm phân lớp câu so sánh về hai lớp: câu so sánh và khơng phải câu so sánh. Các đặc trưng cho bộ phân lớp sẽ là vế trái của CSR, bao gồm các thẻ từ loại và từ khĩa.
Trong phạm vi luận văn này, chúng tơi khơng đề cập đến các vấn đề về lý thuyết xác suất Bayes cũng cách thức xây dựng mơ hình phân lớp văn bản. Chi tiết xin đọc [14], [15] và [16]. Kết quả thực nghiệm sẽ được trình bày ở chương tiếp theo của luận văn.
CHƯƠNG 3 – THỰC NGHIỆM
Trong chương này, chúng tơi trình bày quá trình thực nghiệm giải quyết bài tốn “Xác định câu so sánh trong tài liệu văn bản tiếng Anh” bằng phương pháp tiếp cận đã trình bày ở chương 2.
Đầu vào: Cho một câu tiếng Anh bất kỳ
Đầu ra: Chương trình thực nghiệm tiến hành phân loại câu đã cho về một trong hai lớp: câu so sánh hoặc khơng phải câu so sánh.
Để thực hiện quá trình thực nghiệm này, bộ phân lớp Nạve Bayesian được chúng tơi xây dựng với tập dữ liệu huấn luyện gồm các luật tuần tự phân lớp được sinh từ văn bản theo các bước được trình bày trong chương 2. Các bước xử lý dữ liệu và ước lượng các tham số được trình bày tiếp sau đây.
3.1 Quá trình thực nghiệm
Hình 3.1: Các bước trong quá trình thực nghiệm
Chúng tơi thực hiện cài đặt các bước trong quá trình thực nghiệm bằng ngơn ngữ Java trên cơng cụ lập trình Eclipse Kepler.
Quá trình thực nghiệm được chạy trên máy tính cĩ vi xử lý Intel Core i5-4274U 2.6Ghz, Ram 8GB.
Thời gian chạy xử lý dữ liệu là 240 đến 320 giây.
Thời gian phân lớp là 30 giây
• Thu thập dữ liệu • POS tagging • CSR-Apriori Chuẩn bị dữ liệu • Xây dựng mơ hình phân lớp NB • Huấn luyện Xây dựng bộ phân lớp • Phân lớp • Thống kê kết quả phân lớp • Đánh giá Phân lớp và đánh giá
3.2 Chuẩn bị dữ liệu và xây dựng bộ phân lớp
Dữ liệu sử dụng trong chương trình thực nghiệm được thu thập từ nhiều nguồn khác nhau:
Các đánh giá của khách hàng về sản phẩm: máy ảnh kỹ thuật số, đầu DVD, máy chơi nhạc MP3, và điện thoại di động. Những bài đánh này được tổng hợp từ trang
http://www.amazon.com/
Các bài thảo luận diễn đàn từ nhiều trang khác nhau trên các chủ đề so sánh giữa Intel với AMD, Coca với Pepsi, Microsoft với Google, Apple và Microsoft.
Một số bài viết ngẫu nhiên về ơ tơ, máy nghe nhạc iPod và bĩng đá.
Chúng tơi kế thừa bộ dữ liệu thực nghiệm được sử dụng trong [9] và [10] đồng thời tiến hành thu thập bổ sung thêm các bài đánh giá sản phẩm điện thoại, cũng như các thảo luận trên các bài đánh giá này từ các các website: http://www.cnet.com/,
http://www.macworld.co.uk/. Dữ liệu được gán nhãn thủ cơng thành 2 loại với phân bổ số lượng các câu trong bảng 3.1 và hình 3.2.
Bảng 3.1: Số lượng dữ liệu
Loại câu Số lượng Nhãn
Câu so sánh 1548 <cs-1>
Câu khơng phải so sánh 2677 <cs-x>
Tổng 4225
Hình 3.2: Tỷ lệ phân bổ dữ liệu
37%
63%
Đầu vào cho chương trình được lưu dưới dạng tệp văn bản.
Hình 3.3: Dữ liệu đầu vào
Các tham số cho chương trình
Bảng 3.2: Tham số cho giải thuật CSR-Apriori
Tham số Giá trị Mơ tả
RADIUS_OF_KEYWORD 3
Số lượng các từ ở hai phía của từ khĩa, sử dụng để sinh CSR CSR_MIN_SUP 0.08 Độ hỗ trợ tối thiểu – Minisup CSR_MIN_CONF 0.45 Độ tin cậy tối thiểu – Minconf
Thực hiện gán thẻ từ loại bằng cơng cụ Standford POS Tagger và sinh luật bằng giải thuật CSR-Apriori. Tại bước này, một danh sách các từ khĩa được sử dụng (bảng 3.3). Lý do và cách thức sử dụng đã được chúng tơi trình bày ở mục 2.3.2. Các tham số RADIUS_OF_KEYWORD, CSR_MIN_SUP, CSR_MIN_CONF cũng được thiết lập cho bước này, quá trình sinh luật được ghi lại trong hình 3.4 và 3.5.
Bảng 3.3: Từ khĩa
Thẻ JJR thrice after compare
Thẻ RBR half thrice top
Thẻ JJS same improve exceed
Thẻ RBS either equal lead
beat compete equivalent win
inferior number one together outstrip
outstrip one of few altogether none
both more alternate near
on par with like only unrivaled
choice behind outmatch dominate
choose similar ahead second
prefer identical fraction nonpareil
recommend versus outdo advantage
outperform first match unlike
superior outdistance unmatched least
all before peerless outclass
up against double differ outfox
less outsell one of few outdistance
favor nobody outwit most
defeat vs rival
Hình 3.4: Gán thẻ từ loại và xây dựng cơ sở dữ liệu luật
Hình 3.5: Thực hiện giải thuật CSR-Apriori
Sau khi xây dựng xong cơ sở dữ liệu gồm các luật, tiến hành huấn luyện cho mơ hình phân lớp Nạve Bayesian đã được chúng tơi xây dựng. Hình 3.6 ghi lại quá trình huấn luyện và phân lớp.
Hình 3.6: Huấn luyện và phân lớp 3.3 Kết quả thực nghiệm
Với số lượng các câu đưa vào thử nghiệm đã trình bày ở mục 3.1, hệ thống sẽ tiến hành tiến hành phân về 2 lớp: câu so sánh và khơng phải câu so sánh.
Sử dụng kỹ thuật cross validation, tiến hành chia tập dữ liệu ban đầu thành 4 tập con bằng nhau, mỗi tập con gồm 1050 câu với cùng phân bổ 37% câu so sánh và 63% câu khơng phải so sánh. Chạy 4 lần thử nghiệm, sử dụng lần lượt 3 tập con làm dữ liệu huấn luện và 1 tập con cịn lại làm dữ liệu kiểm tra. Kết quả được ghi lại ở bảng 3.4 với các độ đo trung bình lần lượt là:
Precision – là tỷ lệ các câu so sánh được phân lớp đúng trên tổng số các câu được phân vào lớp câu so sánh: 62%
Recall – là tỷ lệ các câu so sánh được phân lớp đúng trên tổng số các câu thuộc lớp câu so sánh: 91%
F-score – là giá trị trung bình điều hịa cùa Precision và Recall: 73.7%
Như chúng tơi đã trình bày ở các phần trước, bài tốn xác định câu so sánh là bước tiền xử lý, làm đầu vào cho các bài tốn phân tích quan điểm khác nên ta chỉ quan tâm