Các công trình liên quan

Một phần của tài liệu phát hiện các quan hệ từ csdl text (Trang 41 - 57)

Trong cuốn luận văn này trình bày một thuật toán phát hiện quan hệ nguyên nhân - kết quả được xây dựng dựa trên sự kết hợp và cải tiến một số giải pháp trong các công trình nghiên cứu về các quan hệ ngữ nghĩa trước đây :

1.Corina Roxana Girju , University of texas at Dallas. Luận văn tiến sĩText mining for semantic relationbảo vệ năm 2002.

Trong cuốn luận văn của mình, tác giả đưa ra một thuật toán tỡm cỏc động từ thể hiện quan hệ nguyờn nhõn-kết quả và các động từ thể hiện quan hệ tổng thể-bộ phận. Do đi sâu nghiên cứu ngôn ngữ tự nhiên nên tác giả chủ yếu tập trung vào việc tìm kiếm các động từ chỉ nguyên nhân và đánh giá mức độ quan trọng của các động từ này thể hiện trong ngôn ngữ tự nhiên dựa vào tần suất xuất hiện của chúng trong một tập lớn các văn bản.

2.Vũ Bội Hằng , Đại học công nghệ . Luận văn thạc sĩ Phát hiện các quan hệ trong cơ sở dữ liệu Text”, bảo vệ năm 2005.

Thuật toán trong cuốn luận văn thạc sĩ là một cải tiến của thuật toán được trình bày trong luận văn của tiến sỹ Corina Roxana Girju. Thuật toán phát hiện ra các cặp danh từ chỉ quan hệ nguyờn nhõn-kết quả dựa trên tần suất xuất hiện của chúng trong các tài liệu văn bản.

Trong luận văn này trình bày một thuật toán phát hiện các cặp danh từ nguyên nhân - kết quả dựa trên sự phát triển thuật toán trong luận văn của Thạc sĩ Vũ Bội Hằng. Đó là, thuật toán đã sử dụng tần suất xuất hiện và trọng số của các động từ chỉ nguyên nhân (mức độ quan trọng thể hiện ý nghĩa chỉ nguyên nhân) để phát hiện ra các cặp danh từ nguyên nhân - kết quả trong các tài liệu văn bản.

2.5.2. Thuật toán phát hiện quan hệ nguyên nhân - kết quả

Trong thuật toán này, chỉ quan tâm đến cấu trúc nhân quả tường minh thể hiện ở động từ chỉ nguyên nhân, các quan hệ này có thể biểu diễn dưới dạng sau: <NP1 -

động từ – NP2>

Thủ tục tìm kiếm dựa trên một danh sách các động từ chỉ nguyên nhân (lấy ra từ WordNet) đã được gán trọng số từ trước để tìm ra các cặp danh từ nguyờn nhõn-kết quả trong câu.

Công thức tính trọng số của cặp danh từ như sau :

Gọi wv và fv theo thứ tự là trọng số và tần suất xuất hiện của động từ, wnp là trọng số của cặp danh từ thì ta có :

N : là tổng số động từ trong CSDL. wvi : là trọng số của động từ i.

fvi : là tần suất xuất hiện của động từ i.

Thủ tục : Thủ tục phát hiện cặp danh từ nguyên nhân - kết quả. Khái quát thuật toán:

Input: Danh sách các động từ chỉ nguyên nhân có trọng số.

Output: Danh sách các cặp quan hệ nhân-quả có dạng (NP1, NP2)

BƯỚC 1:

Với mỗi văn bản Di trong tập dữ liệu. Chọn ra cỏc cõu cú cấu trúc <NP1-động từ-NP2> từ các văn bản.

BƯỚC 2:

So sánh động từ trong cõu đó chọn với các động từ chỉ nguyên nhân ở trong bảng các động từ trong CSDL. Nếu động từ này trùng với một trong các động từ chỉ nguyên nhân trong tập Vở trên thỡ xột cặp (NP1, NP2):

