Kiểm thử với Oracle 10g

Một phần của tài liệu phân loại văn bản bằng phương pháp support vector machine (Trang 83)

Như trên đã đề cập, kết quả phân loại văn bản Oracle chỉ có thể thay đổi bằng 2 cách: chuẩn bị dữ liệu và thay đổi các tham số huấn luyện văn bản; trong các tham số huấn luyện với thuật toán SVM trong Oracle Text, để thay đổi kernel function, sử dụng thuộc tính MAX_FEATURE đối với kiểu huấn luyện là SVM_PREFERENCES:

- Nếu MAX_FEATURE <=100: hàm tuyến tính - Nếu MAX_FEATURE >100: hàm Gaussian

Việc thiết lập cấu hình này là tối ưu, do Oracle đã tính toán tối ưu để tìm ra siêu phẳng phù hợp. Trong luận văn này tác giả thực nghiệm với 3 lần với cùng một bộ dữ liệu nhưng với các tham số khác nhau: - Lần 1: MAX_FEATURES=100, sử dụng danh sách từ dừng mặc định của Oracle gồm 114 từ dừng - Lần 2: tăng số đặc trưng MAX_FEATURES=1000 và giữ nguyên danh sách từ dừng như lần 1 - Lần 3: giữ nguyên sốđặc trưng như lần 2, MAX_FEATURES=1000 và sử dụng một danh sách từ dừng với số từ dừng là 509 từ dừng tiếng Anh 5.2.1. Thử nghiệm lần 1

Các bước thực hiện trong lần thử nghiệm 1 với MAX_FEATURE=100

ID NUMBER Primary key, Doc_Text CLOB);

INSERT INTO Training_5 (ID, Doc_Text)

SELECT TO_NUMBER(a.Doc_ID), a.Docs FROM Training_Top5 a

WHERE ID=

(SELECT ID FROM Training_Top5 b

WHERE b.Doc_ID = a.Doc_ID and rownum=1); kết quả có 5837 dòng trong bảng Training_5

Bước 2: Tạo bảng và đưa dữ liệu huấn luyện đã được phân loại sẵn

CREATE TABLE Category_Training ( Doc_ID NUMBER, Cat_ID NUMBER,

Cat_Name VARCHAR2(100), PRIMARY KEY (Cat_id, Doc_ID));

INSERT INTO Category_Training (Doc_ID , Cat_ID, Cat_Name) SELECT TO_NUMBER(Doc_ID),Cat_ID, Cat_Came FROM Training_Top5;

kết quả có 5887 dòng dữ liệu trong bảng Category_Training

Bước 3: Tạo chỉ số CONTEXT trên bảng huấn luyện. Oracle Text hỗ trợ kiểu phân loại với SVM thì phải thực hiện đánh chỉ số với tham số cho chỉ số là NONPOPULATE

CREATE INDEX Reuter_5_Index ON Training_5(Doc_Text) INDEXTYPE IS CTXSYS.CONTEXT

Bước 4: Thiết lập kiểu tham chiếu tới giải thuật SVM và thay đổi các tham số thực hiện tương ứng. Việc thiết lập này sẽđược sử dụng trong thủ tục huấn luyện Oracle hỗ trợ EXEC CTX_DDL.CREATE_PREFERENCE( ‘Reuter_5_Classifier’, 'SVM_CLASSIFIER'); EXEC CTX_DDL.SET_ATTRIBUTE ('Reuter_5_Classifier', 'MAX_FEATURES','100');

Bước 5: Tạo bảng để lưu nguyên tắc (rule) của từng phân loại. Bảng này được sinh ra trong quá trình huấn luyện.

CREATE TABLE Result_5_Table ( Cat_ID NUMBER,

Type NUMBER(3) NOT NULL, Rule BLOB);

Bước 6: Tiến hành huấn luyện dữ liệu với các bảng đã chuẩn bị dữ liệu và các tham sốđã được thiết lập

EXEC CTX_CLS.TRAIN ( 'Reuter_5_Index', 'ID', 'Category_Training', 'Doc_ID', 'Cat_ID', 'Result_5_Table', 'Reuter_5_Classifier');

EXEC CTX_DDL.CREATE_PREFERENCE( 'Reuter_5_Filter',

'NULL_FILTER');

CREATE INDEX Restabx_Docs ON Result_5_Table(Rule)

INDEXTYPE IS CTXSYS.CTXRULE

