code tách câu, tách từ

53
Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản MỤC LỤC LỜI MỞ ĐẦU...............................................-2- CHƯƠNG 1-KHÁI QUÁT BÀI TOÁN TÓM TẮT VĂN BẢN................. -3- 1.1. Tổng quan về bài toán:.............................- 3 - 1.2. Bài toán tóm tắt văn bản tự động:....................- 3 - CHƯƠNG 2- CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ PHÁT TRIỂN ĐỀ TÀI........ -9- 2.1. Giới thiệu về ngôn ngữ C#:.........................- 9 - 2.2. Giới thiệu về Access :............................- 10 - CHƯƠNG 3 : CÁC HƯỚNG TIẾP CẬN TÁCH TỪ...................... - 13 - 3.1. Các hướng tiếp cận dựa trên từ:....................- 13 - 3.2. Các hướng tiếp cận dựa trên ký tự...................- 14 - 3.3. Một số phương pháp tách từ tiếng việt hiện nay.......- 14 - 3.4. Kết luận........................................- 18 - CHƯƠNG 4: TÓM TẮT VĂN BẢN DỰA TRÊN PHƯƠNG PHÁP KHÔNG GIÁM SÁT……....................................................... ............................................................ ......-20- 4.1. Hướng tiếp cận của bài toán tóm tắt văn bản:........- 20 - 4.2. Đánh giá kết quả tóm tắt:.........................- 21 - 4.3. Tóm tắt văn bản bằng phương pháp không giám sát:.....- 23 - CHƯƠNG 5 - DEMO CHƯƠNG TRÌNH............................. - 25 - 5.1 Giao diện chương trình:...........................- 25 - 5.2. Thực nghiệm chương trình:........................- 31 - 5.3. Code chương trình................................- 33 - CHƯƠNG 6 - KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.................... - 39 - Báo cáo kết thúc môn Máy Học 1

description

code

Transcript of code tách câu, tách từ

Page 1: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

MỤC LỤC

LỜI MỞ ĐẦU.................................................................................................................- 2 -

CHƯƠNG 1-KHÁI QUÁT BÀI TOÁN TÓM TẮT VĂN BẢN...............................- 3 -

1.1. Tổng quan về bài toán:.....................................................................................- 3 -

1.2. Bài toán tóm tắt văn bản tự động:.....................................................................- 3 -

CHƯƠNG 2- CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ PHÁT TRIỂN ĐỀ TÀI.........- 9 -

2.1. Giới thiệu về ngôn ngữ C#:.................................................................................- 9 -

2.2. Giới thiệu về Access :........................................................................................- 10 -

CHƯƠNG 3 : CÁC HƯỚNG TIẾP CẬN TÁCH TỪ..............................................- 13 -

3.1. Các hướng tiếp cận dựa trên từ:.........................................................................- 13 -

3.2. Các hướng tiếp cận dựa trên ký tự.....................................................................- 14 -

3.3. Một số phương pháp tách từ tiếng việt hiện nay................................................- 14 -

3.4. Kết luận............................................................................................................. - 18 -

CHƯƠNG 4: TÓM TẮT VĂN BẢN DỰA TRÊN PHƯƠNG PHÁP KHÔNG GIÁM SÁT…….........................................................................................................................-20-

4.1. Hướng tiếp cận của bài toán tóm tắt văn bản:...................................................- 20 -

4.2. Đánh giá kết quả tóm tắt:...................................................................................- 21 -

4.3. Tóm tắt văn bản bằng phương pháp không giám sát:.........................................- 23 -

CHƯƠNG 5 - DEMO CHƯƠNG TRÌNH................................................................- 25 -

5.1 Giao diện chương trình:......................................................................................- 25 -

5.2. Thực nghiệm chương trình:...............................................................................- 31 -

5.3. Code chương trình.............................................................................................- 33 -

CHƯƠNG 6 - KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN........................................- 39 -

6.1. Kết luận :........................................................................................................... - 39 -

6.2. Hướng phát triển:............................................................................................... - 39 -

TÀI LIỆU THAM KHẢO.............................................................................................- 40 -

Báo cáo kết thúc môn Máy Học 1

Page 2: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

LỜI MỞ ĐẦU

Mặc dù sự gia tăng nhanh chóng của lượng thông tin trên Internet chỉ bắt đầu từ thập kỷ cuối của thế kỷ trước, nhưng các phương pháp cho việc xử lý thông tin văn bản như : tóm tắt, trích rút thông tin, phân loại, đánh chỉ số văn bản,…đã bắt đầu từ những năm 59,60. Tóm tắt văn bản hiện nay vẫn thu hút được nhiều sự quan tâm của các nhà nghiên cứu, các hội thảo chuyên đề tóm tắt văn bản được tổ chức hàng năm (DUC) luôn đề cập tới vấn đề tìm phương pháp xử lý tóm tắt văn bản một cách tốt nhất.

Những nghiên cứu sớm nhất về tóm tắt văn bản đều sử dụng phương pháp trích rút câu dựa trên đặc trưng về từ và tần suất nhóm từ ( Luhn, 1958), vị trí của câu trong văn bản ( Baxendale,1958) và nhóm từ quan trọng ( Edmundson, 1969). Xác định độ quan trọng của từ dựa trên mô hình tần suất tf*idf là một trong những phương pháp chủ yếu hiện nay.

Một trong những vấn đề thách thức và được sự quan tâm trong những năm gần đây

đối với bài toán tóm tắt văn bản tự động đó là đưa ra kết quả tóm tắt cho một tập văn bản

liên quan với nhau về mặt nội dung hay còn gọi là tóm tắt văn bản tiếng Việt.

Bài toán tóm tắt văn bản tiếng Việt được xác định là một bài toán có độ phức

tạp cao. Đa số mọi người nghĩ rằng, tóm tắt văn bản chỉ là việc áp dụng tóm tắt văn bản

cho văn bản cho trước. Tuy nhiên điều đó là hoàn toàn không chính xác, thách thức lớn

nhất của vấn đề tóm tắt văn là do dữ liệu đầu vào có thể có sự nhập nhằng ngữ nghĩa giữa

nội dung trong một văn bản này, vì vậy để đưa ra một kết quả tóm tắt tốt sẽ vô cùng khó

khăn [EWK].

Với việc lựa chọn đề tài “Tóm tắt văn bản tiếng Việt dựa phương pháp không

giám sát”, chúng em tập trung vào việc nghiên cứu, khảo sát, đánh giá và đề xuất ra một

phương pháp tóm tắt văn bản phù hợp với ngôn ngữ tiếng Việt. Sau đây chúng em sẽ

trình bày cụ thể, chi tiết hướng phân tích và phát triển đề tài. Qua đó rút ra kết luận và

hướng phát triển của đề tài.

Báo cáo kết thúc môn Máy Học 2

Page 3: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

CHƯƠNG 1-KHÁI QUÁT BÀI TOÁN TÓM TẮT VĂN BẢN

1.1. Tổng quan về bài toán:

Yêu cầu của đề tài: Tóm tắt văn bản tiếng Việt bằng phương pháp không giám sát.

Trong đề tài này chúng em đã tìm hiểu thuật toán của phương pháp không giám sát và áp

dụng thuật toán vào việc tóm tắt văn bản dựa trên môi trường C#.

1.2. Bài toán tóm tắt văn bản tự động:

Theo Inderjeet Mani, mục đích của tóm tắt văn bản tự động là: “Tóm tắt văn bản tự động

nhằm mục đích trích xuất nội dung từ một nguồn thông tin và trình bày các nội dung

quan trọng nhất cho người sử dụng theo một khuôn dạng súc tích và gây cảm xúc đối với

người sử dụng hoặc một chương trình cần đến”.

Việc đưa ra được một văn bản kết quả tóm tắt có chất lượng như là văn bản do con

người làm ra mà không bị giới hạn bởi miền ứng dụng là được xác định là cực kỳ khó

khăn. Vì vậy, các bài toán được giải quyết trong tóm tắt văn bản thường chỉ hướng đến

một kiểu văn bản cụ thể hoặc một kiểu tóm tắt cụ thể.

2.1. Một số khái niệm của bài toán tóm tắt và phân loại tóm tắt:

2.1.1. Một số khái niệm:

