bao cao thuc tap
Trang 1LỜI CẢM ƠN.
Đầu tiên, tôi xin gửi lời cảm ơn chân thành đến thầy ThS Huỳnh Ngọc Tín đãgiúp đỡ và giới thiệu tôi thực tập tại Công ty Outsourceit Vietnam Không những thế,trong quá trình thực tập thầy đã chỉ bảo và hướng dẫn tận tình cho tôi những kiến thức
lý thuyết, cũng như các kỹ năng trong lập trình, cách giải quyết vấn đề, đặt câu hỏi …Thầy luôn là người truyền động lực trong tôi, giúp tôi hoàn thành tốt giai đoạn thực tậptốt nghiệp
Cho phép tôi gửi lời cảm ơn sâu sắc đến Công ty Outsourceit Vietnam đã tạomọi điều kiện thuận lợi giúp tôi cũng như các sinh viên khác hoàn thành giai đoạn thựctập tốt nghiệp
Chân thành cảm ơn đến các bạn trong nhóm thực tập đã hỗ trợ để tôi có thểhoàn thành tốt công việc được giao
Tôi xin chân thành biết ơn sự tận tình dạy dỗ của tất cả các quý thầy cô KhoaCông nghệ phần mềm – Trường Đại học Công Nghệ Thông Tin – Đại học Quốc giaTPHCM
Lời cảm ơn chân thành và sâu sắc, tôi xin gửi đến gia đình, đã luôn sát cánh vàđộng viên tôi trong những giai đoạn khó khăn nhất
Sinh viên
Võ Đinh Duy
Trang 2I would like to send my sincere thank to Md Huynh Ngoc Tin for the supportand introducing me to Outsourceit Vietnam Company From what he has taught me -how to apply theory into application, the skills of raising questions, solving problemsall are valuable lessons that I have learned from my dedicated tutor that helps mecomplete my internship well
Moreover, I would like to send my appreciations to Outsourceit VietnamCompany for giving me the chance to work in professional software company withmany advantages provided for internship and great colleagues network
All my thanks to my internship group, who has worked with me inspirationally
so that we could complete our work well
With the strong support from Software Engineering Department- University ofInformation Technology - Vietnam National University, Ho Chi Minh City where Ihave been taught good fundamental knowledge which brings to me confidence andsuccess in this internship
Last but not least, my special thank is for my family who always stronglysupport and motivate me from all difficulties
Student
Vo Dinh Duy
Trang 3ĐÁNH GIÁ KẾT QUẢ CỦA CƠ QUAN THỰC TẬP.
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 4ĐÁNH GIÁ KẾT QUẢ THỰC TẬP CỦA KHOA.
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 5MỤC LỤC
LỜI CẢM ƠN 1
ACKNOWLEDGMENTS 2
ĐÁNH GIÁ KẾT QUẢ CỦA CƠ QUAN THỰC TẬP 3
ĐÁNH GIÁ KẾT QUẢ THỰC TẬP CỦA KHOA 4
MỤC LỤC 5
DANH MỤC BẢNG 8
DANH MỤC HÌNH 8
CHƯƠNG 1: TỔNG QUAN VỀ QUÁ TRÌNH THỰC TẬP 9
1.1 Giới thiệu 9
1.2 Công ty Outsourceit Vietnam 10
1.3 Đề tài thực tập 10
1.3.1 Đặt vấn đề 10
1.3.2 Mục tiêu 11
1.3.3 Phạm vi nghiên cứu 11
1.3.4 Khảo sát các nghiên cứu liên quan 11
1.3.5 Nội dung công việc thực hiện 12
1.3.6 Kết quả dự kiến 13
1.4 Mục tiêu, thời gian và kế hoạch thực tập 13
1.4.1 Mục tiêu: 13
1.4.2 Thời gian và kế hoạch thực tập: 14
1.5 Bố cục báo cáo 16
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 17
Trang 62.1 Giới thiệu về JAPE 17
2.2 Luật JAPE 17
2.3 Độ ưu tiên trong Jape 19
2.3.1 Brill 19
2.3.2 All 19
2.3.3 First 20
2.3.4 Once 20
2.3.5 Appelt 20
2.4 Vế trái (Left-Hand Side) 20
2.4.1 So khớp với chuỗi ký tự 21
2.4.2 So khớp với những loại chú thích khác (Annotation Types) 22
2.4.3 Macro 25
2.4.4 Toán tử tại vế trái 27
2.5 Vế phải (Right-Hand Side) 29
CHƯƠNG 3: HIỆN THỰC CÁC LUẬT JAPE 31
3.1 Hiện thực việc rút tác giả 33
3.2 Hiện thực việc rút năm xuất bản và nơi công bố 33
3.3 Hiện thực việc rút thông tin Reference 34
CHƯƠNG 4: HIỆN THỰC HỆ THỐNG 36
4.1 Thông tin tổng quan 36
4.2 Giao diện 36
4.3 Thực nghiệm và đánh giá 40
KẾT LUẬN 41
Trang 7TÀI LIỆU THAM KHẢO 42
DANH MỤC BẢNG
Bảng 1: Tóm tắt quá trình thực tập tốt nghiệp 9
Trang 8Bảng 2: Kế hoạch thực tập 16
Bảng 3: Các đặc tính của một vài loại chú thích 25
Bảng 4: Các toán tử trong vế trái của luật ngữ pháp JAPE 29
DANH MỤC HÌNH Hình 1: Luật idrs_publish được thực thi trong GATE 35
Hình 2: Rút ra những thông tin: tác giả, tiêu đề, năm xuất bản của reference 36
Hình 3: Giao diện màn hình Build Corpus 37
Hình 4: Thêm một tài liệu vào Corpus 37
Hình 5: Thêm tài liệu thành công vào Corpus 37
Hình 6: Giao diện màn hình Metadata Extraction 38
Trang 9CHƯƠNG 1: TỔNG QUAN VỀ QUÁ TRÌNH THỰC TẬP.
1.1 Giới thiệu.
Thực tập tốt nghiệp là một giai đoạn quan trọng đối viên sinh viên năm cuối, đặcbiệt là sinh viên công nghệ thông tin Thực tế công việc, cùng với những kinh nghiệm
và kỹ năng học tập được trong giai đoạn này, sẽ giúp cho sinh viên vững vàng hơn khi
đi vào công việc thực tế đầy áp lực Với ý nghĩa thực tiễn đó, được sự cho phép củanhà trường, tôi đã may mắn được là sinh viên thực tập tại Công ty OutsourceitVietnam, một công ty chuyên gia công phần mềm cho các đối tác nước ngoài Với thờigian thực tập khoảng 3 tháng, nhưng nó đã đem lại cho tôi nhiều kinh nghiệm và kỹnăng trong công việc, cũng như nghiên cứu Tôi được tham gia vào dự án IDRS(Intelligent Document Retrieval System), một dự án nghiên cứu về vấn đề rút tríchthông tin metadata trong các bài báo khoa học Cùng với những sinh viên thực tập khác
và với sự hướng dẫn tận tình của thầy Huỳnh Ngọc Tín, dự án IDRS hiện nay đã kháhoàn chỉnh như những mục tiêu đề ra
Tên công ty thực tập Outsourceit Int Vietnam Co., Ltd
Địa chỉ 43/7 Hoàng Diệu, P12, Q4, Tp HCM, Vietnam
Thời gian 15/03/2010 -> 15/06/2010
Cán bộ trực tiếp quản lý ThS Huỳnh Ngọc Tín
Dự án tham gia IDRS – Intelligent Document Retrieval System
Vị trí thực tập Developer
Bảng 1: Tóm tắt quá trình thực tập tốt nghiệp
Trang 101.2 Công ty Outsourceit Vietnam.
Công ty Outsourceit Vietnam là một chi nhánh của công ty OutsourceitInternational AS, đặt trụ sở tại Nauy Outsourceit Vietnam được thành lập vào năm
2007 với 100% vốn nước ngoài Với hơn 3 năm thành lập tại Việt Nam, cùng với kinhnghiệm hơn 10 năm của công ty mẹ tại Nauy, công ty Outsourceit Vietnam ngày càngphát triển với đội ngũ kỹ thuật viên chuyên nghiệp Outsourceit Vietnam chuyên cungcấp xây dựng chương trình cho các khách hàng Châu Âu, thông qua công ty mẹ tạiNauy
Do đặc thù là một công ty chi nhánh Châu Âu, vì thế quy mô nhân viên trong công
ty khoảng từ 10 – 20 người Nhưng công ty rất thường tổ chức các hoạt động cho nhânviên tham gia như rèn luyện thể thao, các buổi tiệc trong công ty, các chuyến đi du lịch
dã ngoại, và đặc biệt vào giữa tuần công ty có “happy hours” để mọi nhân viên ăn
uống, trao đổi cùng nhau
Mục tiêu của công ty là cung cấp cho nhân viên một môi trường làm việc năngđộng, thử thách, vui nhộn, để mỗi nhân viên thật sự là một “tài sản” quý nhất của công
sự trợ giúp của những công cụ tìm kiếm trực tuyến như Google, Yahoo!, Bing …chúng ta có thể tìm kiếm được khá chính xác và nhanh chóng những tri thức mà chúng
ta cần Tuy nhiên, số lượng kết quả trả về của những công cụ này thường khá lớn, độchính xác phụ thuộc nhiều vào mức độ cụ thể của từ khóa tìm kiếm; điều đó đã phần
Trang 11nào gây khó khăn cho chúng ta trong việc tìm kiếm chính xác những tri thức cần đến.Nhu cầu tìm kiếm thông tin của con người ngày càng tăng theo cả số lượng lẫn chấtlượng, vì thế đòi hỏi chúng ta phải cải tiến những thuật toán tìm kiếm hay trong việc tổchức và sắp xếp lại những thông tin dữ liệu sao cho phù hợp, để kết quả tìm kiếm đượcchính xác và nhanh chóng hơn Để có thể sắp xếp và tổ chức tốt thông tin dữ liệu,chúng ta cần phải phân loại chính xác các tài liệu Rút trích những thông tin cần thiết
là bước đầu tiên của quá trình này Quá trình rút trích nhằm lấy ra những tri thức,những thông tin nền tảng metadata của tài liệu Từ kết quả đó chúng ta mới tiến hànhlưu trữ và tổ chức dữ liệu theo từng phân loại cụ thể
1.3.2 Mục tiêu.
Mục tiêu của đề tài là nghiên cứu cách rút trích thông tin metadata từ những bài báokhoa học Những thông tin metadata bao gồm: tiêu đề bái báo, các tác giả, nơi côngtác, email, các tài liệu tham khảo trong bài báo… Kết quả của quá trình rút trích sẽđược sử dụng trong việc tổ chức dữ liệu cho thư viện số và làm giàu ontology
1.3.3 Phạm vi nghiên cứu.
Đối tượng rút trích metadata của đề tài là những bài báo khoa học và có định dạng
là tập tin PDF Đề tài thực tập tập trung nghiên cứu cách rút trích thông tin metadata,còn việc tổ chức dữ liệu thư viện số và làm giàu ontology là hướng đi kế tiếp cho đềtài, trong lần nghiên cứu này chúng tôi chưa đi sâu vào vấn đề đó
1.3.4 Khảo sát các nghiên cứu liên quan.
Theo [6], hiện nay chúng ta có hai cách tiếp cận chính trong vấn đề rút trích thôngtin đó là: phương pháp máy học và những phương pháp khác dựa trên những luật kếthợp với các tập từ điển và ontology Cũng theo tài liệu [6], phương pháp rút trích máyhọc bao gồm những phương pháp: symbolic learning, inductive logic programming,grammar induction, Support Vector Machine, Hidden Markov models (HMMS) và
Trang 12phương pháp thống kê Phương pháp máy học cho ra kết quả rút trích chính xác khácao từ 96% đến 100% tùy theo từng loại metadata khác nhau [7][8] Đối với phươngpháp sử dụng luật kết hợp với từ điển và ontology thì có nhiều cách tiếp cận khác nhau.Như trong tài liệu [9], tác giả đã đưa ra gợi ý về phương pháp rút trích thông tin luận lý(như tiêu đề, tác giả, các đinh nghĩa, bổ đề …) từ các bài báo toán học Những thôngtin metadata được rút ra thông qua thuật toán rút trích luận lý, bao gồm hai giai đoạn.Đầu tiên tác giả tiến hành phân đoạn văn bản (dựa trên các dấu hiệu như: khoảng trắng,kiểu chữ, từ khóa) để xác định các heading, footnote, số trang, running header Sau đó
sẽ tiến hành gán các nhãn metadata phù hợp cho từng đoạn văn bản dựa trên cách trìnhbày layout, vị trí và thông tin kiểu chữ Tác giả đã kiểm chứng phương pháp này với tỷ
lệ chính xác khá cao là 93,1% Hay trong tài liệu [10], tác giả đề ra phương pháp làmgiàu ontology Artist bằng cách rút trích những thông tin liên quan đến các nghệ sĩ như:ngày sinh, nơi sinh, nơi làm việc, ngày lập gia đình, tiểu sử; từ những kết quả tìm kiếmtrên internet Để làm được điều này họ đã sử dụng kết hợp GATE (để nhận biết các địađiểm, tên người, ngày tháng) với ontology Artequakt nhằm để xác định mối quan hệgiữa các thực thể mà GATE đã xách định được
1.3.5 Nội dung công việc thực hiện.
Trong đề tài nghiên cứu thực tập này, nhóm chúng tôi tiến hành tiếp cận theo cáchthứ hai, dùng luật và kết hợp với những tập từ điển hay ontology để rút trích thông tinmetadata Chúng tôi dùng luật ngữ pháp JAPE và kết hợp với ontology sẵn có trongGATE để xác định những thông tin metadata như: tên bài báo, tên các tác giả, nơi côngtác, email của tác giả, nội dung tóm tắt của bài báo, các tài liệu tham khảo
Các công việc cần thực hiện:
Đọc các tài liệu, bài báo tham khảo về rút trích thông tin metadata
Tìm hiểu khái quát về ontology
Trang 13 Học cách sử dụng và thao tác Protégé – công cụ hỗ trợ xây dựng ontology.
Tìm hiểu GATE và luật ngữ pháp JAPE
Xây dựng và thử nghiệm các luật JAPE trên GATE
Xây dựng công cụ cho việc rút trích thông tin metadata tự động
Kiểm thử trên tập dữ liệu lớn, để đánh giá độ chính xác
1.3.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ự động
Kết quả chính xác phải từ 80% trở lên
1.4 Mục tiêu, thời gian và kế hoạch thực tập.
1.4.1 Mục tiêu:
Các mục tiêu phải đạt được trong quá trình thực tập:
Tìm hiểu thực tế môi trường công việc trong một công ty phần mềm
Quan sát học tập các kỹ năng mềm còn yếu và thiếu như: kỹ năng xử lý vấn đề,
kỹ năng giao tiếp, kỹ năng đặt câu hỏi v.v…
Nâng cao kỹ năng lập trình
Nâng cao khả năng học hỏi, sáng tạo trong xử lý vấn đề chuyên môn cũng nhưtrong giao tiếp
1.4.2 Thời gian và kế hoạch thực tập:
Có thể chia quá trình thực tập thành hai giai đoạn chính là:
Trang 14 Tìm hiểu ontology: Tìm hiểu ontology để có thể xây dựng một khung sườn
nhằm cho phép lưu trữ các thực thể, được rút trích thông qua IDRS, cũng nhưnhững mối quan hệ hệ giữa những thực thể đó Những công việc cụ thể là:
o Tìm hiểu khái niệm về ontology Tìm hiểu những thành phần cấu thành nênmột ontology: concept (thực thể khái niệm), relationship (mối quan hệ),attribute (thuộc tính), individual (cá thể) [1]
o Tìm hiểu công cụ Protégé Công cụ này hỗ trợ cho chúng ta xây dựng mộtontology nhanh chóng và chính xác
o Xem xét và tìm hiểu ngôn ngữ truy vấn ontology, SPARQL
o Thiết kế và xây dựng module ontology dựa trên ý tưởng và mã nguồn củaProtégé
Tìm hiểu, ứng dụng GATE và luật ngữ pháp JAPE:
General Architecture for Text Engineering hay GATE là một phần mềm nguồn
mở có khả năng giải quyết hầu hết các vấn đề trong xử lý từ ngữ (text processing)
[2] GATE là một công cụ được Đại học Sheffield nghiên cứu và phát triển từ năm
1995 và đến bây giờ nó đã được các nhà khoa học, giảng viên, sinh viên, công ty sửdụng rộng rãi trong các thao tác xử lý ngôn ngữ tự nhiên, mà chủ yếu là rút tríchthông tin trong nhiều ngôn ngữ [3]
JAPE (Java Annotation Patterns Engine) cho phép chúng ta đưa ra và nhận dạngcác pattern trong một tài liệu Nó hỗ trợ cho GATE rất nhiều trong quá trình xử lýnhư: chặt câu, nhận dạng các thực thể…
Những công việc cụ thể trong giai đoạn này là:
Trang 15o Tìm hiểu về GATE: các khái niệm cơ bản (Gate Document, Gate Corpus,Processing Resources…), cách sử dụng và vận hành module ANNIE.
o Tìm hiểu về cấu trúc ngữ pháp của JAPE
o Khảo sát về các định dạng layout các bài báo khoa học
o Áp dụng luật JAPE vào dự án IDRS
Thời gian Nội dung
01/03 -> 10/03 Tìm hiểu lý thuyết về ontology: các khái niệm, cách xây dựng
ontology, cách thức ontology hỗ trợ cho việc rút trích thông tin ngữnghĩa
Tìm hiểu công cụ Protégé trong việc hỗ trợ xây dựng ontology
11/03 -> 13/03 Tìm hiểu ngôn ngữ truy vấn SPARQL
15/03 -> 26/03 Khảo sát các bài báo khoa học
Xây dựng khung sườn cho ontology29/03 -> 16/04 Viết các Use case cho chương trình IDRS, Use case cho module
ontology19/04 -> 07/05 Thực hiện coding các Use case đã đề ra
10/05 -> 15/05 Đọc các paper về rút trích thông tin tự động
17/05 -> 22/05 Tìm hiểu GATE và luật Jape
24/05 -> 12/05 Áp dụng luật jape để rút ra: tác giả, nơi công bố, năm công bố,
reference trong bài báo khoa học
Trang 16Bảng 2: Kế hoạch thực tập.
1.5 Bố cục báo cáo.
Chúng ta vừa đi qua Chương 1, nói về tổng quan của quá trình thực tập tốt nghiệpvới những thông tin như: thực tập ở công ty nào, thời gian thực tập ra sao, tham gianhững dự án gì …Ngoài ra trong Chương 1 cũng giới thiệu khái quát về công ty thựctập, đề tài thực tập, mục tiêu và kế hoạch của đợt thực tập này
Trong Chương 2 tôi đề cập đến lý thuyết của Jape và cách xây dựng một luật cúpháp Jape
Chương 3 là nêu cách hiện thực các luật JAPE sẽ được sử dụng trong dự án IDRS.Trong chương này sẽ trình bày những ý tưởng và các bước để có thể rút trích đượcthông tin Metadata
Chương tiếp theo sẽ nói về chương trình rút trích được nhóm xây dựng: các thôngtin khái quát về chương trình, giao diện sử dụng, thực nghiệm và đánh giá chươngtrình
Phần kết luận sẽ tổng hợp những nội dung kiến thức đã được tiếp cận, những kỹnăng lập trình đã được học hỏi, kinh nghiệm thực tiễn đã tích lũy, những điều làm được
và chưa được trong dự án IDRS và phương hướng sắp tới
Trang 17CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.
2.1 Giới thiệu về JAPE.
JAPE (Java Annotation Patterns Engine) là một thành phần của GATE, dùng đểnhận biết các thực thể được định nghĩa trước thông qua các luật, là ngôn ngữ dùng đểviết biểu thức đặc tả (RE – Regular expression) thông qua chú thích [4]
2.2 Luật JAPE.
Ngữ pháp JAPE bao gồm một tập các phase, mỗi phase có thể chứa nhiều luật tươngđương với định dạng các pattern khác nhau Luật JAPE luôn luôn bao gồm 2 vế: trái(Left) và phải (Right) Vế trái của luật chứa những mô tả về pattern Chúng có thể chứacác toán tử regular expression (như: *, ?, +) Vế phải bao gồm các chú thích do ta tựđịnh nghĩa, chúng chứa thông tin về tên nhãn Ngoài ra vế phải có thể chứa mã codeJava để tạo hoặc chỉnh sửa các chú thích
Sau đây là một ví dụ đơn giản:
11 :jobtitle.JobTitle = {rule = "Jobtitle"}
Vế trái được cách biệt với vế phải thông quan dấu “ >” Trong ví dụ trên, chúng takhai báo một luật tên là “Jobtitle” Mục đích là để gán nhãn những từ mà trước đó đã
Trang 18được gán nhãn là “Lookup” (nhãn “Lookup” được gán thông qua quá trình xử lýGazetteer), với đặc tính “majorType” là “jobtitle” thành một nhãn mới tên là “JobTitle”
Dòng 1 “Phase: Jobtitle”: như đã nói trên ngữ pháp JAPE bao gồm một tập cácphase, trong từng phase có thể chứa nhiều luật khác nhau, tương ứng với nhiềupattern khác nhau Tên của từng phase là duy nhất, không được lặp lại Ở đây tađặt tên cho phase này là “Jobtitle” Tên của phase không cần phải nhất thiếtgiống tên của file chứa phase Ví dụ phase “Jobtitle” có thể được đặt trong fileidrs_jobTitle.jape
Dòng 2 “Input: Lookup”: đối số đầu vào của phase là “Lookup” Các đối số nàyphải được khai báo ở đầu mỗi phase Nếu nó không được khai báo thì đối sốmặc định sẽ là “Token”, “SpaceToken”, “Lookup” Chúng ta chỉ nên khai báonhững đối số đầu vào nào cần thiết dùng tới, khi khai báo nhiều sẽ làm chậm đitốc độ xử lý của luật
Dòng 3 “Options: control = brill”: tùy chọn option có thể là
o Control: khai báo cách thức so khớp luật Có 5 tùy chọn {brill, all, first,once, appelt}
o Debug: khi được xét là true, nếu luật đang xét ở chế độ appelt, thì nhữngxung đột trong quá trình gán nhãn sẽ được trình bày qua cửa sổ message
Dòng 5 “Rule: Jobtitle1 ”: tên của luật là “Jobtitle1”
Dòng 6, 7, 8, 9: là một pattern, nó định nghĩa là một từ hay một ngữ nào đóđược gán nhãn là “Lookup” có giá trị đặc tính “majorType” là “jobtitle” thì sẽđược gán nhãn phụ là “jobtitle” Nhãn phụ này sau đó sẽ được sử dụng bên vếphải Các nhãn phụ không được trùng nhau trong cùng một rule
Dòng 10 ” >”: là dấu hiệu ngăn cách giữa vế trái và vế phải
Trang 19 Dòng 11 “:jobtitle.JobTitle = {rule = "JobTitle1"}”: dòng này ta sẽ gán nhãnchính thức cho một từ hay một ngữ mà có nhãn phụ là “jobtitle” và có luật là
“JobTitle1”
2.3 Độ ưu tiên trong Jape.
Như đã nói trên, JAPE cung cấp 5 tùy chọn option đó là: brill, all, first, once,appelt Các tùy chọn này được khai báo ở đầu mỗi phase
2.3.1 Brill
Khi có nhiều hơn một luật trong cùng một vùng của tài liệu, thì tất cả các luậtnày sẽ được chọn Vì thế một vùng của tài liệu có thể được gán nhãn bằng nhiều tênkhác nhau, nên đối số “Priority” lúc này là không cần thiết
Brill sẽ thực thi tất cả các luật phù hợp Các luật này sẽ gán nhãn cho một vùngtài liệu phù hợp với luật mà có độ lớn dài nhất
2.3.2 All.
Chế độ All cũng tương tự giống với Brill, nó cũng sẽ thực thi tất cả các luật nàophù hợp, nhưng chế độ so khớp vẫn tiếp tục thực thi từ một vùng tài liệu đã được gánnhãn, thông qua luật này, trước đó
Trang 202.3.4 Once.
Chế độ này sẽ lựa chọn luật phù hợp thứ hai sau luật phù hợp thứ nhất
2.3.5 Appelt.
Với chế độ này thì chỉ có một luật được chọn cho một vùng của tài liệu, tùy theo độ
ưu tiên của tập luật Độ ưu tiên sẽ được chọn theo các tiêu chí sau:
1 Tất cả các luật phù hợp với một vùng của văn bản ngay tại điểm bắt đầu, thì luậttương ứng với vùng dài nhất sẽ được chọn
2 Nếu có nhiều luật cùng phù hợp cho một vùng tài liệu, thì luật có độ ưu tiên caonhất sẽ được chọn
3 Nếu có nhiều luật cùng có độ ưu tiên, thì luật nào được định nghĩa trước nhất sẽđược chọn
4 Nếu tất cả những độ ưu tiên trên đều bằng nhau thì JAPE sẽ chọn luật một cáchngẫu nhiên
Đối số độ ưu tiên “Priority” được khai báo kèm theo mỗi luật Nó là một con sốnguyên dương; giá trị của đối số càng lớn thì có độ ưu tiên càng cao Khi một luậtkhông được khai báo đối số này, thì sẽ có giá trị mặc định là -1 (giá trị thấp nhất)
2.4 Vế trái (Left-Hand Side)
Vế trái của ngữ pháp JAPE cho phép ta xây dựng các pattern để so khớp, tìm ranhững vùng phù hợp trong tài liệu Một pattern có thể được định nghĩa để so khớp vớimột chuỗi cụ thể nào đó trong tài liệu, hay có thể so khớp với những vùng tài liệu đãđược gán nhãn trước đó Ngoài ra JAPE còn cung cấp những toán tử nhằm cho phépđịnh nghĩa các pattern một cách uyển chuyển; cho phép khai báo các MACRO để sửdụng lại các pattern đã được định nghĩa trước đó
Trang 212.4.1 So khớp với chuỗi ký tự.
Phase: UrlPre Input: Token SpaceToken Options: control = appelt
Rule: Urlpre (
{Token.string == "."} ) ): urlpre
>
:urlpre.UrlPre = {rule = "UrlPre"}
Luật trên định nghĩa một pattern cho phép nhận dạng tiền tố Url như http://,ftp:// hay www Quan sát ví dụ ta thấy loại chú thích (Annotation) Token và đặc tínhstring của nó đã được sử dụng đến Đặc tính string cho phép lấy ra chuỗi ký tự củaToken Dùng toán tử “= =”để so sánh chuỗi ký tự trong Token với một chuỗi ký tự cụthể nào đó Ví dụ trên cho ta thấy một pattern có thể được định nghĩa để so khớp vớinhững chuỗi ký tự cụ thể nào đó Nếu chuỗi ký tự ấy xuật hiện trong tài liệu, thì nó sẽđược gán một nhãn thích hợp
Ngoài khả năng so khớp với những chuỗi ký tự cụ thể, luật ngữ pháp JAPE còn chophép so khớp với những loại chú thích khác, đã được xử lý gán nhãn, trong các moduletrước đó như: gazetteer, tokeniser, hoặc các module khác