Luận văn Tính toán độ tương tự ngữ nghĩa văn bản dựa vào độ tương tự giữa từ với từ

Tài liệu Luận văn Tính toán độ tương tự ngữ nghĩa văn bản dựa vào độ tương tự giữa từ với từ: ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ------------------------- Đỗ Thị Thanh Nga TÍNH TOÁN ĐỘ TƯƠNG TỰ NGỮ NGHĨA VĂN BẢN DỰA VÀO ĐỘ TƯƠNG TỰ GIỮA TỪ VỚI TỪ LUẬN VĂN THẠC SĨ HÀ NỘI - 2010 LỜI CẢM ƠN Trước tiên, tôi xin được bày tỏ sự trân trọng và lòng biết ơn đối với TS. Nguyễn Phương Thái, giảng viên Bộ môn Khoa học máy tính - Khoa Công nghệ thông tin - Trường Đại học Công nghệ - ĐHQGHN. Trong thời gian làm luận văn tốt nghiệp, thầy đã dành nhiều thời gian quí báu và tận tình chỉ bảo, hướng dẫn tôi trong việc nghiên cứu, thực hiện luận văn. Tôi xin được cảm ơn các GS, TS đã giảng dạy tôi trong quá trình học tập và làm luận văn. Các thầy đã giúp tôi hiểu thấu đáo hơn lĩnh vực mà mình nghiên cứu để có thể vận dụng các kiến thức đó vào trong công tác của mình. Xin cảm ơn các bạn bè, đồng nghiệp và nhất là các thành viên trong gia đình đã tạo mọi điều kiện tốt nhất, động viên, cổ vũ tôi trong suốt quá trình học tập và nghiên cứu để hoàn t...