- Tỷ lệ nén(Compression Rate): là độ đo thể hiện bao nhiêu thông tin được cô đọng

trong văn bản tóm tắt được tính bằng công thức:

SourceLength

CompressionRate =

SummaryLength

SummaryLength: Độ dài văn bản tóm tắt

Báo cáo kết thúc môn Máy Học 3

Page 4: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

SourceLength: Độ dài văn bản nguồn

- Độ nổi bật hay liên quan(Salience or Relevance): là trọng số được gán cho thông tin

trong văn bản thể hiện độ quan trọng của thông tin đó đối với toàn văn bản hay để chỉ sự

liên quan của thông tin đó đối với chương trình của người sử dụng.

- Sự mạch lạc(coherence): Một văn bản tóm tắt gọi là mạch lạc nếu tất cả các thành

phần nằm trong nó tuân theo một thể thống nhất về mặt nội dung và không có sự trùng

lặp giữa các thành phần.

2.1.2 Phân loại bài toán tóm tắt:

Có nhiều cách phân loại tóm tắt văn bản khác nhau tuy nhiên sự phân loại chỉ

mang tính tương đối, phụ thuộc vào việc tóm tắt trên cơ sở nào. Ở đây, luận văn đề cập

đến phân loại tóm tắt dựa trên 3 cơ sở là: dựa vào định dạng, nội dung đầu vào, dựa vào

định dạng, nội dung đầu ra, dựa vào mục đích tóm tắt.

• Tóm tắt dựa trên cơ sở định dạng, nội dung đầu vào sẽ trả lời cho câu hỏi “Cái gì

sẽ được tóm tắt”. Cách chia này sẽ cho ta nhiều cách phân loại con khác nhau. Cụ thể

như:

- Kiểu văn bản (bài báo, bản tin, thư, báo cáo …). Với cách phân loại này, tóm tắt

văn bản là bài báo sẽ khác với tóm tắt thư, tóm tắt báo cáo khoa học do những đặc trưng

văn bản quy định.

- Định dạng văn bản: dựa vào từng định dạng văn bản khác nhau, tóm tắt cũng

chia ra thành các loại khác nhau như: tóm tắt văn bản không theo khuôn mẫu (free-form)

hay tóm tắt văn bản có cấu trúc. Với văn bản có cấu trúc, tóm tắt văn bản thường sử dụng

một mô hình học dựa vào mẫu cấu trúc đã xây dựng từ trước để tiến hành tóm tắt.

- Số lượng dữ liệu đầu vào: tùy vào số lượng đầu vào của bài toán tóm tắt, người

ta cũng có thể chia tóm tắt ra thành tóm tắt đa văn bản, tóm tắt đơn văn bản. Tóm tắt đơn

văn bản khi đầu vào chỉ là một văn bản đơn, trong khi đó đầu vào của tóm tắt đa văn bản

Báo cáo kết thúc môn Máy Học 4

Page 5: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

là một tập các tài liệu có liên quan đến nhau như: các tin tức có liên quan đến cùng một

sự kiện, các trang web cùng chủ đề hoặc là cụm dữ liệu được trả về từ quá trình phân

cụm.

- Miền dữ liệu: dựa vào miền của dữ liệu như cụ thể về một lĩnh vực nào đó, ví dụ

như: y tế, giáo dục… hay là miền dữ liệu tổng quát, có thể chia tóm tắt ra thành từng loại

tương ứng.

• Tóm tắt trên cơ sở mục đích thực chất là làm rõ cách tóm tắt, mục đích tóm tắt là

gì, tóm tắt phục vụ đối tượng nào ...

- Nếu phụ thuộc vào đối tượng đọc tóm tắt thì tóm tắt cho chuyên gia khác cách

tóm tắt cho các đối tượng đọc thông thường.

- Tóm tắt sử dụng trong tìm kiếm thông tin (IR) sẽ khác với tóm tắt phục vụ cho

việc sắp xếp.

- Dựa trên mục đích tóm tắt, còn có thể chia ra thành tóm tắt chỉ thị (Indicative)

và tóm tắt thông tin (Informative). Tóm tắt chỉ thị (indicative) chỉ ra loại của thông tin, ví

dụ như là loại văn bản chỉ thị “tối mật”. Còn tóm tắt thông tin chỉ ra nội dung của thông

tin.

- Tóm tắt trên cơ sở truy vấn (Query-based) hay tóm tắt chung (General). Tóm tắt

general mục đích chính là tìm ra một đoạn tóm tắt cho toàn bộ văn bản mà nội dung của

đoạn văn bản sẽ bao quát toàn bộ nội dung của văn bản đó. Tóm tắt trên cơ sở truy vấn

thì nội dung của văn bản tóm tắt sẽ dựa trên truy vấn của người dùng hay chương trình

đưa vào, loại tóm tắt này thường được sử dụng trong quá trình tóm tắt các kết quả trả về

từ máy tìm kiếm.

• Tóm tắt trên cơ sở đầu ra cũng có nhiều cách phân loại.

- Dựa vào ngôn ngữ: Tóm tắt cũng có thể phân loại dựa vào khả năng tóm tắt các

loại ngôn ngữ:

Báo cáo kết thúc môn Máy Học 5

Page 6: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

• Tóm tắt đơn ngôn ngữ (Monolingual): hệ thống có thể tóm tắt chỉ một loại ngôn

ngữ nhất định như: tiếng Việt hay tiếng Anh…

• Tóm tắt đa ngôn ngữ (Multilingual): hệ thống có khả năng tóm tắt nhiều loại văn

bản của các ngôn ngữ khác nhau, tuy nhiên tương ứng với văn bản đầu vào là ngôn ngữ

gì thì văn bản đầu ra cũng là ngôn ngữ tương ứng.

• Tóm tắt xuyên ngôn ngữ (Crosslingual): hệ thống có khả năng đưa ra các văn

bản đầu ra có ngôn ngữ khác với ngôn ngữ của văn bản đầu vào.

- Dựa vào định dạng đầu ra của kết quả tóm tắt: như bảng, đoạn, từ khóa.

• Ngoài hai cách phân loại trên, phân loại tóm tắt trên cở sở đầu ra còn có một

cách phân loại được sử dụng phổ biến là: tóm tắt theo trích xuất (Extract) và tóm tắt theo

tóm lược (Abstract).

• Tóm tắt theo trích xuất: là tóm tắt có kết quả đầu ra là một tóm tắt bao gồm toàn

bộ các phần quan trọng được trích ra từ văn bản đầu vào.

• Tóm tắt theo tóm lược: là tóm tắt có kết quả đầu ra là một tóm tắt không giữ

nguyên lại các thành phần của văn bản đầu vào mà dựa vào thông tin quan trọng để viết

lại một văn bản tóm tắt mới.

Hiện nay, các hệ thống sử dụng tóm tắt theo trích xuất được sử dụng phổ biến và

cho kết quả tốt hơn tóm tắt theo tóm lược. Nguyên nhân tạo ra sự khác biệt này là do các

vấn đề trong bài toán tóm tắt theo tóm lược như: biểu diễn ngữ nghĩa, suy luận và sinh ra

ngôn ngữ tự nhiên được đánh giá là khó và chưa có nhiều kết quả nghiên cứu khả quan

hơn so với hướng trích xuất câu của bài toán tóm tắt theo trích xuất. Trong thực tế, theo

đánh giá của Dragomir R. Radev (Đại học Michigan, Mỹ) chưa có một hệ thống tóm tắt

theo tóm lược đạt đến sự hoàn thiện, các hệ thống tóm tắt theo tóm lược hiện nay thường

dựa vào thành phần trích xuất có sẵn. Các hệ thống này thường được biết đến với tên gọi

tóm tắt theo nén văn bản.

Báo cáo kết thúc môn Máy Học 6

Page 7: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Tóm tắt theo nén văn bản (Text Compaction): là loại tóm tắt sử dụng các

phương pháp cắt xén(truncates) hay viết gọn(abbreviates) đối với các thông tin quan

trọng sau khi đã được trích xuất.

Mặc dù dựa vào nhiều cơ sở có nhiều loại tóm tắt khác nhau tuy nhiên hai loại tóm

tắt là tóm tắt đơn văn bản và tóm tắt đa văn bản vẫn được sự quan tâm lớn của các nhà

nghiên cứu về tóm tắt tự động.

