Luận văn Nghiên cứu và phát triển các công cụ xử lý tiếng Việt trên UIMA

Tài liệu được xử lý trước hết là tách thành các từ, dấu ngắt sau đó là nhận dạng các thực thể như tên người, tên địa phương, tên quốc gia, tên tổ chức, tên tôn giáo và tên các công trình. Mỗi một token thường có hai chú giải về nó: chú giải về bản thân token và chú giải về kiểu thực thể mà nó nằm trong. Chương trình cũng xử lý được một số nhập nhằng ví dụ sự nhập nhằng trong việc nhận diện tên người, tên quốc gia, tên tổ chức . . .

pdf50 trang | Chia sẻ: lylyngoc | Lượt xem: 2704 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu và phát triển các công cụ xử lý tiếng Việt trên UIMA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
các nguồn thông tin khác nhau. Tự động tìm ra những thông tin mang giá trị cao, chuyển chúng thành những thông tin có cấu trúc, lưu trữ vào cơ sở dữ liệu hay sử dụng những thông tin có cấu trúc này vào các ứng dụng khác là hướng phát triển của một kiến trúc quản lý thông tin hiện đại. Kiến trúc quản lý thông tin phi cấu trúc (Unstructure Information Management Architecture - UIMA) [10][11] được xây dựng để thực hiện nhiệm vụ trên. Trên thế giới đã có rất nhiều các ứng dụng kiến trúc UIMA để xử lý tiếng Anh, tiếng Đức v.v… Kho dữ liệu về tiếng Việt ngày càng phát triển và các nhu cầu xử lý nguồn thông tin này ngày càng tăng. Xây dựng các hệ thống xử lý tiếng Việt trên UIMA trở nên cấp thiết. Điểm khó khăn trong xử lý trên ngôn ngữ tiếng Việt ở chỗ tiếng Việt đa dạng, phong phú và có nhiều điểm còn nhập nhằng. Chương 1: Giới thiệu Nguyễn Đức Nam 2 Các công cụ xử lý tiếng Việt tại thời điểm hiện tại thường tách ra thành những phần riêng biệt như tách từ, gán nhãn từ loại, nhận dạng tên thực thể v.v…Các công cụ này cũng hoạt động trên các hệ thống khác nhau. Trong khóa luận chúng tôi nghiên cứu về UIMA, tích hợp các công cụ xử lý tiếng Việt như tách từ [1][2] và nhận dạng thực thể tiếng Việt có tên [3] trên kiến trúc UIMA nhằm tạo ra một hệ thống phân tích tiếng Việt bao gồm nhiều công cụ nhỏ, tận dụng được các ưu điểm của kiến trúc UIMA và tiết kiệm được thời gian để xây dựng một hệ thống hoàn toàn mới. Phần còn lại của khóa luận được chia thành 4 chương:  Chương 2: Giới thiệu một cách tổng quan nhất về UIMA cũng như các ứng dụng cơ bản của UIMA.  Chương 3: Xây dựng công cụ phân tích tiếng Việt từ các công cụ có sẵn như tách từ và nhận dạng thực thể có tên.  Chương 4: Tổng kết lại kết quả và đưa ra những hướng phát triển mới cho đề tài trong tương lai. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 3 Chương 2 Tổng quan kiến trúc xử lý thông tin phi cấu trúc (UIMA) Chương 2 trình bày những giới thiệu tổng quan nhất về UIMA, các nền tảng cơ bản để xây dựng một ứng dụng, cách xây dựng một ứng dụng và khai thác kết quả phân tích. 2.1 Giới thiệu UIMA UIMA là một kiến trúc quản lý thông tin phi cấu trúc được phát triển bởi IBM giúp phân tích các nguồn dữ liệu phi cấu trúc và chuyển chúng thành nguồn dữ liệu có cấu trúc, mang giá trị cao. UIMA là một kiến trúc dùng để tạo ra, tìm kiếm, khai thác thông tin; triển khai các phương pháp phân tích và tích hợp những phương pháp này với kỹ thuật tìm kiếm. Kiến trúc quản lý thông tin phi cấu trúc bao gồm các thành phần giao diện, mẫu thiết kế, biểu diễn thông tin và đóng vai trò là người phát triển. Framework UIMA là một mã nguồn mở, nó cung cấp một môi trường để các nhà phát triển có thể chạy các chương trình của riêng mình, khai phá các ứng dụng của kiến trúc quản lý thông tin phi cấu trúc. Thành phần của framework viết bằng Java hoặc C++ cho việc phát triển, khai thác các thành phần và ứng dụng UIMA. Những Framework này cũng cung cấp cho lập trình viên một môi trường phát triển dựa trên Eclipse [11] bao gồm các ứng dụng và tiện ích để khai thác kiến trúc quản lý thông tin phi cấu trúc. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 4 UIMA là một mã nguồn mở, có khả năng mở rộng để tạo ra, khai thác các biện pháp quản lý thông tin phi cấu trúc từ các văn bản hay các tài liệu đa phương tiện sau đó ghép nối các kết quả thu được vào các thành phần tìm kiếm. Hình 2.1- UIMA là “cầu nối” giúp liên kết hai thế giới thông tin có cấu trúc và phi cấu trúc [11]. UIMA giúp xây dựng “cây cầu” giữa hai thế giới thông tin có cấu trúc và phi cấu trúc (hình 2.1). Thế giới thông tin phi cấu trúc là những thông tin trên các kho dữ liệu như Web, văn bản, audio, video v.v…Thế giới thông tin có cấu trúc bao gồm các cấu trúc chức năng, nội dung kết quả phân tích và thường được lưu trong cơ sở dữ liệu. “Cây cầu” giữa hai thế giới được xây dựng thông qua các thành phần, khung phần mềm của kiến trúc UIMA và khai thác khả năng phân tích trên chính kiến trúc này. UIMA hỗ trợ việc tạo ra, khám phá, tận dụng các khả năng phân tích và liên kết chúng với các dịch vụ thông tin có cấu trúc. Một ứng dụng quản lý thông tin phi cấu trúc có thể coi như một hệ thống phần mềm dùng để phân tích một khối lượng lớn thông tin phi cấu trúc (văn bản, âm thanh, video, hình ảnh . . .) để tìm ra, tổ chức và cung cấp các thông tin có ích liên quan đến người dùng hoặc đưa ra kết quả được dùng trong các ứng dụng khác. Ví dụ: ứng dụng trong quá trình xử lý hàng triệu phản ứng thuốc từ đó tìm ra mối liên hệ giữa các loại Chương 2: Tổng quan UIMA Nguyễn Đức Nam 5 thuốc gây nghiện. Hay là ứng dụng xử lý hàng chục triệu tài liệu để tìm ra bằng chứng quan trọng cho thấy có thể có mối đe dọa hay tội phạm [11]. Trước hết các dữ liệu phi cấu trúc phải được phân tích để tìm kiếm, xác định và phát hiện các khái niệm liên quan mà không được chú giải rõ ràng như tên người, tổ chức, địa danh, sản phẩm v.v…Thách thức khó hơn trong việc phân tích là phát hiện ra ý kiến, phản hồi hay các sự kiện đặc biệt. Cao hơn nữa là các mối quan hệ giữa các thực thể ví dụ vị trí, tài chính, hỗ trợ, thanh toán, sửa chữa v.v…Các khái niệm này trong tài liệu phi cấu trúc phải rộng, đa dạng và thường có miền cụ thể. Những thành phần dùng cho việc phân tích phải được tương thích dễ dàng và có khả năng kết hợp để tạo thuận lợi cho sự phát triển các ứng dụng của UIMA [11]. Kết quả phân tích được định dạng vào các cấu trúc để thuận tiện trong việc xử lý thông tin, kết hợp với sử dụng công cụ tìm kiếm và đưa các kết quả này vào cơ sở dữ liệu dùng trong phân tích thông tin online hay khai phá dữ liệu. Kết quả phân tích cung cấp những nội dung mới nhất, hiệu quả nhất cho khách hàng trong các quá trình phản hồi hay truy vấn. Trong phân tích nội dung phi cấu trúc, các ứng dụng UIMA sử dụng một loạt các công nghệ phân tích đa dạng như:  Thống kê và xử lý ngôn ngữ tự nhiên  Thông tin phản hồi  Học máy  Ontologies  Trả lời tự động  Khai phá nguồn kiến thức (CYC, WordNet, Framnet v.v…) Kỹ thuật phân tích sử dụng các công nghệ này đã được phát triển độc lập bằng cách sử dụng giao diện hay nền tảng khác nhau. UIMA cho phép các nhóm phát triển chia nhỏ một project lớn thành các thành phần nhỏ sau đó xây dựng giải pháp cho từng thành phần và tích hợp lại nhanh chóng thông qua các kỹ thuật hay giao diện sử dụng khác nhau. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 6 Framework UIMA cung cấp một môi trường thời gian chạy trong đó người dùng chạy bất cứ plugin nào của UIMA để xây dựng, triển khai các ứng dụng UIM. UIMA Software Development Kit (SDK) bao gồm UIMA framework, các công cụ và tiện ích cho việc sử dụng UIMA. 2.2 Nền tảng phân tích Các nền tảng cơ bản của kiến trúc quản lý thông tin phi cấu trúc bao gồm: hệ thống kiểu, chú giải, bộ miêu tả XML, máy phân tích, kết quả phân tích, mô tả kết quả phân tích. 2.2.1 Hệ thống kiểu và chú giải UIMA hoạt động dựa trên việc sử dụng các chú giải để phân tích nguồn dữ liệu phi cấu trúc. Bước đầu tiên để phát triển các chú giải là định nghĩa kiểu cấu trúc chức năng mà nó tạo ra trong hệ thống kiểu. UIMA định nghĩa một số kiểu đơn như Boolean, Integer, Long, Float, String, Double và mảng của những kiểu này. Ngoài ra UIMA còn xây dựng kiểu Top là nền tảng của các kiểu khác, FSArray định nghĩa mảng của một cấu trúc chức năng và các chú giải. Các chú giải có thể được xây dựng bởi người dùng sau đó đăng ký vào hệ thống kiểu của UIMA. Một chú giải thường chứa 3 trường (đặc trưng): begin, end lưu trữ các vị trí của ký tự xác định chú giải trong tài liệu và sofa (subject of annotator) xác định tài liệu chứa chú giải (được bỏ qua trong các chú giải đơn giản). Ngoài ra còn có các đặc trưng của chú giải do người phát triển kiến trúc UIMA tạo ra [11]. UIMA có một công cụ chạy trên Eclipse giúp người dùng định dạng các chú giải và tìm hiểu thông tin về hệ thống kiểu là Component Descriptor Editor. Trong hình 2.2 là các chú giải được chúng tôi tạo ra và đăng ký vào trong hệ thống kiểu. Ví dụ: kiểu Location_VN là chú giải về các tên địa phương trong tiếng Việt. Chúng được kế thừa từ lớp uima.tcas.annotator, đặc trưng posTag hay componentId kế thừa từ các lớp uima.cas.String. Các đặc trưng mặc định như begin, end không được thể hiện ra trong hình vẽ nhưng chúng vẫn là các đặc trưng của Person_VN. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 7 Hình 2.2 – Các chú giải trong hệ thống kiểu Các chú giải thực chất là các lớp được sử dụng trong máy phân tích để xử lý tài liệu. Mục tiếp theo trình bày về máy phân tích, chức năng, phương thức hoạt động cũng như cách xây dựng chúng trên UIMA. Một lớp chú giải chứa 3 phương thức: initialize(), process() và destroy(). Initialize() được gọi bởi framework một lần khi khởi tạo lớp chú giải. Process() được gọi mỗi khi có một tài liệu được xử lý. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 8 Destroy() có thể được gọi khi ứng dụng sử dụng xong các chú giải. Chú giải được dùng để nhận dạng các thực thể tìm thấy trong tài liệu. Các thực thể có thể là các tên người, tên tổ chức, tên quốc gia v.v…Các miêu tả về chú giải được xây dựng bằng bộ miêu tả XML xác định tên của chú giải, dùng lớp nào để định nghĩa và đầu ra tương ứng. Các chú giải như tên người, tên tổ chức, tên quốc gia v.v… đều được xây dựng để nhận dạng một loại thực thể có trong tài liệu. Chúng đều được sử dụng trong máy phân tích đơn (2.2.2). Mỗi một chú giải thường được dùng để nhận ra một loại thực thể do vậy tồn tại yêu cầu ghép nối các chú giải này với nhau để tạo ra một chú giải mới nhận dạng nhiều loại thực thể một lúc. Một đặc điểm cần quan tâm khi ghép nối các chú giải với nhau đó là khi các chú giải có thể cùng nhận dạng một đối tượng khác nhau nhưng đưa vào cả 2 chú giải. Do đó khi thực hiện kết hợp các chú giải cần xử lý tốt việc tranh chấp giữa các chú giải và thực hiện nhận dạng thực thể một cách chính xác. Ví dụ: một chú giải về nhận dạng các từ trong văn bản kết hợp với chú giải nhận dạng các dấu ngắt câu thành một chú giải mới có khả năng nhận dạng cả về từ và các dấu ngắt câu trong tài liệu. Hình 2.3 - Kết hợp các chú giải TokenizerVN Vietnamese Tokenizer Vietnamese SplitVN Splits Aggregate Annotators TokenizerVN SplitVN Annotators TokenizerVN Splits . . . Chương 2: Tổng quan UIMA Nguyễn Đức Nam 9 Trong hình 2.3, các TokenizerVN là các chú giải được xác định bởi các lớp chú giải Tokenizer Vietnamese. Các chú giải TokenizerVN là các chú giải về các từ vựng trong tiếng Việt, nhiệm vụ của chú giải là tách ra được các từ tiếng Việt chuẩn xác. SplitVN là chú giải về các phân tách trong câu (bao gồm . | ! | ?), nhiệm vụ của chú giải này là tách được chính xác các dấu phân tách trên trong văn bản. Ngoài ra còn có nhiều chú giải khác về thực thể như tên người, tên địa phương, dân tộc v.v… Các chú giải này sẽ được đưa vào cùng một chú giải để xử lý trong máy phân tích tổng hợp. Các chú giải lấy ra từ các chú giải đơn sẽ được ghép lại với nhau để sử dụng trong một máy phân tích tổng hợp. Máy phân tích này sẽ thực hiện phân tích tất cả chú giải và xử lý trong tài liệu như các máy phân tích đơn. 2.2.2 Máy phân tích Một trong những khối cơ bản quan trọng nhất của UIMA là máy phân tích (Analysis Engine). Chúng được tạo ra để phân tích một tài liệu, suy luận sau đó lưu lại các mô tả thuộc tính về một phần tài liệu hay toàn bộ tài liệu. Các mô tả này được gọi chung là kết quả phân tích. Kết quả phân tích thường đại diện cho nội dung của tài liệu. Kết quả phân tích có thể ghi lại những câu khác nhau về nội dung của cùng một tài liệu. Máy phân tích sẽ xử lý tài liệu và ghi lại siêu dữ liệu về nội dung tài liệu. Ví dụ: trong tài liệu về trường đại học Công Nghệ, kết quả phân tích có thể ghi lại các câu sau: (1) Chủ đề của tài liệu là về trường đại học Công Nghệ. (2) Các ký tự từ 10 đến 30 là về một tổ chức. Trong câu (1), (2) ở trên có hai cụm đặc biệt là “chủ đề” và tổ chức. Chúng chính là những kiểu được nhận ra trong tài liệu. UIMA có thể sử dụng máy phân tích để tạo ra đối tượng, nhận dạng chúng trong tài liệu và quản lý kết phân tích về đối tượng đó. Lõi của các máy phân tích này là các thuật toán làm tất cả mọi việc từ xử lý tài liệu đến lưu lại các kết quả tìm được. Kiểu (annotator) Chương 2: Tổng quan UIMA Nguyễn Đức Nam 10 UIMA cung cấp một thành phần cơ bản hướng tới việc các thuật toán phân tích chạy bên trong máy phân tích. Thành phần đó chính là các chú giải (2.2.1). Các thuật toán của nhóm phát triển chủ yếu quan tâm đến việc nghiên cứu và phát triển các chú giải. Trong UIMA, người lập trình thuật toán giữ vai trò của nhà nghiên cứu và phát triển chú giải. Có hai loại máy phân tích là máy phân tích đơn (Primitive AE) và máy phân tích tổng hợp (Aggregate AE). Hình 2.4 - Máy phân tích tổng hợp Một máy phân tích đơn có thể xử lý một hoặc một vài chú giải. Các công cụ phân tích phức tạp hơn được gọi là máy phân tích tổng hợp. Các chú giải có xu hướng thể hiện các chức năng một cách ngang bằng. Ví dụ: phát hiện ngôn ngữ, tách từ, gán nhãn từ loại v.v… Các chức năng này thường chỉ là một phần trong số các nhiệm vụ của công cụ phân tích tổng hợp. Một quy trình làm việc của động cơ thành phần có thể đem ra để thực hiện các nhiệm vụ phức tạp hơn. Hình 2.4 miêu tả một AE phát hiện thực thể có tên có luồng làm việc như sau: bắt đầu với phát hiện ngôn ngữ sau đó là tách từ, xác định nhãn từ loại, tiếp theo là phân tích sâu về ngữ pháp và cuối cùng là xác định thực thể. Kết quả mỗi bước trong luồng làm việc là yêu cầu đầu vào của các bước tiếp theo. Nhận dạng thực thể chỉ có thể thực hiện khi phân tích sâu về ngữ pháp đã được ghi trong CAS. UIMA cung cấp các phương pháp cần thiết cho việc tạo ra chú giải và máy phân tích, đó là các bộ miêu tả XML. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 11 2.2.3 Bộ miêu tả XML Kiến trúc UIMA miêu tả các thông tin về chú giải, máy phân tích trong bộ miêu tả XML và cung cấp các lớp chú giải đi kèm theo nó giúp cho UIMA hoạt động. Bộ miêu tả có thành phần chính là một file XML dùng để xác định các thành phần và cách thức hoạt động của máy phân tích. Thành phần các file XML bao gồm :  Tên, miêu tả về chú giải, phiên bản và tác giả.  Đầu vào và đầu ra của những chú giải định nghĩa các kiểu trong hệ thống kiểu. Định nghĩa các tham số cấu hình cho các chú giải. Định dạng chi tiết cho file XML của máy phân tích đơn: 2.2.3.1 Cấu trúc cơ bản File XML bắt đầu bằng định dạng mặc định của phần đầu mục XML thông thường. Thẻ định nghĩa nguồn nào đang được sử dụng, nó bắt buộc là uima.apache.org nếu không các bộ miêu tả XML bị lỗi khi cập nhật. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 12 Thẻ chỉ có 2 giá trị org.apache.uima.java hoặc org.apache.uima.cpp bởi các thực thi của framework trong thời điểm hiện tại mới được viết bằng java hay C++. Thẻ chứa giá trị boolean mang giá trị true khi bộ miêu tả này miêu tả về máy phân tích đơn. Thẻ xác định xem máy phân tích sẽ sử dụng lớp chú giải nào. Thẻ chứa thông tin miêu tả máy phân tích và nhiệm vụ của nó là gì (mục 2.2.3.2). 2.2.3.2 AnalysisEngineMetaData Thẻ chứa 4 trường : name, descriptor, version và vendor. Trong đó chỉ có trường name yều phải điền đầy đủ. Chỉ có thẻ yêu cầu bắt buộc phải khai báo còn các thẻ khác đều là tùy vào việc xây dựng máy phân tích của người dùng (mục 2.2.3.3). Thẻ định nghĩa một hệ thống kiểu dùng trong một máy phân tích. Muốn sử dụng thẻ này chỉ việc đưa đường dẫn file miêu tả XML về hệ thống kiểu được sử dụng vào trong thẻ , các kiểu được định nghĩa trong file XML trên sẽ được máy phân tích sử dụng tự động. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 13 2.2.3.3 capabilities Thẻ capabilities chứa các thẻ con , , , và . Thẻ và có thể được để trống còn các thẻ còn lại có thể không cần bắt buộc khai báo. Thẻ xác định các kiểu được sử dụng trong máy phân tích gồm những kiểu gì. Nó thường bắt khai báo đặc trưng tên của kiểu. Thẻ xác định kiểu đầu ra mong muốn, nó sẽ là các lớp chú giải định nghĩa đặc trưng của chú giải được sử dụng. Thẻ và xác định tên các sofa được sử dụng bởi thành phần này, tất cả tên sofa phải được đặt khác nhau và có phần định dạng riêng về mỗi sofa này. Thẻ chứa mã ngôn ngữ ISO, ví dụ: en cho tiếng Anh hoặc en-US cho tiếng Anh Mỹ. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 14 2.2.3.4 Cấu trúc file XML miêu tả máy phân tích tổng hợp Cấu trúc của file XML của máy phân tích tổng hợp có một vài điểm khác biệt so với cấu trúc file XML của máy phân tích đơn.  Thẻ chứa giá trị false thay vì true.  File miêu tả này sẽ không chứa thẻ thay vào đó là dùng để phân biệt giữa việc dùng một máy phân tích tổng hợp thay vì một máy phân tích đơn. Các thẻ này sẽ đưa vào các máy phân tích nào sẽ được sử dụng và đường dẫn đến các file XML miêu tả máy phân tích tương ứng. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 15  Thẻ sẽ giúp định hướng xem thứ tự xử lý các chú giải như thế nào trong việc phân tích. Các chú giải sẽ được xử lý lần lượt, mỗi một chú giải sẽ thông qua các máy phân tích chạy ra kết quả và lưu lại các kết quả đó trong CAS. Thành phần cuối cùng là thẻ có cấu trúc giống với cấu trúc của thẻ của file XML (mục 2.2.3.3). 2.2.4 Mô tả đối tượng trong tài liệu UIMA định nghĩa một cấu trúc phân tích chung (Common Analysis Structure) để thực hiện hai nhiệm vụ: đại diện các chú giải và chia sẻ kết quả phân tích cho các thành phần trong kiến trúc. CAS là một cấu trúc dữ liệu dựa trên đối tượng cho phép đại diện giá trị bao gồm đặc trưng và giá trị. Theo logic, cấu trúc này bao gồm tài liệu sắp được đưa vào phân tích. UIMA bao gồm lớp thực thi và giao diện cho kiến trúc này. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 16 Trong hình 2.5 là ví dụ biểu diễn đối tượng trong CAS về câu: “Nam là sinh viên trường đại học Công Nghệ. Cuối năm nay cậu ấy sẽ ra trường”. CAS sẽ chứa đối tượng của kiểu Người và đối tượng về kiểu Tổ chức. Đối với mỗi kiểu Người, Tổ chức tìm thấy trong tài liệu, máy phân tích sẽ tạo ra một đối tượng Người, Tổ chức trong CAS và liên kết nó với các chuỗi ký tự tương ứng trong tài liệu. Nam là sinh viên trường Đại học Công Nghệ. Cuối năm nay cậu ấy sẽ ra trường. Hình 2.5 - Biểu diễn đối tượng trong tài liệu Trong khi CAS là một cấu trúc dữ liệu thì UIMA định nghĩa một số kiểu cơ bản và hỗ trợ nhà phát triển hoàn thiện hệ thống kiểu của riêng mình. Có thể coi nó như là một lược đồ đối tượng cho CAS. Các kiểu tạo ra nhằm xác định một vài loại đối tượng được phát hiện trong tài liệu thông qua máy phân tích rồi ghi lại vào hệ thống kiểu. Như vậy Người có thể định nghĩa là một kiểu. Các kiểu có đặc trưng và giá trị. Ví dụ tuổi và nghề nghiệp có thể định nghĩa là các đặc trưng của Người. Các kiểu khác có thể là tổ chức, công ty, ngân hàng, cơ sở… Không có giới hạn cho các kiểu khác nhau mà có thể định nghĩa trong cùng một hệ thống kiểu. Hệ thống kiểu có thể là miền hay ứng dụng cụ thể. Các kiểu trong hệ thống của UIMA có thể được tổ chức thành một phân loại. Ví dụ công ty có thể định nghĩa là một phân nhóm của tổ chức, nounpharse có thể là phân nhóm của một parsenode. Nam (thực thể) Đại học Công Nghệ (thực thể) Người(P1) (chú giải) Tổ chức (chú giải) Người(P2) (chú giải) Chương 2: Tổng quan UIMA Nguyễn Đức Nam 17 UIMA cũng cung cấp phân tích giả lập về nhiều khung nhìn của một tài liệu. Nó được dùng để hỗ trợ xử lý nhiều dạng tài liệu như là audio . . . Máy phân tích xử lý một hay nhiều khung nhìn của tài liệu. Mỗi khung nhìn chứa một chủ đề của việc phân tích cụ thể và đánh chỉ mục dữ liệu trong khung nhìn đó. CAS sẽ giữ một hoặc nhiều khung nhìn thêm vào đó là các miêu tả về đối tượng và thể hiện kết quả phân tích được trong mỗi khung nhìn đó. Một ví dụ cho việc sử dụng khung nhìn CAS là cho việc dịch các tài liệu. Mỗi một bản dịch sẽ đại diện cho một khung nhìn CAS khác nhau [11]. 2.4 Xây dựng ứng dụng và xử lý tập tài liệu Trong mục 2.4 chúng tôi trình bày về cách thức tương tác giữa ứng dụng với UIMA và máy xử lý tập tài liệu. 2.4.1 Tương tác giữa ứng dụng và UIMA Hình 2.6 - UIMA tương tác với các ứng dụng Chương 2: Tổng quan UIMA Nguyễn Đức Nam 18 UIMA AE Factory lấy các thông tin khai báo từ bộ miêu tả XML, lớp thực thi chú giải thiết lập CAS và ngữ cảnh UIMA. Máy phân tích thông qua hàm process trả về CAS các kết quả phân tích mới. Ứng dụng sẽ quyết định xem sẽ làm gì với những CAS này. Có thể là biểu diễn kết quả, lưu các CAS này vào đĩa cứng cho các xử lý tiếp theo, trích xuất và đánh chỉ mục kết quả phân tích để tích hợp vào các máy tìm kiếm hay các ứng dụng trong cơ sở dữ liệu v.v… 2.4.2 Giới thiệu máy xử lý tập tài liệu Nhiều ứng dụng UIMA được áp dụng để phân tích tập tài liệu. Chúng kết nối với các nguồn tài liệu khác nhau và thực hiện những nhiệm vụ khác nhau với các kết quả thu được. Tuy nhiên, trong quá trình phân tích tập tài liệu các ứng dụng UIMA đều thực hiện theo các bước sau:  Kết nối với nguồn tài liệu  Thu được một tài liệu từ các nguồn  Tạo ra một CAS với tài liệu chuẩn bị được phân tích  Gửi CAS tới ứng dụng  Xử lý kết quả CAS  Quay lại bước thứ 2 cho tới khi xử lý hoàn toàn tập tài liệu  Làm bất cứ yêu cầu xử lý cuối cùng nào sau khi tất cả tài liệu đã được phân tích. UIMA hỗ trợ các ứng dụng này một kiến trúc xử lý tập tài liệu (Collection Processing Architecture - CPA). Kiến trúc này sẽ định nghĩa các thành phần được thêm vào để đọc qua dữ liệu từ bộ sưu tập dữ liệu, chuẩn bị dữ liệu cho các máy phân tích, xử lý phân tích, trích xuất kết quả và phát triển các luồng khác. Các chức năng được định nghĩa trong CPA thực hiện bởi máy xử lý tập tài liệu (Collection Processing Engine - CPE). CPE bao gồm một máy phân tích, bộ đọc tập dữ liệu (Collection Reader) , khởi tạo CAS (CAS Initializer), tổng hợp CAS (CAS Consumer). Nhiệm vụ của từng thành phần trong CPE như sau: Chương 2: Tổng quan UIMA Nguyễn Đức Nam 19  Collection Reader: thành phần giúp sưu tập tài liệu để phân tích. Nó trả về cho CAS tài liệu để phân tích, có thể là các siêu dữ liệu.  Analysis Engine: chọn một CAS thực hiện phân tích nội dung của nó. Bước này có thể tích hợp nhiều engine phân tích một lúc. Sau bước này tạo ra các CAS giàu thông tin.  CAS Consumer: tổng hợp lại các CAS ở trên đưa ra các cấu trúc dữ liệu cho các ứng dụng yêu cầu có thể là đánh chỉ mục cho các máy tìm kiếm hoặc đưa dữ liệu vào cơ sở dữ liệu có liên quan.  Thành phần CAS Initializer: có thể được sử dụng cho Collection Reader. Hình 2.7 - Luồng làm việc của CPE Hai thành phần chính của máy xử lý tập tài liệu là Collection Reader và CAS Consumer. Công việc của Collection Reader là liên kết và tương tác với tập mã nguồn, thu tập tài liệu, khởi tạo các CAS việc cho phân tích. CAS Consumer là chức năng cuối cùng trong xử lý CAS. Công việc của nó có thể là đánh chỉ mục nội dung CAS cho một công cụ tìm kiếm, trích xuất các yếu tố được quan tâm, đưa kết quả vào một Chương 2: Tổng quan UIMA Nguyễn Đức Nam 20 cơ sở dữ liệu liên quan hoặc lưu trữ, sắp xếp lại các kết quả phân tích cho các công việc tiếp theo. Hình 2.7 miêu tả luồng làm việc của CPE. Từ các tập dữ liệu hay siêu dữ liệu thông qua Collection Reader lấy ra được một tài liệu, khởi tạo CAS rồi đưa tài liệu qua máy phân tích trả về các kết quả phân tích được lưu trong CAS Consumer. Các CAS Consumer này sẽ đưa các kết quả thu được vào cơ sở dữ liệu liên quan hay đánh chỉ mục kết quả để đưa vào máy tìm kiếm [9]. 2.4.3 Quản lý xử lý tập tài liệu Hình 2.8 - Tương tác của ứng dụng với CPM UIMA cũng bao gồm một bộ quản lý xử lý tập tài liệu (Collection Processing Management - CPM). Bộ quản lý này có khả năng đọc một mô tả từ máy xử lý bộ sưu tập và triển khai và chạy các thành phần chỉ định. Nhiệm vụ của bộ quản lý xử lý tập tài liệu bao gồm:  Quản lý luồng làm việc.  Quản lý CAS.  Phương thức sưu tập.  Nguồn tài liệu. Chương 2: Tổng quan UIMA Nguyễn Đức Nam 21  Xử lý lỗi. 2.5 Khai thác kết quả phân tích Sau khi xử lý các tài liệu thu được kết quả phân tích có rất nhiều hướng được đặt ra để khai thác các kết quả phân tích đó. Bao gồm đưa các kết quả này thành đầu vào của các thành phần tìm kiếm hay đưa các kết quả này vào cơ sở dữ liệu có sẵn tương ứng. 2.5.1 Tìm kiếm ngữ nghĩa Trong một máy xử lý tập tài liệu, Collection Reader đọc các tài liệu từ các thư mục chứa tài liệu và khởi động các CAS cùng với nội dung của chính nó. Sau đó đưa vào máy phân tích từ vựng và các câu, khi đó các CAS chứa đầy thông tin về từ vựng và các câu. Các thông tin này sẽ thông qua CAS Consumer và truyền đến công cụ đánh chỉ mục dùng cho tìm kiếm hay đưa vào các cơ sở dữ liệu liên quan. Cách xử lý truy vấn tìm kiếm có thể sử dụng các chỉ mục ở trên để cung cấp một số key_word cho tìm kiếm. Ví dụ khi đưa 1 truy vấn “UIMA” công cụ tìm kiếm sẽ trả về tất cả các tài liệu có chứa từ “UIMA”. Tìm kiếm ngữ nghĩa là một mô hình tìm kiếm mà có thể khai thác các thông tin bổ sung được tạo ra bởi các phân tích từ máy xử lý tập tài liệu. Chúng tôi đưa một thực thể có tên vào công cụ xử lý tập tài liệu ở trên. Giả sử công cụ này có khả năng phát hiện trong các văn bản và chú giải trong CAS về con người và tổ chức. Bổ sung các thực thể có tên được nhận ra, tạo ra một CAS Consumer để trích xuất thêm tới token và câu chú giải. Con người và tổ chức được thêm vào CAS qua việc phát hiện thực thể tên trong tài liệu. Sau đó chúng được đưa vào chỉ mục máy phân tích tìm kiếm chỉ mục. 2.5.2 Cơ sở dữ liệu Công cụ tìm kiếm không chỉ dùng để khai thác kết quả phân tích mà nó còn dùng để lưu lại các kết quả tìm kiếm vào cơ sở dữ liệu có nôi dung liên quan. Hệ thống sử dụng Chương 2: Tổng quan UIMA Nguyễn Đức Nam 22 CAS Consumer để giúp đưa các kết quả phân tích vào các công cụ tìm kiếm hoặc trực tiếp vào các cơ sở dữ liệu. Đồng thời CAS Consumer giúp trích xuất các chú giải đưa vào cơ sở dữ liệu về chú giải. 2.6 Xử lý đa phương tiện Trong mục 2.4.2 trình bày về cách CPE khởi tạo một CAS, phân tích dữ liệu bởi công cụ phân tích và tổng hợp kết quả trong CAS Consumer. Công cụ phân tích có thể tạo ra một số miêu tả về vật thể ví dụ dạng của chú giải. Những miêu tả này sẽ được thêm vào các khẳng định về vật thể trong kết quả phân tích trước đó. Cuối cùng một hoặc nhiều CAS Consumer sẽ trích xuất thông tin từ CAS cho việc lưu trữ thông tin đã có cấu trúc. Hình 2.9 -Xử lý audio trong UIMA Xem xét ví dụ trong hình 2.9, luồng làm việc bắt đầu với một âm thanh ghi âm một cuộc hội thoại, chuyển các audio về dạng văn bản, nhận dạng các thực thể trong văn bản và trích xuất thông tin từ các văn bản trên. Sự hỗ trợ cho các đa đối tượng trong phân tích của UIMA được gọi là hỗ trợ về chủ đề của chú giải(sofa). Một Sofa được liên kết với khung nhìn CAS. Một CAS cụ thể có thể có nhiều khung nhìn, mỗi khung nhìn sẽ tương ứng với một vấn đề cụ thể cần phân tích cùng với một tập hợp các chỉ số được xác định trong dữ liệu tạo ra trong khung nhìn. Trong chương 2, chúng tôi đã trình bày những thông tin tổng quan về kiến trúc UIMA, các thành phần cơ bản, cách thức hoạt động. Nó cung cấp những công cụ để thực hiện xây dựng công cụ xử lý tiếng Việt được trình bày trong chương tiếp theo. Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 23 Chương 3 Xây dựng công cụ phân tích tiếng Việt trên UIMA Trong chương này chúng tôi trình bày về cách xây dựng công cụ phân tích tiếng Việt trên UIMA. Muốn xây dựng được một công cụ phân tích tiếng Việt trên UIMA chúng tôi cần phải quan tâm đến vấn đề sau: một máy phân tích để phân tích tài liệu, các chú giải sẽ được sử dụng trong máy phân tích và công cụ xử lý văn bản được tích hợp trên UIMA. Chương 3 trình bày về cách cài đặt công cụ có sẵn cho UIMA trên Eclipse, công cụ xử lý văn bản trên UIMA (Document Analyzer) và tích hợp công cụ xử lý tiếng Việt có sẵn như tách từ [1][2], nhận dạng thực thể tiếng Việt có tên [3] thành một công cụ xử lý tiếng Việt trên UIMA. 3.1 Cài đặt plugins cho UIMA trên Eclipse Chúng tôi sử dụng Eclipse Update Machine cho việc cài đặt các plugins cho UIMA trên Eclipse. Khởi động Eclipse-> menu Help->Software update-> Find and Install. Trong phần tiếp theo thêm site vào trong mục "add a new remote site”. Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 24 Hình 3.1- Cài đặt Plugins cho UIMA UIMA SDK là một bộ phần mềm được phát triển bởi IBM đi kèm với kiến trúc UIMA. Nó xây dựng một bộ công cụ cung cấp cho việc phát triển các thành phần hay xây dựng các ứng dụng mới của kiến trúc xử lý thông tin phi cấu trúc. Các bước cài đặt UIMA SDK vào Eclipse như sau:  Download SDK từ trang web  Đặt biến môi trường UIMA_HOME chỉ tới thư mục cài đặt UIMA SDK.  Chạy Eclipse  Chọn File-> Import menu  Chọn General/Existing Project into Workspace -> Next  Chọn Browse chuyển tới thư mục biến UIMA_HOME vừa path tới  Click Finish. Sau khi hoàn thành các bước trên nếu không có lỗi nào xảy ra trong workspace đã có project uima-examples. Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 25 Hình 3.2- các công cụ có sẵn trong SDK Một số công cụ thường dùng như là Annotator Viewer kiểm tra các chú giải tạo ra, CPE GUI là công cụ xử lý tập tài liệu, Document Analyzer dùng để phân tích tài liêu bằng văn bản. Trong mục tiếp theo chúng tôi sẽ trình bày về Document Analyzer. Chúng tôi sẽ sử dụng công cụ Document Analyzer trong phần xây dựng công cụ phân tích tiếng Việt (mục 3.4). 3.2 Document Analyzer Có hai cách để khởi động Document Analyzer: khởi động từ thư mục bin nơi cài đặt UIMA SDK hoặc khởi động trực tiếp từ Eclipse. Hình 3.3 - Document Analyzer Có 6 trường cần quan tâm trong giao diện Document Analyzer. Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 26  Input Directory: thư mục chứa các tài liệu cần phân tích  Output Directory: thư mục chứa các tài liệu đã được phân tích  Location of Analysis Engine XML Descriptor: file XML miêu tả việc phân tích bao gồm định dạng các chú giải cần thiết, các lớp thực thi được sử dụng.  XML Tag containing Text (optional): mục này được sử dụng khi trong tài liệu phân tích người dùng chỉ muốn phân tích phần nằm trong thẻ . Mục này có thể để trống.  Language: ngôn ngữ được sử dụng trong máy phân tích một số máy phân tích chỉ hỗ trợ 1 hoặc vài thứ tiếng.  Character Encoding: định dạng file tài liệu cần phân tích thường là ở UTF8 hoặc ASCII. Sau khi xác định 5 trường trong Document Analyzer, click Run để chạy kiểm tra. Sau khi máy phân tích chạy xong , kết quả sẽ hiện lên bảng Analysis Results, chọn một tài liệu để xem kết quả. Document Analyzer là công cụ được cung cấp trong gói phần mềm phát triển của UIMA, nó giúp kiểm tra các chú giải được tạo ra và hoạt động của máy phân tích sau đó đưa ra kết quả cho người dùng. Nó chỉ được sử dụng với các máy phân tích trên các tài liệu văn bản và không thể được sử dụng trên các tài liệu loại khác. Nhiệm vụ của Document Analyzer là sẽ dùng các chú giải được đưa vào, gọi các lớp chú giải này phân tích qua các tài liệu đầu vào và đưa ra kết quả. Trong ví dụ trong hình 3.7, kết quả đưa ra là các văn bản được tách thành các chú giải (Token_VN). Các Token_VN là các từ trong văn bản tiếng Việt được tách ra. Mỗi chú giải này sẽ có thuộc tính begin, end, nhãn từ loại (posTag) và loại chú giải (componentId). Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 27 Hình 3.4 - Kết quả phân tích sử dụng chú giải Token_VN Document Analyzer cũng cung cấp ứng dụng để thay đổi các bảng hiện ra. Hình 3.5 - Style Map Editor Người dùng có thể thay đổi các màu nền hay các chú giải được phép hiện ra sau khi phân tích thông qua Style Map Editor. 3.3 Các công cụ phân tích tiếng Việt Các công cụ phân tích tiếng Việt có sẵn như tách từ, nhận dạng thực thể tiếng Việt có tên ngày càng phát triển trong lĩnh vực xử lý ngôn ngữ tự nhiên và thu được nhiều kết quả khả quan. Chúng tôi tìm cách sử dụng các công cụ ấy trên UIMA nhằm tận dụng được tính linh động trong việc ghép nối các thành phần cũng như tính linh hoạt của từng thành phần của kiến trúc xử lý thông tin phi cấu trúc này. Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 28 3.3.1 Giới thiệu tách từ tiếng Việt Các ứng dụng xử lý tiếng Việt mang một đặc thù rất riêng biệt so với các ứng dụng xử lý trên các thứ tiếng khác. Muốn xử lý được một văn bản thì trước hết phải tách được các văn bản đó thành các từ riêng biệt. Các ngôn ngữ khác như tiếng Anh hay tiếng Pháp các từ được phân biệt bởi dấu trống trong khi trong tiếng Việt một từ có thể bao gồm một đến ba tiếng và mỗi tiếng cách nhau bởi dấu trống. Ngoài ra sự nhập nhằng trong ngữ pháp tiếng Việt cũng gây khó khăn cho việc tách được chính xác các từ trong một câu. Ví dụ: “Con bò đá con bò đá.” “Con kiến bò miệng bò.” Các tiếng có thể kết hợp với các tiếng đứng đằng trước hoặc đằng sau để tạo ra các từ mang ý nghĩa hoàn toàn khác. Hơn nữa là sự nhập nhằng trong việc sử dụng đại từ nhân xưng. Trong tiếng Anh các đại từ nhân xưng là để thay thế cho các tên riêng nhưng trong tiếng Việt các đại từ nhân xưng lại có thể đi kèm theo tên riêng. Do đó chúng tôi sử dụng công cụ tách từ tiếng Việt [1][2] với nhiệm vụ tách từ và gán nhãn từ loại để áp dụng cho việc tách từ và gán nhãn từ loại trên UIMA. Trong công cụ tách từ tiếng Việt có hai thành phần được nhận dạng đó là các từ vựng (token) và các dấu ngắt (splits) trong văn bản. 3.3.2 Giới thiệu nhận dạng thực thể tiếng Việt có tên Trong việc xử lý tài liệu tiếng Việt bước tiếp theo của tách từ và gán nhãn từ loại là việc nhận dạng các thực thể có tên trong tài liệu. Các thực thể thường được nhận dạng bao gồm: tên người, địa phương, quốc gia, công trình, tôn giáo, tiền tệ, thời gian… Việc nhận dạng thực thể gặp nhiều khó khăn. Đó là việc giải quyết các nhập nhằng giữa việc nhận ra các thực thể thuộc loại nào. Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 29 Ví dụ: “Cô Mỹ đang dạy học trong phòng 504 GD2.” Trong trường hợp này Mỹ sẽ được nhận dạng là tên người hay tên quốc gia. “ Công an huyện Từ Liêm vừa bắt khẩn cấp đối tượng Nguyễn Bá Đạt.” Trong câu trên thì sẽ nhận dạng “Công an huyện Từ Liêm” là một thực thể tổ chức hay sẽ nhận “Từ Liêm” là một thực thể địa phương. Chúng tôi sẽ sử dụng công cụ nhận dạng thực thể tiếng Việt có tên [3] trên GATE và áp dụng công cụ vào trong UIMA. 3.3.3 Mối quan hệ giữa GATE và UIMA GATE (General Architecture of Text and Engineering) [10] là một khung làm việc mã nguồn mở nó cũng được tạo ra nhằm phát triển các ứng dụng phân tích tài liệu để tìm ra các thông tin có ích cho người dùng. GATE và UIMA có nhiều điểm tương tự nhau: chúng đều đại diện các tài liệu đầu vào bằng các chú giải và cho phép người dùng thông qua các máy phân tích để xử lý các tài liệu này. Do vậy việc có thể đưa các ứng dụng đã chạy được trong GATE vào trong UIMA hay ngược lại rất hữu ích cho người dùng. Người dùng UIMA có thể dùng các file JAPE và các plugins của GATE còn người dùng GATE có thể khai thác tính linh hoạt của UIMA. Trong mục này chúng tôi sử dụng plugin công cụ nhận dạng thực thể tiếng Việt có tên [3], plugin tách từ tiếng việt [2] trên GATE và ứng dụng chúng vào trong UIMA. Điểm giống nhau lớn nhất giữa UIMA và GATE là chúng đều sử dụng chú giải để đại diện cho tài liệu. Điểm khác biệt lớn nhất giữa UIMA và GATE là UIMA định nghĩa chú giải bởi các tài liệu miêu tả XML, còn GATE không cần định nghĩa các chú giải trước khi sử dụng. Ngoài ra, UIMA do IBM phát triển, còn GATE được phát triển bởi một nhóm phát triển mã nguồn mở của Đại học Sheffield nên nó không hiệu quả và ổn định bằng UIMA. Cả 2 loại chú giải đều sử dụng các vị trí ký tự bắt đầu và vị trí kết thúc (begin, end) để xác định vị trí chú giải trong tài liệu. Do vậy muốn sử dụng GATE trong UIMA thì có một phương pháp là sử dụng ngay các chú giải tạo ra bởi Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 30 GATE rồi dùng các ứng dụng của UIMA để xử lý các chú giải này. UIMA sẽ nhận các chú giải này và sử dụng chúng trong các máy phân tích của mình. 3.4 Ứng dụng công cụ phân tích tiếng Việt trên UIMA Trong mục này, chúng tôi trình bày về việc tích hợp 2 công cụ xử lý tiếng Việt là tách từ tiếng Việt [2] và nhận dạng thực thể tiếng Việt có tên [3] trên UIMA sau đó ghép chúng trên một mày phân tích tổng hợp. 3.4.1 Tách từ tiếng Việt trên UIMA Muốn thực hiện tách từ tiếng Việt chúng tôi cần 3 file: lớp thực thi chú giải, bộ miêu tả XML, lớp định nghĩa đầu ra cho chú giải. Chúng tôi sử dụng công cụ tách từ tiếng Việt [2] và tích hợp để nó chạy trên UIMA. Trước hết chúng tôi xây dựng lớp thực thi chú giải. Lớp này có nhiệm vụ đọc kết quả lấy được từ hàm tachtu() trong công cụ tách từ tiếng Việt và tạo một vector để lấy giá trị của từ (Word) trong file kết quả và đưa nó vào các đặc trưng của chú giải Token_VN và Token_Splits. Chúng tôi chỉ trích một đoạn code trong lớp chú giải. Tachtu tachtu = new Tachtu(); Vector v = tachtu.execute("C:/apache-uima/examples", docText); for (int i = 0; i < v.size(); i++){ Vector vector = (Vector) v.get(i); if (vector.get(0).toString().equalsIgnoreCase("Word")){ Token_VN token = new Token_VN(aJCas); token.setBegin(vector.get(1).hashCode()); token.setEnd(vector.get(2).hashCode()); token.setPosTag(vector.get(3).toString()); token.setComponentId("Vietname token"); } if (vector.get(0).toString().equalsIgnoreCase("Split")){ Token_Splits token = new Token_Splits(aJCas); token.setBegin(vector.get(1).hashCode()); token.setEnd(vector.get(2).hashCode()); Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 31 token.setPosTag(vector.get(3).toString()); token.setComponentId("Vietname split"); token.addToIndexes(); } Các đặc trưng của chú giải Token_VN bao gồm begin, end thể hiện vị trí các ký tự xác định chú giải trong tài liệu, posTag là nhãn của từ loại và ComponentId thể hiện chú giải này thuộc loại “VietNam token”. Các đặc trưng của Token_Splits cũng bao gồm begin, end thể hiện vị trí chú giải trong tài liệu, posTag và componentId. Sau đó chúng tôi xây dựng bộ miêu tả cho máy phân tích. Cấu trúc của bộ miêu tả máy phân tích chi tiết như sau: org.apache.uima.java true Vietnamese.testToken Token, Splits Token lay ra tu lop tachtu() Types.Token_VN Types.Token_Splits Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 32 Cấu trúc của file XML này bao gồm lớp chú giải là lớp testToken trong gói Vietnamese. Hệ thống kiểu mà máy phân tích này làm việc với được lưu trong file VNExampleTypes. Nhận dạng các từ trong văn bản và các dấu ngắt là các bước đầu tiên trong hệ thống do vậy nó không cần các yêu cầu về đầu vào, các yêu cầu về đầu ra là các kiểu được định nghĩa trong lớp định nghĩa về Token_VN và Token_Splits. Lớp định nghĩa chú giải Token_VN, Token_Splits cho thấy nó được kế thừa từ lớp Annotation. Lớp Annotation là lớp có sẵn của UIMA. Nó định nghĩa một chú giải (annotator) có những đặc trưng cơ bản là begin và end. Chúng tôi chỉ trích một phần trong lớp Token_VN và Token_Splits. public class Token_VN extends Annotation { public Token_VN(JCas jcas, int begin, int end) { super(jcas); setBegin(begin); setEnd(end);} } public class Token_Splits extends Annotation { public Token_Splits(JCas jcas, int begin, int end) { super(jcas); setBegin(begin); setEnd(end); readObject(); } } Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 33 Chúng tôi xây dựng thêm 2 đặc trưng cho chú giải này đó là posTag và componentId. Kết quả chạy máy phân tích cho chú giải tách từ như sau: Hình 3.6 - Kết quả chạy tách từ tiếng Việt Kết quả trong hình 3.6 cho thấy chương trình đã tách được các từ trong một câu thành các từ riêng biệt, mỗi từ cách nhau bằng một dấu cách và các dấu ngắt. Mỗi từ, dâu ngắt có những đặc trưng begin, end, posTag và componentId. Nó cũng nhận dạng chính xác các từ trên tiếng Việt bao gồm từ ghép, từ viết tắt, tên địa phương cũng như một số nhập nhằng trong xử lý tiếng Việt. Trong quá trình tách từ tiếng Việt thì nhiệm vụ cần thiết là việc gán nhãn cho mỗi loại từ vựng được tìm ra trong tài liệu, nó giúp ích không nhỏ cho người dùng các ứng dụng này. Thông qua việc gán nhãn người dùng có thể nhanh chóng tìm ra các thông tin có liên quan đến cùng loại từ. Do vậy trong khi thực hiện tách từ các ứng dụng đã được thêm phần gán nhãn cho mỗi loại từ vựng (hình 3.7). Các dấu ngắt được sử dụng thì posTag chính là các dấu ngắt (hình 3.7). Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 34 Hình 3.7 - Gán nhãn từ, dấu ngắt 3.4.2 Áp dụng nhận dạng thực thể có tên trên GATE vào UIMA Các chú giải được sử dụng trong xử lý tiếng Việt hầu hết là để nhận dạng các thực thể. Do vậy chúng tôi sử dụng công cụ nhận dạng thực thể có tên [3] được sử dụng trong GATE vào UIMA và xây dựng một máy phân tích tổng hợp để nhận ra tất cả các chú giải đươc xây dựng cũng như tích hợp trong đề tài. Chúng tôi sử dụng công cụ nhận dạng thực thể tiếng Việt có tên[3] và tích hợp nó vào trong kiến trúc UIMA. Các loại thực thể được nhận dạng:  PersonVN: Thực thể chỉ người  OrganizationVN: Thực thể chỉ một tổ chức, một nhóm người được thành lập theo một cấu trúc phân cấp nào đó.  FacilityVN: Thực thể chỉ những thực thể do con người tạo ra thường là các thực thể xây dựng và kiến trúc, như sân vận động, bảo tàng, nhà ga …  LocationVN: Thực thể chỉ những thực thể địa lý như vùng lãnh thổ, địa danh, sông, suối …  NationalityVN: Thực thể chỉ quốc tịch người, hoặc thuộc về quốc gia.  ReligionVN: Thực thể chỉ các tổ chức tôn giáo. Để xây dựng một công cụ phân tích thực thể trên UIMA. Chúng tôi cũng xây dựng một bộ miêu tả XML của máy phân tích, một lớp chú giải về thực thể và lớp định nghĩa đẩu ra cho các chú giải. Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 35 Chúng tôi trình bày về việc xây dựng nhận dạng thực thể PersonVN, các thực thể khác hoàn toàn tương tự. Đầu tiên chúng tôi xây dựng bộ miêu tả XML của máy phân tích nhận dạng thực thể bao gồm xác định lớp chú giải VN_NE nằm trong gói VietNamese, hệ thống kiểu được sử dụng là VNExamples và lớp định nghĩa chú giải là VN_NE trong gói Types. Cấu trúc của file XML bộ miêu tả như sau: org.apache.uima.java true Vietnamese.VN_NE NE_VN tên người Types.Token_VN Types.Splits_VN Types.Organization_VN Types.Location_VN Types.Religion_VN Types.Facility_VN Types.Nationality_VN Types.Person_VN Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 36 Cấu trúc file XML này có kiểu đầu vào là các từ, dấu ngắt thu được trong máy tách từ tiếng Việt chạy ở trên và các kiểu đầu ra là các kiểu được định nghĩa trong gói Types bao gồm Organization_VN, Location_VN, Religion_VN, Facility_VN, Nationality_VN và Person_VN. Lớp chú giải sẽ lấy từ kết quả công cụ nhận dạng thực thể có tên [3] hoạt động trên GATE và lấy những từ có nhãn là “Person”, “Nationality”, “Location”, “Religion”, “Facility”, “Organization” đưa chúng thành chú giải được định nghĩa trong gói Types. Đặc trưng của chú giải bao gồm begin, end xác định ký tự của chú giải trong tài liệu và componentId xác định loại chú giải. Lớp định nghĩa chú giải tương tự như lớp chú giải Token_VN, chỉ ra các chú giải cũng kế thừa từ lớp Annotator của hệ thống và đưa thêm đặc trưng componentId. Kết quả thu được qua Document Analyzer: Hình 3.8 - Kết quả phân tích nhận dạng thực thể Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 37 Sau khi xây dựng toàn bộ các chú giải bao gồm tách từ, thực thể có tên, chúng tôi tiến hành xây dựng một máy phân tích tổng hợp sử dụng tất cả các chú giải trên để phân tích trên một tài liệu. 3.4.3 Kết hợp nhận dạng tách từ và thực thể tiếng Việt có tên Việc kết hợp nhận dạng tất cả thực thể trong UIMA thông qua việc sử dụng Aggregate AE đã được trình bày trong mục trước. Sử dụng Aggregate AE chỉ cần tạo ra file xml để xác định các thành phần AE tương ứng được sử dụng trong việc phân tích. Trong mục này chúng tôi chỉ cần xây dựng bộ miêu tả cho máy phân tích tổng hợp. Nó sẽ có nhiệm vụ xử lý từng chú giải một và đưa ra kết quả trên một tài liệu. Cấu trúc file XML như sau: org.apache.uima.java false Aggregate AE 1.0 Namnd VNToken NEVN Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 38 Types.Token_VN Types.Token_Splits Types.Person_VN Types.Location_VN Types.Nationality_VN Types.Organization_VN Types.Religion_VN Types.Facility_VN Bộ miêu tả này xem máy phân tích tổng hợp sử dụng những máy phân tích đơn nào chỉ rõ file XML miêu tả máy phân tích đơn lấy ra từ đâu, thứ tự xử lý các máy phân tích trong thẻ và các định dạng chú giải đầu ra trong thẻ . Kết quả là Aggregate này sẽ chạy từng thành phần AE con bên trong rồi đưa ra kết quả là tập hợp của những kết quả con ở trên. Kết quả trong hình 3.9 thể hiện tài liệu được tách thành những chú giải riêng biệt. Tài liệu được xử lý trước hết là tách thành các từ, dấu ngắt sau đó là nhận dạng các thực thể như tên người, tên địa phương, tên quốc gia, tên tổ chức, tên tôn giáo và tên các công trình. Mỗi một token thường có hai chú giải về nó: chú giải về bản thân token và chú giải về kiểu thực thể mà nó nằm trong. Chương trình cũng xử lý được một số nhập nhằng ví dụ sự nhập nhằng trong việc nhận diện tên người, tên quốc gia, tên tổ chức . . . Kết quả thu được khi chạy Document Analysis: Chương 3: Xây dựng công cụ phân tích tiếng Việt trên UIMA Nguyễn Đức Nam 39 Hình 3.9 Kết quả phân tích cho máy phân tích tổng hợp Tổng kết Trong chương 3 chúng tôi đã trình bày về cách xây dựng một bộ công cụ phân tích tiếng Việt được xây dựng từ những thành phần bao gồm tách từ, nhận dạng thực thể có tên và kết hợp tất cả chúng lại trong một máy phân tích. Bằng công cụ này người sử dụng có thể xử lý tài liệu tiếng Việt trên UIMA và tích hợp thêm các thành phần khác vào trong hệ thống. Chương 4: Tổng kết và hướng phát triển Nguyễn Đức Nam 43 Chương 4 Tổng kết và hướng phát triển Chúng tôi đã xây dựng được hệ thống tích hợp các công cụ xử lý tiếng Việt có sẵn lên UIMA. Nó bao gồm công cụ xử lý tổng hợp từ các công cụ tách từ tiếng Việt [1][2] và công cụ nhận dạng thực thể tiếng Việt có tên [3]. Việc tận dụng được khả năng linh hoạt giữa các thành phần trong UIMA và sự hỗ trợ tốt giữa chúng mang lại lợi ích không nhỏ cho các nhà phát triển phần mềm. Các kết quả thu được khi chạy các ứng dụng tách từ và nhận dạng thực thể tiếng Việt có tên hoàn toàn tương ứng với các kết quả khi chạy các ứng dụng trên GATE hay các hệ thống khác. Hướng phát triển tiếp theo là ứng dụng thêm các thành phần tìm kiếm cho các kết quả thu được. Các thành phần tìm kiếm sẽ thực hiện nhiệm vụ như tìm kiếm thực thể mang tên nào đó, liệt kê, đánh chỉ mục hay đưa nó vào các cơ sở dữ liệu tương ứng. Một hướng phát triển nữa là xây dựng các ứng dụng trong việc tích hợp xử lý hình ảnh, audio và video. Các hướng phát triển này đã có một số nghiên cứu trên ngôn ngữ khác nhưng chưa được phát triển trên ngôn ngữ tiếng Việt do vậy việc phát triển thêm các ứng dụng này hứa hẹn mang lại một hệ thống hoàn thiện hơn trong tương lai. Tài liệu tham khảo Nguyễn Đức Nam A Tài liệu tham khảo [1] Dang Duc Pham , Giang Binh Tran , Son Bao Pham , A Hybrid Approach to Vietnamese Word Segmentation Using Part of Speech Tags, International Conference on Knowledge and Systems Engineering, 2009 [2] D. Pham, Phương pháp phân đoạn từ tiếng Việt sử dụng gán nhãn từ loại, Khóa luận tốt nghiệp, Coltech, VNU, 2009. [3] B. Đạt Nguyễn, Nhận dạng thực thể tiếng Việt có tên, Khóa luận tốt nghiệp, Coltech, VNU, 2009. [4] Dat Ba Nguyen, Son Huu Hoang, Son Bao Pham, and Thai Phuong Nguyen, Named Entity Recognition for Vietnamese, The 2nd Asian Conference on Intelligent Information and Database Systems, 2010. [5] T. Nguyễn, T. Oanh, P. Hieu, H. Thuy, Named Entity Recognition in Vietnamese Free-Text and Web Documents Using Conditional Ramdom Fields, The 8 th Conference on Some selection problems of Information Technology and Telecommunication, Hai Phong, Viet Nam 2005 [6] D. Appelt, An Introduction to information extraction, Artificial Intelligence Communications, 12, 1999 [7] Graham Wilcock, GATE and UIMA in Language Technology Teaching (2007). [8] H. Cunningham, Information extraction: a User Guide (revised version), Research Menorandum CS-99-07, Department of Computer Science, University of Sheffied, May, 1999 [9] [Wei-Bang 2007] Wei-Bang Chen, Chengcui Zhang, Wen-Lin, and Richa Tiwari; MIA: A UIMA-Based Microarray Image Analysis System(2007). [10] Unstructured Information Management Architecture: open.org/committees/download.php/28492/uima-spec-wd-05.pdf. Tài liệu tham khảo Nguyễn Đức Nam A [11] Documentation UIMA: incubating/docs/html/index.html. [12] Apache UIMA and Metadata Generation: [13] UIMA and Semantic Search: ticSearch.html. [14] GATE và các tài liệu tham khảo

Các file đính kèm theo tài liệu này:

  • pdfLuận văn-Nghiên cứu và phát triển các công cụ xử lý tiếng Việt trên UIMA.pdf