Môi trƣờng thực nghiệm

Một phần của tài liệu (Luận văn thạc sĩ) làm giàu các đặc trưng cho bài toán phân lớp câu hỏi (Trang 38 - 43)

4.1.1. Phần cứng

Quá trình thực nghiệm của luận văn đƣợc thực hiện trên các máy tính có các cấu hình nhƣ sau:

Máy tính 1: dùng để tiến hành tìm kiếm trên Google, lấy dữ liệu tự động từ Internet, tạo đầu vào cho mô hình LDA:

 Chip: Intel Xeon 3,00 GHz

 RAM: 8 GB

 Hệ điều hành: Windows Server 2003 Standard x64

 Công cụ lập trình: .NET Framework 3.5

Máy tính 2: dùng để chạy chƣơng trình JGibbsLDA v.1.0, làm giàu đặc trƣng, phân lớp câu hỏi

 Chip: Intel Core 2 Duo T7300 2,00 GHz

 RAM: 2 GB

 Hệ điều hành: Windows 7 Ultimate 32-bit

 Công cụ lập trình: Eclipse 3.7.0, Java 1.6

4.1.2. Phần mềm

Các phần mềm do tác giả luận văn tự xây dựng và phần mềm nguồn mở đƣợc sử dụng trong luận văn:

 Phần mềm GetSematicWords, do tác giả luận văn tự xây dựng:

 Nền tảng viết phần mềm: Microsoft C# .NET 2008.

 Công dụng: Lấy các kết quả tìm kiếm trên Google và tạo dữ liệu đầu vào cho mô hình LDA.

 Phần mềm EnhanceFeatures, do tác giả luận văn tự xây dựng.

 Nền tảng viết phần mềm: Microsoft C# .NET 2008.

 Công dụng: Lựa chọn các chủ đề ẩn, làm giàu đặc trƣng cho câu hỏi.

 Phần mềm TF-IDF, do tác giả luận văn tự xây dựng.

 Nền tảng viết phần mềm: Microsoft C# .NET 2008.

 Công dụng: Biểu diễu đặc trƣng câu hỏi dƣới dạng véc-tơ đặc trƣng, là đầu vào cho bộ phân lớp.

 Phần mềm JGibbsLDA v.1.0, tác giả Phan Xuân HiếuNguyễn Cẩm [22].

 Công dụng: Xây dựng và phân tích chủ đề ẩn.

 Phần mềm libsvm-3.1, tác giả Chih-Chung ChangChih-Jen Lin

 Nền tảng viết phần mềm: C++, Java.

 Công dụng: Phân lớp văn bản, câu hỏi.

4.2. Dữ liệu thực nghiệm

Bộ dữ liệu đƣợc sử dụng trong quá trình thực nghiệm là bộ dữ liệu chuẩn do Xin Li và Dan Roth xây dựng, bao gồm: 5500 câu hỏi huấn luyện (lƣu trong file train_5500.label), 500 câu hỏi kiểm tra (lƣu trong file TREC_10.label) đƣợc phân bố nhƣ sau:

Bảng 4.1. Phân bố câu hỏi theo taxonomy

Lớp #Tr #Te Lớp #Tr #Te Lớp #Tr #Te

ABBREV 86 9 letter 9 0 country 155 3

abb 16 1 other 217 12 mountain 21 3

exp 70 8 plant 13 5 other 464 50

DESC 1162 138 product 42 4 state 66 7

definition 421 123 religion 4 0 NUMERIC 896 113

description 274 7 sport 62 1 code 9 0 manner 276 2 substance 41 15 count 363 9 reason 191 6 symbol 11 0 date 218 47

ENTITY 1250 94 technique 38 1 distance 34 16

animal 112 16 term 93 7 money 71 3

body 16 2 vehicle 27 4 order 6 0

color 40 10 word 26 0 other 52 12

creative 207 0 HUMAN 1223 65 period 27 8 currency 4 6 group 47 6 percent 75 3 dis.med. 103 2 individual 189 55 speed 9 6

event 56 2 title 962 1 temp 8 5