2.2. Khái quát tóm tắt văn bản:

Bài toán tóm tắt văn bản đơn cũng giống như các bài toán tóm tắt khác, là một quá trình

tóm tắt tự động với đầu vào là một văn bản, đầu ra là một đoạn mô tả ngắn gọn nội dung

chính của văn bản đầu vào đó. Văn bản đơn có thể là một trang Web, một bài báo, hoặc

một tài liệu với định dạng xác định (ví dụ : .doc, .txt)… Tóm tắt văn bản đơn là bước đệm

cho việc xử lý tóm tắt đa văn bản và các bài toán tóm tắt phức tạp hơn. Chính vì thế

những phương pháp tóm tắt văn bản ra đời đầu tiên đều là các phương pháp tóm tắt cho

văn bản đơn.

Các phương pháp nhằm giải quyết bài toán tóm tắt văn bản đơn cũng tập trung vào

hai loại tóm tắt là: tóm tắt theo trích xuất và tóm tắt theo tóm lược.

Tóm tắt theo trích xuất:

Đa số các phương tóm tắt theo loại này đều tập trung vào việc trích xuất ra các câu

hay các ngữ nổi bật từ các đoạn văn bản và kết hợp chúng lại thành một văn bản tóm tắt.

Một số nghiên cứu giai đoạn đầu thường sử dụng các đặc trưng như vị trí của câu trong

văn bản, tần số xuất hiện của từ, ngữ hay sử dụng các cụm từ khóa để tính toán trọng số

của mỗi câu, qua đó chọn ra các câu có trọng số cao nhất cho văn bản tóm tắt [Lu58,

Ed69]. Các kỹ thuật tóm tắt gần đây sử dụng các phương pháp học máy và xử lý ngôn

ngữ tự nhiên nhằm phân tích để tìm ra các thành phần quan trọng của văn bản. Sử dụng

các phương pháp học máy có thể kể đến phương pháp của Kupiec, Penderson and Chen

năm 1995 sử dụng phân lớp Bayes để kết hợp các đặc trưng lại với nhau [PKC95] hay

Báo cáo kết thúc môn Máy Học 7

Page 8: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

nghiên cứu của Lin và Hovy năm 1997 áp dụng phương pháp học máy nhằm xác định vị

trí của các câu quan trọng trong văn bản [LH97]. Bên cạnh đó việc áp dụng các phương

pháp phân tích ngôn ngữ tự nhiên như sử dụng mạng từ Wordnet của Barzilay và Elhadad

vào năm 1997 [BE97].

Tóm tắt theo tóm lược:

Các phương pháp tóm tắt không sử dụng trích xuất để tạo ra tóm tắt có thể xem như là

một phương pháp tiếp cận tóm tắt theo tóm lược. Các hướng tiếp cận có thể kể đến như

dựa vào trích xuất thông tin (information extraction), ontology, hợp nhất và nén thông

tin… Một trong những phương pháp tóm tắt theo tóm lược cho kết quả tốt là các phương

pháp dựa vào trích xuất thông tin, phương pháp dạng này sử dụng các mẫu đã được định

nghĩa trước về một sự kiện hay là cốt truyện và hệ thống sẽ tự động điền các thông tin

vào trong mẫu có sẵn rồi sinh ra kết quả tóm tắt. Mặc dù cho ra kết quả tốt tuy nhiên các

phương pháp dạng này thường chỉ áp dụng trong một miền nhất định.

Báo cáo kết thúc môn Máy Học 8

Page 9: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

CHƯƠNG 2- CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ PHÁT TRIỂN

ĐỀ TÀI

2.1. Giới thiệu về ngôn ngữ C#:

C# là ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát

triển hơn. Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tính

mới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều trong số những đặc tính này khá

giống với những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java.

Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này. Những mục đích đó là:

1. C# là ngôn ngữ đơn giản:- C# loại bỏ được một vài sự phức tạp và rối rắm của các ngôn ngữ C++ và Java.- C# khá giống C / C++ về diện mạo, cú pháp, biểu thức, toán tử.- Các chức năng của C# được lấy trực tiếp từ ngôn ngữ C / C++ nhưng được cải tiến đểlàm cho ngôn ngữ đơn giản hơn.2. C# là ngôn ngữ hiện đại:C# có được những đặc tính của ngôn ngữ hiện đại như:- Xử lý ngoại lệ- Thu gom bộ nhớ tự động- Có những kiểu dữ liệu mở rộng- Bảo mật mã nguồn3. C# là ngôn ngữ hướng đối tượng:C# hỗ trợ tất cả những đặc tính của ngôn ngữ hướng đối tượng là:- Sự đóng gói (encapsulation)- Sự kế thừa (inheritance)- Đa hình (polymorphism)4. C# là ngôn ngữ mạnh mẽ và mềm dẻo:- Với ngôn ngữ C#, chúng ta chỉ bị giới hạn ở chính bản thân của chúng ta. Ngôn ngữ nàykhông đặt ra những ràng buộc lên những việc có thể làm.- C# được sử dụng cho nhiều dự án khác nhau như: tạo ra ứng dụng xử lý văn bản, ứngdụng đồ họa, xử lý bảng tính; thậm chí tạo ra những trình biên dịch cho các ngôn ngữ khác.- C# là ngôn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa dùng để mô tảthông tin, nhưng không gì thế mà C# kém phần mạnh mẽ. Chúng ta có thể tìm thấy rằng ngôn

Báo cáo kết thúc môn Máy Học 9

Page 10: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào.5. C# là ngôn ngữ hướng module:- Mã nguồn của C# được viết trong Class (lớp). Những Class này chứa các Method(phương thức) thành viên của nó.- Class (lớp) và các Method (phương thức) thành viên của nó có thể được sử dụng lạitrong những ứng dụng hay chương trình khác.6. C# sẽ trở nên phổ biến:C# mang đến sức mạnh của C++ cùng với sự dễ dàng của ngôn ngữ Visual Basic..

2.2. Giới thiệu về Access :

1. Cơ sở dữ liệu là gì? Cơ sơ dữ liệu là một tập hợp các thông tin có liên quan. Ví dụ, nếu tập hợp tất cả các bức ảnh cùng nhau, bạn sẽ có một cơ sở dữ liệu ảnh. Nếu tập hợp tất cả các bức ảnh có cùng chủ đề, bạn sẽ có một cơ sở dữ liệu gốc hoặc một tập con trong toàn bộ cơ sở dữ liệu. 

Nếu cơ sơ dữ liệu nhỏ (ví dụ như các hợp đồng bảo hiểm của bạn), bạn có thể quản lý thông tin bình thường. Trong những trường hợp như vậy, bạn phải sử dụng các phương pháp quản lý cũ như một bảng file hay một danh sách đơn giản trên giấy. Tuy nhiên, cơ sở dữ liệu ngày càng nhiều, các thao tác quản lý trở nên khó hơn. Ví dụ, sẽ rất khó để quản lý bằng tay cơ sở dữ liệu về khách hàng trong một công ty lớn. Đây là lúc máy tính của bạn và hệ quản trị cơ sở dữ liệu có ích. Phần mềm quản trị cơ sở dữ liệu giúp bạn quản lý thông tin được nhanh và dễ dàng hơn. 

Trong Access, một cơ sở dữ liệu không chỉ có thông tin mà còn có các bảng thông tin đã được sắp xếp, cơ sở dữ liệu Access còn bao gồm cả mối quan hệ các truy vấn, báo biểu, báo cáo và các lệnh lập trình. Dưới đây là khái niệm về một số thuật ngữ thường dùng trong Access: 

2. Thế nào là một Table (bảng)?

Trong Access, các bảng chứa thông tin thực tế trong cơ sơ dữ liệu, có thể có nhiều hơn một bảng. Thông tin trong mỗi bảng có thể liên quan tới thông tin trong các bảng khác. Ví dụ, bạn có một bảng chứa bản ghi của tất cả các khóa cửa trong tòa nhà, một bảng khác phải có danh sách tất cả chìa khóa cho các khóa. Một bảng chứa tên của tất cả những người có chìa khóa. Cả 3 bảng có thông tin liên quan đến nhau, bởi vậy chúng tạo thành một cơ sở dữ liệu.

Báo cáo kết thúc môn Máy Học 10

Page 11: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

