ĐẠi học công nghệ ĐẠi học quốc gia hà NỘI



tải về 0.69 Mb.
trang2/10
Chuyển đổi dữ liệu08.09.2016
Kích0.69 Mb.
#31836
1   2   3   4   5   6   7   8   9   10

Vì công việc này khi áp dụng vào tiếng Việt lại không tạo ra được kết quả khả thi hơn nếu như không nói làm cho việc viết luật trở lên phức tạp hơn. Chính vì vậy mà ở hệ thống của chúng tôi không áp dụng đối với những từ loại khác mà chỉ tập trung vào 4 loại từ cơ bản là: Danh từ, Động từ, đặc biệt là Tính từ và Phó từ. 9

2.2.2 Thuật ngữ chỉ quan điểm 10



Nhiều công trình nghiên cứu như (Nasukawa và Yi, 2003 [15]; Bruce và Wiebe, 1999 [2]) định nghĩa các biểu hiện quan điểm trong thuật ngữ quan điểm của chính họ dựa trên biểu thị tính đối lập, POS tagging, hình thái tiêu chuẩn và loại chủ đề (chủ thể hay đối tượng) đối với các từ chỉ quan điểm tương ứng. Tuy nhiên, phương pháp này kém hấp dẫn, thiếu hiệu quả và có lẽ là không chính xác. Cũng do một thực tế là các thuật ngữ quan điểm độc lập này không có giá trị công khai, các nhóm phân tích quan điểm không thể cộng tác với nhau và như vậy thì không thể đưa ra một tài liệu tiêu chuẩn cho việc sử dụng trong tương lai. Tình hình không được cải thiện mãi cho tới gần đây khi xuất hiện một số nghiên cứu tập trung giải quyết vấn đề này. Esuli và Sebastiani (2006) [9] xây dựng một hệ thống thuật ngữ có giá trị thông dụng trong việc đánh giá quan điểm – SentiWordNet, một WordNet (Fellbaum, 1998) [10] nhấn mạnh vào xu hướng quan điểm của các từ. Họ liên kết mỗi synset trong WordNet với 3 điểm: Obj(s), Pos(s), và Neg(s) để chỉ ra các thuật ngữ bao hàm tính khách quan, tích cực, tiêu cực như thế nào trong mỗi synset. Phương pháp của họ xây dựng SentiWordNet dựa trên việc phân tích số lượng những lời nhận xét được kết nối với các synset, và dựa trên kết quả về vectơ đại diện cho phân lớp synset bán giám sát. Cách tiếp cận của họ đã mở rộng khối lượng các công việc hiện tại và cung cấp một công cụ mới trong phân tích quan điểm; tuy nhiên, những thuật ngữ này chưa được phát triển. Nhiều đặc điểm của các thuật ngữ trong nhận biết tính chủ quan và xu hướng quan điểm chưa được bổ sung để giải quyết các vấn đề đang tồn tại trong lĩnh vực này. 10

Đối với hệ thống tiếng Việt, hiện chưa có một tập thuật ngữ chuẩn dành cho công việc này. Chính vì vậy hệ thống của chúng tôi phải tự xây dựng những thuật ngữ này dựa trên kinh nghiệm gán nhãn bằng cách thủ công. 10

2.2.3 Tính phủ định 10



Khi có biểu hiện phủ định được kết hợp, theo Nasukawa và Yi (2003) [15] sẽ làm đảo chiều tính quan điểm. Hu và Liu (2004a) [12] sử dụng định hướng đối lập nếu từ tiêu cực xuất hiện gần hơn xung quanh từ chỉ quan điểm trong câu. Tuy nhiên, không giống các công việc trong toán học khi phủ định của khẳng định là phủ định và ngược lại, biểu hiện phủ định được cộng thêm vào một từ hay cụm từ trong bài viết thực tế không giống với việc đặt một dấu “trừ”(-) trước một con số. Hay nói cách khác, phủ định của khẳng định không hẳn là phủ định đối với các từ hay cụm từ. Ví dụ, “muộn” là negative, nhưng thêm một chữ “không” vào trước không làm cho “không muộn” là positive vì “không muộn” không bằng với “sớm” là từ trái nghĩa với “muộn”. Vấn đề này cũng vì một thực tế rằng nhiều cách tiếp cận sử dụng 2 tiêu chuẩn: positive và negative (đôi khi là 3 tiêu chuẩn bao gồm cả sự trung lập) để diễn tả xu hướng quan điểm trong khi các từ / cụm từ có thể có các cấp độ tính đối lập có các cấp độ tính đối lập mà chúng ta sẽ bàn luận ở mục sau 2.2.4. 10