pdf69 trang | Chia sẻ: haohao | Lượt xem: 2081 | Lượt tải: 3download
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Tính toán độ tương tự ngữ nghĩa văn bản dựa vào độ tương tự giữa từ với từ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ------------------------- Đỗ Thị Thanh Nga TÍNH TOÁN ĐỘ TƯƠNG TỰ NGỮ NGHĨA VĂN BẢN DỰA VÀO ĐỘ TƯƠNG TỰ GIỮA TỪ VỚI TỪ LUẬN VĂN THẠC SĨ HÀ NỘI - 2010 LỜI CẢM ƠN Trước tiên, tôi xin được bày tỏ sự trân trọng và lòng biết ơn đối với TS. Nguyễn Phương Thái, giảng viên Bộ môn Khoa học máy tính - Khoa Công nghệ thông tin - Trường Đại học Công nghệ - ĐHQGHN. Trong thời gian làm luận văn tốt nghiệp, thầy đã dành nhiều thời gian quí báu và tận tình chỉ bảo, hướng dẫn tôi trong việc nghiên cứu, thực hiện luận văn. Tôi xin được cảm ơn các GS, TS đã giảng dạy tôi trong quá trình học tập và làm luận văn. Các thầy đã giúp tôi hiểu thấu đáo hơn lĩnh vực mà mình nghiên cứu để có thể vận dụng các kiến thức đó vào trong công tác của mình. Xin cảm ơn các bạn bè, đồng nghiệp và nhất là các thành viên trong gia đình đã tạo mọi điều kiện tốt nhất, động viên, cổ vũ tôi trong suốt quá trình học tập và nghiên cứu để hoàn thành tốt bản luận văn tốt nghiệp này. Tuy đã có những cố gắng nhất định nhưng do thời gian và trình độ có hạn nên chắc chắn luận văn này còn nhiều thiếu sót và hạn chế. Kính mong nhận được sự góp ý của thầy cô và các bạn. Hà Nội, ngày 20 tháng 09 năm 2010 Học viên Đỗ Thị Thanh Nga LỜI CAM ĐOAN Tôi xin cam đoan rằng, đây là công trình nghiên cứu của tôi trong đó có sự giúp đỡ rất lớn của thầy hướng dẫn và các đồng nghiệp ở cơ quan. Các nội dung nghiên cứu và kết quả trong đề tài này là hoàn toàn trung thực. Trong luận văn, tôi có tham khảo đến một số tài liệu của một số tác giả đã được liệt kê tại phần Tài liệu tham khảo ở cuối luận văn. Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình. Hà Nội, ngày 20 tháng 09 năm 2010 Học viên Đỗ Thị Thanh Nga MỤC LỤC DANH MỤC CÁC BẢNG..................................................................................................... 1 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ................................................................................. 2 MỞ ĐẦU ............................................................................................................................... 3 CHƯƠNG I. KHÁI NIỆM ĐỘ TƯƠNG TỰ.......................................................................... 5 1.1. Tổng quan về độ tương tự............................................................................................ 5 1.2. Khái niệm độ tương tự................................................................................................. 6 1.2.1. Định nghĩa độ tương tự (Definition of Similarity) ................................................ 7 1.2.2. Độ tương tự giữa các giá trị có thứ tự ưu tiên (ordinal values).............................. 8 1.2.3. Độ tương tự chuỗi (String Similarity-A case study).............................................. 9 1.3. Độ tương tự ngữ nghĩa............................................................................................... 10 CHƯƠNG II. ĐỘ TƯƠNG TỰ TỪ-TỪ............................................................................... 11 2.1. Khái niệm từ, thuật ngữ ............................................................................................. 11 2.1.1. Từ và cấu trúc từ của tiếng Việt .......................................................................... 11 2.1.1.1. Định nghĩa từ ............................................................................................... 11 2.1.1.2. Cấu trúc từ của tiếng Việt ............................................................................ 11 2.1.2. Nghĩa của từ ....................................................................................................... 12 2.1.3. Thuật ngữ (terms) ............................................................................................... 12 2.2. Từ đồng nghĩa ........................................................................................................... 12 2.3. Các cách tiếp cận xử lý tài liệu theo ngữ nghĩa .......................................................... 14 2.3.1. Dựa trên trí tuệ nhân tạo (AI-based).................................................................... 14 2.3.2. Dựa trên Cơ sở tri thức (Knowledge-based) ........................................................ 14 2.3.3. Dựa trên ngữ liệu (Corpus-based) ....................................................................... 14 2.4. Độ tương tự ngữ nghĩa từ-từ dựa trên cơ sở tri thức (từ điển WordNet)...................... 15 2.4.1. Khái quát về từ điển WordNet ............................................................................ 15 2.4.2. Độ tương tự từ-từ dựa trên từ điển WordNet ....................................................... 16 2.5. Độ tương tự ngữ nghĩa từ-từ dựa trên ngữ liệu ........................................................... 17 2.5.1. PMI (Pointwise Mutual Information) (Thông tin chung dựa trên điểm) ............... 18 2.5.2. LSA (Latent Semantic Analysis) (Phân tích ngữ nghĩa ẩn) .................................. 18 2.5.3. Phương pháp của Dekang Lin ............................................................................. 18 CHƯƠNG III. ĐỘ TƯƠNG TỰ VĂN BẢN-VĂN BẢN ..................................................... 21 3.1. Xử lý văn bản tiếng Việt............................................................................................ 21 3.1.1. Một số kết quả đã đạt được................................................................................. 21 3.1.2. Đặc trưng của cấu trúc ngữ pháp tiếng Việt ........................................................ 23 3.2. Tách từ trong văn bản tiếng Việt................................................................................ 23 3.3. Các hướng tiếp cận tách từ ........................................................................................ 24 3.3.1. Các hướng tiếp cận dựa trên “từ” ....................................................................... 24 3.3.2. Các hướng tiếp cận dựa trên ký tự ...................................................................... 25 3.4. Một số phương pháp tách từ tiếng Việt hiện nay ........................................................ 26 3.4.1. Phương pháp Maximum Matching: Forward/Backward ..................................... 26 3.4.2. Phương pháp Transformation-based Learning (TBL) ......................................... 27 3.4.3. Mô hình tách từ bằng WFST và mạng Neural .................................................... 27 3.4.3.1. Tầng WFST ................................................................................................. 27 3.4.3.2. Tầng mạng Neural ....................................................................................... 28 3.4.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........................................................................................................................... 28 3.4.4.1. Online Extractor........................................................................................... 28 3.4.4.2. GA Engine for Text Segmentation ............................................................... 29 3.4.5. Nhận xét ............................................................................................................. 29 3.5. Độ tương tự văn bản-văn bản..................................................................................... 30 CHƯƠNG IV. TÍNH ĐỘ TƯƠNG TỰ NGỮ NGHĨA VĂN BẢN DỰA VÀO ĐỘ TƯƠNG TỰ GIỮA TỪ VỚI TỪ........................................................................................................ 33 3.1. Phát biểu bài toán ...................................................................................................... 33 3.2. Giải quyết bài toán .................................................................................................... 33 3.2.1. Chuẩn bị dữ liệu ................................................................................................. 33 3.2.2. Tách từ: Tách văn bản thành các từ ghép và danh từ riêng ................................. 36 3.2.2.1. Tách từ ghép trong văn bản .......................................................................... 36 3.2.2.2. Tách danh từ riêng trong văn bản ................................................................. 39 3.2.3. Tính toán độ tương tự văn bản ............................................................................ 41 3.3. Xây dựng hệ thống .................................................................................................... 44 3.3.1. Nhập trực tiếp 2 văn bản .................................................................................... 45 3.3.2. Nhập 2 văn bản từ file ........................................................................................ 46 3.3.3. Lấy nội dung 2 văn bản từ URL ......................................................................... 47 3.4. Kết quả thử nghiệm và đánh giá ................................................................................ 48 3.4.1. Một số ví dụ cụ thể ............................................................................................. 48 3.4.2. Kết quả thử nghiệm ............................................................................................ 54 3.4.2.1. Cách tiến hành ............................................................................................. 54 3.4.2.2. Kết quả thử nghiệm...................................................................................... 54 3.4.3. Đánh giá ............................................................................................................. 59 KẾT LUẬN ......................................................................................................................... 61 HƯỚNG PHÁT TRIỂN....................................................................................................... 62 TÀI LIỆU THAM KHẢO .................................................................................................... 63 1 DANH MỤC CÁC BẢNG Bảng Trang Bảng 1. Tần suất xuất hiện độ dài từ tiếng Việt trên trang Vdict.com 11 Bảng 2. Mô tả các bộ ba của từ “giàu” 19 Bảng 3. Các điểm khác biệt chính giữa tiếng Việt và tiếng Anh 24 Bảng 4. Địa chỉ của 20 tin tức trên một số trang Web 54 Bảng 5. Một số kết quả độ tương tự của hai file bất kỳ 55 Bảng 6. Kết quả đánh giá 20 tin tức do người và máy thực hiện 56 Bảng 7. Địa chỉ của 30 tin rao vặt trên các trang Web 56 Bảng 8. Một số kết quả độ tương tự của hai tin rao vặt bất kỳ 58 Bảng 9. Kết quả đánh giá 30 tin rao vặt do người và máy thực hiện 59 2 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình Trang Hình 1. Ví dụ phân phối của các giá trị có thứ tự ưu tiên 9 Hình 2. Một phần từ điển WordNet 16 Hình 3. Các hướng tiếp cận cơ bản trong việc tách từ 24 Hình 4. Một phần của từ điển Dict 34 Hình 5. Danh sách một số file trong kho ngữ liệu đã xử lý 34 Hình 6. Một phần của từ điển các từ ghép 35 Hình 7. Một phần từ điển CompoundDict 35 Hình 8. Giao diện chính của hệ thống 45 Hình 9. Giao diện cho phép nhập trực tiếp hai văn bản 45 Hình 10. Giao diện kết quả độ tương tự sau khi nhập hai văn bản 46 Hình 11. Giao diện nhập hai văn bản từ file 46 Hình 12. Giao diện kết quả sau khi nhập hai văn bản từ file 47 Hình 13. Giao diện tính độ tương tự nội dung của hai trang Web 48 3 MỞ ĐẦU 1. Tính cấp thiết của đề tài Trong thời đại công nghệ số như hiện nay, các nguồn tài liệu là vô cùng phong phú. Việc “sao chép tài liệu” theo nghĩa tiêu cực như đạo văn, sao chép các luận án, luận văn, đồ án trở nên phổ biến và đang là vấn nạn. Ở qui mô rộng hơn, các thư viện điện tử ngày càng nhiều, một tài liệu có thể được phát hành trên internet nhiều lần trong những thư viện điện tử khác nhau, trên các trang web khác nhau. Làm thế nào để phát hiện sự sao chép tài liệu theo nghĩa tiêu cực? Làm thế nào ngăn chặn việc sao chép trái phép, đạo văn, đạo nhạc, đạo luận văn, đồ án? Chủ đề này đã được nghiên cứu từ khoảng hơn 10 năm qua. Hiện tại, đã có một số giải pháp cho việc phát hiện sao chép và một vài công cụ phần mềm cho phép phát hiện một tài liệu (gọi là văn bản kiểm tra) có sao chép từ một tập hợp các tài liệu nguồn hay không. Tập hợp các tài liệu nguồn có thể là đóng- tức là các tài liệu tập hợp trước trong một thư viện điện tử- hoặc là mở, chẳng hạn như tập các tài liệu văn bản trên internet. Đã có một số nghiên cứu đề xuất các phương pháp khác nhau để xác định xem một đoạn văn bản của một tài liệu có nằm trong một tài liệu nào khác hay không. Các phương pháp này chủ yếu dựa trên tìm kiếm và so khớp chuỗi. Tuy nhiên, các phương pháp so khớp chuỗi chỉ có hiệu quả nếu việc sao chép là “nguyên văn”. Do vậy một yêu cầu cấp bách đặt ra là làm thế nào để phát hiện việc sao chép khi có sửa đổi đôi chút như thay thế một số từ bằng từ đồng nghĩa hay thay đổi một ít trong thứ tự các câu trong văn bản. Chính vì vậy, đề tài “Tính toán độ tương tự ngữ nghĩa văn bản dựa vào độ tương tự giữa từ với từ” được chọn làm đề tài luận văn tốt nghiệp của tôi. 2. Mục tiêu của luận văn Vận dụng các phương pháp tính độ tương tự giữa từ với từ để tính độ tương đồng ngữ nghĩa giữa hai văn bản giúp phát hiện một văn bản có được sao chép từ văn bản kia hay không. 3. Đối tượng và nhiệm vụ của luận văn Đối tượng:  Tập các văn bản trong bộ dữ liệu mẫu.  Tập các tài liệu trên Internet. 4 Nhiệm vụ: Luận văn tập trung vào tính độ tương tự ngữ nghĩa văn bản dựa trên tập ngữ liệu có sẵn. Trong đó có tận dụng tối đa các đặc điểm của kho ngữ liệu, đến độ tương tự giữa từ với từ và tập các từ đồng nghĩa. 4. Phương pháp và nội dung nghiên cứu  Nghiên cứu lý thuyết về độ tương tự, các cách tính độ tương tự giữa từ với từ.  Nghiên cứu về kho ngữ liệu, hiện tượng từ đồng nghĩa.  Tìm hiều các cách tách từ trong văn bản tiếng Việt.  Nghiên cứu các phương pháp tính độ tương tự ngữ nghĩa văn bản dựa trên độ tương tự giữa từ với từ. 5. Kết cấu của luận văn Nội dung chính của luận văn gồm 4 chương:  Chương I: Khái niệm độ tương tự.  Chương II: Độ tương tự từ-từ.  Chương III: Độ tương tự văn bản-văn bản.  Chương IV: Tính độ tương tự ngữ nghĩa văn bản dựa vào độ tương tự giữa từ với từ. 5 CHƯƠNG I. KHÁI NIỆM ĐỘ TƯƠNG TỰ 1.1. Tổng quan về độ tương tự Nghiên cứu “sự tương tự” (thường ở dạng đối ngẫu của nó là “khoảng cách”) thuộc phạm vi toán học, chẳng hạn trong lý thuyết tôpô và xấp xỉ; nhưng trong khoa học máy tính và các ứng dụng máy tính có phần khác. Trong khoa học máy tính, phép tính xấp xỉ thường được sử dụng theo một lối không có tính hệ thống (non-systematic) và không theo thể thức (ad-hoc). Trong ngữ cảnh này, khái niệm “sự tương tự” xuất hiện ở nhiều dạng, diễn xuất, và nhiều ứng dụng. Khái niệm “sự tương tự” có nhiều dạng khác nhau. Bất chấp những khác biệt, chúng đều có điểm chung: “sự tương tự” được sử dụng để so sánh hai (hay nhiều) đối tượng, hai hoàn cảnh, hai vấn đề, v.v… với nhiều nguyên do khác nhau. Luôn có mục đích nào đó với một phép so sánh như thế, bởi vì một hành động tiếp sau đó được thực hiện và cuối cùng thì một vấn đề nào đó phải được giải quyết. Vì lý do đó, hai đối tượng được đem so sánh giữ những vai trò khác nhau. Đối tượng thứ nhất đang được xem xét và được gọi là vấn đề (problem). Đối tượng thứ hai là đã biết và đã lưu; thường được gọi là bản mẫu (prototype) hay tình huống (case). “Sự tương tự” được sử dụng một cách gián tiếp trong quá trình giải quyết vấn đề, nổi bật là các phương pháp dựa trên phép loại suy (Analogy), lập luận dựa theo tình huống (Case-Based Reasoning), và nhận dạng mẫu (Pattern Recognition). Chúng có liên hệ với nhau và không có ranh giới rõ ràng giữa phép loại suy và các phương pháp khác. Ở đây, chúng ta chấp nhận quan điểm rằng phép loại suy gắn với các đối tượng thuộc nhiều lĩnh vực, trong khi CBR và nhận dạng mẫu sử dụng độ tương tự trong cùng một lĩnh vực. Một khác biệt cơ bản giữa CBR và phép loại suy là CBR thường (không phải luôn luôn) xét các đối tượng được mô tả theo cùng ngôn ngữ mô tả và thuật ngữ, trong khi phép loại suy có thể xét các lý thuyết hoàn toàn khác nhau. Dưới đây là một số ngữ cảnh cần đến “sự tương tự”:  Lập luận dựa theo tình huống (CBR) là một cách rất tổng quát để giải quyết vấn đề bằng cách sử dụng các kinh nghiệm trước đó. Những kinh nghiệm này được ghi lại trong một cơ sở dữ liệu gọi là kho tình huống. Ý tưởng bên dưới nhằm tái sử dụng những kinh nghiệm là: “Nếu hai vấn đề là tương tự thì chúng có các giải pháp tương tự”. CBR cũng có một giả định cơ bản là luôn tồn tại kinh nghiệm. Với điều kiện này, CBR có thể được áp dụng cho hầu hết các dạng ứng dụng. Thường thì có rất nhiều kinh nghiệm được lưu trữ và một khía cạnh thiết yếu là nhanh chóng tìm ra những kinh nghiệm hữu ích (bài toán thu hồi). 6  Trong cơ sở dữ liệu (Databases), “sự tương tự” cũng có liên quan với tìm kiếm, và có quan hệ nào đó với CBR. Đa phần cơ sở dữ liệu cần so trùng chính xác. Các phép đo độ tương tự giữ một vai trò trong một số cơ sở dữ liệu đặc biệt như cơ sở dữ liệu không gian (spatial database) hay cơ sở dữ liệu địa lý (geo- database).  Nhận dạng mẫu (Pattern Recognition) cũng là một vấn đề rất tổng quát, nghiên cứu sự vận hành và thiết kế các hệ thống nhận dạng các mẫu trong dữ liệu. Vì những mẫu như thế không phải lúc nào cũng giống hệt nhau, khái niệm “sự tương tự” thường đóng một vai trò quyết định.  Trong phân loại (Classification) và phân tích cụm (Cluster Analysis), “sự tương tự” được sử dụng để phân loại các đối tượng: các đối tượng tương tự thuộc về cùng một lớp/cụm, các đối tượng không tương tự thuộc về các lớp/cụm khác nhau.  Trong diễn xuất hình ảnh (Image Interpretation), các hình ảnh được diễn xuất theo ý nghĩa của chúng và chúng được so sánh với nhau. Ví dụ, một ảnh y khoa thực tế và một ảnh không có bệnh lý nào đó được so sánh với nhau; độ tương tự giữa những ảnh này được sử dụng để cho biết ảnh thực kia có chứa bệnh lý hay không. Xác minh hình ảnh (Image Identification) cũng thuộc về lĩnh vực này.  Trong tâm lý học nhận thức và xã hội (Cognitive and Social Psychology), “sự tương tự” là cái gì đó chủ quan; ám chỉ thái độ, giá trị, sở thích, và cá tính giữa những con người tương xứng mức độ nào. Có nhiều dạng mô hình về sự tương tự trong tâm lý học, bốn mô hình nổi bật là hình học (geometric), đặc tính (featural), dựa trên canh lề (alignment-based), và biến đổi (transformational).  Trong lĩnh vực an ninh, quốc phòng để xác định đối tượng ảnh khi muốn xác định vân tay, kiểm tra những băng đĩa mang những nội dung cần kiểm soát,… Độ đo tương tự là một trong những phương pháp tốt để máy tính phân biệt được các văn bản qua nội dung của chúng. Xét trên khía cạnh nào đó, độ tương tự càng lớn, hai văn bản giống nhau càng nhiều. 1.2. Khái niệm độ tương tự Độ tương tự là một khái niệm quan trọng và đã được sử dụng rộng rãi. Các định nghĩa trước đây về độ tương tự được trói buộc trong một ứng dụng cụ thể hoặc một dạng thể hiện của tri thức. Nhiều độ đo độ tương tự đã được đưa ra, chẳng hạn như nội dung thông tin (Resnik, 1995b), độ đo thông tin chung (mutual information – Hindle, 1990), độ đo 7 dựa trên khoảng cách (Lee et al., 1998; Rada et al 1998) và mô hình đặc trưng tương phản (Tversky, 1977). McGill etc đã khảo sát và so sánh 67 độ đo độ tương tự đã sử dụng trong tìm kiếm thông tin (McGill et al., 1979). Một vấn đề trong độ đo độ tương tự trước đây là mỗi một trong số chúng bị trói buộc trong một ứng dụng cụ thể hoặc đảm đương một mô hình cụ thể. Ví dụ độ đo về độ tương tự giữa các khái niệm dựa trên khoảng cách (Lee et al., 1989; Rada et al., 1989) thừa nhận rằng phạm vi được thể hiện trong một mạng. Nếu một tập các tài liệu không được thể hiện như một mạng, độ đo dựa trên khoảng cách sẽ không được áp dụng. Hệ số dice (súc sắc) và hệ số cosin chỉ có thể được áp dụng khi các đối tượng được thể hiện như các vecto đặc trưng bằng số. Một vấn đề khác với các độ đo độ tương tự trước đây là các điều giả định cơ bản của chúng thường không ở trạng thái rõ ràng. Ngoài việc biết các giả định này, không thể tạo ra sự tranh luận về mặt lý thuyết hay phản đối bất cứ độ đo cụ thể nào. Hầu hết tất cả các so sánh và đánh giá của các độ đo độ tương tự trước đây đều dựa trên kết quả do kinh nghiệm. Định nghĩa độ tương tự trong phần sau đạt được 2 mục đích:  Tính phổ biến (universality): Chúng ta định nghĩa độ tương tự trong thuật ngữ lý thuyết thông tin. Điều đó có thể được áp dụng miễn là phạm vi có một mô hình xác suất. Từ đó lý thuyết xác suất có thể được tích hợp với nhiều loại thể hiện của tri thức, chẳng hạn như thứ tự logic (Bacchus, 1988) và mạng ngữ nghĩa (Pearl, 1988), định nghĩa của chúng ta về độ tương tự có thể được áp dụng cho nhiều loại lĩnh vực mà mỗi độ đo có một giả định riêng trước. Hơn nữa, tính phổ biến của định nghĩa còn cho phép độ đo được sử dụng trong lĩnh vực không có giả định trước, chẳng hạn như độ tương tự giữa các giá trị có thứ tự.  Tính giả định (Theoretical Justification): độ đo độ tương tự không được định nghĩa một cách trực tiếp bởi công thức. Hơn nữa, nó được phân phát từ một tập các giả định về độ tương tự. Mặt khác, nếu các giả định được cho là hợp lý, độ đo độ tương tự cần thiết phải xảy ra. 1.2.1. Định nghĩa độ tương tự (Definition of Similarity) Mục đích của chúng ta là cung cấp định nghĩa chính thức về khái niệm độ tương tự, đầu tiên chúng ta đưa ra các trực giác (intuitions) về độ tương tự.  Trực giác 1: Độ tương tự giữa A và B có liên quan tới sự tương đồng của chúng. Sự tương đồng càng nhiều, độ tương tự càng lớn. 8  Trực giác 2: Độ tương tự giữa A và B có liên quan tới những sự khác biệt giữa chúng. Càng nhiều sự khác biệt, độ tương tự càng thấp.  Trực giác 3: Độ tương tự lớn nhất giữa A và B đạt được khi A và B giống hệt nhau (đồng nhất - identical) 1.2.2. Độ tương tự giữa các giá trị có thứ tự ưu tiên (ordinal values) Rất nhiều các đặc trưng có các giá trị ưu tiên. Ví dụ, thuộc tính “chất lượng” có thể mang một trong các giá trị sau: “excellent”, “good”, “average”, “bad”, “awful”. Không có một định nghĩa nào ở trên cung cấp độ đo độ tương tự giữa hai giá trị có thứ tự. Bây giờ chúng ta sẽ chỉ ra cách định nghĩa của chúng ta có thể được áp dụng. Nếu “chất lượng của X là excellent” và “chất lượng của Y là average”, sự mô tả cụ thể nhất của cả X và Y là “chất lượng của X và Y ở giữa hai giá trị excellent và average”. Do đó, sự tương đồng giữa hai giá trị ưu tiên được giới hạn bên trong giữa chúng. Giả sử phân phối của thuộc tính “chất lượng” được nêu ra như ở hình 1. Sau đây là 4 ví dụ tính độ tương tự: 2 log P(excellent good)(excellent, good) = log (excellent) + log P(good) sim P   2 log(0.05 0.10) 0.72 log 0.05 log 0.10      2 log P(good erage)(good, average) = log ( erage) + log P(good) avsim P av   2 log(0.10 0.50) 0.34 log 0.10 log 0.50      2 log P(excellent good average)(excellent, average) = log (excellent) + log P(average) sim P    2 log(0.05 0.10 0.50) 0.23 log 0.05 log 0.50       2 log P(good erage bad)(good, bad) = log ( ood) + log P(bad) avsim P g    2 log(0.10 0.50 0.20) 0.11 log 0.10 log 0.20       9 Kết quả chỉ ra rằng độ tương tự giữa “excellent” và “good” cao hơn độ tương tự giữa “good” và “average”, độ tương tự giữa “excellent” và “average” cao hơn độ tương tự giữa “good” và “bad”. 1.2.3. Độ tương tự chuỗi (String Similarity-A case study) Xem xét công việc tìm kiếm từ một danh sách từ các từ mà được xuất phát từ cùng một gốc như là một từ cho sẵn. Ví dụ, cho trước từ “eloquently”, mục đích của chúng ta là để tìm ra các từ liên quan khác như “ineloquent”, “ineloquently”, “eloquent” và “eloquence”. Để làm điều đó, ta có thể định nghĩa độ đo tương tự giữa hai chuỗi và xếp hạng các từ trong danh sách từ theo thứ tự giảm dần của độ tương tự với từ cho sẵn. Những từ xuất phát từ cùng một từ gốc nên xuất hiện sớm trong bảng xếp hạng. Chúng ta tiến hành thử nghiệm với 3 độ đo sau:  Độ đo đầu tiên được định nghĩa như sau: 1( , ) 1 ( , )edit sim x y editDist x y   ở đó editDist(x,y) là số kí tự nhỏ nhất cần chèn vào và xóa đi để chuyển từ xâu này thành xâu khác.  Độ đo độ tương tự thứ hai là dựa trên số bộ ba khác nhau trong hai xâu: 1( , ) 1 ( ) ( ) 2 ( ) ( )tri sim x y tri x tri y tri x tri y       Hình 1: Ví dụ phân phối của các giá trị có thứ tự ưu tiên 10 ở đó tri(x) là tập các bộ ba trong x. Ví dụ tri(eloquent) = {elo, loq, oqu, que, ent}  Độ đo độ tương tự thứ ba là dựa trên giả định là xác suất của một bộ ba xảy ra trong một từ là độc lập với các bộ ba khác trong từ đó. ( ) ( ) ( ) ( ) 2 log ( ) ( , ) log ( ) log ( ) t tri x tri y t tri x t tri y P t sim x y P t P t           1.3. Độ tương tự ngữ nghĩa Độ tương tự ngữ nghĩa là một khái niệm ở đó tập các tài liệu hoặc các thuật ngữ trong một danh sách các thuật ngữ được gán một tỷ lệ dựa trên sự giống nhau về nội dung ý nghĩa của chúng. Độ đo độ tương tự ngữ nghĩa gần đây được áp dụng và phát triển trong rất nhiều lĩnh vực như trong y học (so sánh các gen), trong phân lớp văn bản (các văn bản tương tự nhau thì cùng thuộc một lớp),… Mỗi lĩnh vực khác nhau có các cách để tính độ tương tự ngữ nghĩa khác nhau. Sau đây chúng ta sẽ tìm hiểu các phương pháp tính độ đo tương tự từ-từ và độ đo tương từ giữa văn bản-văn bản. 11 CHƯƠNG II. ĐỘ TƯƠNG TỰ TỪ-TỪ 2.1. Khái niệm từ, thuật ngữ 2.1.1. Từ và cấu trúc từ của tiếng Việt 2.1.1.1. Định nghĩa từ Khái niệm từ nghe rất thông dụng dễ hiểu nhưng định nghĩa chính xác thế nào thì không đơn giản. Từ trước tới nay cũng có nhiều định nghĩa được đưa ra, tất cả đều đúng nhưng chưa hoàn chỉnh. Dưới đây, tôi nêu ra một số định nghĩa về từ. Thời Hy Lạp cổ đại, trường phái ngôn ngữ Alexandre định nghĩa: “Từ là đơn vị nhỏ nhất trong chuỗi lời nói”. Theo E.Sapir: “Từ là một đoạn nhỏ nhất có ý nghĩa, hoàn toàn có khả năng độc lập và bản thân có thể làm thành câu tối giản”. Còn với những nhà ngôn ngữ học tiếng Việt, thì theo Lê Văn Lý: “Từ là một tín hiệu ngữ âm có thể cấu tạo bằng một âm vị hay sự kết hợp với âm vị, mà sự phát âm chỉ tiến hành trong một lần, hoặc là một âm tiết mà chữ viết biểu thị bằng một đơn vị tách rời có thể hiểu được”. Theo Nguyễn Kim Thản thì “Từ là đơn vị cơ bản của ngôn ngữ, có thể tách khỏi các đơn vị khác của lời nói để vận dụng một cách độc lập và là một khối hoàn chỉnh về mặt ý nghĩa và cấu tạo”. Quan niệm của ông về “đơn vị cơ bản” là những đơn vị có số lượng hữu hạn để thông báo, trao đổi tư tưởng cho nhau. Đơn vị này phải có ý nghĩa, và khi sử dụng, người dùng phải có ý thức về nó. Chính vì thế, từ không thể là câu, và không thể là âm tiết (vì nhiều khi âm tiết không có nghĩa và khi sử dụng, người dùng không ý thức về nó). Có người lại cho rằng “Từ là đơn vị nhỏ nhất có nghĩa, có kết cấu vỏ ngữ âm bền vững, hoàn chỉnh, có chức năng gọi tên, được vận dụng độc lập, tái hiện tự do trong lời nói để tạo câu”. Ví dụ: nhà, người, áo, nếu, sẽ, thì, đường sắt, sân bay, dạ dày, đen sì, v.v.. 2.1.1.2. Cấu trúc từ của tiếng Việt Từ tiếng Việt không giống với ngôn ngữ phương Tây khác là không thể tách để xác định từ loại. Từ trong tài liệu tiếng Việt có thể là từ đơn (từ có cấu tạo từ một âm tiết) hoặc từ ghép (từ có cấu tạo từ hai âm tiết trở lên. Theo như thống kê trên trang thì độ dài của một từ tiếng Việt được thể hiện trong bảng: Độ dài của từ Tần số Tỉ lệ % 1 8933 12.2 2 48995 67.1 12 3 5727 7.9 4 7040 9.7 ≥ 5 2301 3.1 Tổng cộng 72994 100 Bảng 1: Tấn suất xuất hiện độ dài từ tiếng Việt trên trang Vdict.com 2.1.2. Nghĩa của từ Nghĩa của từ là một khái niệm đã được nêu ra từ lâu và cũng đã có nhiều cách hiểu, nhiều định nghĩa khác nhau. Nghĩa của từ cũng phản ánh những đặc trưng chung, khái quát của sự vật, hiện tượng do con người nhận thức được trong đời sống thực tiễn tự nhiên và xã hội. Tuy nhiên, nó có thể chưa phải là kết quả của nhận thức đã tiệm cận đến chân lí khoa học. Vì thế, sự vật, hiện tượng nào mà càng ít được nghiênc cứu, phám phá thì nhận thức về nó được phản ánh trong nghĩa của từ gọi tên nó càng xa với khái niệm khoa học. Việc xác định nghĩa của từ trong văn bản là một trong những thách thức lớn nhất trong xử lý ngôn ngữ tự nhiên. Nghĩa của từ chưa biết thường được suy ra từ văn cảnh sử dụng chúng. Sự nhận dạng các từ đồng nghĩa là bước khởi đầu trong việc học định nghĩa một từ. 2.1.3. Thuật ngữ (terms) Thuật ngữ: là các từ khóa có nghĩa liên quan đến một lĩnh vực nào đó, ví dụ: “máy tính”, “công nghệ phần mềm”, “tính toán song song”. Các thuật ngữ này thuộc về lĩnh vực “tin học”. Một thuật ngữ có thể có nhiều từ. Ví dụ: Thuật ngữ “công nghệ” gồm 2 từ “công” và “nghệ”, khi tách chúng ra thì 2 từ này không có ý nghĩa gì cả. 2.2. Từ đồng nghĩa Từ đồng nghĩa không phải là những từ trùng nhau hoàn toàn về nghĩa. Chúng nhất định có những dị biệt nào đó bên cạnh sự tương đồng (mặc dù phát hiện sự dị biệt đó không phải lúc nào cũng dễ dàng). Chính sự dị biệt đó lại là lí do tồn tại và làm nên những giá trị khác nhau giữa các từ trong một nhóm từ đồng nghĩa. Rõ ràng tính đồng nghĩa có những mức độ khác nhau, và ta có thể nêu quan niệm như sau: Từ đồng nghĩa là những từ tương đồng với nhau về nghĩa, khác nhau về âm thanh và có phân biệt với nhau về một vài sắc thái ngữ nghĩa hoặc sắc thái phong cách nào đó, hoặc đồng thời cả hai. 13 Ví dụ: - start, commence, begin (trong tiếng Anh) - cố, gắng, cố gắng (trong tiếng Việt) là những nhóm từ đồng nghĩa. Những từ đồng nghĩa với nhau tập hợp thành một nhóm gọi là nhóm đồng nghĩa. Trong các ví dụ vừa nêu, ta có các nhóm đồng nghĩa của từng ngôn ngữ tương ứng. Những từ đồng nghĩa với nhau không nhất thiết phải tương đương với nhau về số lượng nghĩa, tức là các từ trong một nhóm đồng nghĩa không nhất thiết phải có dung lượng nghĩa bằng nhau: Từ này có thể có một hoặc hai nghĩa, nhưng từ kia có thể có tới dăm bảy nghĩa. Thông thường, các từ chỉ đồng nghĩa ở một nghĩa nào đó. Chính vì thế nên một từ đa nghĩa có thể tham gia vào nhiều nhóm đồng nghĩa khác nhau: Ở nhóm này nó tham gia với nghĩa này, ở nhóm khác nó tham gia với nghĩa khác. Ví dụ: Từ “coi” trong tiếng Việt là một từ đa nghĩa. Tuỳ theo từng nghĩa được nêu lên để tập hợp các từ, mà “coi” có thể tham gia vào các nhóm như: + coi – xem: coi hát – xem hát + coi – giữ: coi nhà – giữ nhà Trong mỗi nhóm từ đồng nghĩa thường có một từ mang nghĩa chung, được dùng phổ biến và trung hoà về mặt phong cách, được lấy làm cơ sở để tập hợp và so sánh, phân tích các từ khác. Từ đó gọi là từ trung tâm của nhóm. Ví dụ trong nhóm từ “yếu, yếu đuối, yếu ớt” của tiếng Việt, từ “yếu” được gọi là từ trung tâm. Tuy nhiên, việc xác định từ trung tâm của nhóm không phải lúc nào cũng dễ và đối với nhóm nào cũng làm được. Nhiều khi ta không thể xác định một cách dứt khoát được theo những tiêu chí vừa nêu trên, mà phải dựa vào những tiêu chí phụ như: tần số xuất hiện cao (hay được sử dụng) hoặc khả năng kết hợp rộng. Chẳng hạn, trong các nhóm từ đồng nghĩa tiếng Việt như: hồi, thuở, thời; hoặc chờ, đợi; hoặc chỗ, nơi, chốn,... rất khó xác định từ nào là trung tâm. Tập hợp đủ các nhóm từ đồng nghĩa, phân tích cho hết được những nét giống nhau, khác nhau giữa các từ trong mỗi nhóm, luôn luôn làm mong muốn của những người nghiên cứu và xử lí vấn đề từ đồng nghĩa. 14 Nhận biết để tập hợp, phân tích thấu đáo các nhóm đồng nghĩa sẽ giúp cho người ta sử dụng được chuẩn xác và tinh tế hơn, phù hợp với tâm lí và thói quen của người bản ngữ hơn. Điều đó rất quan trọng đối với việc dạy và học tiếng. 2.3. Các cách tiếp cận xử lý tài liệu theo ngữ nghĩa Trong xử lý ngôn ngữ tự nhiên, bài toán gán nhãn ngữ nghĩa hay còn gọi là “khử sự nhập nhằng ngữ nghĩa của từ” là bài toán khó khăn nhất và cũng là bài toán trọng tâm mà đến nay trên thế giới vẫn chưa giải quyết ổn thỏa. Hiện nay, có rất nhiều mô hình với nhiều hướng tiếp cận khác nhau, chủ yếu là: 2.3.1. Dựa trên trí tuệ nhân tạo (AI-based) Đây là cách tiếp cận sớm nhất (1960) với những lý thuyết rất hay về mạng ngữ nghĩa, khung ngữ nghĩa và các ý niệm nguyên thủy và các quan hệ như IS-A, PART- OF…Tuy nhiên, do hầu hết các tri thức về ngữ nghĩa trong cách tiếp cận này đều được xây dựng bằng tay, vì vậy các mô hình đều dừng lại ở mức độ biểu diễn trên một vài câu. Vấn đề khó khăn của cách tiếp cận này là thiếu tri thức. 2.3.2. Dựa trên Cơ sở tri thức (Knowledge-based) Vào đầu thập niên 80, người ta đã chuyển sang hướng khai thác tri thức tự động từ các từ điển điện tử (MRD: Machine – Readable Dictionaries) như các từ điển đồng nghĩa…để có thể phần nào khắc phục hạn chế của hướng tiếp cận dựa trên trí tuệ nhân tạo (thiếu tri thức). Kết quả của hướng tiếp cận này là sự ra đời của mạng WordNet – Một cơ sở tri thức khổng lồ về ngữ nghĩa theo hướng liệt kê nét nghĩa. Tuy nhiên, các cơ sở tri thức nói trên cũng chỉ là những nguồn thông tin để hệ thống chọn nghĩa tham khảo, còn chọn thông tin nào trong số những thông tin có liên quan đó thì ta phải tự xác định trong từng trường hợp cụ thể. 2.3.3. Dựa trên ngữ liệu (Corpus-based) Hướng tiếp cận này sẽ rút ra các qui luật xử lý ngữ nghĩa (bằng thống kê, bằng máy học,…) từ những kho dữ liệu lớn đã có sẵn và áp dụng các luật này cho trường hợp mới. Thực ra, cách tiếp cận này đã được nêu ra rất sớm (1940), nhưng do nguồn dữ liệu hạn chế, thiết bị xử lý chưa hiện đại nên không có điều kiện phát triển. Mãi tới thập niên 1990, khi mà công nghệ phát triển mạnh, đã có thể vượt qua được khó khăn của mình, cách tiếp cận này được hồi sinh và phát triển mạnh tới ngày nay. Hiện nay, cách tiếp cận dựa trên ngữ liệu kết hợp với tri thức có sẵn là hướng tiếp cận đang được nhiều nhà ngôn ngữ học – máy tính quan tâm. 15 2.4. Độ tương tự ngữ nghĩa từ-từ dựa trên cơ sở tri thức (từ điển WordNet) 2.4.1. Khái quát về từ điển WordNet Wordnet là một cơ sở dữ liệu tri thức từ vựng học được thiết kế dựa trên những lý thuyết về ngôn ngữ tâm lý theo cách liên tưởng từ ngữ của con người. WordNet được tổ chức dựa theo các quan hệ ngữ nghĩa bởi vì một quan hệ ngữ nghĩa là một quan hệ giữa các nghĩa và các nghĩa có thể được đại diện bởi nhiều synset. Và chúng ta có thể xem những quan hệ ngữ nghĩa như là những con trỏ giữa các synset. Đó là đặc tính của quan hệ ngữ nghĩa và chúng có tác động qua lại với nhau. Một từ bất kỳ có thể có nhiều nghĩa (word meaning) và khi đó mỗi nghĩa của nó sẽ thuộc vào những tập đồng nghĩa khác nhau. Ngược lại, mỗi tập đồng nghĩa lại có thể chứa một hoặc nhiều hơn một từ khác nhau. Xét ví dụ sau: Ví dụ: Khi tìm từ letter trong WordNet ta sẽ được kết quả như sau:  The noun letter has 4 senses: i. Letter, missive: a written message addressed to a person or organization; “wrote an indignant letter to the editor” ii. Letter, letter of the alphabet, alphabetic character: the conventional characters of the alphabet used to represent speech; “his grandmother tauch him his letter”. iii. Letter: a strictly literal interpretation (as distinct from the intention); “he followed instructions to the letter ”; “he obeyed the letter of the law”. iv. Letter, varsity letter: an award earned by participation in a school sport; “he won letters in three sports ”.  Trong WordNet danh từ letter có 4 nghĩa thuộc vào 4 tập đồng nghĩa: i. Tập đồng nghĩa thứ nhất gồm: letter, missive với nghĩa tiếng Việt tương ứng là “lá thư”, “thư tín”. ii. Tập đồng nghĩa thứ hai gồm: letter, letter of the alphabet, alphabetic character với nghĩa tiếng Việt tương ứng là “ký tự”, “chữ” hay “chữ cái”. iii. Tập thứ ba chỉ gồm một từ: letter với nghĩa tiếng Việt là “nghĩa chật hẹp”, “nghĩa mặt chữ”. 16 iv. Tập cuối cùng gồm hai từ: letter, varsity letter với nghĩa tiếng Việt tương ứng là “huy hiệu”, “danh hiệu” tặng cho những sinh viên có thành tích thể thao đặc biệt ở trường. Hình 2: Một phần từ điển WordNet 2.4.2. Độ tương tự từ-từ dựa trên từ điển WordNet Một số độ đo trình bày dưới đây được nghiên cứu dựa trên từ điển phân cấp WordNet. Tất cả các độ đo này đều có đầu vào là một cặp khái niệm, giá trị trả ra là mối quan hệ ngữ nghĩa của chúng. Chúng ta có thể dễ dàng chuyển sang độ tương tự từ-từ bằng cách lựa chọn bất cứ cặp từ cho sẵn nào mà ý nghĩa của chúng dẫn tới độ tương tự cao nhất giữa khái niệm-khái niệm. (1) Leacock và Chodorow Độ tương tự được xác định bởi công thức: log 2Lch lengthSim D    Trong đó length là độ dài của đường đi ngắn nhất giữa hai khái niệm sử dụng node- counting D là độ sâu của hệ thống cây phân cấp (độ sâu lớn nhất của sự phân loại) (2) Lesk Độ tương tự giữa hai khái niệm được xác định như một hàm chồng khít giữa các định nghĩa tương ứng, cũng như được cung cấp bởi một từ điển. Ứng dụng của Lesk không được hạn cho mạng ngữ nghĩa, và nó có thể được dùng cùng với bất cứ từ điển nào cung cấp định nghĩa từ. (3) Wu và Palmer 17 Độ tương tự được đo bởi độ sâu của hai khái niệm trong WordNet và độ sâu của LCS (Least common subsumer) (nút cha chung gần nhất của cả hai khái niệm đó). Công thức như sau: wup 1 2 2 ( ) ( ) ( ) depth LCSsim depth concept depth concept    (4) Resnik Mức tương tự nhau của hai khái niệm có thể được đánh giá bằng mức độ chia sẻ thông tin giữa chúng. Resnik định nghĩa độ tương tự giữa hai khái niệm là “hàm lượng thông tin” của cha chung gần nhất của chúng: Trả về nội dung thông tin (IC) của LCS của hai khái niệm: es ( )rsim IC LCS ở đó IC được xác định như sau: IC(c) = -logP(c) và P(c) là xác suất của một ví dụ của khái niệm c trong tập dữ liệu. (5) Lin Độ đo này lấy từ lý thuyết của ông về tính tương tự giữa hai đối tượng bất kỳ. Cũng gần giống như simjnc 1 2 2 ( ) ( ) ( )lin IC LCSsim IC concept IC concept    (6) Jiang và Conrath Phương pháp này cũng sử dụng khái niệm “hàm lượng thông tin” nhưng ở dạng xác suất có điều kiện: xác suất bắt gặp một synset con khi đã có một synset cha: 1 2 1 ( ) ( ) 2 ( )jnc sim IC concept IC concept IC LCS     Trên đây là 6 phương pháp tính độ tương tự từ-từ dựa trên từ điển WordNet. Tuy nhiên từ điển này là dành cho ngôn ngữ tiếng Anh. Hiện tiếng Việt của chúng ta chưa có bộ từ điển nào có cấu trúc đầy đủ như vậy. Do đó các phương pháp trên khó có thể áp dụng được cho từ tiếng Việt. 2.5. Độ tương tự ngữ nghĩa từ-từ dựa trên ngữ liệu Độ tương tự ngữ nghĩa dựa trên tập ngữ liệu (corpus) xác định mức độ tương tự giữa các từ bằng việc sử dụng thông tin xuất phát từ tập ngữ liệu lớn. Chúng ta xét một số phương pháp sau: 18 2.5.1. PMI (Pointwise Mutual Information) (Thông tin chung dựa trên điểm) PMI sử dụng dữ liệu đã tập hợp từ việc tìm kiếm thông tin (PMI-IR) được đưa ra bởi Turney 2001 như một độ đo không giám sát để đánh giá độ tương tự ngữ nghĩa của từ. Nó dựa trên các từ đồng xảy ra trên một tập ngữ liệu lớn (large corpora). Độ đo PMI-IR cho 2 từ w1 và w2 được tính như sau: 1 2 1 2 2 1 2 (w , w )IR(w , w ) log (w ) (w ) pPMI p p    2.5.2. LSA (Latent Semantic Analysis) (Phân tích ngữ nghĩa ẩn) Trong LSA, các từ đồng xảy ra trong tập corpus được nắm bắt (capture) bằng việc giảm số chiều bởi SVD (Singular Value Decomposition) của một ma trận T (ma trận từ-tài liệu) thể hiện tập corpus. Trong các thí nghiệm ở đây, chúng ta sẽ thực hiện SVD trên tập British National Corpus. SVD là thao tác trong đại số tuyến tính, cái có thể được áp dụng cho bất kỳ ma trận chữ nhật nào để tìm ra mối tương quan giữa hàng và cột. Trong trường hợp này, SVD phân tách ma trận T thành 3 ma trận. SVD có thể được xem là cách để vượt qua một số hạn chế của mô hình không gian vecto chuẩn (số chiều cao – Sparseness and high dimensionality). Thực tế, độ tương tự LSA được tính với số chiều thấp hơn, và mối quan hệ thứ hai giữa thuật ngữ- văn bản được khai thác. Độ tương tự trong không gian kết quả được đo bằng độ tương tự cosin. Chú ý rằng LSA cũng sinh ra một mô hình không gian vecto cho phép thể hiện sự đồng nhất (và so sánh) giữa các từ, tập các từ và các văn bản. 2.5.3. Phương pháp của Dekang Lin Phương pháp này do Dekang Lin (1997) đề xuất trong bài báo “Automatic Retrieval and Clustering of Similar Words”. Kí hiệu (w, r, w’) là một bộ ba có từ trung tâm là w, từ phụ thuộc là w’ và hai từ này được quan hệ với nhau thông qua quan hệ r. Kí hiệu ||w, r, w’|| là số lượng của một loại bộ ba (w, r, w’). Nếu một giá trị trong số ba giá trị w, r hoặc w’ được thay thế bằng dấu * thì giá trị đó là một giá trị xác định bất kì trong kho ngữ liệu. Ví dụ, || gia_đình, mod, *|| là số lượng bộ ba có từ trung tâm là gia_đình và quan hệ là mod, và ||*, *, *|| là tổng số bộ ba được trích từ kho ngữ liệu cú pháp. Một từ w được mô tả thông qua những bộ ba có từ w đó là từ trung tâm hay nó được mô tả thông qua các bộ ba có dạng (w, *, *). Sự tương đồng giữa hai từ được mô 19 tả thông qua những bộ ba mà có sự xuất hiện của một hoặc hai từ đó trong kho ngữ liệu. Ví dụ : từ giàu được mô tả thông qua các bộ ba sau. bộ ba số lượng || giàu , mod-of , chuyện || 1 || giàu , mod-of , cuộc_đời || 1 || giàu , mod-of , em || 1 || giàu , mod-of , hình_ảnh || 1 || giàu , mod-of , hòn || 3 || giàu , mod-of , kính || 1 || giàu , mod-of , kịch || 1 || giàu , mod-of , người || 5 || giàu , mod-of , nhà || 7 || giàu , mod-of , quốc_gia || 1 || giàu , mod-of , tay || 1 Bảng 2 : Mô tả các bộ ba của từ giàu Giả sử rằng sự xuất hiện của các loại bộ ba là độc lập với nhau. Khi đó lượng thông tin chứa trong mô tả của một từ là tổng thông tin chứa trong tất cả các bộ ba có phần tử trung tâm là từ đó. Công thức tính lượng thông tin chứa trong một bộ ba bất kì (w, r, w’) được tính bằng tần xuất xuất hiện của bộ ba đó trong kho ngữ liệu cú pháp hoặc trong trường hợp bộ ba (w, r, w’) không tồn tại trong kho ngữ liệu thì ta có thể tính lượng thông tin đó thông qua các bộ ba chứa một trong các thành phần của bộ ba nói trên trong toàn bộ kho ngữ liệu, hay trong trường hợp một bộ ba tồn tại thì lượng thông tin trong bộ ba trên được định nghĩa là ( , , ) (|| , , ||) /(|| *,*,* ||)P w r w w r w  20 Trong trường hợp bộ ba không tồn tại trong kho ngữ liệu thu được thì nó có thể tính thông qua các bộ ba khác trong kho ngữ liệu, áp dụng công thức xác suất bayes với giả thiết A và C là các biến ngẫu nhiên độc lập với nhau ta có : P(A, B, C) = P(A|B, C) P(B, C) = P(A|B, C) P(C|B) P(B) = P(A|B) P(C|B) P(B) với các biến cố ngẫu nhiên A: một từ được chọn ngẫu nhiên w. B: một kiểu phụ thuộc được chọn ngẫu nhiên r. C: một từ được chọn ngẫu nhiên w’ trong đó ( | ) ( , ,* ) /( *, ,* )P A B w r r P P P P ( | ) ( *, , ) /( *, ,* )P C B r w r P P P P ( ) ( *, ,* ) /( *,*,* )P B r P P P P Khi có các giá trị trên ta có thể tính I(w, r, w’) là giá trị mô tả lượng thông tin chứa trong một bộ ba (w, r, w’). I (w, r, w’)= - log(P(A|B) P(C|B) P(B)) = - (- log(P(A, B, C))) hay ( , , ) log( , , *, ,* ) /( , ,* *, , )I w r w w r w r w r r w    P P P P P P P P Chú ý rằng I(w, r, w’) là lượng thông tin tương hỗ giữa w và w’ Ta định nghĩa tập T(w) là tập các cặp (r, w’) sao cho giá trị log (P(A, B, C)) dương. Khi đó độ tương tự sim(w1, w2) giữa 2 từ w1 và w2 được định nghĩa như sau:       1 2 1 2 1 2( , ) ( ) ( ) 1 2 1 2( , ) ( ) ( , ) ( ) ( , , ) ( , , ) ( , ) ( , , ) ( , , ) r w T w T w r w T w r w T w I w r w I w r w sim w w I w r w I w r w           21 CHƯƠNG III. ĐỘ TƯƠNG TỰ VĂN BẢN-VĂN BẢN 3.1. Xử lý văn bản tiếng Việt 3.1.1. Một số kết quả đã đạt được Tiếng nói và chữ viết là hai yếu tố cơ bản nhất của bất kỳ ngôn ngữ nào. Trong sự phát triển của công nghệ thông tin (CNTT) ở Việt Nam, một số việc liên quan đến “tiếng Việt” đã được làm và ít nhiều có kết quả ban đầu: (a) Trước hết là các bộ gõ chữ Việt và thành công của việc đưa được bộ mã chữ Việt vào bảng mã Unicode, cũng như việc chọn Unicode cho bộ mã chuẩn tiếng Việt (nhân đây cũng xin nói thêm, do chưa ý thức về chuẩn, rất nhiều cán bộ CNTT, nhiều cơ quan nhà nước vẫn chưa chịu đổi thói quen cũ để dùng bộ mã chuẩn Unicode, một việc rất quan trọng của xử lý tiếng Việt). Bảo tồn chữ Nôm trên máy tính cũng là một việc đầy nỗ lực và nhiều ý nghĩa được nhiều người theo đuổi lâu nay, cần được nhà nước tiếp tục ủng hộ lâu dài ( (b) Tiếp theo có thể kể đến các chương trình nhận dạng chữ Việt in (OCR: optical character recognition), như hệ VnDOCR của Viện Công nghệ Thông tin, Viện Khoa học và Công nghệ Việt Nam. Các chương trình nhận dạng chữ in nhằm chuyển các tài liệu in trên giấy thành các tài liệu điện tử (dưới dạng các tệp văn bản trên máy tính) (c) Các phần mềm hỗ trợ việc sử dụng tiếng nước ngoài, tiêu biểu là các từ điển song ngữ trên máy tính, thí dụ như các từ điển điện tử của Lạc Việt đã được dùng rộng rãi trên máy tính để tra cứu từ Anh-Việt, Việt-Anh. Điều ta cần phân biệt là các từ điển điện tử này dành cho con người sử dụng, khác với từ điển điện tử dành cho máy tính sử dụng trong xử lý ngôn ngữ tự nhiên (sẽ được đề cập ở phần sau). (d) Các nỗ lực trong việc làm các phần mềm dịch Anh-Việt, Việt-Anh, chẳng hạn như các hệ dịch EVTRAN và VETRAN. (e) Một loại việc nữa là Việt hóa các phần mềm mà gần đây tiêu biểu là kết quả Việt hóa Windows và Microsoft Office của Microsoft. Việc này có thể xem như việc “dịch” các thông báo tiếng Anh cố định trong các phần mềm thành các thông báo tiếng Việt. Các dữ liệu liên quan đến ngôn ngữ viết (văn bản) và nói (tiếng nói) đang dần trở nên kiểu dữ liệu chính con người có và lưu trữ dưới dạng điện tử. Với sự ra đời và phổ biến của Internet, của sách báo điện tử, của máy tính cá nhân,, của viễn thông, 22 của thiết bị âm thanh,…người người ai cũng có thể tạo ra dữ liệu văn bản hay tiếng nói. Vấn đề là làm sao ta có thể xử lý chúng, tức chuyển chúng từ các dạng ta chưa hiểu được thành các dạng ta có thể hiểu và giải thích được, tức là ta có thể tìm ra thông tin, tri thức hữu ích cho mình. Sau đây là một số bài toán tiêu biểu của xử lý ngôn ngữ với các mức độ khác nhau về xử lý và sử dụng ngôn ngữ tự nhiên của con người:  Nhận dạng tiếng nói (speech recognition): từ sóng tiếng nói, nhận biết và chuyển chúng thành dữ liệu văn bản tương ứng [Jelinek, 1998], [Jurafsky and Martin, 2000].  Tổng hợp tiếng nói (speech synthesis): từ dữ liệu văn bản, phân tích và chuyển thành tiếng người nói [Jelinek, 1998], [Jurafsky and Martin, 2000].  Nhận dạng chữ viết (optical character recognition, OCR): từ một văn bản in trên giấy, nhận biết từng chữ cái và chuyển chúng thành một tệp văn bản trên máy tính.  Dịch tự động (machine translation): từ một tệp dữ liệu văn bản trong một ngôn ngữ (tiếng Anh chẳng hạn), máy tính dịch và chuyển thành một tệp văn bản trong một ngôn ngữ khác (tiếng Việt chẳng hạn) [Dorr et al, 2000], [Nagao, 1989].  Tóm tắt văn bản (text summarization): từ một văn bản dài (mười trang chẳng hạn) máy tóm tắt thành một văn bản ngắn hơn (một trang) với những nội dung cơ bản [Mani and Maybury, 1999].  Tìm kiếm thông tin (information retrieval): từ một nguồn rất nhiều tệp văn bản hay tiếng nói, tìm ra những tệp có nội dung liên quan đến một vấn đề (câu hỏi) ta cần biết (hay trả lời) [Baeza-Yates and Riberio-Neto, 1999]. Điển hình của công nghệ này là Google, một hệ tìm kiếm thông tin trên Web, mà hầu như chúng ta đều dùng thường xuyên.  Trích chọn thông tin (information extraction): từ một nguồn rất nhiều tệp văn bản hay tiếng nói, tìm ra những đoạn bên trong một số tệp liên quan đến một vấn đề (câu hỏi) ta cần biết hay trả lời [Cohen and McCallum, 2003].  Phát hiện tri thức và khai phá dữ liệu văn bản (knowledge discovery and text data mining): từ những nguồn rất nhiều văn bản thậm chí hầu như không có quan hêj với nhau, tìm ra được những tri thức trước đấy chưa ai biết. Đây là một vấn đề rất phức tạp và đang ở giai đoạn đầu của các nghiên cứu trên thế giới [Berry, 2004], [Sirmakessis, 2004]. 23 Còn nhiều bài toán và công nghệ xử lý ngôn ngữ khác, như giao diện người máy bằng ngôn ngữ tự nhiên, các hệ hỏi đáp, các hệ sinh ra ngôn ngữ,… 3.1.2. Đặc trưng của cấu trúc ngữ pháp tiếng Việt Các đặc điểm trong câu của tiếng Việt:  Câu được cấu tạo đa thành phần, có câu đơn, câu ghép, câu tối giản.  Các câu được phân tách bằng các dấu chấm câu.  Câu hoàn chỉnh có hoặc không sử dụng các trạng từ, từ cảm thán (các từ dừng sẽ được loại bỏ khi phân tách để lọc thông tin)  Câu được hình thành từ các từ, hoặc các câu đơn.  Mỗi câu mang một ý nghĩa thông tin hoàn chỉnh. Với các tài liệu tiếng Anh, các từ được phân cách nhau bởi dấu cách. Việc xử lý phân tách từ từ các văn bản tiếng Anh tương đối dễ dàng. Trong tiếng Việt không thể phân tách được thành những từ riêng bởi dấu cách. Vì từ có thể gồm một, hai hoặc nhiều hơn số lượng âm tiết (số lượng từ ghép). Vì thế, việc tách từ để chính xác đòi hỏi giải thuật tách từ tốt. 3.2. Tách từ trong văn bản tiếng Việt Tách từ là một khó khăn chính trong việc xử lý văn bản theo ngữ nghĩa đối với các ngôn ngữ châu Á như tiếng Hoa, tiếng Nhật, tiếng Hàn và cả tiếng Việt. Mặc dù được viết bằng các ký tự Latinh mở rộng, tiếng Việt cũng có những đặc tính chung với các ngôn ngữ Đông Nam Á khác như khó xác định ranh giới giữa các từ và có các điểm khác biệt về ngữ âm, văn phạm và ngữ nghĩa so với các ngôn ngữ Ấn Âu. Do đó rất khó có thể áp dụng các kỹ thuật và hướng tiếp cận đã được nghiên cứu và thử nghiệm thành công trên các ngôn ngữ Ấn Âu cho tiếng Việt nếu không xây dựng thành công giải pháp cho việc tách từ trong văn bản tiếng Việt. Tuy nhiên, việc xác định ranh giới từ trong tiếng Việt lại là bài toán khó. Tại sao lại như vậy? Đơn vị cơ bản trong tiếng Việt là tiếng, không phải là từ. Từ trong tiếng Việt có một số đặc tính sau:  Từ ở dạng nguyên thể, hình thức và ý nghĩa của từ độc lập với cú pháp.  Từ được cấu trúc từ “tiếng”.  Từ bao gồm từ đơn (từ một tiếng) và từ phức (n-tiếng, với n < 5), bao gồm từ láy và từ ghép. 24 Trong khi đó, định nghĩa về từ trong tiếng Anh như sau: “Từ là một nhóm ký tự có nghĩa, được phân cách bởi ký tự khoảng trắng trong câu” (Từ điển Webster). Dưới đây là một số điểm khác biệt chính giữa tiếng Việt và tiếng Anh. Những đặc điểm này làm cho việc tách từ tiếng Việt trở nên khó khăn hơn. Đặc điểm Tiếng Việt Tiếng Anh Đơn vị cơ bản Tiếng Từ Tiền tố/Hậu tố Không có Có Từ loại Chưa được định nghĩa rõ (Not Unanimous) Được định nghĩa rõ Ranh giới từ Tổ hợp có nghĩa dựa vào ngữ cảnh của các tiếng Khoảng trắng hoặc dấu câu Bảng 3: Các điểm khác biệt chính giữa tiếng Việt và tiếng Anh 3.3. Các hướng tiếp cận tách từ Các hướng tiếp cận cơ bản trong việc tách từ: Hình 3: Các hướng tiếp cận cơ bản trong việc tách từ 3.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à nhóm lai (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 thống kê 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, 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. Tách từ Dựa trên ký tự Dựa trên từ Uni-gram N-gram Thống kê Từ điển Lai 25  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 quả. 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 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í. Tóm lại, các hướng tiếp cận để tách từ tiếng Việt dựa vào từ chỉ khả thi khi chúng ta có bộ từ vựng tốt hay ngữ liệu huấn luyện đủ lớn và đáng tin cậy. 3.3.2. Các hướng tiếp cận dựa trên ký tự Các hướng tiếp cận dựa trên ký tự (dựa trên “tiếng” trong tiếng Việt) có thể chia làm 2 nhóm nhỏ: uni-gram và n-gram. 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ự (uni-gram) hay nhiều ký tự (n-gram) và cũng mang lại một số kết quả 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ả 26 khác. Khi so sánh kết quả 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 quả 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.4. Một số phương pháp tách từ tiếng Việt hiện nay 3.4.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. 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ử C1 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 có ba từ 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. 27 3.4.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.4.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 để 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.4.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. 28 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 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. 3.4.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.4.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: 3.4.4.1. 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 MI (Mutual Information) để làm cơ sở tính fitness cho GA (Genetics Algorithm) engine.  Tính xác suất các từ xuất hiện trên Internet: 29   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).  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 MI (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) 3.4.4.2. GA Engine for Text Segmentation Mỗi cá thể trong quần 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. Ví dụ: Học sinh học sinh học 0 0 1 0 0 Học sinh # học # sinh học w1 w2 w3 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.5. Nhận xét 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 quả 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 30 đá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. 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 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. 3.5. Độ tương tự văn bản-văn bản Các độ đo độ tương tự văn bản đã được dùng từ rất lâu trong các ứng dụng của xử lý ngôn ngữ tự nhiên và các lĩnh vực liên quan. Một trong những ứng dụng sớm nhất của độ tương tự văn bản có lẽ là mô hình vecto trong tìm kiếm thông tin, ở đó tài liệu có liên quan nhất tới câu truy vấn đầu vào được xác định bằng cách xếp hạng các tài liệu trong tập theo thứ tự ngược của độ tương tự (Salton  Lesk 1971). Độ tương tự văn bản cũng được dùng cho phản hồi liên quan (relevance feedback), phân lớp văn bản (Rochio 1971), và gần đây hơn là cho trích chọn văn bản (Salton et al. 1997), và phương pháp cho việc đánh giá dịch máy tự động (Papineni et al. 2002) hay tóm tắt văn bản (Lin  Hovy 2003). Độ đo độ tương tự văn bản cũng được sử dụng cho việc đánh giá tính chặt chẽ của văn bản (Lapata  Barzilay 2005). Với một số trường hợp, phương pháp tự động tìm độ tương tự giữa hai đoạn văn bản là sử dụng việc so khớp từ đơn giản, và tạo ra một điểm tương tự dựa trên số đơn vị từ vựng xảy ra ở cả hai đoạn văn bản đầu vào. Sự cải tiến với phương pháp đơn giản này là xem xét đến gốc từ (stemming), việc loại bỏ các từ dừng, gán nhãn từ loại (part-of-speech tagging), so khớp tập con dài nhất, cũng như các trọng số và các nhân tố khác. Trong khi thành công với mức độ như vậy, phương pháp độ tương tự từ vựng không thể luôn luôn xác định độ tương tự ngữ nghĩa văn bản. Có một số lượng lớn độ đo độ tương tự ngữ nghĩa giữa từ với từ, sử dụng phương pháp hoặc là dựa trên cơ sở tri thức (knowledge-based), hoặc là dựa trên kho ngữ liệu (corpus-based). Các độ đo này được áp dụng thành công trong công việc xử 31 lý ngôn ngữ như phát hiện từ dùng sai nghĩa (Buddanitsky  Hirst 2001), nhận dạng từ đồng nghĩa. Với độ tương tự ngữ nghĩa dựa trên văn bản, có lẽ hầu hết sử dụng phương pháp xấp xỉ thu được qua việc mở rộng truy vấn, cũng như đã thực hiện trong tìm kiếm thông tin (Voorhees 1993), hay phương pháp phân tích ngữ nghĩa ẩn (Landauer, Foltz  Laham 1998), các phương pháp này đo độ tương tự của các văn bản bằng cách khai thác mối quan hệ giữa các từ một cách tự động qua tập văn bản lớn. Trong bài này, chúng ta xem xét một phương pháp đo độ tương tự ngữ nghĩa văn bản bằng cách khai thác thông tin có thể được tạo ra từ độ tương tự của các từ thành phần. Cho trước 2 đoạn văn bản, chúng ta muốn tự động nhận được một độ đo (score) chỉ tới độ tương tự của chúng ở mức độ ngữ nghĩa, do đó phương pháp so khớp từ truyền thống đã được dùng cho công việc này. Mặc dù chúng ta nhận ra sự thật là một phương pháp toàn diện về độ tương tự ngữ nghĩa văn bản cũng nên tính đến cả cấu trúc văn bản nhưng đầu tiên chúng ta cũng gác lại vấn đề này và thử mô hình độ tương tự ngữ nghĩa văn bản như là hàm của độ tương tự ngữ nghĩa của các từ thành phần. Chúng ta làm bằng cách kết hợp độ tương tự giữa từ với từ và đặc trưng của từ thành một công thức, đây là công cụ tốt cho độ tương tự ngữ nghĩa của hai đoạn văn bản. Trong phần này, ta cũng tính đến cả đặc trưng của từ (idf) để đưa ra trọng số cao hơn cho việc nhận dạng sự phù hợp ngữ nghĩa của 2 từ riêng lẻ và đưa ra trọng số kém hơn cho các khái niệm chung chung. Trong khi đặc trưng của từ cũng được đo cho một vài lĩnh vực bằng độ sâu của chúng trong phân cấp ngữ nghĩa, chúng ta cũng đang tăng cường nhân tố này với độ đo đặc trưng từ trên tập corpus, dựa trên phân phối thông tin đã nghiên cứu từ một tập văn bản lớn. Đặc trưng của một từ được xác định dựa vào tần suất tài liệu đảo ngược (idf), được tính bằng tổng số tài liệu trong tập corpus chia cho tổng số tài liệu chứa từ đó. Cho trước độ tương tự từ-từ và đặc trưng của từ, chúng ta xác định độ tương tự ngữ nghĩa của hai đoạn văn bản T1 và T2 bằng cách sử dụng phương pháp kết hợp độ tương tự ngữ nghĩa của mỗi đoạn văn này đối với đoạn văn kia. Đầu tiên, với mỗi từ w trong đoạn T1, chúng ta cố gắng xác định từ trong đoạn T2 mà có độ tương tự ngữ nghĩa cao nhất (maxSim(w, T2)), theo một trong các độ đo được mô tả dưới đây. Sau đó quá trình tương tự được áp dụng cho xác định từ tương tự nhất trong T1 bắt đầu với những từ trong T2. Độ tương tự từ sau đó được đánh trọng số với đặc trưng từ tương ứng, và được chuẩn hóa với độ dài của mỗi đoạn văn bản. Cuối cùng kết quả được tính bằng công thức trung bình đơn giản: 32     1 2 1 2 2 1 w {T } w {T } 1 2 w {T } w {T } axSim(w,T ) (w) axSim(w,T ) (w) 1( , ) 2 idf(w) idf(w) m idf m idf sim T T                     Độ tương tự là một giá trị giữa 0 và 1. Độ đo là 1 tức hai đoạn văn bản giống hệt nhau, độ đo là 0 tức hai đoạn văn khác nhau hoàn toàn. Chú ý là độ tương tự lớn nhất sẽ được tìm với các lớp từ có cùng từ loại. Chẳng hạn như từ tương tự nhất giữa danh từ “bông hoa” với đoạn văn bản “Có rất nhiều loại hoa màu đỏ ở gần ngôi nhà” sẽ được tìm với “loại hoa” và “ngôi nhà”, và sẽ bị lờ đi với các thể loại từ khác (như “màu đỏ”, “ở gần”,…). Hơn nữa, với những thể loại này (tính từ, trạng từ) độ tương tự ngữ nghĩa không thể đo được, chúng ta sử dụng độ đo dựa vào so khớp từ, hai từ cùng xảy ra ở cả hai văn bản sẽ có maxSim bằng 1. Tuy nhiên, trong khuôn khổ luận văn này, chúng tôi chưa xét đến từ loại của từ. 33 CHƯƠNG IV. TÍNH ĐỘ TƯƠNG TỰ NGỮ NGHĨA VĂN BẢN DỰA VÀO ĐỘ TƯƠNG TỰ GIỮA TỪ VỚI TỪ 3.1. Phát biểu bài toán Bài toán: Tính toán độ tương tự ngữ nghĩa văn bản dựa vào độ tương tự giữa từ với từ. Input:  2 văn bản hoặc 2 URL từ VnExpress.net hoặc DanTri.com.vn  Kho ngữ liệu gồm các file .seg  Tập các từ đồng nghĩa (file SameMeaning.txt) Output:  Độ đo tương tự giữa hai văn bản. 3.2. Giải quyết bài toán Các bước như sau: 3.2.1. Chuẩn bị dữ liệu Bước 1: Từ kho dữ liệu gồm các file .seg, ta tạo ra:  Từ điển Dict, file từ điển này có cấu trúc như sau: (key_word + + ':' + word_total + + list_of_docs) Trong đó key_word dùng làm khóa, cặp ký tự + ':' là dấu hiệu ngăn cách giữa khóa và value, các thành phần còn lại (sau dấu ':') là value.  Từ điển này được thể hiện bằng một danh sách gồm các cặp (key, value):  Key: danh sách các từ khóa (key_word).  Value: Gồm số lần xuất hiện của từ đó và danh sách các file .seg có chứa từ đó (cách nhau bằng dấu chấm phảy). Lấy các thành phần này ra thì cần qua thao tác bóc tách. Một phần của từ điển Dict như sau: 34 Hình 4: Một phần của từ điển Dict Như vậy sau mỗi từ khóa sẽ đến một dấu tab, đến dấu hai chấm rồi đến tổng số lần xuất hiện của từ đó trong tất cả các file tài liệu, tiếp đến lại là một dấu tab và cuối cùng là danh sách các file tài liệu có chứa từ đó.  Danh sách các file đã xử lý (lưu vào tệp processed_files.txt). Mục đích tạo ra file này là để lấy tổng số các tài liệu mà dữ liệu đã được phân tích xử lý để đưa vào từ điển Dict, phục vụ cho việc tính độ tương tự trong phần sau. Lưu lại danh sách này cũng để xác định xem nếu có một file mới đưa vào để phân tích thì kiểm tra xem file đó đã được xử lý hay chưa. Hình 5: Danh sách một số file trong kho ngữ liệu đã xử lý 35 Bước 2: Dựa vào từ điển Dict.txt, ta trích xuất ra tất cả các từ ghép và lưu vào từ điển CompoundWords, theo đó CompoundWords là bao gồm tất cả các từ ghép xuất hiện trong kho dữ liệu .seg. Hình 6: Một phần của từ điển các từ ghép Bước 3: Kết hợp từ điển CompoundWords và SameMeaning ta được từ điển CompoundDict (dùng để tách văn bản thành các từ độc lập). Từ điển này có cấu trúc gồm 2 phần:  Key: danh sách các từ khóa  Value: các số nguyên, giá trị này dùng để xác định các từ đồng nghĩa. Các từ có cùng giá trị Value thì tương tự nhau về nghĩa. Một phần của từ điển CompoundDict như sau: Hình 7: Một phần từ điển CompoundDict 36 3.2.2. Tách từ: Tách văn bản thành các từ ghép và danh từ riêng Từ ghép là một tổ hợp từ 2 từ trở lên mang đầy đủ ý nghĩa (thường là tổ hợp 2 đến 4 từ). Nếu tách các từ trong một từ ghép ra thì sẽ thành những từ có ý nghĩa khác hẳn. VD: “công nghệ thông tin”, “ngôn ngữ tự nhiên”, “siêu văn bản”, “tin học”,.... Danh từ riêng là những từ ghép mà các chữ cái đầu viết hoa. 3.2.2.1. Tách từ ghép trong văn bản Giả sử một từ ghép gồm tối đa 4 từ đơn  Đầu vào: Văn bản sText dạng chuẩn (chưa tách từ)  Đầu ra: Văn bản sOutText (đã tách thành các từ ghép)  Ý tưởng: Xét từng tổ hợp từ từ 4 đến 2 từ, so sánh các tổ hợp này với các từ ghép trong từ điển CompoundDict. Nếu nó xuất hiện trong từ điển thì nó là từ ghép, ngược lại, nó không là từ ghép. Cách làm như sau:  Thêm một dấu cách vào cuối văn bản sText để xét trường hợp cuối đoạn có dấu chấm câu. Khi đó ngắt câu sẽ dùng chung qui luật với các đoạn khác. sText += " ";  Ngắt văn bản sText ra thành các đoạn căn cứ vào các dấu chấm câu: Thay dấu "? " bằng dấu " ?\n " sText = sText.replace("? ", " ?\n "); Thay dấu ": " bằng dấu " :\n " sText = sText.replace(": ", " :\n "); Thay dấu "! " bằng dấu " !\n " sText = sText.replace("! ", " !\n "); Thay dấu ", " bằng dấu " , " sText = sText.replace(", ", " , "); Thay dấu "; " bằng dấu " ; " sText = sText.replace("; ", " ; "); Xóa bỏ dấu "\"" sText = sText.replace("\"", ""); 37 Xóa bỏ dấu "' " sText = sText.replace("' ", ""); Thay hai dấu cách bằng một dấu cách: sText = sText.replace(" ", " ");  Tiến hành ngắt đoạn  Tiếp theo, xét từng đoạn văn một: Tách đoạn văn thành mảng các từ phân cách nhau bởi dấu cách. - Xét từ đầu tiên của đoạn: + Trường hợp 1: Nếu kí tự đầu tiên của từ là kí tự đặc biệt (vd dấu câu như '?', ':',...) hoặc nó không phải là chữ cái thì bỏ qua. Ở đây các trường hợp sau không được xem là từ hợp lệ: “?Anh”, “123Em”, “$Usd”,... + Trường hợp 2: Từ đầu tiên là một từ hợp lệ (ví dụ từ “xã”), lần lượt lấy các từ tiếp theo để xét các tổ hợp từ 4 đến 2 từ: Ví dụ: Xét tổ hợp từ “xã_hội_chủ_nghĩa”: Nếu là từ ghép (tức nằm trong từ điển CompoundDict) thì thêm nó vào danh sách văn bản đầu ra sOutText và thêm dấu cách. Nếu không là từ ghép thì xét tiếp đến tổ hợp “xã_hội_chủ”, nếu vẫn không là từ ghép thì xét tổ hợp cuối cùng là “xã_hội”. - Tiếp theo ta nhảy đến xét từ ở vị trí kế tiếp, cứ tiếp tục làm như trên cho tới cuối đoạn văn. - Nếu vẫn còn từ chưa thêm vào biến sOutText (trường hợp còn từ cuối cùng) thì ta cứ thế thêm vào.  Mã nguồn của module này như sau: private static String splitKeywords(String sText) { StringBuffer sOutText = new StringBuffer(); sText += " "; sText = sText.replace(". ", " .\n "); sText = sText.replace("? ", " ?\n "); sText = sText.replace(": ", " :\n "); sText = sText.replace("! ", " !\n "); sText = sText.replace(", ", " , "); sText = sText.replace("; ", " ; "); sText = sText.replace("\"", ""); sText = sText.replace("' ", ""); sText = sText.replace(" ", " "); 38 String[] sParagraphArr = sText.split("\n"); for(String sParaItem: sParagraphArr) { String currWord[] = sParaItem.split(" "); int i = 0; while (i < currWord.length - 1) { if (currWord[i].length() <= 0) { i++; continue; } boolean isAppened = false; int t = MAX_TOTAL_WORDS_IN_A_COMPOUNDWORD - 1; char ch = currWord[i].charAt(0); //Ký tự đầu của word if (".,;?:!".indexOf(ch)>= 0 || !Character.isLetter(ch)) { t = 0; } else { while (t > 0) { StringBuffer strTemp = new StringBuffer(); strTemp.append(currWord[i]); for (int j = i + 1; j < i + 1 + t && j < currWord.length; j++) { strTemp.append("_" + currWord[j]); } String tmpWord = strTemp.toString().toLowerCase().trim(); if (WordDict.CompoundDict.containsKey(tmpWord)) { sOutText.append(strTemp + " "); isAppened = true; //đánh dấu là đã thêm vào chuỗi output break; } else { //Nếu ko phải là 1 từ ghép -> xét đến tổ hợp ngắn //hơn bằng cách giảm biến đếm đi 1. t--; } } } if (t == 0) { if (!isAppened) { sOutText.append(currWord[i] + " "); } } i += t + 1; } if (i < currWord.length) { sOutText.append(currWord[i] + " "); } sOutText.append("\n"); } return sOutText.toString(); } 39 3.2.2.2. Tách danh từ riêng trong văn bản  Đầu vào: văn bản sText là văn bản đã tách từ ghép.  Đầu ra: văn bản sOutText tách thành văn bản đã đoán nhận các danh từ riêng. - Danh từ riêng: là các từ không đứng ở đầu câu gồm ít nhất 2 từ mà chữ cái đầu viết hoa. - Dùng một vector để lưu danh sách các danh từ riêng (tên riêng) đã tìm được. - Hàm (phương thức) IsName để kiểm tra xem một từ có phải là danh từ riêng (tên riêng) hay không (tức kiểm tra xem chữ cái đầu của từ đó có viết hoa không, đồng thời nó không phải là từ ghép đã đoán nhận).  Cách tách như sau:  Bước 1: Ngắt văn bản thành các câu phân cách nhau bởi dấu xuống dòng hoặc dấu chấm câu.  Bước 2: Ngắt mỗi câu thành mảng các từ đơn.  Bước 3: Với mỗi câu văn bản:  Bỏ qua các từ viết hoa liền nhau ở đầu câu.  Xét từng từ một, nếu thấy từ dạng tên riêng mà không đứng ở đầu câu thì lưu lại vào biến tạm aName. Khi có 2 từ liền nhau trở lên được lưu vào biến tạm, đồng thời từ tiếp theo không phải là dạng tên riêng, thì ta thêm aName vào danh sách danh từ riêng (lưu vào vector).  Mỗi lần lưu một danh từ riêng vào vector xong, ta xóa rỗng biến tạm để chuẩn bị xét đến từ tiếp theo.  Cứ tiếp tục làm như vậy cho đến khi hết câu văn.  Bước 4: Xét ngược lại các trường hợp danh từ đứng ở đầu câu. Nếu một danh từ riêng đã được xác định ở chỗ khác trong câu thì khi đó, nếu nó xuất hiện ở đầu câu (trường hợp đã bỏ qua khi xét ở trên) thì nó cũng là danh từ riêng.  Với mỗi từ trong danh sách tên riêng, ta thay dấu cách phân cách từ bằng dấu gạch dưới và lưu vào biến realName.  Với mỗi câu văn bản, ta thay tất cả những tên riêng aName bằng tên riêng realName (ví dụ thay hết các từ dạng “Nguyễn Văn A” thành dạng “Nguyễn_Văn_A”). 40  Tiếp tục như trên cho tới khi hết thay thế hết tất cả các từ trong tất cả các câu văn. Hạn chế: Đối với các tên riêng chỉ xuất hiện ở đầu câu mà không xuất hiện ở những vị trí khác thì chương trình chưa phát hiện ra. Ví dụ:  Văn bản 1: Chủ tịch Hồ Chí Minh vĩ đại sống mãi trong sự nghiệp của chúng ta.  Văn bản 2: Hồ Chí Minh muôn năm. Hồ Chí Minh là một danh nhân văn hóa thế giới. Khi tính độ tương tự, hai văn bản trên được tách từ như sau:  Văn bản 1: Chủ_tịch Hồ_Chí_Minh vĩ_đại sống mãi trong sự_nghiệp của chúng_ta.  Văn bản 2: Hồ Chí Minh muôn năm. Hồ Chí Minh là một danh_nhân văn_hóa thế_giới. Ở ví dụ trên, mặc dù từ Hồ Chí Minh xuất hiện 2 lần trong văn bản 2 nhưng vì đứng ở đầu câu nên nó vẫn không được nhận biết là tên riêng.  Mã nguồn của module này như sau: private static String splitNameWords(String sText) { StringBuffer sOutText = new StringBuffer(); Vector vNameList = new Vector(); String[] sParagraphArr = sText.split("\n"); for(String sParaItem: sParagraphArr) { String strWordArr[] = sParaItem.split(" "); boolean isFirstPositionOfParagraph = true; StringBuffer aName = new StringBuffer(); for (int i = 0; i < strWordArr.length; i++) { String currWord = strWordArr[i]; if (isFirstPositionOfParagraph) { if (!isName(currWord)) { isFirstPositionOfParagraph = false; } } else { boolean hasName = false; if (isName(currWord)) { aName.append(currWord + " "); hasName = true; } if (!hasName || i == strWordArr.length - 1) { if (aName.length() > 0) { if (aName.toString().trim().indexOf(' ') > 0) { vNameList.addElement(aName.toString().trim()); } 41 aName.delete(0, aName.length()); } } } } } //Xét ngược lại các trường hợp danh từ đứng ở đầu câu. for(String sParaItem: sParagraphArr) { sParaItem = " " + sParaItem + " "; for (String aName: vNameList) { String realName = aName.replace(' ', '_'); sParaItem = sParaItem.replace(" " + aName + " ", " " + realName + " "); } sOutText.append(sParaItem.trim() + "\n"); } return sOutText.toString(); } 3.2.3. Tính toán độ tương tự văn bản  Đầu vào: Hai văn bản đã tách từ.  Đầu ra: Độ tương tự giữa hai văn bản. Độ tương tự giữa hai văn bản được tính theo công thức: Bước 1: Tính toán giá trị idf của một từ Idf của một từ được tính bằng tổng số toàn bộ tài liệu trong tập corpus chia cho tổng số tài liệu chứa từ đó. Bước 2: Tính độ tương tự lớn nhất của một từ so với một văn bản Để dễ tính toán, ta biểu diễn văn bản dưới dạng mảng các từ (từ ghép + danh từ riêng) riêng lẻ. Sau đó, ta xét các trường hợp như sau:  Nếu có 2 từ giống hệt nhau thì trả lại giá trị 1.  Nếu có 2 từ giống nhau nhưng khác nhau ở chữ hoa chữ thường thì trả lại giá trị 0.98.  Nếu có 2 từ khác nhau nhưng là từ đồng nghĩa thì trả lại giá trị 0.98.  Nếu không có từ nào khớp thì trả lại giá trị 0.     1 2 1 2 2 1 w {T } w {T } 1 2 w {T } w {T } axSim(w,T ) (w) axSim(w,T ) (w) 1( , ) 2 idf(w) idf(w) m idf m idf sim T T                     42 Bước 3: Tính toán độ tương tự giữa hai văn bản: dựa vào các tính toán từ bước 2 và theo công thức đã nêu ở trên.  Mã nguồn của module này như sau: public class Processor { /* * Tính toán IDF của 1 từ * Giá trị mặc định là 1 (khi là từ mới - chưa xuất hiện trong tài liệu nào) */ public static double getIDF(String word) { int total_doc = FileProcessor.VProcessedFiles.size(); String sValue = WordDict.HashDict.get(word); if (total_doc == 0 || sValue == null || sValue.length() == 0) return 1; int total_appear = sValue.split(";").length; if (total_appear == 0) return 1; double result = total_doc / total_appear; return result; } /* * Tính độ tương tự lớn nhất của 1 từ so với 1 văn bản (dưới dạng mảng các từ) * word: từ dùng để so khớp. * sWordArr: nội dung văn bản đã tách ra thành mảng các String riêng lẻ */ public static double getMaxSim(String word, String[] sWordArr) { double maxValue = 0; word = word.trim(); //loại bỏ các ký tự thừa ở đầu và cuối if (word.length() == 0) return 0; Integer value1 = WordDict.CompoundDict.get(word); for (String currWord: sWordArr) { currWord = currWord.trim(); 43 if (currWord.length() <= 0) continue; if (currWord.equals(word)) { maxValue = 1; break; } else if (currWord.equalsIgnoreCase(word)) { if (maxValue < 0.98) maxValue = 0.98; } else { Integer value2 = WordDict.CompoundDict.get(currWord); if (value1!= null && value2!=null && value1.intValue() == value2.intValue()) { if (maxValue < 0.98) { maxValue = 0.98; } } } } return maxValue; } /* * Tính toán độ tương tự giữa 2 văn bản * Đầu vào: 2 văn bản s1 + s2 */ public static double getSim(String s1, String s2) { String sArr1[] = s1.split(" "); String sArr2[] = s2.split(" "); double total_maxsim1 = 0; double total_idf1 = 0; 44 for (int i = 0; i < sArr1.length; i++) { String word = sArr1[i]; double word_idf = getIDF(word); total_idf1 += word_idf; total_maxsim1 += getMaxSim(word, sArr2) * word_idf; } double sim1 = 0; if (total_idf1 != 0) { sim1 = total_maxsim1 / total_idf1; } double total_maxsim2 = 0; double total_idf2 = 0; for (int i = 0; i < sArr2.length; i++) { String word = sArr2[i]; double word_idf = getIDF(word); total_idf2 += word_idf; total_maxsim2 += getMaxSim(word, sArr1) * word_idf; } double sim2 = 0; if (total_idf2 != 0) { sim2 = total_maxsim2 / total_idf2; } return (sim1 + sim2)/2; } } 3.3. Xây dựng hệ thống Giao diện chính của bài toán như sau: 45 Hình 8: Giao diện chính của hệ thống 3.3.1. Nhập trực tiếp 2 văn bản Trong tab đầu tiên là tính độ tương tự 2 văn bản, ta có thể gõ trực tiếp nội dung của hai văn bản. Sau đó nhấn nút “Tính độ tương tự” ta sẽ được kết quả cần tìm.  Ví dụ trước khi nhấn nút: Hình 9: Giao diện cho phép nhập trực tiếp hai văn bản  Sau khi nhấn nút tính, văn bản được tách từ và ta có kết quả độ tương tự giữa hai văn bản Sim(text1, text2) (là một số nằm trong khoảng [0,1]). 46 Hình 10: Giao diện kết quả độ tương tự sau khi nhập hai văn bản  Khi nhấn nút “Reset”, văn bản được thiết lập lại trạng thái lúc đầu khi người dùng nhập vào (tức văn bản khi chưa tách từ).  Khi nhấn nút “Văn bản khác”, hai văn bản được chọn ngẫu nhiên trong phần mã nguồn, giúp ta có thể test nhanh chương trình.  Khi nhấn nút “Xóa”, hệ thống cho phép người dùng nhập vào hai văn bản mới. 3.3.2. Nhập 2 văn bản từ file Để tính độ tương tự giữa hai file văn bản lưu trong máy tính, ta chọn tab thứ hai trong phần giao diện chính: “Độ tương tự 2 files”. Giao diện của lựa chọn này như sau: Hình 11: Giao diện nhập hai văn bản từ file  Đầu tiên, muốn chọn hai file văn bản nào, ta nháy vào nút “…”, sau đó chọn đường dẫn tới file cần nhập. 47  Sau đó, ta nháy vào nút “Lấy nội dung các file”, toàn bộ nội dung của hai file này sẽ được hiển thị trong phần Text 1 và Text 2.  Cuối cùng nhấn nút “Tính độ tương tự” để xem kết quả Sim(text1, text2). Hình 12: Giao diện kết quả sau khi nhập hai văn bản từ file 3.3.3. Lấy nội dung 2 văn bản từ URL Phần này có sử dụng mã nguồn mở từ một dự án nghiên cứu khác, trong mã nguồn mở này có sử dụng thư viện phân tích nội dung HTML của dự án VietSpider (file VSHTMLParser.jar). Địa chỉ gốc của tiện ích phân tích và bóc tách nội dung một số trang tin tức Việt Nam: Đây là một project mã nguồn mở, tuy đơn giản nhưng nó có đủ các tính năng để cài đặt phục vụ test chương trình. Bộ phân tích nội dung HTML (HTMLParser) lấy từ dự án phần mềm miễn phí VietSpider tại địa chỉ: VietSpider là bộ phần mềm khai thác, tổng hợp thông tin từ Internet, ở đây chỉ sử dụng một file thư viện trong bộ phần mềm này. Giao diện của lựa chọn này như sau: 48 Hình 13: Giao diện tính độ tương tự nội dung của hai trang Web  Đầu tiên, ta nhập địa chỉ của hai trang web vào URL 1 và URL 2.  Nhấn nút “Xử lý lấy nội dung” để lấy ra nội dung văn bản của hai trang web này. Khi đó, toàn bộ nội dung của chúng sẽ được hiển thị lần lượt tại Text 1 và Text 2.  Nhấn nút “Tính độ tương tự” để tìm kết quả Sim(text1, text2).  Muốn lấy nội dung của hai trang web khác, nhấn vào nút “Xét URL khác”.  Nhấn nút “Thoát” để ra khỏi hệ thống. 3.4. Kết quả thử nghiệm và đánh giá 3.4.1. Một số ví dụ cụ thể Độ tương tự ngữ nghĩa văn bản được minh họa bởi một số ví dụ sau:  Ví dụ 1: Văn bản 1 (Text 1): Một cơn giông bão dữ dội chỉ còn cách Trường Sa khoảng năm bảy km. Đừng chần chờ chống bão. Văn bản 2 (Text 2): Truyện thơ là những truyện kể bằng thơ, biểu hiện cảm nghĩ bằng ngôn ngữ giàu hình ảnh, cảm xúc, chứa đựng vấn đề xã hội. Có sư kết hợp yếu tố tự sự và trữ tình, dung lượng lớn, mang tính chất cố sự của truyện kể dân gian, biểu hiện dưới hình thức thơ ca với màu sắc trữ tình đậm. 49  Độ tương tự giữa hai văn bản: Sim(Text1, Text2) = 0.0016756471374935402 Về mặt thực tế, văn bản 1 nói về tin tức dự báo thời tiết, còn văn bản 2 nói về đặc điểm của truyện thơ. Hai nội dung này hoàn toàn khác nhau, không có từ nào trùng nhau và không có bất cứ mối liên hệ nào về mặt ý nghĩa. Còn theo thực nghiệm trên máy, chúng ta có độ tương tự giữa hai văn bản trên là 0.0016756471374935402. Độ đo này tương đối hợp lý vì hai văn bản trên khác nhau hoàn toàn.  Ví dụ 2: Văn bản 1 (Text 1): Nhận án chung thân, ông Sĩ còn bị điều tra “bỏ túi” 2 triệu USD Dù ông Sĩ một mực cho rằng không nhận hối lộ từ PCI nhưng tòa vẫn khẳng định có đủ căn cứ buộc tội nên tuyên phạt mức án chung thân. Tòa còn kiến nghị tiếp tục điều tra về cáo buộc nhận hơn 2 triệu USD trước đó của ông này. Theo HĐXX, hồ sơ vụ án đã thể hiện, để được trúng thầu gói thầu “Tư vấn thiết kế”, “Tư vấn giám sát” và được ưu ái những điều kiện có lợi, các quan chức PCI đã nhiều lần hối lộ ông Sĩ. Ngoài ra, tòa buộc ông Sĩ phải nộp lại 262.000 USD phạm tội. Do ông Sĩ đang phải chịu mức án 6 năm tù về tội “lợi chức vụ quyền hạn trong khi thi hành công vụ” nên HĐXX gộp chung hai bản án, buộc ông Sĩ phải nhận mức án chung thân cho cả hội tội. Cơ quan xét xử cũng kiến nghị cơ quan điều tra và VKSND Tối cao tiếp tục làm rõ hành vi nhận 6 lần tiền trước đó (hơn 2 triệu USD) từ phía PCI. Văn bản 2 (Text 2): Đề nghị ông Sĩ tù chung thân Đến phút cuối, ông Huỳnh Ngọc Sĩ vẫn cho rằng mình không có tội, mong HĐXX xem xét, làm rõ, đánh giá từng chi tiết để minh oan. Tiếp tục phiên tòa sơ thẩm xét xử ông Huỳnh Ngọc Sĩ, nguyên phó giám đốc Sở GTVT kiêm giám đốc Ban Quản lý dự án đại lộ Đông Tây và môi trường nước TPHCM (gọi tắt là BQLDA), về tội nhận hối lộ, ngày 16-10, VKSND TPHCM được ủy quyền của VKSND Tối cao thực hành quyền công tố tại tòa nhận định trong quá trình điều tra và tại phiên tòa, bị cáo Sĩ không thừa nhận việc nhận tiền của các quan chức Công ty Tư vấn Quốc tế Thái Bình Dương (PCI) và làm trái quy định Nhà nước. Tuy nhiên, căn cứ hồ sơ vụ án, tài liệu, chứng cứ thu thập được và lời khai nhận của 50 các quan chức PCI..., đã đủ cơ sở kết luận ông Sĩ đã nhận 262.000 USD và làm theo yêu cầu của người đưa hối lộ. Vị công tố đề nghị tù chung thân đối với bị cáo Sĩ.  Hai văn bản trên về mặt nội dung không hoàn toàn giống nhau nhưng có một số từ bị lặp lại ở cả hai văn bản (các từ in đậm). Theo thực nghiệm trên máy ta có độ tương tự giữa hai văn bản: Sim(Text1, Text2) = 0.36826248198851375  Ví dụ 3: Văn bản 1: Huỳnh Ngọc Sĩ: “Cáo trạng hoàn toàn không đúng” Ra trước vành móng ngựa, bị cáo Huỳnh Ngọc Sĩ đã phản đối toàn bộ nội dung bản cáo trạng của Viện Kiểm sát nhân dân tối cao truy tố bị cáo nhận hối lộ. Bước vào phần thẩm vấn, khi Chủ tọa phiên tòa vừa hỏi Huỳnh Ngọc Sĩ, cáo trạng truy tố đúng hay sai? Bị cáo Sĩ đã phản ứng gay gắt: "Tôi phản bác hoàn toàn nội dung cáo trạng truy tố tôi nhận hối lộ. Việc đưa nhận hối lộ chỉ là lời khai của các cá nhân PCI; không có nhân chứng, chứng cứ trực tiếp”. Bị cáo Sĩ cũng khẳng định: “Bốn vấn đề mà cáo trạng nêu tôi làm lợi cho PCI là hoàn toàn không đúng, quy kết tội cho tôi”. Văn bản 2: Huỳnh Ngọc Sĩ: “Tôi không nhận hối lộ” (Dân trí) - “Việc PCI rút tiền từ ngân hàng Tokyo chi nhánh TPHCM, đem tiền từ Nhật qua và trả lương… không đồng nghĩa là tiền hối lộ. Tôi hoàn toàn không nhận tiền hối hộ”, bị cáo Huỳnh Ngọc Sĩ liên tục “phản pháo” HĐXX. Huỳnh Ngọc Sĩ nói: “Lời khai như thế là không đúng. Tôi không tiếp ai tại phòng làm việc riêng hay thương lượng với ai tại khách sạn cả”. Suốt phiên tòa, bị cáo Sĩ đều không thừa nhận mình đã nhận “bôi trơn” số tiền 262.000 USD. Sĩ khai mình không hề biết đến ông Takasu Kunio, nguyên giám đốc điều hành PCI (người được xác định đã đưa tiền hối lộ cho ông Sĩ). Bị cáo Sĩ vẫn giữ nguyên quan điểm: “Không chính xác. Không đúng sự thật. Không nhận…”. Để làm rõ sự việc, cơ quan điều tra cho các quan chức PCI nhận dạng thì họ nhận đúng hình và vẽ đúng sơ đồ phòng làm việc của ông Sĩ. Bị cáo Sĩ quả quyết: “Việc PCI rút tiền từ ngân hàng Tokyo chi nhánh TPHCM, đem tiền từ Nhật qua và trả lương… không đồng nghĩa là tiền hối lộ. Tôi hoàn toàn không nhận tiền hối hộ”.  Độ tương tự giữa hai văn bản: Sim(Text1, Text2) = 0.5206761702244165 51 Hai văn bản trên có số từ ngữ bị lặp lại không nhiều nhưng về mặt ý nghĩa chúng cũng có điểm tương đồng. Độ tương tự của chúng là 0.5206761702244165 cũng phản ánh được phần nào nội dung đó.  Ví dụ 4 Văn bản 1 (Text 1): Bán chung cư Văn Phú Victoria-Hà Nội LH: 0943212996 Dự án nằm giữa khu đô thị Văn Phú, quận Hà Đông, TP.Hà Nội, được tư vấn thiết kế và giám sát bởi các công ty Nhật Bản với phong cách độc đáo, hiện đại. Khu vực: Q. Hà Đông, Hà Nội . Tổng diện tích: 94,1 ha Khởi công: 2009 Dự kiến hoàn thành: 2012 Trạng thái dự án: Đang thi công Chủ đầu tư: Công ty cổ phần đầu tư Văn Phú-invest + Căn hộ 95,3m2: 01 Phòng khách, 01 bếp, 01 Phòng ăn, 02 Phòng ngủ, 02 phòng WC. + Căn hộ 116,2 m2: 01 Phòng khách, 01 Phòng bếp, 01 Phòng ăn, 02 Phòng ngủ, 02 Phòng WC. + Căn hộ 117m2: 01 Phòng khách, 01 bếp, 01 Phòng ăn. 03 Phòng ngủ, 02 Phòng WC. Hiện nay tôi đang có các căn tầng 23, 24 với đủ loại S trên. Giá bán cực kỳ hợp lí. Văn bản 2 (Text 2): Bán căn hộ chung cư dự án văn phú victoria- diện tích 95m2 giá 19.7tr DỰ ÁN VĂN PHÚ VICTORIA Dự án nằm giữa khu đô thị Văn Phú, quận Hà Đông, TP.Hà Nội, được tư vấn thiết kế và giám sát bởi các công ty Nhật Bản với phong cách độc đáo, hiện đại. Khu vực: Q. Hà Đông, Hà Nội Loại hình: Chung cư/Căn hộ cao cấp Tổng diện tích: 94,1 ha Khởi công: 2009 52 Dự kiến hoàn thành: 2012 Trạng thái dự án: Đang thi công Chủ đầu tư: Công ty cổ phần đầu tư Văn Phú-invest + Căn hộ 95,3m2: 01 Phòng khách, 01 bếp, 01 Phòng ăn, 02 Phòng ngủ, 02 phòng WC. + Căn hộ 116,2 m2: 01 Phòng khách, 01 Phòng bếp, 01 Phòng ăn, 02 Phòng ngủ, 02 Phòng WC. + Căn hộ 117m2: 01 Phòng khách, 01 bếp, 01 Phòng ăn. 03 Phòng ngủ, 02 Phòng WC.  Độ tương tự giữa hai văn bản: Sim(Text1, Text2) = 0.81338799771947 Hai văn bản trên có khá nhiều từ giống nhau, chúng chỉ khác nhau ở một số chỗ: dòng đầu tiên và dòng cuối cùng trong cả hai văn bản. Các từ ngữ trong câu cuối cùng của văn bản 1 (các từ in nghiêng) không xuất hiện trong văn bản 2. Và độ tương tự tính được theo công thức là 0.81338799771947. Tuy nhiên, ở đây ta cũng cần chú ý đến những trường hợp văn bản là các tài liệu có cùng cấu trúc, cùng khuôn dạng nhất định. Chắc chắn chúng sẽ có nhiều từ giống nhau nhưng về mặt nội dung lại khác nhau, chẳng hạn: Văn bản 1 (Text 1): Khu vực: Đan Phượng, Hà Nội . Tổng diện tích: 80 ha Khởi công: 2007 Dự kiến hoàn thành: 2010 Trạng thái dự án: Đã thi công xong Chủ đầu tư: Công ty TNHH Sơn Hà + Căn hộ 70 m2: 01 Phòng khách, 01 bếp, 02 Phòng ngủ, 01 phòng WC. + Căn hộ 80 m2: 01 Phòng khách, 01 Phòng bếp, 01 Phòng ăn, 02 Phòng ngủ, 01 Phòng WC. Văn bản 2 (Text 2): Khu vực: Hà Đông, Hà Nội . Tổng diện tích: 99 ha Khởi công: 2010 53 Dự kiến hoàn thành: 2012 Trạng thái dự án: Đang thi công Chủ đầu tư: Công ty xây dựng Hà Nhung Căn hộ 100 m2: 01 Phòng khách, 01 Phòng bếp, 01 Phòng ăn, 02 Phòng ngủ, 02 Phòng WC  Độ tương tự giữa hai văn bản: Sim(Text1, Text2) = 0.9442956354090183 Như vậy độ đo này chưa được chính xác bởi vì hai văn bản có nhiều từ giống nhau nhưng trên thực tế lại khác nhau.  Ví dụ 5: Văn bản 1: Lúc 12h55 hôm nay (giờ Hà Nội), tại lễ khai mạc Đại hội Toán học thế giới tổ chức ở Hyderabad, Ấn Độ, bà Pratibha Patil - Tổng thống Ấn Độ đã trao huy chương Fields - giải thưởng cao quý nhất trong lĩnh vực toán học cho GS Ngô Bảo Châu. Văn bản 2: Tại Hyderabad, Ấn Độ, Tổng thống Ấn Độ, bà Pratibha Patil trao huy chương Fields - giải thưởng toán học cao quý nhất thế giới – cho giáo sư Ngô Bảo Châu lúc 12:55 hôm nay (giờ Hà Nội).  Hai văn bản trên khá giống nhau, chúng chỉ khác nhau về thứ tự xuất hiện của các từ trong câu và có một số từ (in nghiêng) xuất hiện trong văn bản 1 mà không có trong văn bản 2. Theo thực nghiệm trên máy: Độ tương tự giữa hai văn bản: Sim(Text1, Text2) = 0.9256739306748865  Ví dụ 6: Văn bản 1 (Text 1): Sáng 28/8, máy bay chở giáo sư Ngô Bảo Châu, người vừa giành giải thưởng Fields dự kiến hạ cánh xuống sân bay Nội Bài. Các hoạt động chào mừng, đón tiếp trọng thị đang được Chính phủ và các bộ gấp rút chuẩn bị. Văn bản 2 (Text 2): Sáng 28/8, phi cơ chở giáo sư Ngô Bảo Châu, người vừa đoạt giải thưởng Fields dự định hạ cánh xuống phi trường Nội Bài. Các hoạt động chào mừng, tiếp đón trọng thị đang được Chính phủ và các bộ gấp rút chuẩn bị. Độ tương tự giữa hai văn bản: Sim(Text1, Text2) = 0.996660325250488 54 Trong ví dụ này, hai văn bản chỉ khác nhau duy nhất hai cặp từ:  Cặp thứ nhất: Văn bản 1 dùng từ “máy bay” còn văn bản 2 dùng từ “phi cơ”.  Cặp thứ hai: Văn bản 1 dùng từ “ đón tiếp” còn văn bản 2 dùng từ “tiếp đón”. Tuy nhiên, đây lại là các cặp từ đồng nghĩa trong tập từ đồng nghĩa “Same Meaning”. Do vậy độ tương tự của chúng là 0.996660325250488 3.4.2. Kết quả thử nghiệm 3.4.2.1. Cách tiến hành Để đánh giá độ tương tự của các tài liệu, chúng tôi sử dụng 2 phương pháp:  Phương pháp 1: Con người đánh giá Tập các tài liệu sẽ được giao cho một nhóm gồm 5 người ở 5 địa điểm khác nhau. Họ có nhiệm vụ đọc nội dung và đánh giá độ tương tự của hai tài liệu bất kỳ dựa trên cảm tính của mình.  Phương pháp 2: Thực nghiệm trên máy. 3.4.2.2. Kết quả thử nghiệm Chúng tôi tiến hành thử nghiệm dựa trên hai tập dữ liệu: tập các văn bản là các tin tức trên Internet và tập các tin rao vặt trên Internet.  Tập dữ liệu 1: Tập gồm 20 văn bản gồm các tin tức trên một số trang Web: Địa chỉ của các tài liệu này như sau: File Địa chỉ 1 cao/11186417/218/ 2 3 toan-bo-noi-dung-cao-trang.htm 4 5 6 Ngoc-Sy-nhan-hoi-lo-tien-ti.html 7 trang-hoan-toan-khong-dung/201010/115255.datviet 55 8 1341775005/ong_si_lien_tiep_khang_dinh_khong_nhan_hoi_lo_t u_pci.html 9 nhan-hoi-lo.htm 10 chung-than.htm 11 12 13 14 dien-de-ket-an-toi/11186642/218/ 15 16 voi-de-nghi-tu-chung-than-cua-vks.htm 17 si-bi-de-nghi-tu-chung-than.htm 18 tu-chung-than.htm 19 cao-trang.htm 20 con-bi-dieu-tra-bo-tui-2-trieu-USD/11186794/218/ Bảng 4: Địa chỉ của 20 tin tức trên một số trang Web Chẳng hạn ta có kết quả đánh giá độ tương tự ngữ nghĩa của hai file nào đó trong tổng số các tài liệu có địa chỉ được nêu ở trên như sau: File 1 File 2 Người đánh giá Thực nghiệm trên máy 13 15 0.4 0.21854826011617284 2 4 0.4 0.24008952428716562 13 17 0.3 0.29548872180126395 3 8 0.2 0.3297415587214319 6 8 0.4 0.364800386307795 4 7 0.5 0.39024157344076293 1 7 0.4 0.4247928748969288 1 6 0.5 0.4621222286840157 56 13 19 0.6 0.500689564972599 10 19 0.6 0.5501094543011812 10 15 0.7 0.5768032097459137 3 9 0.7 0.5912167395883572 15 16 0.7 0.6367496647525064 4 5 0.8 0.6504860662096876 15 18 0.6 0.6749330889903177 3 7 0.6 0.702918830317079 6 7 0.6 0.7650383060856087 16 18 0.9 0.863923370318344 1 2 0.9 0.9279451135471808 13 20 0.9 0.9523695076604557 11 14 1.0 0.9706441434356016 Bảng 5: Một số kết quả độ tương tự của hai file bất kỳ Kết quả độ tương tự của 20 tin tức trên như sau: Độ tương tự Người đánh giá Thực nghiệm trên máy 0.0-0.3 7,1% 8% 0.3-0.5 50% 56% 0.5-0.7 32,5% 30% 0.7-0.8 4% 2% 0.8-1.0 6,4% 4% Bảng 6: Kết quả đánh giá 20 tin tức do người và máy thực hiện  Tập gồm 30 tin rao vặt trên một số trang web: File Đường dẫn 30 cccc-du-a-n-van-phu-victoria.html 31 mat-san-chung-cu-victoria-van-phu-gia-hop-ly-d.html 32 chung-cu-van-phu-victoria-ha-dong.html 33 can-ho-chung-cu-victoria-van-phu-du-an-van-phu.html 34 can-ho-chung-cu-du-an-van-phu-victoria-dien-ti.html 35 57 phu-victoria-chung-cu-van-phu-victoria-can-ho-.html 36 mat-san-chung-cu-victoria-van-phu-gia-hop-ly-d.html 37 chcc-van-phu-toa-v1-gia-hap-dan.html 38 ban-mot-so-can-ho-chung-cu-van-phu-gia-chi-19-.html 39 ban-mot-so-can-ho-chung-cu-van-phu-victoria.html 40 san-victoria-van-phu-pm-gap-de-co-xuat-vip.html 41 san-victoria-van-phu-pm-gap-de-co-xuat-vip.html 42 san-victoria-van-phu-pm-som-de-co-suat-vip.html 43 chung-cu-van-phu.html 44 chcc-the-van-phu-victoria-dt-95-112-114-116m2.html 45 chcc-the-van-phu-victoria-dt-95-112-114-116m2.html 46 chcc-the-van-phu-victoria-dt-95-112-114-116m2.html 47 the-van-phu-victoria-dt-95-112-114-116m2.html 48 ban-chcc-cao-cap-van-phu-victoria.html 49 can-ho-toa-v1-tang-25-van-phu-victoria-gia-hap.html 31.2 chung-cu-victoria-

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

  • pdfLUẬN VĂN-TÍNH TOÁN ĐỘ TƯƠNG TỰ NGỮ NGHĨA VĂN BẢN DỰA VÀO ĐỘ TƯƠNG TỰ GIỮA TỪ VỚI TỪ.pdf