3. Thế nào là một Query (truy vấn)?

Khi làm việc với cơ sở dữ liệu lớn, tức là làm việc với các vùng riêng trên dữ liệu. Ví dụ, nếu bạn có cơ sơ dữ liệu của một công ty, và muốn xem tất cả tên của khách hàng sinh sống tại Hà Nội. Với sự kiện như vậy, bạn nên dùng truy vấn. 

Một câu hỏi truy vấn dữ liệu như sau “Những khách hàng nào sinh sống tại Hà Nội?” Như vậy query được định nghĩa đó là việc truy vấn các thông tin của cơ sơ dữ liệu mà bạn muốn xem. 

Ví dụ, nếu cơ sở dữ liệu chứa tên của tất cả khách hàng mua một chi tiết sản phẩm nào đó, dùng truy vấn có thể đưa ra một danh sách tên các khách hàng đã mua ở trên. Một truy vấn khác yêu cầu chỉ đưa ra các khách hàng là trẻ em. Về cơ bản, một truy vấn giới hạn hoặc lọc thông tin từ một cơ sở dữ liệu. Khi bạn sử dụng query để lọc dữ liệu, Access chỉ hiển thị thông tin để đáp ứng truy vấn 

Tại sao nên sử dụng các truy vấn? Một cách cụ thể là bạn chỉ làm việc ở một phần của cơ sở dữ liệu, các truy vấn thực hiện dễ dàng đưa ra kết quả dưới dạng bản ghi theo một tiêu chuẩn nhất định. Access cho bạn thấy được sự rõ ràng, cụ thể hay phức tạp như bạn muốn trong các truy vấn. Bạn sẽ bắt đầu học về các truy vấn trong chương 6 “Sử dụng các truy vấn để xử lý dữ liệu” 

4. Thế nào là Form (biểu mẫu)?

Một cơ sở dữ liệu tồn tại để lưu giữ thông tin. Sau khi xác định thông tin chứa trong cơ sơ dữ liệu, đó là nơi bạn cần nhập dữ liệu; sau đó xem, thêm, hoặc thay đổi dữ liệu. Bạn nên sử dụng chế độ Datasheet view khi hoàn thành mỗi thao tác, có thể tạo một biểu mẫu hiển thị lên màn hình để nhập, xem và thay đổi thông tin. 

Trong Access, biểu mẫu (Form) hiển thị lên màn hình được gọi là form. Sử dụng form có thể hiển thị thông tin trong một bảng, đồng thời thêm các nút, text box, các nhãn và đối tượng khác để dữ liệu nhập dễ dàng hơn.

5. Record (Bản ghi) là gì?

Bản ghi là một khối thông tin độc lập, như dữ liệu về công nhân hay khách hàng. Một bảng được tạo lên từ nhiều bản ghi. Ví dụ, nếu bạn có bảng chứa thông tin về tập hợp các thẻ chơi bóng chày, một bản ghi sẽ là thông tin riêng về 1 thẻ. Thông thường, các bản ghi

Báo cáo kết thúc môn Máy Học 11

Page 12: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

đặt theo dòng trong một bảng, Access trình bày các bản ghi theo các dòng. 

6. Trường (Field) là gì?

Bảng được tạo lên từ các bản ghi, bản ghi được tạo từ các trường. Như vậy, một trường là vùng thông tin nhỏ nhất trong cơ sở dữ liệu. Ví dụ, nếu bạn có một bảng chứa danh bạ điện thoại, mỗi bản ghi biểu thị cho một người hay doanh nghiệp khác nhau. Lần lượt, các bản ghi này được tạo từ các trường riêng (như tên, địa chỉ, số điện thoại).

Báo cáo kết thúc môn Máy Học 12

Page 13: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

CHƯƠNG 3 : CÁC HƯỚNG TIẾP CẬN TÁCH TỪ

3.1. Các hướng tiếp cận dựa trên từ:

Hướng tiếp cận dựa trên từ với mục tiêu tách được các từ hoàn chỉnh trong câu.

Hướng tiếp cận này có thể chia ra theo 3 hướng : dựa trên thống kê (statistics - based) ,

dựa trên từ điển ( dictionary – based) và hydrid ( kết hợp nhiều phương pháp với hy vọng

đạt được những ưu điểm của các phương pháp này) .

Hướng tiếp cận dựa trên thống kê : Dựa trên các thông tin như tần số xuất hiện

của từ trong tập huấn luyện ban đầu . Hướng tiếp cận này đặc biệt dựa trên tập ngữ

liệu huấn luyện , nhờ vậy nên hướng tiếp cận này tỏ ra linh hoạt và hữu dụng trong

nhiều lĩnh vực khác nhau.

Hướng tiếp cận dựa trên từ điển : Ý tưởng của hướng tiếp cận này là những

cụm từ được tách ra từ văn bản phải được so khớp với các từ trong từ điển. Do đó

trong hướng tiếp cận này đòi hỏi từ điển riêng cho từng lĩnh vực quan tâm . Hướng

tiếp cận “full word / phrase” cần sử dụng một từ điển hoàn chỉnh để có thể tách

được đầy đủ các từ hoặc ngữ trong văn bản , trong khi đó hướng tiếp cận thành

phần “component” lại sử dụng từ điển thành phần .Từ điển thành phần chỉ chứa

các thành phần của từ và ngữ như hình vị và các từ đơn giản . Hướng tiếp cận theo

từ điển vẫn còn một số hạn chế trong việc tách từ vì thực hiện hoàn toàn dựa vào

từ điển . Nếu như thực hiện thao tác tách từ bằng cách sử dụng từ điển hoàn chỉnh

thì trong thực tế việc xây dựng một bộ từ điển hoàn chỉnh là khó thực hiện vì đòi

hỏi nhiều thời gian và công sức . Nếu tiếp cận theo hướng sử dụng từ điển thành

phần thì sẽ giảm nhẹ hạn chế , khó khăn khi xây dựng từ điển , vì khi đó chúng ta

sẽ sử dụng các hình vị từ và các từ đơn giản và các từ khác để hình thành nên từ ,

cụm từ hoàn chỉnh.

Hướng tiếp cận theo Hybrid : Với mục đích kết hợp các hướng tiếp cận khác

nhau để thừa hưởng được các ưu điểm của nhiều kỹ thuật và các hướng tiếp cận

khác nhau nhằm nâng cao kết qủa . Hướng tiếp cận này thường kết hợp giữa

hướng dựa trên thống kê và dựa trên từ điển nhằm tận dụng các mặt mạnh của các

Báo cáo kết thúc môn Máy Học 13

Page 14: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

phương pháp này . Tuy nhiên hướng tiếp cận Hybrid lại mất nhiều thời gian xử lý ,

không gian đĩa và đòi hỏi nhiều chi phí.

3.2. Các hướng tiếp cận dựa trên ký tự

Trong tiếng việt, hình vị nhỏ nhất là “tiếng” được hình thành bởi nhiều ký tự trong

bảng chữ cái . Hướng tiếp cận này đơn thuần rút trích ra một số lượng nhất định các tiếng

trong văn bản như rút trích từ 1 ký tự (unigram) hay nhiều ký tự (n-gram) và cũng mang

lại một số kết qủa nhất định được minh chứng thông qua một số công trình nghiên cứu đã

được công bố , như của tác giả Lê An Hà [2003] xây dựng tập ngữ liệu thô 10MB bằng

cách sử dụng phương pháp qui hoạch động để cựa đại hóa xác suất xuất hiện của các

ngữ.Rồi công trình nghiên cứu của H. Nguyễn[2005] làm theo hướng tiếp cận là thay vì

sử dụng ngữ liệu thô , công trình tiếp cận theo hướng xem Internet như một kho ngữ liệu

khổng lồ , sau đó tiến hành thống kê và sử dụng thuật giải di truyền để tìm cách tách từ

tối ưu nhất , và một số công trình của một số tác giả khác.Khi so sánh kết qủa của tác giả

Lê An Hà và H.Nguyễnt thì thấy công trình của H.Nguyễn cho được kết qủa tốt hơn khi

tiến hành tách từ , tuy nhiên thời gian xử lý lâu hơn.Ưu điểm nổi bật của hướng tiếp cận

dựa trên nhiều ký tự là tính đơn giản , dễ ứng dụng , ngoài ra còn có thuận lợi là ít tốn