PARAMETER ('FILTER Reuter_5_Filter

CLASSIFIER Reuter_5_Classifier');

Bước 8: Thực hiện kiểm thử dữ liệu với bảng nguyên tắc đã được

sinh ra sau quá trình huấn luyện (adsbygoogle = window.adsbygoogle || []).push({});

- Tạo bảng và đưa nội dung các tài liệu không giống nhau để chuẩn bị kiểm thử mô hình đã được huấn luyện ở trên.

CREATE TABLE Testing_5 AS

SELECT TO_NUMBER(Doc_ID) Doc_ID, Docs FROM Test_Top5 a WHERE ID =

(SELECT ID FROM Test_Top5 b

WHERE b.Doc_ID = a.Doc_ID and rownum=1);

Kết quả trong bảng Testing_52310 tài liệu khác nhau để kiểm thử.

- Thực hiện thử nghiệm phân loại các ứng với các nguyên tắc theo phân loại đã được huấn luyện ở trên bằng cách sử dụng toán tử MATCHES

CREATE TABLE Test_5 AS

SELECT Result_5_Table.Cat_ID, MATCH_SCORE(1) Score, Testing_5.Doc_ID

FROM Result_5_Table, Testing_5 WHERE

MATCHES(Result_5_Rable.Rule, Testing_5.Docs,1) > 0;

kết quả trong bảng Test_58461 dòng, với mỗi tài liệu cần phân loại có thể có thể có trong nhiều phân loại khác nhau. Việc một tài liệu có nhiều phân loại khác nhau như vậy là do khi tính điểm tương tự giữa các tài liệu kiểm với các nguyên tắc phân loại, tác giảđã lấy tất cả chỉ cần có điểm lớn 0 có nghĩa là có sự tương ứng vềđặc trưng.

- Để loại bớt các phân loại thừa, trong số các phân loại của một tài liệu tác giả chỉ lấy tài liệu có điểm cao nhất

CREATE TABLE Highest_Score AS

SELECT DISTINCT a.Doc_ID, a.Cat_ID, a.Score FROM Test_5 a,

(SELECT Doc_ID, MAX(Score) Score FROM Test_5 GROUP BY Doc_ID ) b

WHERE a.Doc_ID = b.Doc_ID and a.Score =b.Score; kết quả trong bảng Highest_Score2313 dòng và ít nhất một tài liệu trong tập kiểm thử sẽ nằm trong 1 phân loại, trong bảng này có 3 cặp tài liệu – phân loại (1 tài liệu thuộc 2 phân loại) có điểm bằng nhau.

5.2.2. Thử nghiệm lần 2

Các bước thực hiện trong lần thử nghiệm 2 với MAX_FEATURE =1000 tương tự như tất cả bước trong lần kiểm thử 1 nhưng tại bước 4, ta thiết lập tham số có mô hình phân loại

EXEC CTX_DDL.CREATE_PREFERENCE( ‘Reuter_5_Classifier’,

'SVM_CLASSIFIER'); EXEC CTX_DDL.SET_ATTRIBUTE

'MAX_FEATURES','1000');

--chỉ thực hiện thay đổi với chữ màu xanh

Kết quả dữ liệu trong các bảng:

- Các bảng Training_5, Category_Training , Testing_5Testing_Top5

đều giống nhau trong tất cả các lần thử nghiệm do sử dụng chung một tập dữ liệu huấn luyện và kiểm thử.

- Bảng Test_511436 dòng, bảng Highest_Score2314 (có 4 cặp tài liệu - phân loại có điểm bằng nhau)

5.2.3. Thử nghiệm lần 3

Thực hiện thử nghiệm với MAX_FEATURE =1000 và sử dụng một bảng từ dừng tiếng Anh khác với 509 từ dừng (Phụ lục 1). Bước đầu tiên là đưa bảng danh sách từ dừng tiếng Anh mới vào vào trong bảng từ dừng của Oracle, sử dụng một số thủ tục dựng sẵn để dưa danh sách từ dừng vào trong CSDL.

Các bước thực hiện tương tự các bước giống lần 2 nhưng tại bước 3, sử dụng danh sách từ dừng trong việc đánh chỉ số cho nội dung văn bản, như sau: (adsbygoogle = window.adsbygoogle || []).push({});

CREATE INDEX Reuter_5_Index ON Training_5(Doc_Text) INDEXTYPE IS CTXSYS.CONTEXT

PARAMETERS(‘STOPLIST SVM.English_Stoplist1 NONPOPULATE’);

- Tiếp theo tại bước 7, chúng ta cũng thêm đối số về danh sách từ dừng mới với bảng lưu các nguyên tắc phân loại.