- Nếu cặp danh từ này đó cú trong cơ sở dữ liệu thỡ tớnh trọng số của cặp danh từ dựa trên tần suất xuất hiện và trọng số của động từ chỉ nguyên nhân.

- Nếu cặp danh từ này chưa tồn tại trong cơ sở dữ liệu : + Thêm mới nó vào cơ sở dữ liệu.

+ Gán cho quan hệ nguyên nhân - kết quả mới với trọng số bằng trọng số của động từ chỉ nguyên nhân.

BƯỚC 3:

Lặp lại bước hai với tất cả cỏc cõu cú dạng <NP1- động từ- NP2> trong văn bản đó.

BƯỚC 4 :

Quay trở lại thực hiện bước 1 với mỗi văn bản trong tập dữ liệu.

BƯỚC 5:

Sắp xếp các cặp (NP1, NP2) thu đuợc theo thứ tự giảm dần của trọng số.

BƯỚC 6:

Chọn ra m cặp đầu tiên trong cơ sở dữ liệu. Đó là những cặp quan hệ nguyên nhân - kết quả cần tìm.

Chi tiết thuật toán:

In put: V là tập chứa các động từ chỉ nguyên nhân có trọng số.

Out put:O là một tập gồm các cặpthể hiện quan hệ nhân-quả có dạng (NP1, NP2).

1. C := Φ là tập hợp sẽ chứa các cặp (NP1, NP2, wnp) với NP1, NP2 là các danh từ chỉ nguyên nhân và kết quả, wnp và lần lượt là trọng số của cặp danh từ đó.

2. Formỗi văn bản Di trong CSDL {

2.1 Formỗi câu Sj trong văn bản Di . {

2.1.1 If Sj là cõu cú dạng <danh từ 1- động từ - danh từ 2 >

2.1.1.1 Tách ra cặp (NP1, NP2) với NP1= danh từ 1 và NP2= danh từ 2;

2.1.1.2 Gán v:= động từ;

2.1.1.3 If v đó cú trong trong V

2.1.1.3.1 If (NP1, NP2) đã có trong C : wnp := wnp + wv;

/* trong đó : wv là trọng số của động từ chỉ nguyên nhân tương ứng trong quan hệ đó. */

C:= C U (NP1, NP2, wnp);

Gán C:= C U (NP1, NP2, 1, wv);

} }

3. Sắp xếp tập C theo thứ tự giảm dần của tần suất xuất hiện.

5. Chọn ra n cặp quan hệ đầu tiên trong C làm kết quả trả về trong tập O.

2.6.Kết luận chương 2

Các quan hệ ngữ nghĩa trong cơ sở tri thức ngữ nghĩa từ vựng là hết sức phong phú đa dạng và các quan hệ ngữ nghĩa giữa nhiều đoạn văn bản khác nhau có thể khẳng định tính mạch lạc của các tài liệu văn bản đó. Quan hệ nguyên nhân - kết quả là một trong những quan hệ ngữ nghĩa quan trọng và được sử dụng rất phổ biến trong ngôn ngữ của con người. Việc phát hiện ra các quan hệ này trong các tài liệu văn bản đem lại những tri thức mới mẻ, thú vị và góp phần xây dựng nhiều ứng dụng quan trọng nhưng cũng đòi hỏi thời gian và cỏc công đoạn rất phức tạp.Vỡ thế trong chương này chỉ trình bày một thuật toán áp dụng trong các nhằm phát hiện ra các cặp nguyên nhân - kết quả trong các quan hệ nguyên nhân - kết quả tường minh từ một tập hợp lớn các tài liệu văn bản. Trong chương tiếp theo sẽ trình bày cụ thể về chương trình cài đặt thử nghiệm cho thuật toán và đỏnh giá kết quả thực nghiệm của thuật toán này.

CHƯƠNG 3 : KẾT QUẢ THỬ NGHIỆM THUẬT TOÁN

3.1. Giới thiệu