chi phí cho thao tác tạo chỉ mục và xử lý nhiều câu truy vấn.Qua nhiều công trình nghiên

cứu của các tác giả đã được công bố , hướng tiếp cận tách từ dựa trên nhiều ký tự , cụ thể

là cách tách từ hai ký tự được cho là sự lựa chọn thích hợp.

3.3. Một số phương pháp tách từ tiếng việt hiện nay

3.3.1. Phương pháp Maximum Matching : Forward / Backward

Phương pháp khớp tối đa ( MM - Maximum Matching) hay còn gọi là LRMM - Left

Right Maximum Matching. Ở phương pháp này , chúng ta sẽ duyệt một ngữ hoặc câu từ

trái sang phải và chọn từ có nhiều âm tiết nhất có mặt trong từ điển và cứ thực hiện lặp lại

như vậy cho đến hết câu.

Dạng đơn giản của phương pháp dùng để giải quyết nhập nhằng từ đơn. Giả sử chúng ta

có một chuỗi ký tự C1 , C2 , …, Cn . Chúng ta sẽ áp dụng phương pháp từ đầu chuỗi . Đầu

tiên kiểm tra xem C1 có phải là từ hay không , sau đó kiểm tra xem C1C2 có phải là từ hay

không . Tiếp tục thực hiện như thế cho đến khi tìm được từ dài nhất .

Báo cáo kết thúc môn Máy Học 14

Page 15: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Dạng phức tạp : Quy tắc của dạng này là phân đoạn từ .Thông thường người ta chọn phân

đoạn ba từ có chiều dài tối đa. Thuật toán bắt đầu từ dạng đơn giản , cụ thể là nếu phát

hiện ra những cách tách từ gây nhập nhằng , như ở ví dụ trên , giả sử C 1 là từ và C1C2

cũng là một từ , khi đó chúng ta kiểm tra ký tự kế tiếp trong chuỗi C1, C2 , ….. ,Cn để tìm

tất cả các đoạn ba từ có bắt đầu với C1 hoặc C1C2 .

Ví dụ : Giả sử chúng ta có được các đoạn sau :

- C1 C2 C3 C4

-C1C2 C3C4 C5

-C1C2 C3C4 C5C6

Khi đó chuỗi dài nhất sẽ là chuỗi thứ ba . Do đó từ đầu tiên của chuỗi thứ ba (C1C2) sẽ

được chọn . Thực hiện các bước cho đến khi được chuỗi từ hoành chỉnh.

Nhận xét :

Phương pháp này thực hiện tách từ đơn giản , nhanh và chỉ cần dựa vào từ điển để thực

hiện . Tuy nhiên , khuyết điểm của phương pháp này cũng chính là từ điển , nghĩa là độ

chính xác khi thực hiện tách từ phụ thuộc hoàn toàn vào tính đủ , tính chính xác của từ

điển.

3.3.2.Phương pháp Transformation – based Learning – TBL :

Phương pháp này tiếp cận dựa trên tập ngữ liệu đã đánh dấu .Theo cách tiếp cận này để

cho máy tính có thể nhận biết ranh giới giữa các từ để có thể tách từ chính xác , chúng ta

sẽ cho máy học các câu mẫu trong tập ngữ liệu đã được đánh dấu ranh giới giữa các từ

đúng .Rõ ràng chúng ta thấy phương pháp rất đơn giản , vì chỉ cần cho máy học các tập

câu mẫu và sau đó máy sẽ tự rút ra qui luật của ngôn ngữ và để từ đó sẽ áp dụng chính

xác khi có những câu đúng theo luật mà máy đã rút ra . Và rõ ràng để tách từ được hoàn

toàn chính xác trong mọi trường hợp thì đòi hỏi phải có một tập ngữ liệu tiếng Việt thật

đầy đủ và phải được huấn luyện lâu để có thể rút ra các luật đầy đủ.

3.3.3.Mô hình tách từ bằng WFST và mạng Neural :

Mô hình mạng chuyển dịch trạng thái hữu hạn có trọng số WFST – Weighted Finit State

Transducer đã được áp dụng trong tách từ từ năm 1996 . Ý tưởng cơ bản là áp dụng

WFST với trọng số là xác suất xuất hiện của mỗi từ trong kho ngữ liệu. Dùng WFST để

Báo cáo kết thúc môn Máy Học 15

Page 16: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

duyệt qua các câu cần xét , khi đó từ có trọng số lớn nhất là từ được chọn để tách.

Phương pháp này cũng đã được sử dụng trong công trình đã được công bố của tác giả

Đinh Điền [2001] , tác giả đã sử dụng WFST kèm với mạng Neural để khử nhập nhằng

khi tách từ , trong công trình tác giả đã xây dựng hệ thống tách từ gồm tầng WFST để

tách từ và xử lý các vấn đề liên quan đến một số đặc thù riêng của ngôn ngữ tiếng Việt

như từ láy , tên riêng , .. và tầng mạng Neural dùng để khử nhập nhằng về ngữ nghĩa sau

khi đã tách từ (nếu có).

Chi tiết về 2 tầng này như sau :

3.3.3.1 Tầng WFST gồm có 3 bước :

o Bước 1 : Xây dựng từ điển trọng số : theo mô hình WFST , thao tác phân đoạn từ

được xem như là một sự chuyển dịch trạng thái có xác suất.Chúng ta miêu tả từ

điển D là một đồ thị biến đổi trạng thái hữu hạn có trọng số .

Giả sử :

H là tập các từ chính tả tiếng Việt (còn gọi là “tiếng”) .

- P là từ loại của từ .

Mỗi cung của D có thể là :

- Từ một phần tử của H tới một phần tử của H

- Các nhãn trong D biểu diễn một chi phí được ước lượng theo công

thức : Cost =-log(f/N)

Trong đó : f là tần số của từ , N là kích thước tập mẫu.

o Bước 2 : Xây dựng các khả năng phân đoạn từ : Để giảm sự bùng nổ tổ hợp khi

sinh ra dãy các từ có thể từ một dãy các tiếng trong câu , tác giả đã đề xuất phương

pháp kết hợp dùng thêm từ điển để hạn chế sinh ra các bùng nổ tổ hợp , cụ thể là

nếu phát hiện thấy một cách phân đoạn từ nào đó không phù hợp ( không có trong

từ điển , không có phải là tứ láy , không phải là danh từ riêng ,…) thì tác giả loại

bỏ các nhánh xuất phát từ cách phân đoạn đoạn đó.

o Bước 3: Lựa chọn khả năng phân đoạn từ tối ưu : Sau khi có được danh sách các

cách phân đoạn từ có thể có của câu , tác giả đã chọn trường hợp phân đoạn từ có

trọng số bé nhất.

Báo cáo kết thúc môn Máy Học 16

Page 17: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

3.3.3.2 Tầng mạng Neural : Mô hình được sử dụng để khử nhập nhằng khi tách từ bằng

cách kết hợp so sánh với từ điển.

Nhận xét : Mô hình này đạt được độ chính xác trên 97% theo như công bố trong công

trình của tác giả , bằng việc sử dụng thêm mạng Neural kết hợp với từ điển để khử các

nhập nhằng có thể có khi tách ra các được nhiều từ từ một câu và khi đó tầng mạng

Neural sẽ loại bỏ đi các từ không phù hợp bằng cách kết hợp với từ điển. Bên cạnh đó,

cũng tương tự như phương pháp TBL điểm quan trọng của mô hình này cần tập ngữ liệu

học đầy đủ.

3.3.4. Phương pháp tách tách từ tiếng Việt dựa trên thống kê từ Internet và thuật

giải di truyền

Phương pháp tách tách từ tiếng Việt dựa trên thống kê từ Internet và thuật giải di truyền –

IGATEC (Internet and Genetics Algorithm based Text Categorization for Documents in

Vietnamese) do H. Nguyễn đề xuất năm 2005 như một hướng tiếp cận mới trong tách từ

với mục đích phân loại văn bản mà không cần dùng đến một từ điển hay tập ngữ liệu học

nào . Trong hướng tiếp cận này , tác giả kết hợp giữa thuật toán di truyền với dữ liệu

thống kê được lấy từ Internet .

Trong tiếp cận của mình , tác giả đã mô tả hệ thống tách từ gồm các thành phần

