3.2.1 Một số hƣớng tiếp cận giải quyết bài toán trích rút thực thể
Hầu hết các phương pháp rút trích quan hệ tiếp cận theo các hướng như dựa trên luật (rule-base), dựa trên đặc trưng (feature-based) và các phương pháp dựa trên hàm nhân (kernel-based). Một số nghiên cứu liên quan như sau:
Các phương pháp dựa trên trên luật, đặc trưng ngôn ngữ chủ yếu dựa vào các kỹ thuật xử lý ngôn ngữ tự nhiên, các qui tắc ngôn ngữ, cú pháp, đặc điểm từ vựng, đặc điểm cú pháp, đặc điểm ngữ nghĩa để xác định các mối quan hệ. Ví dụ hệ thống điển hình là hệ thống KnowItAll của Etzioni [19].
Các phương pháp dựa trên hàm nhân dựa vào các cây phân tích cú pháp, hoặc đồ thị phụ thuộc, hoặc kết hợp cả cây phân tích và đồ thị phụ thuộc để biểu diễn câu. Một số nghiên cứu đển hình như Zelenko và các cộng sự [29] đã tiến hành xây dựng quan hệ kernel trên cây cú pháp. Culotta và Sorensen [2] mở rộng phương pháp hàm nhân dạng cây cú pháp thành hàm nhân đồ thị phụ thuộc.
Đối với văn bản tiểu sử được lấy từ trang web wikipedia tiếng Việt, một số câu chứa thông tin cần trích rút có cấu trúc rõ ràng, đặc biệt sau khi văn bản đã được nhận dạng thực thể. Ch ng hạn như, câu đầu tiên của văn bản thường chứa thông tin về tên người cần quan tâm, ngày sinh, nơi sinh.
Ví dụ: Phạm Văn Quyến sinh ngày 29 tháng 4 năm 1984 tại Hưng Tiến, Hưng Nguyên, Nghệ An.
Sau khi văn bản được nhận dạng thực thể sẽ trở thành:
<per> [Phạm Văn Quyến] </per> [sinh] [ngày] <time> [29] [tháng] [4] [năm 1984] </time> [tại] <loc> [Hưng Tiến] </loc> , <loc> [Hưng Nguyên] </loc> , <loc> [Nghệ An] </loc> .
Nguyễn Cao Cường 37 Luận văn Thạc sỹ
Chúng ta dễ dàng nhận thấy cấu trúc <per> …sinh …<time>...tại… <loc>
cho chúng ta thông tin về ngày sinh, nơi sinh của người cần quan tâm.
Phương pháp trích rút đơn giản ở đây là sử dụng luật và các đặc trưng. Đây cũng là hướng tiếp cận trích rút quan hệ của luận văn. Các luật trích rút sẽ được cụ thể hóa bởi các mẫu và sử dụng biểu thức chính qui. Các đặc trưng được sử dụng bao gồm đặc trưng về thực thểm, ngữ cảnh, từ điển.
3.2.2 Các đặc trƣng đƣợc sử dụng trong trích rút quan hệ
Sau khi văn bản được nhận dạng thực thể, tác giả sử dụng biểu thức chính qui kết hợp với các đặc trưng để tìm ra các thông tin đặc tả về cá nhân có trong văn bản. Các đặc trưng được sử dụng bao gồm:
Đặc trƣng về thực thể: Đặc trưng này kiểm tra có chứa các thực thể cần
quan tâm không. Ví dụ khi tìm nơi sinh thì cần kiểm tra các cặp thực thể người (nhãn <per>) và ngày (nhãn <time>),…
Đặc trƣng về ngữ cảnh: Đặc trưng này kiểm tra xem một từ hoặc cụm từ
xuất hiện ở trước, giữa hay sau các thực thể đang xét đến.
Đặc trƣng về từ điển: Đặc trưng này kiểm tra xem một từ hoặc cụm từ có
thuộc vào một trong từ điển cho trước hay không. Các từ điển được sử dụng trong luận văn bao gồm từ điển về chức vụ, quan hệ gia đình,. . .
3.2.3 Biểu thức chính qui
3.2.3.1 Định nghĩa
Biểu thức chính quy (Regular Expression) [10] là một chuỗi miêu tả một bộ các chuỗi khác, theo những quy tắc cú pháp nhất định. Biểu thức chính quy thường được d ng trong các trình biên tập văn bản và các tiện ích tìm kiếm và xử lý văn bản dựa trên các mẫu được quy định. Nhiều ngôn ngữ lập trình như Java, C#, Perl cũng hỗ trợ biểu thức chính quy trong việc xử lý chuỗi.
Thuật ngữ Regular Expression xuất phát từ lý thuyết toán h c và khoa h c máy tính, nó phản ánh một đặc điểm của các biểu thức toán h c được g i là chính quy (regularity). Một biểu thức có thể được thực hiện trong một phần mềm bằng
Nguyễn Cao Cường 38 Luận văn Thạc sỹ
cách sử dụng một Ôtômát hữu hạn đơn định (Deterministic Finite Automation – DFA). DFA là một trạng thái xác định và không sử dụng cơ chế quay lui (backtracking).
- Nếu sử dụng tốt những kỹ năng về biểu thức chính qui, chúng sẽ đơn giản hơn nhiều trong lập trình và quá trình xử lý văn bản và có những vấn đề sẽ không thể giải quyết được nếu không sử dụng biểu thức chính qui. Chúng ta có thể sẽ cần đến hàng trăm thủ tục để trích xuất tất cả các địa chỉ email từ một số tài liệu, đây có thể nói là một việc làm t nhạt và vất vả. Nhưng với biểu thức chính qui ta chỉ cần một số dòng lệnh hoặc thậm chí một dòng lệnh để làm việc này.
- Tuy nhiên, biểu thức chính qui cũng thường đem đến cho người sử dụng những phiền toái không mong muốn như: sử dụng một biểu thức chính quy không ph hợp với biểu thức muốn tìm, hoặc văn bản tìm được bằng biểu thức chính quy không ph hợp với yêu cầu.
- Biểu thức chính quilà một công cụ mạnh mẽ trong việc thao tác và trích xuất văn bản trên máy tính. Do đó ứng dụng biểu thức chính qui một cách hợp lý sẽ tiết kiệm nhiều thời gian và công sức.
3.2.3.2 Các phép toán trong biểu thức chính qui
Theo tác giả S. Levithan [25] các phép toán trong biểu thức chính qui thường xuyên được sử dụng bao gồm:
Phép “Or”: Một thanh d c sẽ phân tách các thay thế.
Ví dụ: “Nam”|“Nguyễn Nam” thì có thể phù hợp “Nam” hoặc “Nguyễn Nam”.
Phép “Nhóm” (Grouping): Ngoặc đơn “(” d ng để xác định phạm vi và thứ tự của các phép toán.
Ví dụ: kerim|kerem và ker(i|e)m là tương đương nhau. Cả hai đều miêu tả tập “kerim” và “kerem”.
Nguyễn Cao Cường 39 Luận văn Thạc sỹ
Phép xác định số lượng (quantifier): Một quantifier sau một token (ví dụ một kí tự) hoặc một nhóm đặc tả cách mà các thành liền trước cho phép được xảy ra.
Các phép xác định số lượng thường được sử dụng bao gồm:
? Biểu thị rỗng hay một thành phần đứng trước. Ví dụ: “ab?c” tương ứng với cả “ac” và “abc” nhưng không phải “abbc”
* Biểu thị rỗng hay nhiều thành phần đứng trước. Ví dụ: “ab*c” tương ứng với “ac”, “abc”, “abbc”,…
+ Biểu thị một hay nhiều thành phần đứng trước. Ví dụ: “ab+c” tương ứng với “ac”, “abbc”, “abbbc”,… nhưng không phải “ac”.
. Biểu thị 1 kí tự bất kì, ngoại trừ ký tự newline (dòng mới).
3.2.4 Ứng dụng biểu thức chính qui để trích rút quan hệ
Việc sử dụng biểu thức chính qui để trích rút quan hệ dựa trên các mẫu ngữ cảnh chỉ ra quan hệ ngữ nghĩa giữa các thực thể.
Ví dụ:
<per> sinh năm <time> ở <loc>
Tác giả sẽ đưa ra một số mẫu ngữ cảnh và biểu thức chính qui tương ứng để trích rút các quan hệ này.
Tại bước đầu tiên của quan hệ, tác giả sẽ đi xác định tên người cần quan tâm. Đối với các văn bản tiểu sử được lấy từ trang web tiếng Việt wikipedia thì tên người này nằm ở câu đầu tiên của văn bản. Tiếp đó tiến hành chỉnh sửa các nhãn, nhãn <per> d ng để chỉ thực thể người nói đến chính trong văn bản, còn nhãn <per_individual> d ng để chỉ thực thể người không nói đến chính trong văn bản (có thể có quan hệ với thực thể người nói đến chính trong văn bản).
Nguyễn Cao Cường 40 Luận văn Thạc sỹ
3.2.4.1 Trích rút ngày sinh
Thông tin về ngày sinh chính là thực thể thời gian (<time>) có quan hệ với thực thể tên người thỏa mãn mẫu ngữ cảnh sau:.
Các mẫu ngữ cảnh
<per> “sinh” <time>
Ví dụ: <per> [Lê Công Vinh] </per> ( [sinh] [ngày] <time> [10] [tháng] [12] [năm] [1985] </time> )…
<per> (<time> - <time>)
Ví dụ: <per>[Eusébio da Silva Ferreira] (<time>[25] [tháng] [1] [năm] [1942] </time>–<time> [5][ tháng] [1] [năm] [2014]<time>)
<per> (<time>)
Trong đó <time> có định dạng [năm sinh – năm mất] hoặc [năm sinh] – [năm mất]
Ví dụ:
<per> [Trương Văn Bền] </per> ( <time> [1883] - [1956] </time> ) , [quê] [ở] <loc> [Chợ Lớn] ( [Thành phố] [Hồ Chí Minh] ) </loc> , [xuất thân] [từ] [một] [gia đình] [thủ công] .
[Ông vua] [đường thủy] , <per> [Bạch Thái Bưởi] </per> ( <time> [1874- 1932] </time> ) [được] [coi là] [một] [doanh nhân] [kiệt xuất] [của] [đất] <loc> [Việt] </loc> , [biết] [khởi nghiệp] [từ] [hai bàn tay] [trắng] , [có] [ý thức] [dân tộc] .
Biểu thức chính qui:
<per>.*sinh.*<time>
<per>.* +[(]+ <time>
3.2.4.2 Trích rút nơi sinh
Thông tin về nơi sinh chính là thực thể địa điểm (<loc>) có quan hệ với thực thể tên người thỏa mãn mẫu ngữ cảnh sau:
Nguyễn Cao Cường 41 Luận văn Thạc sỹ
Mẫu ngữ cảnh
<per> “sinh”<time> “tại|ở”<loc>
Ví dụ:
<per> [Phạm Thành Lương] </per> ( [sinh] [ngày] [10] [tháng] [9] [năm 1988] [tại] <loc> [Thôn Phù Lưu Hạ] </loc> , [xã] [Phù Lưu] , <loc> [Ứng Hòa] </loc> , <loc> [Hà Tây] </loc> /[nay] [thuộc] <loc> [Hà Nội] </loc>
<per><time>-<time> “tại|ở”<loc>
Ví dụ:
<per>[Eusébio da Silva Ferreira] (<time>[25] [tháng] [1] [năm] [1942] </time>–<time> [5][ tháng] [1] [năm] [2014]<time>) [sinh] [ra] [và] [lớn] [lên] [tại] <loc>[Mozambique]</loc>
Biểu thức chính qui
<per>.*sinh.*<time>.*(tại|ở).*<loc>
<per>.*<time>.*(-).*<time>.*(tại|ở).*<loc>
3.2.4.3 Trích rút ngày mất
Thông tin về ngày mất chính là thực thể thời gian (<time>) có quan hệ với thực thể tên người thỏa mãn mẫu ngữ cảnh sau:.
Mẫu ngữ cảnh
<per> “mất|chết|từ trần|hi sinh”<time>
Ví dụ:
<per>[Eusébio da Silva Ferreira][mất][ngày]<time> [5][ tháng] [1] [năm] [2014]<time>
<per>(<time>-<time>)
Mẫu ngữ cảnh này thực hiện với giả định trong thông tin lược sử, ngày mất thường để cạnh ngày sinh.
Nguyễn Cao Cường 42 Luận văn Thạc sỹ <per>[Eusébio da Silva Ferreira]( <time> [5][ tháng] [1] [năm] [2014]<time>–<time> [5][ tháng] [1] [năm] [2014]<time>)
<per> (<time>)
Trong đó <time> có định dạng [năm sinh – năm mất] hoặc [năm sinh] – [năm mất]
Ví dụ:
<per> [Trương Văn Bền] </per> ( <time> [1883] - [1956] </time> ) , [quê] [ở] <loc> [Chợ Lớn] ( [Thành phố] [Hồ Chí Minh] ) </loc> , [xuất thân] [từ] [một] [gia đình] [thủ công] .
[Ông vua] [đường thủy] , <per> [Bạch Thái Bưởi] </per> ( <time> [1874- 1932] </time> ) [được] [coi là] [một] [doanh nhân] [kiệt xuất] [của] [đất] <loc> [Việt] </loc> , [biết] [khởi nghiệp] [từ] [hai bàn tay] [trắng] , [có] [ý thức] [dân tộc] .
Biểu thức chính qui
<per>.*(mất|chết|từ trần|hi sinh).*<time>
<per>.*[(] <time>.*(-).*<time>
<per>.*<time>,
Đối với biểu thức chính qui thứ 3, sau khi tìm được thời gian sẽ tiến hành kiểm tra thêm điều kiện định dạng thời gian theo dạng [time-time].
Ví dụ: [1933-2001]
3.2.4.4 Trích rút quan hệ gia đình
Thông tin về quan hệ gia đình được trích rút khi chúng ta nhân biết được tên người có quan hệ (bố, mẹ, anh, chị,….) với thực thể tên người cần quan tâm. Hệ thống sẽ trích rút tất cả các quan hệ gia đình được tìm thấy trong văn bản và lưu dưới dạng:
Nguyễn Cao Cường 43 Luận văn Thạc sỹ Ví dụ: Bố của Lê Công Vinh là Lê Công Duệ. Em gái Công Vinh là Lê Khánh Chi
Thì thông tin về quan hệ gia đình sẽ được lưu như sau: Bố là Lê Công Duệ, Em gái là Lê Khánh Chi.
Để trích rút được các thông tin này, tác giả sử dụng các mẫu ngữ cảnh và biểu thức chính qui như sau:
Mẫu ngữ cảnh
X <per> là <per_individual>
X thuộc từ điển về quan hệ gia đình như: bố, mẹ, anh trai, thân phụ, chị gái, con trai, con gái…
Ví dụ:
[Bố] [của] <per> [Vinh] [là] <per_individual> [Lê Công Duệ] </per_individual>.
<per> X là <per_individual> X thuộc từ điển về quan hệ gia đình.
Nhãn <per_individual> chỉ đây là tên thực thể người không tr ng với tên thực thể chính được đề cập trong văn bản.
Ví dụ:
<per>[Pele]</per> [là] [anh trai] [của] <per_individual> [Kwame Ayew] </per_individual> [và] [là] [cha] [của] <<per_individual>> [Andre Ayew] </per_individual>.
Biểu thức chính qui
<per>.* X .*là.*<per_individual>
X .*<per>.*là.*<per_individual>
X thuộc từ điển về quan hệ gia đình như: bố, mẹ, anh trai, thân phụ, chị gái, con trai, con gái.
Nguyễn Cao Cường 44 Luận văn Thạc sỹ
3.2.4.5 Trích rút thông tin về công việc
Thông tin về công việc chính là thực thể tổ chức (<org>) có quan hệ với thực thể tên người. Quan hệ ở đây được hiểu là các từ chỉ ra rằng một người làm cho một tổ chức. Trường công việc được định nghĩa như sau:
Công việc = từ chỉ chức vụ, công việc + tên tổ chức
Ví dụ: Công Vinh hiện đang thi đấu cho câu lạc bộ SLNA.
Khi đó hệ thống sẽ trích rút ra trường công việc là: thi đấu, câu lạc bộ SLNA. Mẫu ngữ cảnh và biểu thức chính qui để trích rút thông tin về công việc như sau:
Mẫu ngữ cảnh
<per> Y<org>
Y là từ nằm trong từ điển chức vụ hoặc các động từ chỉ làm việc như: huấn luyện viên, huấn luyện viên trưởng, đá cho, thi đấu, khoác áo, chuyển sang,…
Ví dụ:
<per> [Vinh] <per> [là] [cầu thủ] [đội trưởng] [của] <org> [câu lạc bộ] [bóng đá] [Hà Nội] </org>
Biểu thức chính qui
<per>.* Y.*<org>
Y là từ nằm trong từ điển chức vụ hoặc các động từ chỉ làm việc như: huấn luyện viên, huấn luyện viên trưởng, đá cho, thi đấu, khoác áo, chuyển sang,…
Nguyễn Cao Cường 45 Luận văn Thạc sỹ
CHƢƠNG 4: THIẾT KẾ VÀ XÂY DỰNG CHƢƠNG TRÌNH
Hệ thống trích rút thông tin cá nhân được xây dựng dựa trên kiến trúc của hệ thống trích rút thông tin đã trình bày ở mục 2.1.2, chương 2.
4.1 Kiến trúc của hệ thống
Kiến trúc của hệ thống trích rút thông tin cá nhân từ trang web tiếng Việt Wikipedia như sau:
Hình 4-1: Kiến trúc hệ thống trích rút thông tin cá nhân
Phần dưới đây sẽ trình bày cụ thể từng module trong thiết kế Quản lý tin thông tin
cá nhân Trích rút thực thể Văn bản đầu vào
Tiền xử lý
Trích rút quan hệ Hậu xử lý
Nguyễn Cao Cường 46 Luận văn Thạc sỹ
4.2 Tiền xử lý
Do phần mềm tiền xử lý trong văn bản tiếng Việt (tách câu, tách từ, gán nhãn từ loại, phân cụm) đã đạt được độ chính xác khá cao (> 93%), nên luận văn sử dụng lại các công cụ sẵn là vnTagger của tác giả Lê Hồng Phương [12].
Ví dụ: Đoạn văn bản đầu vào:
Phạm Thành Lương (sinh ngày 10 tháng 9 năm 1988 tại Thôn Phù Lưu Hạ, xã Phù Lưu, Ứng Hòa, Hà Tây, nay thuộc Hà Nội) là một cầu thủ bóng đá Việt Nam. Anh là cầu thủ đội trưởng của câu lạc bộ bóng đá Hà Nội, thành viên của đội tuyển bóng đá quốc gia Việt Nam và từng là đội trưởng đội tuyển bóng đá U-23 quốc gia Việt Nam.
Sẽ được tiền xử lý như sau:
[Phạm Thành Lương] ( [sinh] [ngày] [10] [tháng] [9] [năm 1988] [tại] [Thôn Phù Lưu Hạ] , [xã] [Phù Lưu] , [Ứng Hòa] , [Hà Tây] , [nay] [thuộc] [Hà Nội] ) [là] [một] [cầu thủ] [bóng đá] [Việt Nam] . Anh] [là] [cầu thủ] [đội trưởng] [của] [câu lạc bộ] [bóng đá] [Hà Nội] , [thành viên] [của] [đội tuyển] [bóng đá] [quốc gia] [Việt Nam] [và] [từng] [là] [đội trưởng] [đội tuyển] [bóng đá] [U-23] [quốc gia] [Việt Nam] .
4.3 Bộ trích rút thực thể dựa trên mô hình CRF
Mô hình xây dựng bộ dò tìm thực thể dựa trên phương pháp h c máy trong luận văn được mô tả dưới đây:
Dữ liệu huấn luyện
Huấn luyện sử dụng CRFs
Mô hình M
Văn bản đầu vào chưa gán nhãn
Nguyễn Cao Cường 47 Luận văn Thạc sỹ
Hình 4-2: Trích rút thực thể sử dụng CRF
Dữ liệu huấn luyện là tập D = {(x(i), y(i))}i=1,M, với x(i) là một chuỗi quan sát (một câu) và y(i) là chuỗi nhãn tương ứng với câu đó. Module “huấn luyện sử dụng CRFs” là module sử dụng dữ liệu đầu vào, trích ch n ra các thuộc tính quan tr ng, và xây dựng nên mô hình M phục vụ bài toán trích rút (Xem thêm phương pháp ước lượng các tham số cho mô hình CRF được trình bày ở mục 3.1.2). Các đặc trưng cho quá trình h c máy được trình bày ở mục 4.4.
Văn bản đầu ra sẽ được gán nhãn 4 loại thực thể: Tên người (nhãn <per>), địa điểm (nhãn <loc>, tổ chức (nhãn <org>) và thời gian (nhãn <time>) và nhãn O – không thuộc một trong bốn loại trên.
4.4 Các đặc trƣng cho quá trình học máy
Sau đây là các đặc trưng được sử dụng cho quá trình h c máy để trích rút thực thể. Ý nghĩa của số i ở các bảng dưới đây như sau:
+ Nếu i = 0: từ đang xét.
+ Nếu i <0: từ được đề cập đến ở trước từ đang xét |i| vị trí. + Nếu i > 0: từ được đề cập đến ở sau từ đang xét i vị trí
4.4.1 Đặc trƣng ngữ cảnh
Đặc trưng ngữ cảnh kiểm tra các thông tin ngữ cảnh của một từ. Các ngữ cảnh của từ là các từ bao quanh nó.
Bảng 4-1: Mẫu ngữ cảnh về từ vựng:
Mẫu ngữ cảnh Ý nghĩa
word_conj:0 Dữ liệu quan sát được tại vị trí hiện tại. word_conj:i
(i =1, 2, 3)
Ngữ cảnh được đề cập tới là từ ở vị trí i ngay sau từ đang xét.
word_conj:i (i =-1, -2, -3)
Nguyễn Cao Cường 48 Luận văn Thạc sỹ
word_conj: i: (i+1) (i= -3, -2, -1, 0, 1, 2)
Ngữ cảnh được đề cập là hai từ liền nhau, từ ở trước (nếu i <0) hoặc ở sau (i >0) so với từ đang xét (i=0).
word_conj: i: i+1:i+2 (i= -3, -2, -1, 0, 1)
Ngữ cảnh được đề cập là ba từ liền nhau, từ ở trước (nếu i <0) hoặc ở sau (i >0) so với từ đang xét (i=0).
Ví dụ, nếu ta có đoạn văn bản “[công ty] [VNPT]” , thì ngữ cảnh của từ “VNPT” bao gồm từ “công ty”. p dụng nguyên mẫy trên tại vị trí 1 ta được ngữ cảnh w:0:VNPT. Giả sử trong chuỗi dữ liệu trên được gán nhãn I_Org, kết hợp với ngữ cảnh ta có thể rút ra được thuộc tính của chuỗi quan sát là:
gk ={
Khi áp dụng ngữ cảnh này vào một từ ở một vị trí nào đó, ta sẽ nhận được giá trị 1 nếu từ đang xét có ngữ cảnh này và bằng 0 nếu ngược lại. Việc chúng ta tạo ra các đặc trưng có thể cho một từ tố nào đó thực chất chính là việc liệt kê các đặc trưng mà từ tố đáp ứng được (đặc trưng nhận giá trị 1).
4.4.2 Đặc trƣng từ điển
Đặc trƣng từ điển: Đặc trưng từ điển kiểm tra xem một từ tố hay một ngữ cảnh của từ tố có thuộc vào một trong từ điển cho trước hay không. Các từ điển