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



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

Chương 3

Giới thiệu GATE


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:

+) 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ữ.

+) 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.

+) 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.

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.

3.1 Tổng quan về GATE


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]:

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

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


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]:

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


  • 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.

  • 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.

  • 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.

  • 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), …

  • 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,…

  • 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…

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

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…

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


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

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

  • 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).

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

  • 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).

  • 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.

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

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


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:

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

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

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:

  • 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.

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

Coltech.Opinion.Rule

VNOpinion.jar

VNOpinion

A program demo the Vietnamese Natural Language Processing

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.



  • 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.

  • 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).

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].

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

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

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


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.

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


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 đó.

Ví dụ:


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

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

  • 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…

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

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

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

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

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”.

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.


3.3.2 Bộ luật JAPE


Đâ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.

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:

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

Ví dụ:


Rule: rulePositive1

Priority: 1

(

(StrongWord)

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

)

-->

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


"}

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).

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).

3.3.2.1 Mệnh đề trái (LHS)


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ư “ *, ?, +, | ”

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



  • | : phép hoặc

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

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

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

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

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

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

3.3.2.3 Mệnh đề phải (RHS)


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.

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 +


.

3.3.2.2 Thành phần thay thế (Macros)


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.

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

Macro: StrongWord

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

(

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

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

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

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

)

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

Rule: rulePositive1

Priority: 1

(

(StrongWord)

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

)

-->

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

3.3.2.4 Sử dụng đoạn mã Java trong JAPE


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…

3.3.2.5 Một vài lựa chọn khi viết luật


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ư:

  • 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:

Options: control =

  • “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).

  • “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”.

  • “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 “*”, “+”, “?”.

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

  • “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:

  • 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.

  • Nếu như nhiều hơn một luật so khớp cùng một đoạn trong văn bản thì luật nào được định nghĩa độ ưu tiên cao hơn sẽ có độ thực thi cao hơn và được thi hành.

  • Nếu như hai hay nhiều luật so khớp cùng một đoạn trong văn bản và có độ ưu tiên như nhau thì luật nào được định nghĩa sớm nhất sẽ có độ thực thi cao nhất và được thi hành.

  • Tập các nhãn đầu vào (Input Annotations): các nhãn (annotations) có kiểu (Type) thuộc tập các nhãn đầu vào sẽ được sử dụng như là đầu vào cho các mệnh đề trái (quá trình so khớp).

Ví dụ:

Phase: Entity

Input: Word Split Lookup

Options: control = appelt




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