a. Online Extractor : Thành phần này có tác dụng lấy thông tin về tần số xuất hiện của

các từ trong văn bản bằng cách sử dụng một search engine nổi tiếng như Google hay

Yahoo chẳng hạn . Sau đó , tác giả sử dụng các công thức dưới đây để tính toán mức độ

phụ thuộc lẫn nhau (mutual information) để làm cơ sở tính fitness cho GA engine.

Tính xác suất các từ xuất hiện trên Internet :

MAX

)w2&w1count()w2&w1p(

MAX

count(w)wp

Trong đó MAX = 4 * 109

count(w) số lượng văn bản trên Internet được tìm thấy có chứa từ w hoặc cùng chứa

w1 và w2 đối với count(w1&w2).

Báo cáo kết thúc môn Máy Học 17

Page 18: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Tính xác suất độ phụ thuộc của một từ lên một từ khác :

w1p

)w2&w1p()w2|w1p(

Thông tin phụ thuộc lẫn nhau (mutual information) của các từ ghép được cấu tạo bởi

n tiếng ( cw = w1w2…wn)

n

1j)wn&.....&w2&w1p(w jp

)wn&.....&w2&w1p(MI(cw)

b. GA Engine for Text Segmentation : mỗi cá thể trong quan thể được biểu diễn bởi

chuỗi các bit 0,1 , trong đó , mỗi bit đại diện cho một tiếng trong văn bản , mỗi nhóm bit

cùng loại đại diện cho cho một segment. Các cá thể trong quần thể được khởi tạo ngẫu

nhiên , trong đó mỗi segment được giới hạn trong khoảng 5 . GA engine sau đó thực hiện

các bước đột biến và lai ghép nhằm mục đích làm tăng giá trị fitness của các cá thể để đạt

được cách tách từ tốt nhất có thể.

3.4. Kết luận

Sau khi xem xét một số hướng tiếp cận trong tách từ văn bản tiếng Việt , các

nghiên cứu đã được công bố đều chỉ ra rằng phương pháp tách từ dựa trên từ mang lại kết

qủa có độ chính xác khá cao , điều này có được nhờ vào tập huấn luyện lớn , được đánh

dấu ranh giới giữa các từ chính xác giúp cho việc học để rút ra các luật để tách từ cho các

văn bản khác được tốt đẹp , tuy nhiên chúng ta cũng dễ nhận thấy hiệu suất của phương

pháp hoàn toàn phụ thuộc vào tập ngữ liệu huấn luyện. Do đó để khắc phục sự phụ thuộc

của từ điển, chúng ta đề nghị sử dụng hướng tiếp cận của H.Nguyễn (sẽ được trình bày

chi tiết trong phần sau ) để tách từ .

Hướng tiếp cận dựa trên ký tự có ưu điểm là dễ thực hiện , thời gian thực hiện tương đối

nhanh , tuy nhiên lại cho kết qủa không chính xác bằng hướng tiếp cận dựa trên từ .

Hướng tiếp cận này nói chung phù hợp cho các ứng dụng không cần độ chính xác tuyệt

đối trong tách từ văn bản như ứng dụng lọc spam mail , firewall ,…Nhìn chung với

Báo cáo kết thúc môn Máy Học 18

Page 19: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

hướng tiếp cận này nếu chúng ta có thể cải tiến để nâng cao độ chính xác trong tách từ

thì hướng tiếp cận này là hoàn toàn khả thi và có khả năng thay thế hướng tiếp cận tách từ

dựa trên từ vì đã không phải xây dựng kho ngữ liệu , một công việc đòi hỏi nhiều công

sức , thời gian và sự hỗ trợ của các chuyên gia trong các lĩnh vực khác nhau.

Báo cáo kết thúc môn Máy Học 19

Page 20: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

CHƯƠNG 4-TÓM TẮT VĂN BẢN DỰA TRÊN PHƯƠNG PHÁP

KHÔNG GIÁM SÁT

4.1. Hướng tiếp cận của bài toán tóm tắt văn bản:

Như chúng ta đã biết ở trên tóm tắt văn bản nói chung là bài toán thuộc lĩnh vực

xử lý ngôn ngữ tự nhiên. Trong phân tích xử lý ngôn ngữ tự nhiên có các mức độ sâu xử

lý khác nhau được sắp xếp theo thứ tự như sau: đầu tiên là mức hình thái

(Morphological), tiếp theo là mức cú pháp (Syntactic), tiếp đến là mức ngữ nghĩa

(Semantic) và cuối cùng là mức ngữ dụng (Pragmatic). Tương tự như các độ sâu xử lý

của xử lý ngôn ngữ tự nhiên, phương pháp tiếp cận để giải quyết bài toán tóm tắt văn bản

cũng có thể được phân loại dựa vào độ sâu xử lý được thực hiện trong quá trình tóm tắt.

Tuy nhiên phương pháp tiếp cận để giải quyết bài toán tóm tắt văn bản chỉ có ba mức, là

các mức: hình thái, cú pháp và ngữ nghĩa.

Mức hình thái: tại mức xử lý này, trong các văn bản, đơn vị được sử dụng để so

sánh là các ngữ, câu hay đoạn văn (paragraph). Các phương pháp tại mức này thường sử

dụng độ đo tương đồng dựa trên mô hình không gian vector (Vector space model) áp

dụng trọng số TF.IDF cho các từ và các câu. Phương pháp tóm tắt MMR [CG98] là

phương pháp nổi bật tại mức xử lý này.

Mức cú pháp: đơn vị được sử dụng để so sánh tại mức xử lý này là sử dụng việc

phân tích những cấu trúc ngữ pháp tương ứng trong văn bản. Các phương pháp tại mức

này tập trung vào việc phân tích cấu trúc ngữ pháp giữa các câu hay các ngữ trong từng

đoạn văn thuộc văn bản. Phương pháp do Barzilay và các đồng tác giả khác đề xuất năm

1999 [BME99] thuộc mức xử lý này.

Mức ngữ nghĩa: tại mức xử lý này tập trung nhiều vào việc phân tích các tên thực

thể, mối quan hệ giữa các thực thể cũng như các sự kiện nảy sinh thực thể để xác định

được độ quan trọng của thông tin. Phương pháp của McKeown và Radev đề xuất năm

1995[MR95] là một dạng của tóm tắt tại mức xử lý này.

Báo cáo kết thúc môn Máy Học 20

Page 21: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Dựa vào các đặc trưng của từng phương pháp tiếp cận, Inderjeet Mani đã đưa ra bảng so sánh, đánh giá

ba mức tiếp cận để giải quyết bài toán tóm tắt văn bản.

Mức xử lý Đặc tính Ưu điểm Nhược điểm

Mức hình thái Sử dụng nhiều các

độ đo tương đồng

giữa các từ vựng

Sử dụng rất phổ

biến, xử lý dư thừa

tốt

Không thể mô tả

các đặc trưng khác,

khả năng tổng hợp

thông tin kém.

Mức cú pháp So sánh giữa các

cây cú pháp của câu

hay ngữ trong văn

bản

Có khả năng phát

hiện các khái niệm

tượng đồng trong

các ngữ,cho phép

tổng hợp thông tin.

Không thể mô tả

các đặc trưng khác,

đòi hỏi phải mở

rộng các luật so

sánh giữa các cây

cú pháp

Mức ngữ nghĩa So sánh giữa các

mẫu tài liệu đã

được ấn định.

Có khả năng mô tả

nhiều đặc trưng

khác nhau.

Các mẫu phải được

tạo trước đối với

từng miền.

4.2. Đánh giá kết quả tóm tắt:

Đánh giá kết quả tóm tắt văn bản là một việc làm khó khăn trong thời điểm hiện

tại. Việc sử dụng ý kiến đánh giá của các chuyên gia ngôn ngữ được xem là cách đánh

giá tốt nhất, tuy nhiên, cách làm này lại tốn rất nhiều chi phí. Bên cạnh các phương pháp

đánh giá thủ công do các chuyên gia thực hiện, vấn đề đánh giá tự động kết quả tóm tắt

cũng nhận được nhiều sự chú ý hiện nay. NIST1 kể từ năm 2000 đã tổ chức hội nghị DUC

Báo cáo kết thúc môn Máy Học 21

Page 22: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

mỗi năm một lần để thực hiện việc đánh giá với quy mô lớn các hệ thống tóm tắt văn

bản.Việc đánh giá tự động này nhằm mục đích là tìm ra được một độ đo đánh giá tóm tắt

gần với những đánh giá của con người nhất.

Độ hồi tưởng (recall) tại các tỷ lệ nén khác nhau chính là thước đo đánh giá hợp

lý, mặc dù nó không chỉ ra được sự khác nhau về hiệu suất của hệ thống. Vì vậy độ đo về

sự bao phủ được tính theo công thức:

C = R × E

Ở đây, R là độ hồi tưởng câu được trả về bởi công thức.

R = Số đơn vị bao phủ/ Tổng số đơn vị trong mô hình tóm tắt.

E là tỷ lệ hoàn thành nằm trong khoảng từ 0 đến 1 (1 là hoàn thành tất cả, ¾ là một

phần, ½ là một số, ¼ là khó, 0 là không có).

DUC 2002 đã sử dụng một phiên bản để điều chỉnh chiều dài của thước đo bao

phủ, C’:

Với B là sự ngắn gọn và α là tham số phản tầm quan trọng. Các loại nhãn cho E

cũng đã được thay đổi thành 100%, 80%, 60%, 40%, 20%, và 0% tương ứng.

Phương pháp ROUGE.

BiLingual Evaluation Understudy (BLEU) [KST02] là một phương pháp của cộng

động dịch máy đưa ra để đánh giá tự động các hệ thống dịch máy. Phương pháp này có

hiểu qua nhanh, độc lập với ngôn ngữ và sự liên quan với các đánh giá của con người.

Recall Oriented Understudy of Gisting Evaluation (ROUGE) [LH03] là một phương pháp

do Lin và Hovy đưa ra vào năm 2003 cũng dựa trên các khái niệm tương tự. Phương

pháp này sử dụng n-gram để đánh giá sự tương quan giữa các kết quả của mô hình tóm

Báo cáo kết thúc môn Máy Học 22

Page 23: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

tắt và tập dữ liệu đánh giá. Phương pháp này đã cho ra kết quả khả quan và được sự đánh

giá cao của cộng đồng nghiên cứu tóm tắt văn bản.

4.3. Tóm tắt văn bản bằng phương pháp không giám sát:

Tóm tắt văn bản bằng phương pháp không giám sát là phương pháp của ngành học

máy nhằm tìm ra một mô hình mà phù hợp với các quan sát. Phương pháp này hữu ích

cho việc nén dữ liệu: về cơ bản, mọi giải thuật nén dữ liệu hoặc là dựa vào một phân bố

xác suất trên một tập đầu vào một cách tường minh hay không tường minh. Một dạng

khác của học không giám sát là phân mảnh ( data clustering).

4.3.1 Training Phase:

Input: D={d1,…dn}: collection of documents.

Output: Calculated F(wi)

Processing:

- In D segment into 2 word sets: noun set and other word set.

- Calculate F(wi) in noun set by:

4.3.2 Testing phase:

Input: d: original document, r: rate of summary.

Output: d’: summary of document

Reprocessing:

- d has been segmented a set of sentences S={s1, s2, …, sn}

- In each sentence:

+ Segment into 2 word sets: noun set and other word set (not noun).

Báo cáo kết thúc môn Máy Học 23

Page 24: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

+ Calculate I(wi) in noun set by:

+ P(si)=1/i;

4.3.3 Algorithm:

V=” ”;

For each sentence calculating weight of sentence:

W(si)= I(wi) + P(si);

Sort (si) by descending.

Length (d’)=length(d)*r%;

While (length(d’)< length(d)*r%)

V=V+si;

Arrangements all selected sentence by the original document.

Báo cáo kết thúc môn Máy Học 24

Page 25: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

CHƯƠNG 5 - DEMO CHƯƠNG TRÌNH

5.1 Giao diện chương trình:

Form Main:

Hình 5.1: Giao diện chính của chương trình. Đưa ra cái nhìn tổng quát về chương trình.

Bao gồm chức năng: quản lý, huấn luyệnThực Nghiệm, .

Báo cáo kết thúc môn Máy Học 25

Page 26: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Form huấn luyện văn bản

Hình 5.2: Huấn luyện văn bản. Đầu vào là các đoạn văn bản dạng .txt thuộc các lĩnh

vực giáo dục, kinh tế, thể thao, tin học.

Báo cáo kết thúc môn Máy Học 26

Page 27: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Form tóm tắt văn bản

Hình 5.3: Xử lý tóm tắt văn bản. Đầu vào là các văn bản đầy đủ dạng .txt thuộc các lĩnh

vực hoặc có thể là mẩu chuyện ngắn… Đầu ra là một văn bản được tóm tắt lại tùy vào

yêu cầu người dùng muốn lược bao nhiêu % lượng văn bản ban đầu.

Các form quản lý

Báo cáo kết thúc môn Máy Học 27

Page 28: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Hình 5.4: Quản lý Tập Huấn

Báo cáo kết thúc môn Máy Học 28

Page 29: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Hình 5.5: Quản lý Từ Chủ Đề

Hình 5.6: Quản lý Từ Nguyên Gốc

Báo cáo kết thúc môn Máy Học 29

Page 30: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

5.2. Hệ cơ sở dữ liệu:

Sử dụng access để thiết kế cơ sở dữ liệu

Bảng DataIndex : DataIndex

Bảng 5.1 : DataIndex

Bảng Dictionary : Dictionary

Bảng 5.2 : Dictionary

Bảng Field: Field

Bảng 5.3 : Field

Bảng Test: Test

Báo cáo kết thúc môn Máy Học 30

Page 31: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Bảng 5.4 : Test

Bảng Test_Instructor: Test_Instructor

Bảng 5.5 : Test_Instructor

Bảng TopicWord: TopicWord

Bảng 5.6 : TopicWord

5.3. Thực nghiệm chương trình:

Mô tả dữ liệu:

Input : Đoạn văn bản dạng .txt ở dạng đầy đủ thuộc các lĩnh vực : công nghệ thông tin,

Báo cáo kết thúc môn Máy Học 31

Page 32: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

giáo dục, kinh tế, thể thao.

Output : Rút gọn văn bản trên theo tỉ lệ tùy chọn.

Kết quả thực nghiệm:

Hình 5.8: Kết quả Tóm Tắt

Báo cáo kết thúc môn Máy Học 32

Page 33: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

Hình 5.9: Kết quả Huấn Luyện

5.4. Code chương trình

5.4.1. Code tách câu

#region"Tách câu trong một văn bản" public int tachcau(RichTextBox rtb, ListView lv) { lv.Items.Clear(); ListViewItem item; const char s1 = '.'; char[] delimiters = new char[] { s1 }; int ctr = 0; //Xử lý dấu chấm xuống dòng (!?;;:...) string text = Sentence.thaythe(rtb.Text); foreach (String subString in text.Split(delimiters)) { ctr++; if (subString.Length > 1)//Loai bo cau cuoi cung khong co ki tu nao. { item = new ListViewItem(ctr.ToString()); item.SubItems.Add(subString); item.SubItems.Add("_"); item.SubItems.Add("_");

Báo cáo kết thúc môn Máy Học 33

Page 34: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

lv.Items.Add(item); } } return lv.Items.Count; } #endregion