Trong hệ thống của chúng tôi cũng xét đến những loại từ này tuy nhiên cũng chỉ xét trong phạm vi khi có 2 loại quan điểm là positive và negative. Do đó mà khi xuất hiện những từ phủ định hay còn gọi là từ làm thay đổi quan điểm thì chúng tôi thay đổi lớp cho những từ như vậy. 11

2.2.4 Cấp độ quan điểm 11



Như trong Esuli và Sebastiani (2006) [9], một vài nhiệm vụ liên quan đến cấp độ quan điểm trong hệ thống đánh giá quan điểm. Nhiệm vụ thứ nhất được gọi là SO-polarity, nhằm xác định ý kiến mang tính khách quan hay chủ quan (Pang và Lee, 2004 [18]; Yu và Hatzivassiloglou, 2003 [26]). Nhiệm vụ thứ hai được gọi là PN-polarity, nhằm xác định ý kiến là tích cực hay tiêu cực; được diễn tả trong nhiều cách tiếp cận hiện nay (Hatzivassiloglou và McKeown, 1997 [11]; Hu và Liu, 2004a [12]; Pang, 2002 [17]; Pang và Lee, 2004 [18]; Turney và Littman, 2003 [24]; Turney và Littman, 2002 [23]). Tuy nhiên việc phân lớp xu hướng quan điểm chỉ theo positive và negative cũng nảy sinh một vài vấn đề, mức độ mạnh yếu, tính đối lập cũng cần được phân tích kỹ lưỡng. 11

Bổ sung thêm việc phân lớp các từ thành các mức độ xu hướng quan điểm khác nhau như đã được nhắc đến ở trên, một số từ bổ nghĩa (đặc biệt các phó từ như “rất”,”một chút”,”hết sức”,”hơi”…) cũng có thể được dùng để xác định mức độ xu hướng quan điểm của câu. Cụm từ “rất hài lòng” và “ hơi hài lòng” sẽ được phân lớp thành rất tích cực và kém tích cực là thích hợp nếu “rất” và “hơi” được phân tích và sử dụng để xác định mức độ đối lập. 11

Cấp độ quan điểm này làm cho việc xét mức độ đánh giá quan điểm được chính xác hơn tuy nhiên trong hệ thống của chúng tôi bước đầu chỉ sử dụng 2 loại quan điểm là positive và negative do vậy việc xét cấp độ quan điểm của chúng tôi chỉ dừng lại ở 2 lớp này và không đi sâu hơn. Trong tương lai chúng tôi sẽ phát triển hệ thống để có được thước đo sát với mức độ đánh giá hơn. 12

2.2.5 Sự phức tạp của câu / tài liệu 12



Sự phức tạp của câu là một vấn đề mang tính thách thức với những nghiên cứu hiện nay về phân lớp câu chỉ quan điểm. Các phương pháp như (Nasukawa và Yi, 2003 [15]) chỉ nhằm cố gắng phân lớp câu có cấu trúc đơn. Với những câu phức tạp, họ chỉ có thể chia cắt câu và giải quyết từng phần riêng lẻ. Không phân tích theo toàn bộ cấu trúc câu, toàn bộ quan điểm có thể bị phân lớp nhầm và độ chính xác của việc phân lớp kể từ đó sẽ bị ảnh hưởng. Đó cũng là vấn đề xảy ra trên hệ thống của chúng tôi, việc dùng luật cũng phần nào phản ánh được quá trình phân tích câu tuy nhiên đối với sự nhập nhằng hay phức tạp trong các thành phần câu thì khó có thể hoàn thành tốt được. 12