CREATE INDEX Restabx_Docs ON Result_5_Table(Rule)

INDEXTYPE IS CTXSYS.CTXRULE

PARAMETER (' STOPLIST SVM.English_Stoplist1 FILTER Reuter_5_Filter

CLASSIFIER Reuter_5_Classifier');

- Kết quả của các bảng dữ liệu phân loại kiểm thử như sau:

Bảng Test_5 có 11438 dòng, bảng Highest_Score có 2311 (chỉ có 1 cặp tài liệu - phân loại có điểm bằng nhau)

5.2.4. Kết quả 3 lần thử nghiệm

Tất cả các kết quả thử nghiệm đều lấy từ các phân loại có điểm cao nhất với mỗi tài liệu trong tập kiểm thử của cả 3 lần thử nghiệm.

Lần 1: MAX_FEATURE =100

Earn Acq Money_fx Grain Crude Tổng số

Earn 1071 12 0 1 3 1087 Acq 34 653 6 14 14 721 Money_fx 2 24 132 19 2 179 Grain 7 11 10 116 4 148 Crude 4 15 2 9 162 192 Tổng số 1118 715 150 159 185 2327 Bng 5.2. Bảng kết quả thử nghiệm lần 1 Từ bảng trên tính được: Số lỗi là E = 193, tổng số mẫu: 2327 Vậy tỷ lệ lỗi: R = E / S = 193/2327 = 0.083 Độ chính xác A: A= 1- R = (S - E) / S =0.917 Lần 2: Max feature =1000 (tăng sốđặc trưng)

Earn Acq Money_fx Grain Crude Tổng số

Earn 1076 10 0 0 1 1087

Acq 18 692 1 1 9 721

Crude 2 5 1 0 181 189 Tổng số 1100 714 177 143 193 2327 Bng 5.3. Bảng kết quả thử nghiệm lần 2 Số lỗi E = 62, tổng số mẫu: 2327 Vậy tỷ lệ lỗi: R = E / S = 193/2327 = 0.029 Độ chính xác A: A= 1- R = (S - E) / S =0.971 Lần 3: dùng bảng từ dừng với: 509 và MAX_FEATURE=1000

Earn Acq Money_fx Grain Crude Tổng số

Earn 1074 11 1 0 1 1087 Acq 15 696 1 1 7 720 Money_fx 1 3 175 0 0 179 Grain 2 1 3 142 1 149 Crude 3 6 2 0 178 189 Tổng số 1095 717 182 143 187 2324 Bng 5.4. Bảng kết quả thử nghiệm lần 3 Số lỗi E = 56, tổng số mẫu: 2324 Vậy tỷ lệ lỗi: R = E / S = 193/2327 = 0.024 Độ chính xác A: A= 1- R = (S - E) / S =0.976 Tổng hợp: Đưa kết quả vào một bảng ta có: Tham số Số đặc trưng Từ dừng Tỷ lệ lỗi Chính xác 100 114 0.083 0.917 1000 114 0.029 0.971 1000 509 0.024 0.976 Bng 5.5. Bảng tổng hợp kết quả thử nghiệm qua 3 lần

Một số nhận xét về phương pháp SVM trong Oracle:

SVM trong Oracle sử dụng phương pháp phân tích thống kê văn bản tập các tài liệu và các tương quan của chúng với các nhóm theo nội dung.

Ưu điểm:

- Không cần cung cấp các nguyên tắc phân loại hoặc các tài liệu mẫu trong 1 tập huấn luyện

- Trợ giúp việc phát hiện các mẫu và tính tương tự nội dung trong tập tài liệu mà các tài liệu có thể bị bỏ sót

- Thực tế, có thể sử dụng phân loại không kiểm soát khi không có một ý tưởng về các nguyên tắc hoặc phân loại. Một kịch bản có thể là sử

dụng phân loại học không kiểm soát để cung cấp các tập phân loại ban đầu và sau đó sử dụng trong phân loại có kiểm soát.

Nhược điểm:

- Phân nhóm có thể có kết quả trong các nhóm không mong muốn khi hành động phân nhóm không được định nghĩa, nhưng dựa trên một giải thuật bên trong

- Không thấy các nguyên tắc để tạo các phân loại (adsbygoogle = window.adsbygoogle || []).push({});

- Hành động phân loại là cần nhiều CPU và ít nhất là bằng thời gian đánh chỉ số.

KT LUN

Trong luận văn chúng tôi đã trình bày các khái niệm và các bước cơ bản để xây dựng được hệ thống phân loại văn bản. Chúng tôi cũng đâ tập trung tìm hiểu sâu hơn một phương pháp phân loại mà được các nhà chuyên môn đánh giá cao là Support Vector Machines. Chúng tôi đã tìm hiểu về cơ sở lý thuyết, nội dung cách tiếp cận, các vấn đề về phân tách tuyến tính, không tuyến tính khi sử dụng SVM. Cách tiếp cận SVM trong phân loại đang được rất quan tâm vì độ chính xác cũng như cách giải quyết với các vấn đềđa lớp, đa nhãn khi phân loại.

Các cách tiếp cận với phân loại văn bản thường có suy nghĩ là các văn bản là các file văn bản như Mircosoft Word hay các trang điện tử, nhưng đó chỉ là một phần thông tin trong thời kỳ mà dữ liệu có ở mọi nơi, và một nơi lưu trữ rất văn bản và các dữ liệu phi cấu trúc được lưu trong các CSDL về một lĩnh vực nào đó. Hãng CSDL hàng đầu hiện nay, Oracle, đã thực hiện hỗ trợ phân loại văn bản bằng phương pháp SVM đối với các văn bản được lưu dưới dạng file hệ thống, đường dẫn liên kết tới các trang WEB hay chính nội dung các văn bản đã được lưu trong CSDL. Các văn bản được lưu trong CSDL Oracle trong các trường có kiểu dữ liệu là CLOB, BLOB hoặc VARCHAR. Với việc sử dụng SVM trong Oracle, người dùng có thể thực hiện phân loại với một tài liệu có thể thuộc nhiều hơn một phân loại và một phân loạicũng có thể có nhiều tài liệu; đây chính là vấn đề đa lớp – đa nhãn chúng tôi đã đề cập ở trên.

Luận văn mới chỉ dừng lại ở phần lý thuyết và thực hiện thử nghiệm với phân loại tiếng Anh trong CSDL. Dữ liệu thực nghiệm chúng tôi đã sử dụng bộ dữ liệu Reuter-21578 với cách phân loại của Mode Aprit với chuyên dùng để kiểm thử các phương pháp phân loại và đo chính xác của chúng. Bộ

dữ liệu này gồm 9603 tài liệu huấn luyện và 3299 tài liệu kiểm thửđược chia sẵn vào 90 phân loại cho trước. Và để dễ theo dõi kết quả kiểm thử, chúng tôi sử dụng 5 bộ phân loại có số dữ liệu huấn luyện và kiểm thử lớn nhất để kiểm thử kết quả. Chúng tôi đã thử nghiệm 5 phân loại này với các cách thiết lập tham số khác nhau trong Oracle. Qua thử nghiệm chúng tôi đã thu được các kết quả khả quan với phương pháp phân loại SVM đã được tích hợp trong Oracle 10g. (tham khảo chương 5, mục 5.2.4 để xem các kết quả của 3 lần thực nghiệm phân loại.

Các kết quđã đạt được trong lun văn:

9 Trình bày tổng quan về khai phá văn bản, các bước thực hiện phân loại văn bản.

9 Tìm hiểu cơ sở lý thuyết của phương pháp SVM, nêu ra các vấn đề về phân tách đa lớp đa nhãn, phân tích các ưu điểm của phương pháp phân loại văn bản SVM.

9 Tìm hiểu cách thực hiện phân loại bằng phương pháp bên trong Oracle 10g với các văn bản được đưa trong CSDL Oracle với các bộ dữ liệu đa lớp và đa nhãn.

9 Thực hiện thử nghiệm trên Oracle và đánh giá kết quả sau 3 lần thử nghiệm.

Các định hướng phát trin tiếp theo ca lun văn:

9 Tìm hiểu, nghiên cứu khai thác rộng và sâu hơn các tri thức về lý thuyết khai phá văn bản đặc biệt là lĩnh vực KDD để có thể vận dụng vào thực tiễn chính xác hơn.

9 Thử nghiệm và đánh giá kỹ hơn với các dữ liệu thuộc các lĩnh vực khác nhau.

9 Tìm hiểu thêm về các phương pháp đánh giá kết quả khác để đưa ra đánh giá khách quan trong việc sử dụng các phương pháp phân loại văn bản.

9 Kết hợp với các chuyên gia ngôn ngữ tiếng Việt, đồng thời tìm hiểu thêm về các cách thức phân loại với ngôn ngữ tự nhiên khác tiếng Anh để có thể áp dụng phân loại văn bản bằng phương pháp SVM trong CSDL Oracle một cách hiệu quả hơn, đặc biệt là với các văn bản tiếng Việt của chúng ta.

TÀI LIU THAM KHO

Tiếng Việt

1. Nguyễn Linh Giang, Nguyễn Mạnh Hiền (2004), Phân loại văn bản tiếng Việt với bộ phân loại vector hỗ trợ, Bài báo khoa học, Hà nội. 2. Nguyễn Thị Kim Ngân (2004), Phân loại văn bản tiếng Việt bằng

phương pháp Support Vector Machines, Luận văn thạc sĩ khoa học Công nghệ thông tin, trường Đại học Bách Khoa Hà nội, Hà nội.

Tiếng Anh

3. Filippo Portera (4/2005), Loss Functions and Structured Domains for Support Vector Machines, Technique Report UBLCS-2005-08, Departement of Computer Science University of Bologna, Bologna (Italy).

4. Oracle (6/2005), Oracle® Text Application Developer's Guide 10g Release 2(10.2), Technique paper.

5. Oracle (6/2005), Oracle® Text Reference 10g Release 2(10.2),

Technique paper.

6. Oracle (6/2005), Oracle® Data mining Concepts 10g Release 2(10.2),

Technique paper.

7. Brian C. Lovell and Christian J Walder, Support Vector Machines for Business Applications, The University of Queensland and Max Planck Institute, Tübingen.

8. Thorsten Joachims, Text Categorization with Support Vector Machines: Learning with Many Relevant Features, University at Dortmund Informatik LS8, Baroper Str. 301 44221 Dortmund, Germany.

Department of Computer Science, Old Dominion University, Norfolk, VA 23529, USA. (adsbygoogle = window.adsbygoogle || []).push({});

10. Boriana L. Milenova, SVM in Oracle Database 10g: Removing the Barriers to Widespread Adoption of Support Vector Machines, Data Mining Technologies Oracle .

11. Steve R. Gunn (10 May 1998), Support Vector Machines for Classification and Regression, Technical Report, Faculty of Engineering, Science and Mathematics School of Electronics and Computer Science, University of Southamton, English.

12. Oracle, Oracle Text 9.2.0 Technical Feature Review, http://blog.empas.com/barexem/read.html?a=10830469.

13. Oracle, Oracle Text 10g Technical Overview,

http://www.oracle.com/technology/products/text/x/10g_tech_overview.ht ml.

14. Ken Williams (March 18, 2003), A Framework for Text Categorization, Master of Engineering (Research),School of Electrical and Information Engineering The University of Sydney, Australia.

15. Vladimir N. Vapnik (1999), The Nature of Statistical Learning Theory Second Edition, Springer.

16. Mehmed Kantardzic (2003), Data Mining: Concepts, Models, Methods, and Algorithms, John Wiley & Sons.

Dữ liệu thử nghiệm

17. C.J. van Rijsbergen, Some Examples of Stoplist, SMART, English Stoplist

Ph lc 1

DANH SÁCH TỪ DỪNG TIẾNG ANH

cannot given least p thank

a's cant gives less particular thanks

able cause go lest particularly thanx

about causes goes let per that

above certain going let's perhaps that's

according certainly gone like placed thats

accordingly changes got liked please the

across clearly gotten likely plus their

actually co greetings little possible theirs

after com h look presumably them

afterwards come had looking probably themselves

again comes hadn't looks provides then

against concerning happens ltd q thence

ain't consequently hardly m que there

all consider has mainly quite there's

allow considering hasn't many qv thereafter

allows contain have may r thereby

almost containing haven't maybe rather therefore (adsbygoogle = window.adsbygoogle || []).push({});

alone contains having me rd therein

along corresponding he mean re theres

already could he's meanwhile really thereupon

also couldn't hello merely reasonably these

although course help might regarding they

always currently hence more regardless they'd

am d her moreover regards they'll

among definitely here most relatively they're amongst described here's mostly respectively they've

an despite hereafter much right think

and did hereby must ssaid third

another didn't herein my same this

any different hereupon myself saw thorough

anybody do hers n say thoroughly

anyhow does herself name saying those

anyone doesn't hi namely says though

anything doing himhimself nd second three

anyway don't his near secondly through

anyways done hither nearly see throughout

anywhere down hopefully necessary seeing thru

appropriate each i never seems too

Một phần của tài liệu phân loại văn bản bằng phương pháp support vector machine (Trang 83)