5.4.2. Code tách từ

private List<string> Tachtu(ListView lvLookResult) { try { List<string> list=new List<string>(); ListViewItem item; lvLookResult.Items.Clear(); for (int j = 0; j < LvSentence.Items.Count; j++) { string sentence=Sentence.thaythe(LvSentence.Items[j].SubItems[1].Text); WordSegmentation Wsg = new WordSegmentation(); ArrayList Arr1 = new ArrayList(); Arr1 = Wsg.Voice(Sentence.thaythe(sentence)); string[] str = new string[Arr1.Count]; for (int i = 0; i < Arr1.Count; i++) { str[i] = Arr1[i].ToString(); } ArrayList list1 = new ArrayList(); list1 = Wsg.GetWord(str, Wsg.voice); // ArrayList list2 = new ArrayList(); list2 = Wsg.Trichrut(list1); // Thee End. string kq = ""; kq = Wsg.tachroi(list2, sentence); string str1 = Wsg.cauchuan1(kq); string str2 = Wsg.cauchuan2(str1); list.Add(Wsg.cauchuan3(str2)); item = new ListViewItem((j+1).ToString()); item.SubItems.Add(list[j]); ArrayList arr = new ArrayList(); arr = SplitText.Spliter(list[j], '/'); item.SubItems.Add(Convert.ToString(arr.Count)); LvSentence.Items[j].SubItems[3].Text = Convert.ToString(arr.Count); lvLookResult.Items.Add(item);

} return list; } finnally { // MessageBox.Show("Please choose sentence for text", "Message"); } }

Báo cáo kết thúc môn Máy Học 34

Page 35: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

5.4.3. Code tóm tắt

private void buttoon1_Click(object sender, EventArgs e) { try { Rate = Convert.ToInt32(cbRate.Text); } catch (Exception) {

MessageBox.Show("Bạn chưa chọn tỷ lệ cần tóm tắt !"); return; }

///////////// tachcau(vanbangoc, LvSentence); List<double> list1 = new List<double>(); listView1.Items.Clear(); list1 = Ws(Tachtu(lvTachtu)); for (int i = 0; i < LvSentence.Items.Count; i++) { LvSentence.Items[i].SubItems[2].Text = Convert.ToString(list1[i]); } /////////////

// trích rút câu quan trọng trong văn bản rtbtomtat.ResetText(); groupBox12.Text = "Reduction Text:"; // int len = 0; for (int i = 0; i < LvSentence.Items.Count; i++) { len += Convert.ToInt16(LvSentence.Items[i].SubItems[3].Text); } len = (int)(len * Rate / 100); List<string> list = new List<string>(); list = Sentence.NummberSentence(LvSentence, len);

for (int j = 0; j < LvSentence.Items.Count; j++) { foreach (var item in list) { if (Convert.ToInt16(LvSentence.Items[j].SubItems[0].Text) == Convert.ToInt16(item)) { rtbtomtat.Text += LvSentence.Items[j].SubItems[1].Text + ". "; } } } }

Báo cáo kết thúc môn Máy Học 35

Page 36: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

private List<double> Ws(List<string> sentence) { try { progressBar1.Value = 0; List<double> list = new List<double>(); ArrayList arr = new ArrayList(); string fullpath = Application.StartupPath + "\\Documents"; foreach (var cauchuan in sentence) { string cau = cauchuan; FindWord(cau); if (cau != "") { arr = SplitText.Spliter(cau, '/'); lvTopicWord.Items.Clear(); ListViewItem item; string I = ""; for (int i = 0; i < arr.Count; i++) { I = "0"; // Iconst cua tu thuong // Add vào các LvWord if (i == 0) { item = new ListViewItem(arr[i].ToString()); item.SubItems.Add(I); //Tìm giá trị Lv của topic word =? string Pab = ". " + arr[i].ToString(); string Pb = ". "; //MessageBox.Show(Pab); //MessageBox.Show(Pb); double Lv = N_Gram.Lv(Pab, Pb, fullpath); item.SubItems.Add(Lv.ToString()); lvTopicWord.Items.Add(item); // break; } else { item = new ListViewItem(arr[i].ToString()); item.SubItems.Add(I); //Tìm giá trị Lv của topic word =? string Pab = arr[i - 1].ToString() + " " + arr[i].ToString(); string Pb = arr[i - 1].ToString(); //MessageBox.Show(Pab); //MessageBox.Show(Pb); double Lv = N_Gram.Lv(Pab, Pb, fullpath); //double db = N_Gram.Lv(". Microsoft"", ". ", Application.StartupPath + "\\văn bản"); item.SubItems.Add(Lv.ToString()); lvTopicWord.Items.Add(item); // break; }

} // Tìm kiếm từ chủ đề (Topic Word ) for (int i = 0; i < lvTopicWord.Items.Count; i++) { for (int j = 0; j < lvketqua.Items.Count; j++) {

Báo cáo kết thúc môn Máy Học 36

Page 37: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

if (lvTopicWord.Items[i].SubItems[0].Text.ToLower() == lvketqua.Items[j].SubItems[0].Text.ToLower()) { I = Algorithms.I(Convert.ToDouble(lvketqua.Items[j].SubItems[2].Text), Convert.ToDouble(lvketqua.Items[j].SubItems[4].Text), Convert.ToDouble(lvketqua.Items[j].SubItems[5].Text)); lvTopicWord.Items[i].SubItems[1].Text = I; break; } } } double word=0; ListViewItem item1; for (int j = 0; j < lvTopicWord.Items.Count; j++) { word += Convert.ToDouble(lvTopicWord.Items[j].SubItems[1].Text) + Convert.ToDouble(lvTopicWord.Items[j].SubItems[2].Text); item1 = new ListViewItem(lvTopicWord.Items[j].SubItems[0].Text); item1.SubItems.Add(lvTopicWord.Items[j].SubItems[1].Text); item1.SubItems.Add(lvTopicWord.Items[j].SubItems[2].Text); listView1.Items.Add(item1); //xem kết quả

} list.Add(word); } else { MessageBox.Show("Please word separation for sentence original:", "Message"); } progressBar1.Value += (100 / sentence.Count); } return list; } finnally { } }