Sự phức tạp của tài liệu có thể tạo nên vấn đề lớn hơn đối việc phân lớp tài liệu chỉ quan điểm. Turney (2002) [22] chỉ ra rằng trong quan điểm phim ảnh, có thể có những quan điểm khác nhau trong những phần khác nhau của bài viết, dựa theo những khía cạnh khác nhau của bộ phim. Do đó sẽ khó cho hệ thống phân lớp quan điểm để xác định xu hướng trung thực và quan điểm của người phê bình đối với mỗi bộ phim. Thậm chí một trường hợp tồi tệ hơn có thể xảy ra khi người viết sử dụng nhiều đoạn văn để diễn tả anh ta (cô ta) ghét một trong những diễn viên của bộ phim như thế nào nhưng sử dụng chỉ một đoạn nhỏ để diễn tả anh ta (cô ta) yêu thích bộ phim hơn tất cả. Khi gặp những tình huống như thế này, hệ thống rất dễ bị lỗi khi phân lớp quan điểm này là tiêu cực. Một phương pháp có thể giải quyết vấn đề này là phân biệt các khía cạnh khác nhau của một tài liệu, và phân lớp quan điểm với sự lưu tâm tới các khía cạnh hơn là phân lớp theo toàn bộ tài liệu. Hu và Liu (2004a) [12] đã sử dụng phương pháp này để phân biệt các quan điểm đối với các đặc điểm khác nhau của cùng một sản phẩm hay cùng một tài liệu. 12

2.2.6 Quan điểm theo ngữ cảnh 13



Các nghiên cứu hiện nay nhằm nhận biết xu hướng quan điểm của các từ không xem xét nhiều đến ngữ cảnh. Một số từ trong các ngữ cảnh khác nhau có thể có POS tags khác nhau và nghĩa khác nhau. Trong trường hợp này, POS tagging là một công cụ tốt giúp nhận biết xu hướng quan điểm. Tuy nhiên, cùng các từ trong những ngữ cảnh khác nhau có thể có cùng POS tag nhưng lại có nghĩa khác nhau và xu hướng quan điểm khác nhau. Từ “poor” trong “ hiệu suất hệ thống kém (poor)” là một xu hướng quan điểm tiêu cực, nhưng trong “ chúng ta nên giúp đỡ người nghèo(poor)” thì “poor” là mang tính trung lập. Khi gặp phải những tình huống như vậy, ý nghĩa rõ ràng của từ giúp cho giải quyết vấn đề. Một khi chúng ta biết nghĩa rõ ràng của từ “poor” trong câu thứ nhất nghĩa là kém chất lượng, trong khi trong câu thứ hai có nghĩa là có ít tiền, việc nhận biết xu hướng quan điểm đối với từ “poor” đã được giải quyết. 13

Trường hợp tệ nhất vẫn có thể xảy ra khi cùng các từ trong các ngữ cảnh khác nhau có cùng POS tag và cùng nghĩa nhưng lại có xu hướng quan điểm khác nhau. Ví dụ, “old” trong “the man is old” là từ mang tính trung lập, trái lại trong “the technique is old” thể hiện quan điểm tiêu cực. Trong trường hợp này, không may là cả POS tagging và việc nhận biết rõ nghĩa của từ cũng không thể giải quyết. Cần nhiều thuật toán và kĩ thuật hơn nữa được phát triển để có thể xử lí vấn đề này. 13

Trong phương pháp xây dựng hệ thống đánh giá quan điểm dựa trên luật chúng tôi cũng sử dụng khá nhiều luật để mô tả cho từng ngữ cảnh. Ví dụ như khi nói đến giá cả thì từ “cao” mang nghĩa negative còn khi nói đến hệ thống từ “cao” lại thể hiện ý positive. Trong nhiều ngữ cảnh hệ thống luật của chúng tôi chạy cũng khá hiệu quả. 13

2.2.7 Tài liệu không đồng nhất 13



