, , , , ) Inline tags (những tag khơng Line-break tags) Tác giả gom nhóm nút DOM inline liên tiếp để tạo thành zone tree Mỗi zone tree chứa nút DOM inline liên tiếp nút line-break Sau xác định zone tree, tác giả tiến hành loại bỏ tag HTML, để tiến hành bước sau o Tiến hành rút trích đặc trưng, bao gồm 59 đặc trưng hình học (geometric) văn (text) đặc trưng đầu tác giả xác định rõ (như: số lượng từ vùng đó, số lượng từ có chữ viết hoa, số lượng từ có chữ viết hoa…) 50 đặc trưng lại giá trị nhị phân, từ có xuất zone tree khơng Để xác định 50 từ này, tác giả dùng công thức độ đo GSS (?) để tính giá trị từ, từ xếp theo chiều từ cao đến thấp lấy 50 từ có giá trị cao o Sau sử dụng thư viện LibSVM để phân thành lớp: Reference zone Non-reference zone Bộ phân lớp SVM gán cho zone tree giá trị xác suất o Thực vịng lặp heuristic thơng qua bước để gán nhãn vùng reference: Tìm kiếm parent zone node, giống với reference (xác suất vùng reference phải lớn 0.5) GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức -8- Nghiên cứu tập trung vào phương pháp để thực việc rút trích báo khoa học (paper) định dạng tập tin PDF, tải từ trang CiteSeerX (http://citeseerx.ist.psu.edu) Đánh giá so sánh kết tập liệu, phân tích ưu nhược điểm phương pháp 1.4 PHẠM VI ĐỀ TÀI Đối tượng liệu đề tài báo khoa học có định dạng phổ biến pdf, doc Tập trung vào phương pháp rút trích metadata nay: o Luật: Dựa GATE Framework o Máy học: tập trung vào phương pháp SVM 1.5 PHƯƠNG PHÁP VÀ NỘI DUNG THỰC HIỆN Đặc tả hệ thống: o Hệ thống xây dựng nhằm thực việc rút trích thơng tin metadata dựa hai phương pháp máy học (SVM CRF) tập luật (dựa GATE Framework) o Dữ liệu đầu vào hệ thống báo khoa học định dạng file pdf, doc o Đầu thơng tin metadata, lưu trữ dạng file xml, lưu trữ thông sở liệu database o Chương trình cịn cho phép người dùng chỉnh sửa thơng tin rút trích trước xuất Cách tiếp cận: sử dụng hai phương pháp: máy học tập luật GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức -9- 1.6 KẾT QUẢ DỰ KIẾN Xây dựng thành công công cụ rút trích thơng tin metadata từ báo khoa học Kết việc rút trích phải đạt độ xác từ 90% trở lên Hồn thành báo cáo khóa luận tốt nghiệp với nội dung đầy đủ xác 1.7 BỐ CỤC BÁO CÁO CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 PHƯƠNG PHÁP LUẬT 2.1.1 LUẬT NGỮ PHÁP JAPE 2.1.1.1 GIỚI THIỆU VỀ JAPE JAPE (Java Annotation Patterns Engine) thành phần GATE, dùng để nhận biết thực thể định nghĩa trước thông qua luật, ngôn ngữ dùng để viết biểu thức đặc tả (RE – Regular expression) thông qua thích [4] 2.1.1.2 LUẬT JAPE Ngữ pháp JAPE bao gồm tập phase, phase chứa nhiều luật tương đương với định dạng pattern khác Luật JAPE luôn bao gồm vế: trái (Left) phải (Right) Vế trái luật chứa mơ tả pattern Chúng chứa toán tử regular expression (như: *, ?, +) Vế phải bao gồm thích ta tự định nghĩa, chúng chứa thơng tin tên nhãn Ngồi vế phải chứa mã code Java để tạo chỉnh sửa thích Sau ví dụ đơn giản: Phase: Jobtitle Input: Lookup Options: control = brill GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 10 - Rule: Jobtitle1 ( {Lookup.majorType == jobtitle} ) :jobtitle 10 > 11 :jobtitle.JobTitle = {rule = "Jobtitle"} Vế trái cách biệt với vế phải thơng quan dấu “ >” Trong ví dụ trên, khai báo luật tên “Jobtitle” Mục đích để gán nhãn từ mà trước gán nhãn “Lookup” (nhãn “Lookup” gán thơng qua q trình xử lý Gazetteer), với đặc tính “majorType” “jobtitle” thành nhãn tên “JobTitle” Dịng “Phase: Jobtitle”: nói ngữ pháp JAPE bao gồm tập phase, phase chứa nhiều luật khác nhau, tương ứng với nhiều pattern khác Tên phase nhất, không lặp lại Ở ta đặt tên cho phase “Jobtitle” Tên phase không cần phải thiết giống tên file chứa phase Ví dụ phase “Jobtitle” đặt file idrs_jobTitle.jape Dòng “Input: Lookup”: đối số đầu vào phase “Lookup” Các đối số phải khai báo đầu phase Nếu khơng khai báo đối số mặc định “Token”, “SpaceToken”, “Lookup” Chúng ta nên khai báo đối số đầu vào cần thiết dùng tới, khai báo nhiều làm chậm tốc độ xử lý luật Dòng “Options: control = brill”: tùy chọn option o Control: khai báo cách thức so khớp luật Có tùy chọn {brill, all, first, once, appelt} GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 11 - o Debug: xét true, luật xét chế độ appelt, xung đột trình gán nhãn trình bày qua cửa sổ message Dòng “Rule: Jobtitle1 ”: tên luật “Jobtitle1” Dòng 6, 7, 8, 9: pattern, định nghĩa từ hay ngữ gán nhãn “Lookup” có giá trị đặc tính “majorType” “jobtitle” gán nhãn phụ “jobtitle” Nhãn phụ sau sử dụng bên vế phải Các nhãn phụ không trùng rule Dòng 10 ” >”: dấu hiệu ngăn cách vế trái vế phải Dòng 11 “:jobtitle.JobTitle = {rule = "JobTitle1"}”: dịng ta gán nhãn thức cho từ hay ngữ mà có nhãn phụ “jobtitle” có luật “JobTitle1” 2.1.1.3 ĐỘ ƯU TIÊN TRONG JAPE Như nói trên, JAPE cung cấp tùy chọn option là: brill, all, first, once, appelt Các tùy chọn khai báo đầu phase 2.1.1.3.1 BRILL Khi có nhiều luật vùng tài liệu, tất luật chọn Vì vùng tài liệu gán nhãn nhiều tên khác nhau, nên đối số “Priority” lúc không cần thiết Brill thực thi tất luật phù hợp Các luật gán nhãn cho vùng tài liệu phù hợp với luật mà có độ lớn dài 2.1.1.3.2 ALL Chế độ All tương tự giống với Brill, thực thi tất luật phù hợp, chế độ so khớp tiếp tục thực thi từ vùng tài liệu gán nhãn, thơng qua luật này, trước Ví dụ: aaabbb GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 12 - Khi áp dụng chế độ All ví dụ gán nhãn sau: [aaa[bbb]] Vì aaabbb bbb so khớp phù hợp với luật Nếu áp dụng luật Brill vào ví dụ gán nhãn sau [aaabbb] 2.1.1.3.3 FIRST Chế độ lựa chọn luật phù hợp để gán nhãn Khi luật chọn, chế độ không cố gắng so khớp để tìm vùng tài liệu phù hợp dài 2.1.1.3.4 ONCE Chế độ lựa chọn luật phù hợp thứ hai sau luật phù hợp thứ 2.1.1.3.5 APPELT Với chế độ có luật chọn cho vùng tài liệu, tùy theo độ ưu tiên tập luật Độ ưu tiên chọn theo tiêu chí sau: Tất luật phù hợp với vùng văn điểm bắt đầu, luật tương ứng với vùng dài chọn Nếu có nhiều luật phù hợp cho vùng tài liệu, luật có độ ưu tiên cao chọn Nếu có nhiều luật có độ ưu tiên, luật định nghĩa trước chọn Nếu tất độ ưu tiên JAPE chọn luật cách ngẫu nhiên Đối số độ ưu tiên “Priority” khai báo kèm theo luật Nó số nguyên dương; giá trị đối số lớn có độ ưu tiên cao Khi luật khơng khai báo đối số này, có giá trị mặc định -1 (giá trị thấp nhất) 2.1.1.4 VẾ TRÁI (LEFT-HAND SIDE) Vế trái ngữ pháp JAPE cho phép ta xây dựng pattern để so khớp, tìm vùng phù hợp tài liệu Một pattern định nghĩa để so khớp với chuỗi cụ thể tài liệu, hay so khớp với vùng tài liệu GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 13 - gán nhãn trước Ngồi JAPE cịn cung cấp tốn tử nhằm cho phép định nghĩa pattern cách uyển chuyển; cho phép khai báo MACRO để sử dụng lại pattern định nghĩa trước 2.1.1.4.1 SO KHỚP VỚI CHUỖI KÝ TỰ Phase: UrlPre Input: Token SpaceToken Options: control = appelt Rule: Urlpre ( (({Token.string == "http"} | {Token.string == "ftp"}) {Token.string == ":"} {Token.string == "/"} {Token.string == "/"} ) | ( {Token.string == "www"} {Token.string == "."} ) ): urlpre > :urlpre.UrlPre = {rule = "UrlPre"} Luật định nghĩa pattern cho phép nhận dạng tiền tố Url http://, ftp:// hay www Quan sát ví dụ ta thấy loại thích (Annotation) Token đặc tính string sử dụng đến Đặc tính string cho phép lấy chuỗi ký tự Token Dùng toán tử “= =”để so sánh chuỗi ký tự Token với chuỗi ký tự cụ thể Ví dụ cho ta thấy pattern định nghĩa để so khớp với chuỗi ký tự cụ thể Nếu chuỗi ký tự xuật tài liệu, gán nhãn thích hợp GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 14 - 2.1.1.4.2 SO KHỚP VỚI NHỮNG LOẠI CHÚ THÍCH KHÁC (ANNOTATION TYPES) Ngồi khả so khớp với chuỗi ký tự cụ thể, luật ngữ pháp JAPE cho phép so khớp với loại thích khác, xử lý gán nhãn, module trước như: gazetteer, tokeniser, module khác Rule: Known Priority: 100 ( {Location}| {Person}| {Date}| {Organization}| {Address}| {Money} | {Percent}| {Token.string == "Dear"}| {JobTitle}| {Lookup} ):known > {} Ví dụ cho thấy ta sử dụng kết hợp loại so khớp với Mỗi loại thích (Annotation Type) có đặc tính khác nhau, tận dụng đặc tính để định nghĩa pattern linh hoạt Tên loại Đặc tính Giải thích Các giá trị Tên từ loại Token NN (Danh từ) thích (Annotation Type) Token category GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 15 - NNP (Ngữ danh từ) JJ (Tính từ) DT (mạo từ) … kind Loại Token word (từ) number (số) punctuation (dấu câu) symbol (ký tự) length Số lượng ký tự có Là số nguyên dương Token orth (>=1) Cho biết trạng thái ký upperInitial (chữ đầu tự Token viết hoa viết hoa, chữ lại hay viết thường khơng) allCaps (tất ký tự viết hoa) lowercase (tất ký tự viết thường) mixedCaps (có ký tự viết hoa viết thường chuỗi Token) string Chuỗi ký tự Token Chuỗi ký tự String position Đặc tính xuất startpunct Token dấu câu GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 16 - Lookup majorType “(”,“)”,“[”,“]”, endpunnct Loại nhãn person_first org_base org_key … minorType Loại nhãn phụ Một Lookup có đặc tính majorType person_first, minorType female male SpaceToken kind Loại SpaceToken Space (khoảng trắng dòng) Control (khoảng trắng xuống dòng) length Chiều dài SpaceToken Là số nguyên dương (>=1) Split kind Loại Split internal (dấu chấm hết câu) external (dấu xuống dòng) Bảng 3: Các đặc tính vài loại thích 2.1.1.4.3 MACRO Macro cho phép tạo pattern mà sử dụng lại nhiều lần luật JAPE GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 17 - Phase: Number Input: Token Lookup Options: control = appelt Macro: MILLION_BILLION ({Token.string == "m"}| {Token.string == "million"}| {Token.string == "b"}| {Token.string == "billion"}| {Token.string == "bn"}| {Token.string == "k"}| {Token.string == "K"} ) Macro: NUMBER_WORDS ( (({Lookup.majorType == number} ({Token.string == "-"})? )* {Lookup.majorType == number} {Token.string == "and"} )* ({Lookup.majorType == number} ({Token.string == "-"})? )* {Lookup.majorType == number} ) Macro: AMOUNT_NUMBER (({Token.kind == number} (({Token.string == ","}| {Token.string == "."} ) GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 18 - {Token.kind == number} )* | (NUMBER_WORDS) ) (MILLION_BILLION)? ) Rule: MoneyCurrencyUnit ( (AMOUNT_NUMBER) ({Lookup.majorType == currency_unit}) ) :number > :number.Money = {kind = "number", rule = "MoneyCurrencyUnit"} Trong ví dụ trên, thấy Macro sử dụng lồng vào nhau, macro gọi macro Điều làm cho cấu trúc JAPE rõ ràng, lành mạch, giúp cho dễ dàng quan sát sửa chữa gặp lỗi Ví dụ đưa pattern để nhận diện số khoản tiền 2.1.1.4.4 TOÁN TỬ TẠI VẾ TRÁI Nhóm tốn tử Ký hiệu Giải thích Ví dụ Union ({Lookup.majorType == lo | Hoặc cation} | Kleene {Lookup.majorType == c ountry_adj}) * ? Xuất nhiều ({Lookup.majorType == lo lần cation})* Xuất lần ({Lookup.majorType == or ganization})? GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 19 - + Xuất nhiều ({Lookup.majorType == co untry_adj})+ lần Range [number1, So khớp số lượng ({Token})[1,3] : so khớp number2] thích từ number1 đến number2 [number] từ đến Token dòng So khớp xác ({Token.kind==number}) thích theo số number [3] : so khớp xác Token loại number dòng Equality == {Lookup.majorType == So sánh "person"} != {Lookup.majorType != So sánh không "person"} Comparison Regular < So sánh bé {Token.length < 3} = 3} > So sánh lớn {Token.length > 3} =~ So sánh gần So khớp với Expression {Token.string =~ regular “[Dd]ogs”} expression ==~ So So sánh khớp với {Token.string ==~ regular “[Dd]ogs”} expression !~ So sánh không gần {Token.string !~ So khớp với regular “[Dd]ogs”} expression GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 20 - !=~ So sánh So khớp không {Token.string !=~ với regular “[Dd]ogs”} expression Contextual X contains Trả true, {X contains {Y.foo==bar} y thích loại X chứa hồn } tồn thích loại Y X within Trả true, {{X.foo==bar} within Y} Y thích loại X bao phủ hồn tồn thích loại Y Bảng 4: Các tốn tử vế trái luật ngữ pháp JAPE 2.1.1.5 VẾ PHẢI (RIGHT-HAND SIDE) Vế phải luật chứa thông tin thích tạo Nó cho phép đặt tên nhãn thích thơng qua nhãn phụ gán vế trái, cho phép tạo đặc tính cho thích Ngồi cịn hỗ trợ, cho phép người dùng đưa code Java vào Vế phải phân biệt với vế trái thông qua dấu “ > ” Rule: GazLocation ( {Lookup.majorType == location} ) :location > :location.Enamex = {kind="location", rule=GazLocation} Trong ví dụ, vùng gán nhãn phụ “location” gán nhãn Enamex, tên loại thích Loại thích Enamex có đặc tính kind rule Sau ví dụ cho thấy việc sử dụng code Java vế phải GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 21 - Rule: FirstName ( {Lookup.majorType == person_first} ):person > { AnnotationSet person = bindings.get("person"); Annotation personAnn = person.iterator().next(); FeatureMap features = Factory.newFeatureMap(); features.put("gender", personAnn.getFeatures().get("minorType")); features.put("rule", "FirstName"); outputAS.add(person.firstNode(), person.lastNode(), "FirstPerson", features); } Sử dụng code Java bên vế phải cho phép ta linh hoạt việc đặt đặc tính cho thích, tinh chỉnh, chọn lọc lại thích gán nhãn Ở ví dụ, đoạn code java dùng bên vế phải nhằm mục đích thêm vào giá trị đặc tính khác cho thích khác Giá trị đặc tính “gender” gán ghép dựa vào đặc tính minorType loại thích Lookup 2.1.2 HIỆN THỰC CÁC LUẬT JAPE 2.2 PHƯƠNG PHÁP MÁY HỌC SVM 2.2.1 KHÁI QUÁT VỀ SVM 2.2.2 ỨNG DỤNG THUẬT TOÁN SVM VÀO BÀI TỐN GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức - 22 - CHƯƠNG 3: HIỆN THỰC HỆ THỐNG CHƯƠNG 4: THỰC NGHIỆM, NHẬN XÉT VÀ ĐÁNH GIÁ KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN PHỤ LỤC DANH MỤC TÀI LIỆU THAM KHẢO GVHD: ThS Huỳnh Ngọc Tín SVTH: Võ Đinh Duy & Huỳnh Minh Đức ... VỀ ĐỀ TÀI KHÓA LUẬN 1.1 ĐẶT VẤN ĐỀ Bài báo khoa học (paper) kết cơng bố q trình nghiên cứu miệt mài nhà khoa học Nội dung báo đề cập đến vấn đề mà nhà khoa học tham gia nghiên cứu, cách tiếp cận... tạp chí hay hội nghị khoa học Các báo làm tài liệu nghiên cứu đánh giá cho nghiên cứu tiếp tục sau Cùng với phát triển khoa học kỹ thuật, số lượng cơng trình nghiên cứu khoa học ngày nhiều, thơng... (reference) báo khoa học Họ tiến hành thử nghiệm thông số, đặc trưng (từ, layout trình bày, từ vựng) khác để nâng cao độ xác thuật tốn CRF Qua thực nghiệm tập chứa header, CRF có kết xác 98.3%, cao SVM