Chương trình thử nghiệm cài đặt cho thuật toán khai phá dữ liệu phát hiện quan hệ nguyên nhân - kết quả trong văn bản được viết bằng ngôn ngữ Java và kết nối với cơ sở dữ liệu Microsoft Access. Chương trình chạy trên máy tính IBM Pentium 3, CPU 1.13 GHz, 128 Mb RAM.

Chương trình được viết dựa trên mã nguồn của thạc sĩ Vũ Bội Hằng. Dữ liệu sử dụng để thử nghiệm cho thuật toán là một corpus được trích ra từ ngân hàng dữ liệu Penn TreeBank II (http://www.cis.upenn.edu/~treebank). Ngân hàng dữ liệu này bao gồm khoảng 1 triệu câu đã được phân tích cú pháp sẵn, được lấy từ tạp chí Wall Street Journal xuất bản năm 1989.

3.2. Mô tả dữ liệu

Dữ liệu Penn Tree Bank nằm trong 451 file. Mỗi file chứa một tập hợp cỏc cõu đó được đánh dấu cú pháp sẵn theo định dạng của Penn Tree Bank như một câu ví dụ trong hình vẽ sau.

Hình 3 [28] : Một ví dụ về câu theo định dạng của Pen Tree Bank.

Các ký hiệu của một câu được đưa ra bằng cách sử dụng phương pháp biểu diễn theo các cột phân cách nhau bằng các dấu cách. Mỗi cột mó hoỏ một chú thích bằng cách kết hợp một thẻ đánh dấu tương ứng với mỗi từ. Với mỗi câu sẽ có những cột sau:

1. Words. (Các từ)

2. Part of speech tags. (Các thẻ Từ loại)

3. Chunks in IOB2 format. (Các đoạn trong định dạng IOB2)

4. Clauses in Start-End format. (Các mệnh đề trong định dạng Start-End) 5. Named Entities in IOB2 format. (Các thực thể )

Words: chứa danh sách các từ đơn của câu.

Part of speech tags : biểu diễn từ loại của từng từ đơn tương ứng trong cột

Word. Một số định dạng từ loại như sau:

CC: từ nối. CD: từ chỉ số lượng. DT: mạo từ. JJ: tính từ. JJR: tính từ so sánh hơn. JJS: tính từ so sánh bậc nhất. NN: danh từ đơn. NNS: danh từ số nhiều. NNP: danh từ riêng số ít.

NNPS: danh từ riêng số nhiều.

RB: trạng từ.

RBR: trạng từ so sánh hơn.

RBS: trạng từ so sánh bậc nhất.

VB: động từ, dạng nguyên thể.

VBD: động từ, dạng quá khứ.

VBG: động từ, dạng tiếp diễn hoặc danh động từ.

Định dạng IOB2:Biểu diễn các đoạn nối tiếp, không chồng chéo và cũng

không gắn (embed) vào nhau. Các từ không thuộc đoạn nào thì nhận giá trị thẻ bằng O. Các từ cấu tạo một đoạn kiểu k thì từ đầu tiên nhận thẻ B-k (Begin), và các từ còn

lại nhận thẻ I-k(Inside).

Ví dụ như câu trong hình vẽ trên, cụm từ “The San Francisco Examiner” nằm trong đoạn kiểu NP (NP - cụm danh từ), từ đầu tiên “The” sẽ nhận thẻ B-NP, các từ tiếp theo “San”, “Francisco”, và “Examiner” nhận thẻ I-NP.

Một số ký hiệu hay sử dụng của định dạng IOB2:

ADJP : cụm tính từ (adjective phrase)

ADV : trạng từ (adverb)

ART : mạo từ (article)

N : danh từ (noun)

NP : cụm danh từ (noun phrase)

S : câu (sentence)

V : động từ (verb)

VP : cụm động từ (verb phrase)

Định dạng Start-End : Biểu diễn các cụm từ (các mệnh đề hoặc đối số) không chồng chộo lờn nhau (non-overlaping), cụm từ có thể được chứa (embeded) bên trong một cụm từ khác (nhưng các đối số (argument) trong dữ liệu thì không được embed). Mỗi thẻ biểu diễn mở đầu và kết thúc của một cụm từ, nó cú dạng STARTS*ENDS. Thẻ START có dạng (k, nó biểu diễn vị trí bắt đầu của một cụm từ của kiểu k. Thẻ END có dạng k), biểu diễn vị trí kết thúc của cụm từ kiểu k. Ví dụ, thẻ * biểu diễn một từ mà không phải là từ bắt đầu hay kết thúc của một cụm từ; thẻ (A0*A0) biểu diễn một từ cấu tạo nên đối số A0; thẻ (S (S*S) biểu diễn một từ cấu tạo nên một mệnh đề cơ sở (nhãn S) và bắt đầu một mệnh đề mức cao hơn. Cuối cùng, ghép nối tất cả các thẻ sẽ tạo cấu tạo nên cấu trúc dấu ngoặc đơn. Đối với mỗi trường hợp cụ thể phân tách các đối số kiểu k, thành phần đầu tiên xuất hiện như là một cụm từ với nhãn k, và các phần còn lại xuất hiện như các cụm từ với nhãn C-k (tiền tố continuation).

3.3. Xây dựng chương trình

Chương trình thử nghiệm cài đặt thử nghiệm cho thuật toán phát hiện quan hệ nguyên nhân - kết quả chạy trên tập dữ liệu đã được phân tích cú pháp sẵn của Penn TreeBank như đã mô tả ở trên.

Các động từ chỉ nguyên nhân sử dụng cho chương trình là các động từ chỉ nguyên nhân được lấy ra từ WordNet 2.1 (http://wordnet.princeton.edu/).

S TT

Động từ

2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 . .. Induce Produce Generate Effect Bring about Provoke Arouse Elicit Lead (to) Trigger Derive (from) Stem(from) Originate Bring forth Lead up Trigger off Bring on Result(from) Start Make Begin Rise ...

WordNet [22] là từ điển từ vựng trực tuyến bằng tiếng Anh lớn nhất có sẵn và miễn phí. Nó được phát triển bởi các nhà biên soạn từ điển của trường đại học

Princeton ( http://www.princeton.edu/main/) và là một cơ sở tri thức từ vựng đa năng chứa các từ và các quan hệ thường sử dụng nhất trong tiếng Anh (chứa hơn 100,000 khái niệm biểu diễn các danh từ, động từ, tính từ... liên kết với nhau bởi 17 quan hệ ngữ nghĩa). Hệ thống này đã và đang được sử dụng bởi nhiều nhóm nghiên cứu có liên quan.

Chương trỡnh cú cấu trúc như sau :

Chương trình bao gồm hơn 1000 dòng lệnh với các file như sau: - Lớp Application1: Phối hợp các lớp và chạy chương trình. - Lớp ConnectDBClass: chứa các thủ tục để kết nối vào CSDL.

- Lớp ConvertFileClass: chứa các thủ tục để chuyển từ định dạng dữ liệu gốc của Pern Tree Bank [13] thành định dạng có thể xử lý được.

- Lớp ReadFileClass: chứa các thủ tục đọc file phân tích cõu, tỏch động từ, danh từ để cho vào CSDL.

Cụ thể các lớp như sau :  Lớp Application1 :

public class Application1{

public static void InsertCauseEffect();

// hàm lấy ra các cặp danh từ và động từ tương ứng, insert vào CSDL

public static void InsertCEfolder();

//lấy đường dẫn đến thư mục chứa dữ liệu huấn luyện

public static void main();

// thủ tục chính để chạy chương trình. ...

}

 Lớp ConnectDBClass :

public void connect();

// hàm mở kết nối CSDL

public void closeconnect();

// hàm đóng kết nối tới CSDL

public void insertcauseeffect();

//hàm tính trọng số và insert cặp danh từ nhân quả vào CSDL

public boolean iscauseeffectin();

//trả về true nếu cặp danh từ đã có trong CSDL

public boolean isverbin();

//trả về giá trị true nếu động từ đã tồn tại trong CSDL ...

}

 Lớp ReadFileClass :

public class ReadFileClass{

public void OpenFile();

//hàm mở file

public void CloseFile();

//hàm đóng file

public String GetNounVerbSet();

/* phân tích câu và trả về câu theo định dạng : “Danh từ 1, Danh từ 2,... Danh từ n.Động từ 1, Động từ 2,... Động từ n.” */

}

 Lớp ConvertFileClass:

public class ConvertFileclass {

}

3.4. Kết quả thử nghiệm

Bảng các cặp danh từ nguyên nhân - kết quả sau khi tính trọng số :

3.5. Nhận xét

Bảng kết quả cho thấy với những cặp có tần suất xuất hiện lớn thì tỉ lệ phần trăm các cặp mang ý nghĩa nguyờn nhõn-kết quả càng cao

Tỉ lệ chính xác vẫn chưa cao nhưng kết quả đạt được đã cho thấy có thể dựa vào thuật toán để tìm ra những cặp danh từ (hoặc cụm danh từ) có quan hệ ngữ nghĩa nguyờn nhõn-kết quả.

3.6. Kết luận chương 3

Chương này là kết quả cài đặt thử nghiệm của thuật toán được trình bày ở chương 2. Chương trình cài đặt viết bằng ngôn ngữ Java, chạy trên ngân hàng dữ liệu đã được phân tích cú pháp sẵn Penn Tree Bank. Sử dụng các động từ chỉ nguyên nhân được lấy ra từ từ điển ngữ nghĩa WordNet 2.1, chương trình đã chạy và cho một số kết quả ban đầu : đã phát hiện được các cặp danh từ nguyên nhân - kết quả từ CSDL, các cặp danh từ sắp xếp theo trọng số của quan hệ nguyên nhân - kết quả đó. Chương trình đã tìm thấy ? cặp danh từ (hay cụm danh từ). Trong số các cặp có tần suất xuất hiện >= 4 có ? % là các cặp mang ý nghĩa nguyờn nhõn-kết quả.

KẾT LUẬN

Như vậy, kết quả thực nghiệm của thuật toán đã phát hiện ra những cặp danh từ (hay cụm danh từ) mang ý nghĩa nguyờn nhõn-kết quả trong số các cặp danh từ xuất hiện trong các tài liệu văn bản. Những thông tin tìm được của thuật toán sẽ là các thông tin rất hữu ích trong nhiều ứng dụng khác nhau như xây dựng Ontology cho Semantic Web hay các ứng dụng khác của Semantic Web, xây dựng máy tìm kiếm để thực hiện trả lời câu hỏi Who, What, When, Where, Why…

Thuật toán dùng trọng số của các cặp danh từ để đánh giá mức độ thể hiện ý nghĩa nguyên nhân, kết quả của các cặp danh từ (hay cụm danh từ) trong văn bản. Trong đó chỉ đưa ra một cách đánh trọng số cho cặp danh từ này theo chủ quan dựa trên tần suất xuất hiện và trọng số của cặp danh từ, ngoài ra còn có rất nhiều cỏch tớnh khác nhau có thể đưa ra mức độ chính xác cao hơn...

Phát hiện các quan hệ trong CSDL Text là một bài toán hay và còn khá mới mẻ, đồng thời cũng rất khú vỡ nó liên quan đến lĩnh vực ngôn ngữ học. Bài toán có thể nghiên cứu và ứng dụng trong rất nhiều lĩnh vực mở rộng khác nhau, ngay trong luận văn này, tôi cũng chỉ tập trung vào mối quan hệ nguyên nhân - kết quả do giới hạn về

Một phần của tài liệu phát hiện các quan hệ từ csdl text (Trang 41 - 57)