Các loại tài liệu khác nhau, hoặc thậm chí cùng một loại nhưng nói về các lĩnh vực khác nhau có mức độ khó khác nhau trong việc phân loại quan điểm. Theo như kết quả được nói đến trong Turney (2002) [22], độ chính xác của việc phân lớp là khác nhau tùy theo quan điểm trong những lĩnh vực khác nhau, việc phân lớp đánh giá về xe ô tô và ngân hàng có độ chính xác cao hơn (tương ứng 84% và 80%), trái lại các quan điểm về điện ảnh và các điểm du lịch có độ chính xác thấp hơn (tương ứng 65,83% và 70,53%). Điều này cũng vì mức độ phức tạp khác nhau của câu (tài liệu) ứng với các lĩnh vực đề cập khác nhau trong những tài liệu đã được nói đến ở mục 2.2.5. Trong những nghiên cứu sau này, kĩ thuật phân tích ngôn ngữ tự nhiên có thể được phát triển nhằm mục đích xác định lĩnh vực của tài liệu, những người nghiên cứu về phân lớp quan điểm có thể sẽ nâng cao hơn độ chính xác đối với từng lĩnh vực này. 13

Hệ thống của chúng tôi hiện đang chú trọng vào đánh giá quan điểm người dùng cho máy tính (laptop & desktop). Trong tương lai chúng tôi sẽ mở rộng thêm về ô tô & xe máy và điện thoại di động là những chủ đề nóng hiện nay. 14

2.2.8 Một số vấn đề khác 14



Bên cạnh những vấn đề đã nói trong mục trước (2.2.1 đến 2.2.7), còn có không ít vấn đề thách thức khác như việc giải quyết các trích dẫn … vẫn chưa được xử lí trong đánh giá quan điểm. Việc nghiên cứu trong tương lai cũng cần lưu tâm đến các vấn đề này để nâng cao độ chính xác. 14

Chương 3

Giới thiệu GATE 15



Chương 3

Giới thiệu GATE 15



Chương 3. Giới thiệu GATE Kiều Thanh Bình 15

GATE là framework giúp phát triển và triển khai các thành phần xử lý ngôn ngữ tự nhiên. GATE giúp các nhà khoa học và phát triển theo 3 hướng: 15



+) Xác định một kiến trúc, hay một cơ cấu tổ chức cho phần mềm xử lý ngôn ngữ. 15

+) Cung cấp một framework, hay một lớp thư viện thi hành kiến trúc và có thể được dùng để nhúng khả năng xử lý ngôn ngữ vào các ứng dụng khác nhau. 15

+) Cung cấp một môi trường phát triển xây dựng trên framework tạo ra các công cụ thuận tiện cho phát triển các thành phần đồ họa. 15

GATE do nhóm giáo sư Cunningham thuộc trường đại học Sheffield – Anh phát triển (H. Cunningham – 2002 [3]). Có thể download phiên bản mới nhất (version 5.0) của GATE miễn phí tại địa chỉ: http://gate.ac.uk/download/index.html. 15

3.1 Tổng quan về GATE 15

3.1 Tổng quan về GATE 15



Phần này chúng tôi sẽ trình bày những kiến trúc cơ bản và những khái niệm cơ bản của GATE. Đây là một hình ảnh về GATE 5.0 [Hình 1]: 15

29 15

16

Hình 1 - Giao diện của GATE 16

3.1.1 Mô hình kiến trúc của GATE 16



Kiến trúc của GATE gồm nhiều tầng và được liên kết với nhau theo sơ đồ [Hình 2]: 16

17

Hình 2 - Mô hình kiến trúc của GATE [6] 17

Tầng hiển thị (IDE GUI Layer): hiển thị giao diện trực quan tương tác với người dùng. 17

Tầng ứng dụng (Application Layer): để thêm các ứng dụng khác nhau. Có thể thêm hay gỡ bỏ các ứng dụng bằng cách đánh dấu vào các plugin cần thiết trong Manage CREOLE plugins. 17

Tầng xử lý định dạng văn bản (Document Format layer): làm nhiệm vụ xử lý cho các định dạng văn bản khác nhau. 17

Tầng dữ liệu (Corpus Layer): Đây là kho tài liệu gồm nhiều thành phần khác nhau như: tập dữ liệu (Corpus) chứa các văn bản (Document), nội dung văn bản (Document Content), … 17

Tầng xử lý (Processing Layer): Gồm các thành phần xử lý khác nhau như: tách từ (word segmentation), gán nhãn từ loại (POS tag), nhận dạng từ quan điểm,… 18