Báo cáo kết thúc môn Máy Học 37

Page 38: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

CHƯƠNG 6 - KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1. Kết luận :Với nhu cầu thực tiễn về các ứng dụng tóm tắt văn bản hiện nay, đồ án đã tập

trung nghiên cứu về bài toán tóm tắt văn bản nói chung và tóm tắt văn bản đơn nói riêng. Các kết quả cụ thể mà đồ án đạt được là:

Khảo sát, nghiên cứu tóm tắt văn bản tiếng việt bằng phương pháp không giám

sát.

Xây dựng thuật toán cho chương trình tóm tắt cậu trong văn bản tiếng việt.

Thử nghiệm demo đã đề xuất và cho được kết quả ban đầu khả quan.

6.2. Hướng phát triển:Với những kết quả thực nghiệm ban đầu, sẽ cần tiếp tục hoàn thiện để nâng cao

hiệu suất và kết quả. Cần tiếp tục bổ sung những thiếu sót để chương trình hoàn thiện hơn:

Xây dựng một kho dữ liệu phổ biến và quy mô lớn phục vụ trong quá trình huấn

luyện cho văn bản.

Hoàn thiện chức năng xử lý văn bản với độ chính xác cao hơn, cho kết quả

nhanh hơn, cũng như hiệu suất cao hơn.

Mở rộng thêm các chức năng cho chương trình.

Báo cáo kết thúc môn Máy Học 38

Page 39: code tách câu, tách từ

Trường Đại học Điện Lực Đề tài 3: Tóm tắt văn bản

TÀI LIỆU THAM KHẢO[1] Ha Nguyen Thi Thu, Quynh Nguyen Huu, Cuong Do Duc, A novel important word based sentence reduction method for Vietnamese text, Proc. of IEEE on Intellectual Technology in Industrial Practice, pp 401-405, September 2010.

[2] Ha Nguyen Thi Thu, Nguyen Thien Luan A Novel Application of Fuzzy Set Theory and Topic Model in Sentence Extraction for Vietnamese Text, International Journal of Computer Science and Network Security, Vol. 10 No. 8 pp. 41-46, 2010.

[3] Ha Nguyen Thi Thu, Quynh Nguyen Huu A New method for Vietnamese Sentence Extraction based on important information of topic word and linguistic score, Proc. of IEEE on Multimedia and Computational Intelligence, September 2010 (Accepted).

[4] JING, H. 2000. Sentence reduction for automatic text summarization. In Proceedings of the First Annual Meeting of the North American Chapter of the Association for Computational Linguistics (NAACL-2000).

[5] KNIGHT, K. AND MARCU, D. 2002. Summarization beyond sentence extraction: A probabilistic approach to sentence compression. Artif. Intell. 139, 1 , 91-107, 2002.

[6] COLLINS, M. Head-driven statistical model for natural language parsing. Ph.D. dissertation, Univ. of Pennsylvania, 1999.

[7] M.L. Nguyen and S. Horiguchi, “A Sentence Reduction Using Syntax Control”, Proc. Of 6th Information Retrieval with Asian Language, pp. 139-146, 2003.

Báo cáo kết thúc môn Máy Học 39