food 103 4 description 25 3 size 13 0 instrument 10 1 LOCATION 835 81 weight 11 4

lang 16 2 city 129 18

Ở đây #Tr là số lƣợng câu hỏi phân bố theo các lớp trong tập dữ liệu huấn luyện, #Te là số lƣợng câu hỏi phân bố theo các lớp trong tập dữ liệu kiểm tra.

4.3. Các bƣớc tiến hành thực nghiệm

Quá trình thực nghiệm với mô hình làm giàu đặc trƣng câu hỏi đã đề xuất ở trên đƣợc tiến hành bằng cách sử dụng các chƣơng trình phần mềm (do tác giả tự viết và phần mềm mã nguồn mở) theo trình tự nhƣ sau:

GetSemanticWords

File huấn luyện

train_5500.label JGibbLDA-v.1.0 Các file *.jgl tƣơng ứng cho từng lớp EnhanceFeatures TF-IDF

File biểu diễn câu hỏi dƣới dạng véc-tơ

*.vector libsvm-3.1

Các file *.twords chứa

chủ đề ẩn

File kết quả phân lớp File dữ liệu đã

đƣợc làm giàu *.enha

Hình 4.1. Các bước tiến hành thực nghiệm

Bƣớc 1: Bổ sung dữ liệu từ Internet, tạo file input cho JGibbLDA

Bƣớc này sử dụng phần mềm GetSemanticWords do tác giả luận văn tự xây dựng với trình tự chi tiết nhƣ sau:

 Đọc file dữ liệu huấn luyện (train_5500.label)  tách nhãn lớp ra khỏi các câu hỏi  nhóm các câu hỏi theo từng lớp.

 Duyệt câu hỏi theo từng lớp, dùng phƣơng thức GET để lấy file HTML kết quả tìm kiếm của Google ứng với từng câu hỏi (chỉ lấy trang 1 gồm 10 kết quả đầu tiên)  tìm và lấy 10 liên kết nội dung tƣơng ứng.

 Lấy nội dung từng trang web ứng với liên kết tìm đƣợc ở trên: ở bƣớc này nên kiểm tra để chỉ lấy html, text (không lấy *.doc, *.xls, *.ppt…) (các trang web

sau khi lấy về được lưu vào các file *.htm theo từng câu hỏi và lớp câu hỏi)

 Trích văn bản từ các file HTML lấy đƣợc (loại bỏ HTML tags, các đoạn JavaScript, Style…) (các file văn bản được lưu vào các file *.txt)

 Tiền xử lý: loại bỏ các ký tự đặc biệt, dấu cách thừa (các file văn bản sau khi

tiền xử lý được lưu vào các file *.pre)

 Tạo file đầu vào cho jgibblda: nối các file *.pre thành 1 file ứng với từng lớp (nhƣ vậy sẽ có 50 file ứng với 50 lớp câu hỏi) với cấu trúc: mỗi dòng là nội

dung của một file *.pre, dòng đầu tiên là số dòng (số file *.pre) (các file đầu

vào cho LDA được lưu vào các file *.jgl tương ứng cho từng lớp câu hỏi)

Sau bƣớc này, tác giả nhận đƣợc gần 5 GB dữ liệu trang web. Sau khi trích và tiền xử lý thu đƣợc gần 200 MB dữ liệu thuần text để làm đầu vào cho mô hình LDA.

Bƣớc 2: Sử dụng JGibbLDA để tìm các chủ đề ẩn

Tác giả sử dụng chƣơng trình mã nguồn mở JGibbLDA-v.1.0 với dữ liệu ở bƣớc 1 (lần lƣợt với từng file *.jgl) để tìm các chủ đề ẩn. Số lƣợng các chủ đề ẩn đầu ra là 50 chủ đề, với mỗi chủ đề lấy 20 từ có xác suất lớn nhất (các tham số khi thực hiện JGibbLDA-v.1.0 nhƣ sau: -est -alpha 0.5 -beta 0.1 -ntopics 50 -niters 1000 - savestep 100 -twords 20)

Kết quả đạt đƣợc nằm ở trong file *.twords (chứa các topic –th)