Tầng nguồn ngôn ngữ (Language Resource Layer): gồm nhiều tập dữ liệu khác nhau như: tập từ điển (gazetteers), tập từ vựng (lexicon) v.v… 18

Tầng lưu trữ (DataStore Layer): tầng này lưu trữ dữ liệu ở các dạng khác nhau. 18

Về cơ bản có thể nói GATE chạy khá tốt trong công việc xử lý ngôn ngữ tự nhiên tuy nhiên trong khi vận hành vẫn còn một vài hạn chế nhỏ về giao diện chưa ổn định hay quản lý lưu trữ chưa tốt… 18

3.1.2 Những khái niệm cơ bản trong GATE 18



Một số khái niệm cơ bản được dùng trong GATE: 18

Tập dữ liệu (corpus): là một tập gồm một hay nhiều văn bản (Documents). 18

Văn bản (Document): là một tập gồm nội dung văn bản, tập nhãn (Annotation Set). 18

Tập nhãn (Annotation Set): là một tập hợp nhiều nhãn (Annotations). 18

Nhãn (Annotation): là một tập các cấu trúc gồm có khóa (Id), vị trí đầu (startNode) vị trí cuối (endNode) nhằm xác định vị trí của nhãn trong văn bản, kiểu (Type) và tập các đặc trưng (FeatureMap). 18

Tập đặc trưng (FeatureMap): là kiểu tập hợp (trong java nó có kiểu Map) của các đặc trưng. 18

Đặc trưng (Features): là một tập gồm tên (kiểu String) và giá trị (kiểu Object). 18

3.2 Xây dựng plugin trên GATE 19

3.2 Xây dựng plugin trên GATE 19

Một thành phần tích hợp (Plugin) có thể gồm ba loại: thành phần ngôn ngữ (Language Resources), thành phần xử lý (processing Resource), và thành phần thể hiện (Visual Resource). Ví dụ: Hệ thống đánh giá quan điểm người dùng của chúng tôi gồm các thành phần: 19

Bộ từ điển – Coltech.Opinion.ListOpinion. 19

Bộ luật – Coltech.Opinion.Rule. 19

Việc tạo ra một thành phần xử lý rất đơn giản, được thực hiện qua các bước: 19

Tạo lớp Plugin (tên thành phần xử lý) kế thừa (extends) từ lớp AbstractProcessingResource và thể hiện (implements) lớp ProcessingResource. 19

Tạo file creole.xml khai báo thành phần xử lý mới. Ví dụ về Coltech.Opinion.Rule : 19

19

19

19

19

19

Coltech.Opinion.Rule 19

19

VNOpinion.jar 19

19

VNOpinion 19

19

A program demo the Vietnamese Natural Language Processing 19

20

20

20

Sau khi đã có thành phần tích hợp (Plugin), có hai cách để thêm thành phần này vào khung làm việc của GATE. 20

Cách 1: đặt thư mục chứa toàn bộ thành phần tích hợp vào trong %GATE-HOME%/plugins. Chạy lệnh “bin/ant plugins.build”, hệ thống GATE sẽ tự động thêm thành phần tích hợp vào hệ thống. 20

Cách 2: Chọn File -> Manage CREOLE plugins -> Add new CREOLE repository -> Select a directory và chọn thư mục chứa thành phần tích hợp mới tạo (hình 3). 20

Sau bước này, ta được một thành phần tích hợp mới hoạt động trên khung làm việc GATE. Và trong thành phần này ta có thể chọn những công việc cho nó [Hình 4]. 20

20

Hình 3 - Giao diện thêm một thành phần tích hợp vào GATE. 20

21

Hình 4 - Chọn các thành phần cho ứng dụng GATE 21

3.3 Các thành phần quan trọng của GATE 21

3.3 Các thành phần quan trọng của GATE 21

Trong GATE khi nói đến thành phần quan trọng phải kể đến bộ từ điển (Gazetteers) và bộ luật (Rule) – 2 thành phần làm lên sự khác biệt của GATE. 21

3.3.1 Bộ từ điển (Gazetteers) 21



Bộ từ điển (gazetteers) gồm một tập hợp các từ điển nhỏ chứa các từ được định nghĩa theo một tiêu chí nào đó. 21

Ví dụ: 21

Theo tiêu chí loại tên riêng ta có thể có các từ điển: 21

từ điển theo tên người: Kiều Thanh Bình, Nguyễn Bá Đạt, Nguyễn Quốc Đạt, … 21

từ điển theo tên trường đại học: Đại học Công Nghệ, Đại học Tài Chính, Đại học Kinh Tế, Đại học Ngoại Thương… 22

từ điển tên thành phố: Hà Nội, Hải Dương, Hải Phòng, … 22

Theo tiêu chí vị trí của từ ta có thể có các từ điển: 22

từ điển các thành phần đứng trước tên người: Mr, Mrs, Miss, Sir v.v… 22

từ điển các thành phần đứng trước địa điểm: leave, live in v.v… 22

Mỗi một từ điển trong bộ từ điển được khai báo trong file list.def với bộ giá trị: tên file chứa từ điển, giá trị đặc trưng thứ nhất (majorType), giá trị đặc trưng thứ hai (minorType – có thể có hoặc không). Ví dụ: entity.lst:name_entity: entity – khai báo một từ điển trong file entity.lst với hai đặc trưng majorType = “name_entity” và minorType = “entity”. 22

Khi bộ từ điển hoạt động trên văn bản, các nhãn (annotations) kiểu Lookup (một kiểu nhãn mặc định trong GATE) được tạo ra bằng cách so khớp các từ trong bộ từ điển với các xâu trong văn bản. Ví dụ: trong văn bản xuất hiện từ “thiết kế” có trong từ điển entity.lst như khai báo ở trên. Thì tại xâu “thiết kế” trong văn bản sẽ xuất hiện một nhãn (annotation) mới kiểu Lookup với hai đặc trưng: majorType = “name_entity” và minorType = “entity”. Các nhãn (annotation) Lookup này sẽ được sử dụng trong khi viết các luật JAPE. 22

3.3.2 Bộ luật JAPE 22



Đây là thành phần quan trọng nhất trong GATE nó đóng vai trò chính giúp công cụ này xử lý ngôn ngữ tự nhiên. 22

Bộ luật JAPE là thành phần cơ bản trong khung làm việc của GATE, cho phép người dùng viết biểu thức chính quy trên nhãn (annotation) và tạo ra các nhãn mới trong văn bản. Một bộ luật JAPE có thể bao gồm nhiều luật nhỏ. Mỗi luật nhỏ gồm các mẫu và cách thực thi khác nhau có dạng: 22

LHS (left-hand-side)  RHS (right-hand-side). 22

Ví dụ: 23

Rule: rulePositive1 23

Priority: 1 23

( 23

(StrongWord) 23

({Lookup.majorType=="positive"}):name 23

) 23

--> 23