Bƣớc 3: Làm giàu đặc trƣng cho tập dữ liệu huấn luyện

Bƣớc này sử dụng phần mềm EnhanceFeatures do tác giả luận văn tự xây dựng với trình tự chi tiết nhƣ sau:

 Đọc file train  tách nhãn lớp  nhóm các câu hỏi theo từng class

 Chọn các chủ đề “gần” các lớp câu hỏi nhất. Tiêu chí để chọn chủ đề ẩn z là độ “tƣơng tự” giữa chủ đề z và một lớp C lớn hơn 1 giá trị ngƣỡng cho trƣớc. Sau nhiều thử nghiệm, tác giả nhận thấy ngƣỡng  = 0.024 mang lại hiệu quả khá tốt (các chủ đề được lưu vào các file SelectedTopics\*.txt)

 Làm giàu cho file train: duyệt qua từng câu hỏi theo từng class, bổ sung vào từng câu hỏi các từ “gần” với câu hỏi nhất từ file SelectedTopics\*.txt (các câu hỏi trong cùng 1 class có thể đƣợc bổ sung khác nhau) (file train sau khi làm giàu được lưu vào file *.enha)

Dƣới đây là các từ có xác suất cao nhất của một số chủ đề ẩn thuộc tập Z* tìm đƣợc và lớp gần với các chủ đề đó: Bảng 4.2. Chủ đề ẩn số 35, lớp ENTY:color STT Từ Xác suất 1 color 0.08174136050246278 2 colors 0.02698580062534374 3 red 0.02583113288098718 4 green 0.023491411399001516 5 light 0.020452812071747407 6 blue 0.01799154661667158 7 yellow 0.012917085740157217

8 colour 0.012127049915071148 9 see 0.008055326816550643 10 magenta 0.007599536917462526 11 blindness 0.00744760695109982 12 white 0.007386834964554738 Bảng 4.3. Chủ đề ẩn số 48, lớp ENTY:animal STT Từ Xác suất 1 tiger 0.02423926328655119 3 donkey 0.01322860032873941 5 big 0.006748640788974586 6 subspecies 0.005642306233404982 7 african 0.005431575841867914 8 tigris 0.005220845450330846 9 panthera 0.00501011505879378 10 siberian 0.004641336873603911 11 caspian 0.00432524128629831 12 lion 0.004219876090529776 Bảng 4.4. Chủ đề ẩn số 3, lớp ENTY:currency STT Từ Xác suất 1 exchange 0.0143159647439958 2 rate 0.007619495773985123 3 money 0.04803950572332339 4 gold 0.011728327581090998 5 dollar 0.037428816131504214 6 coin 0.013087313870148602 7 yuan 0.027138607249104486 8 currency 0.026936231356120856 9 bank 0.012769918847266913

Bƣớc 4: Chuyển file train đã làm giàu, file test sang dạng Véc-tơ

Bƣớc này sử dụng phần mềm TF-IDF do tác giả luận văn tự xây dựng với trình tự chi tiết nhƣ sau:

 Đọc cả 2 file train và test (để tạo từ điển chung), tách nhãn lớp

 Duyệt từng câu hỏi (cả train và test), chuyển thành term véc-tơ (TF * IDF)

 Bổ sung class (đã chuyển thành số tƣơng ứng) vào đầu term véc-tơ (kết quả được lưu vào các file *.vector)

Bƣớc 5: Sử dụng LibSVM để phân lớp

Bƣớc này sử dụng phần mềm libsvm-3.1 của tác giả Chih-Chung Chang

Chih-Jen Lin với trình tự chi tiết nhƣ sau:

 Để nguyên file *.vector, không thực hiện scale

 Tiến hành huấn luyện dữ liệu với tham số kernel tuyến tính (linear): -t 0

 Phân lớp dữ liệu test với dữ liệu huấn luyện thu đƣợc ở trên.

4.4. Kết quả thực nghiệm

Một phần của tài liệu (Luận văn thạc sĩ) làm giàu các đặc trưng cho bài toán phân lớp câu hỏi (Trang 38 - 43)

Tải bản đầy đủ (PDF)

(49 trang)