:name.PosWord = {kind = "Trich chon positive", type="Positive", rule = " StrongWord +
"} 23


Khi một luật JAPE thực thi thì các luật nhỏ trong nó được thi hành một cách tuần tự, từ trên xuống nếu như cùng Priority và nó thi hành các luật từ Priority thấp nhất đến cao nhất (mặc định là -1 nếu không khai báo Priority). 23

Luật JAPE gồm 2 thành phần chính: mệnh đề trái (LHS) là các biểu thức chính quy trên nhãn (annotation). Trong khi đó mệnh đề phải (RHS) thể hiện hành động cần được thực thi khi mệnh đề trái được thỏa mãn (so khớp). 23

Mệnh đề trái (LHS) là một biểu thức của các mẫu (annotation pattern) và các phép toán như “ *, ?, +, | ” 23

Các phép toán sử dụng trong mệnh đề trái 23

| : phép hoặc 23

*: phép lặp (không hoặc nhiều lần) 23

?: phép lặp không hoặc một lần 23

+: phép lặp một hoặc nhiều lần 23

Ví dụ cho một mệnh đề trái: 23

({Lookup.majorType=="positive"}):name 23

Các mẫu được gán trong mệnh đề trái sẽ được sử dụng trong mệnh đề phải (RHS). 24

Mệnh đề phải sử dụng các mẫu (pattern) được cung cấp bởi mệnh đề trái để thực thi một mệnh lệnh nào đó, thông thường là tạo ra các nhãn (annotation) mới. 24

Trong ví dụ trên, mệnh đề trái cung cấp cho mệnh đề phải các mẫu (pattern) là tên của nhãn PosWord. Mệnh đề phải tạo ra các nhãn mới (annotations) tương ứng với các mẫu (pattern) nhận được. Nhãn (annotation) mới được tạo ra có kiểu là “PosWord” và 3 đặc trưng (feature) là kind = “Trich chon positive” và rule = “StrongWord +
”. 24


Ngoài ra trong việc xây dựng luật để cho thuận tiện và có khả năng sử dụng lại các thành phần ta có thể dùng thêm thành phần thay thế (Macros). Thành phần thay thế (Macros) thường xuyên được sử dụng trong các mệnh đề trái. Nó thay thế cho một tập các lệnh, giúp cho bộ luật đơn giản và rõ ràng hơn. Ngoài ra, khi một thành phần thay thế đã được khai báo thì mọi luật trong bộ luật đều có thể sử dụng nó mà không cần phải khai báo lại. 24

Ví dụ về thành thần thay thế (Macros) - khai báo thành phần thay thế StrongWord 24

Macro: StrongWord 24

// rất, khá, hơi, siêu, 24

( 24

{Word.string=="rất"} | 24

{Word.string=="siêu"} | 24

{Word.string=="khá"} | 24

{Word.string=="hơi"} 24

) 24

Sử dụng StrongWord trong mệnh đề trái của luật rulePositive1. 25

Rule: rulePositive1 25

Priority: 1 25

( 25

(StrongWord) 25

({Lookup.majorType=="positive"}):name 25

) 25

--> 25

:name.PosWord = {kind = "Trich chon positive", type="Positive", rule = " StrongWord +


"} 25


Có những công việc chỉ sử dụng luật đơn giản không thể quản lý tốt các nhãn được, chúng ta nghĩ đến một cách khác đó chính là sử dụng đoạn mã Java trong JAPE. Để tăng tính linh động và hiệu quả, bộ luật JAPE hỗ trợ chèn những đoạn mã JAVA vào trong mệnh đề phải. Nhờ đó ngoài việc tạo ra các nhãn (annotations) mới, mệnh đề phải còn có thể làm rất nhiều việc khác như: chèn thêm các đặc trưng (features), thay đổi kiểu nhãn (Type) hay xóa các nhãn đã tồn tại v.v… 25

Thành phần đầu tiên của mỗi luật (phase) JAPE luôn là các lựa chọn như: 25

Kiểu điều khiển (Control) để quản lý cách so khớp mẫu. Có 5 lựa chọn cho kiểu điều khiển là “brill”, “all”, “first”, “once” và “appelt”. Nó được khai báo ở phần đầu văn bản chứa các luật để điều khiển phương thức so khớp mẫu: 25

Options: control = 25

brill”: khi có nhiều hơn một luật cùng thỏa mãn cho một đoạn của văn bản, thì tất cả các luật này đều được thực thi. Sau khi quá trình so khớp (matching) diễn ra ở tất cả các luật thì điểm bắt đầu quá trình so khớp tiếp theo sẽ là điểm kết thúc của luật được so khớp dài nhất trong quá trình trước (longest matching). 25

all”: tương tự như “brill” nó cho phép thực hiện nhiều luật trên cùng một đoạn văn bản. Tuy nhiên có điểm khác biệt với “brill” đó là: điểm bắt đầu quá trình so khớp tiếp theo là điểm bắt đầu của nhãn (annotation) gần nhất sau nó. Có thể nói all so khớp rộng hơn “brill”. 26

first”: luật được thực hiện ngay khi quá trình so khớp đầu tiên được thỏa mãn. Bởi vậy nó không thích hợp cho các luật sử dụng “*”, “+”, “?”. 26

once”: chỉ có luật đầu tiên thỏa mãn quá trình so khớp được thực hiện. 26

appelt”: chỉ một luật thỏa mãn quá trình so khớp và có độ thực thi cao nhất được thực hiện. Độ thực thi của các luật được tính như sau: 26



Tất cả các luật cùng thỏa mãn so khớp từ vị trí X thì luật nào so khớp được dài nhất (longest matching) sẽ có độ thực thi cao nhất. 26


tải về 0.69 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   10




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương