Xây dựng ứng dụng phân tích ngữ nghĩa trong tìm kiếm tài liệu trực tuyến

MỤC LỤC DANH MỤC HÌNH VÀ BẢNG DANH MỤC HÌNH VÀ BẢNG 7 Hình 1: Hình minh họa tập tách văn bản 14 Hình 2: Cấu trúc giải thuật LSA 15 Hình 3: Quy trình truy vấn 16 Hình 4: Giao diện chính trang chủ chương trình 17 Hình 5: Tìm kiếm thông tin – So sánh gợi ý của người và máy 18 Hình 6: Mô hình sơ đồ hệ thống gợi ý cho người dùng 20 Hình 7: Sơ đồ tổng quát hệ thống 21 Hình 8: Giao diện tìm kiếm của Amazone.com 22 Hình 9: Giao diện kết quả trả lại 23 Hình 10: Giao diện kết quả tìm kiếm của

doc80 trang | Chia sẻ: huyen82 | Lượt xem: 1327 | Lượt tải: 0download
Tóm tắt tài liệu Xây dựng ứng dụng phân tích ngữ nghĩa trong tìm kiếm tài liệu trực tuyến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Amazone.com 24 Hình 11: Sơ đồ cấu trúc từ của Nguyễn Tài Cẩn 27 Hình 12: Giao diện tìm kiếm của Google 34 Hình 13: Giao diện tìm kiếm Yahoo 35 Hình 14 Giao diện tìm kiếm Ask Jeeves 36 Hình 15: Giao diện tìm kiếm All the web 36 Table 1: : Tần suất xuất hiện độ dài từ tiếng Việt trên trang Vdict.com 40 Table 2: Tần số tài liệu của một số từ thông dụng trong tiếng Việt 41 Table 3: Ví dụ về MI của n-gram 42 Hình 16: Xây dựng ôtômát âm tiết 44 Hình 17: Xây dựng ôtômát từ vựng 45 Hình 18: Một tình huống nhập nhằng 47 Hình 19: Giải thuật tách từ từ câu 50 Table 4: Bảng một số ví dụ về cấu trúc lưu trữ từ điển 51 Hình 20: Biểu đồ use-case hệ thống 53 Hình 21: Use-case tìm kiếm Hình 22: Biểu đồ cộng tác chức năng tìm kiếm 54 Hình 23: Biểu đồ tiến trình chức năng tìm kiếm 54 Hình 24: Use-case quản lý tài liệu 55 Hình 25: Biểu đồ cộng tác 55 Hình 26: Biểu đồ tiến trình chức năng thêm mới tài liệu 56 Hình 27: Biểu đồ tiến trình chức năng sửa tài liệu 56 Hình 28:Biểu đồ tiến trình chức năng xóa tài liệu 57 Hình 29: Biểu đồ cộng tác quản lý tài liệu 57 Hình 30: User-Case quản lý tác giả 58 Hình 31: Biểu đồ tiến trình thêm mới tác giả 58 Hình 32: Biểu đồ tiến trình sửa tác giả 59 Hình 33: Biểu đồ tiến trình xóa tác giả 59 Hình 34: Biểu đồ cộng tác quản lý tác giả 60 Hình 35: User-Case quản lý NXBLớp biên: 60 Hình 36: Biểu đồ tiến trình thêm mới NXB 61 Hình 38: Biểu đồ tiến trình xóa thông tin NXB 62 Hình 39: Biểu đồ công tác quản lý NXB 62 Hình 40: Biểu đồ usercase quản lý thành viên 63 Hình 42: Biểu đồ tiến trình chỉnh sửa user 64 Hình 43: Biểu đồ tiến trình xóa user 64 Hình 44: Biểu đồ cộng tác quản lý user 65 Hình 45: Biểu đồ cộng tác quản lý user 66 Table 5: Bảng các thực thể chính 67 Table 6: Bảng quan hệ các thực thể 68 Table 7: Danh sách các bảng chính 71 Table 8: Mô tả bảng tài liệu A01 72 Table 9: Mô tả bảng Catalogue A02 73 Table 10: Mô tả bảng tác giả A04 73 Table 11: Mô tả bảng NXB A05 74 Table 12: Mô tả bảng User A06 74 Table 13: Mô tả bảng subCatalogue A07 75 Table 14: Mô tả bảng Child A08 75 Table 15: Mô tả bảng A11 76 Table 16: Mô tả bảng A12 76 PHẦN 0: LỜI NÓI ĐẦU 1. MỤC TIÊU VÀ Ý NGHĨA CỦA ĐỀ TÀI Máy tính hiện nay đã đóng góp một phần không nhỏ vào đời sống, và đã trở nên phổ dụng. Trong lĩnh vực lưu trữ dữ liệu, chỉ cần một ổ cứng 10x15x3 cm3 là đã có thể lưu trữ được số lượng sách tương ứng với cả một thư viện sách khổng lồ. Theo đó, là vấn đề tra cứu dữ liệu trong kho dữ liệu như thế. Cũng như việc tổ chức trong thư viện, việc lưu trữ tài liệu điện tử trong máy tính cũng được chia thành các loại sách, và chủ đề lớn khác nhau. Hiện nay xu thế người đọc sách là coi sách là nguồn để tra cứu những vấn đề mình quan tâm, chứ không phải học một kiến thức mới do một cuốn sách mang đến. Vấn đề đặt ra là làm sao tư vấn cho người dùng những cuốn sách nào liên quan nhiều nhất tới chủ đề người dùng yêu cầu (thông qua các từ khóa được nhập) bằng phân tích nội dung và lịch sử truy cập của những người dùng trước. Luận văn này đực thực hiện nhằm đề xuất ra được một phương thức xây dựng hệ thống hỗ trợ tư vấn với các kết quả sau: - Tư vấn hoàn toàn tự động các tài liệu cho người dùng theo từ khóa, lịch sử truy cập của người dùng đó và những người dùng khác và sở thích của họ. Kết quả tư vấn ngày càng chính xác hơn vì hệ thống có phân tích và cập nhật lịch sử truy cập của người dùng. - Giới thiệu tài liệu có độ tương tự nhất định với tài liệu đang nghiên cứu để người dùng lựa chọn tài liệu tiếp theo nghiên cứu. - Hệ thống khảo sát (survey) để thu thập các ý kiến đánh giá của người dùng về sự tương tự của các tài liệu hệ thống gợi ý. Qua đó, càng thu thập nhiều sự đánh giá, kết quả tư vấn cho người dùng càng sát với vấn đề người ta đặt ra hơn. - Người dùng mới không nhất thiết phải đăng ký thông tin với hệ thống. Hệ thống vẫn gợi ý cho người dùng thông qua phân tích nội dung và lịch sử truy cập hệ thống. - Đáp ứng các yêu cầu tìm kiếm trên các trang web (tìm kiếm trong site riêng hoặc trên internet). Hệ thống hướng tới việc tìm kiếm và xây dựng cơ sở dữ liệu động từ internet. 2. VẤN ĐỀ GIẢI QUYẾT Có 2 phương pháp chủ đạo được dùng trong hệ tư vấn: Phương pháp lọc cộng tác: là phương pháp tập hợp các đánh giá hoặc các quan điểm của người dùng, nhận dạng sự tương đồng giữa các người dùng trên cơ sở các phiên giao dịch của họ. Phiên giao dịch của người dùng được bắt đầu từ khi người dùng đánh từ khóa và có tín hiệu search. Kết thúc phiên làm việc với một từ khóa mới được nhập. Phương pháp lọc cộng tác ước lượng hàm đánh giá R(u,i) của item i với user u dựa trên cơ sở đánh giá R(u’,i) của user u’ cho cùng item i mà trong đó u và u’ là tương tự nhau. Phương pháp lọc cộng tác có các vấn đề như: Sự thưa thớt: thực tế thì vấn đề của người dùng quan tâm (từ khóa) nó chiếm phần rất nhỏ và sự đánh giá sự tương đồng cho tài liệu là rất nhỏ so với rất nhiều tài liệu của hệ thống. Với hệ thống gợi ý trong luận văn này, các đánh giá, các nhận định sẽ được lưu lại dần dần, loại bỏ dần những kết quả không chính xác. Vấn đề tài nguyên mới: Hệ thống không ngừng cập nhật các tài liệu mới cho kho dữ liệu của mình. Mỗi lần thêm một tài liệu mới, hệ thống sẽ tính lại (off-line) là phân tích độ tương đồng về ngữ nghĩa giữa các văn bản (kỹ thuật LSA) để tìm ra tập các láng giềng gần của một cuốn sách. Vấn đề người dùng mới: Như đã đề cập, hệ thống sẽ phân tích và lưu trữ lại lịch sử của tất cả các phiên làm việc, kết hợp phân tích nội dung trong hệ thống để lọc ra sự tương đồng, liên quan chính xác nhất của các tài liệu. Nên hệ thống hoàn toàn có thể gợi ý tư vấn cho một người dùng mới. Khi người dùng cung cấp cho hệ thống các sở thích, hệ thống sẽ lọc tiếp theo sở thích đó, để cung cấp kết quả chính xác hơn. Phương pháp lọc dựa trên nội dung: là một giải thuật hướng về nghiên cứu lọc thông tin, phương pháp lọc dựa trên nội dung ước lượng hàm đánh giá R(u,i) của item i với user u được thiết lập dựa trên cơ sở đánh giá R(u,i’) của cùng user u cho item i’ mà trong đó i và i’ là tương tự nhau về mặt nội dung. Nhược điểm chính của phương pháp này là nó giả định các thuật ngữ là độc lập nhau. Trong thực tế, các thuật ngữ thường có liên quan với nhau và hiểu được điều này có thể dẫn đến việc tính độ liên quan tốt hơn. Tính đồng nghĩa: có nhiều cách để chỉ đến một đối tượng, ví dụ: car và automobile • Các sản phẩm tương tự được đối xử theo cách khác nhau • Tăng sự thưa thớt, làm mất tính chất bắc cầu giữa các từ khóa • Sinh ra kết quả có chất lượng thấp Tính nhiều nghĩa của từ: hầu hết các từ đều có nhiều nghĩa, ví dụ: model, python, chip. • Độ chính xác thấp 3. CÁCH GIẢI QUYẾT Sử dụng phương pháp lọc cộng tác, hệ thống đã đưa ra phương án giải quyết được các nhược điểm của nó như đã trình bầy ở trên. Về sử dụng phương pháp lọc dựa trên nội dung, hệ thống đang sử dụng các phương pháp: 3.1 Phân tách tài liệu thành các từ khóa (Filter) Các tài nguyên là các tài liệu được thể hiện dưới dạng văn bản như một cuốn sách, tạp chí, hay một bài báo, bài diễn văn điện tử nào đó. Với những tài liệu tiếng Anh, một từ thường có một âm tiết, ta có thể dễ dàng xác định một từ dựa vào dấu cách (space) hoặc dấu câu. Việc phân tách văn bản tiếng anh thành các từ khóa không khó khăn. Với những văn bản tiếng việt, mỗi từ nó có thể có một, hai hoặc nhiều hơn số lượng âm tiết. Việc phân tách thành từ khóa đối với văn bản tiếng việt phải dựa trên từ điển và các thuật toán đọc từ khóa sao cho đúng nghĩa nhất của câu. Thí dụ: Học sinh học sinh học thì hệ thống sẽ tách thành Học sinh, học, sinh học. Sau đó, loại bỏ các từ dừng (Stopword – Những từ mang ý nghĩa cảm thán, đại từ…như anh, bạn, do đó…), những từ không mang nhiều ý nghĩa về nội dung. Bước tiếp theo, dùng kỹ thuật TF-IDF để lọc bỏ bớt số lượng từ khóa của tài liệu. 3.2 Phân tích ngữ nghĩa tiềm ẩn (Latent Semantic Analystic-LSA) Kỹ thuật LSA là những lý thuyết và phương thức cho việc trích rút và thể hiện ngữ cảnh sử dụng ngữ nghĩa của từ dựa trên việc tính toán thông kê. Kỹ thuật này cho phép ứng dụng trên một kho dữ liệu văn bản lớn. Ý tưởng cơ bản của kỹ thuật là tổng hợp tất cả các văn cảnh của từ, trong đó, một từ được đưa ra đã và không chỉ định biểu lộ những tập ràng buộc lẫn nhau. Những tập ràng buộc này cho phép xác định sự tương đồng về nghĩa của những từ và tập hợp mỗi từ khác. Tập các từ khóa của các tài liệu của bước phân tích trên được dùng làm đầu vào cho các hàng của ma trận. Theo đó, bộ từ khóa của một tài liệu được dùng làm cột, các tài liệu làm hàng, các cell của ma trận được khởi tạo là tần suất xuất hiện của từ khóa-thuật ngữ đó trong tài liệu. LSA dùng kỹ thuật phân tích giá trị riêng (SVD-singular value decomposition) để giảm bớt để giảm bớt kích thước ma trận thuật ngữ-tài liệu, không gian N-chiều sẽ được giảm bớt xuống một không gian K chiều, K<<N, không gian mới này được gọi là không gian khái niệm. Sử dụng kết quả bước này, ta thu được tập các tài liệu có sự tương đồng về ngữ nghĩa nhất định với tài liệu xét. Là nguồn quan trọng trong việc đưa ra gợi ý những tài liệu tương tự với tài liệu người dùng đang đọc. Phân tích lịch sử truy cập của người dùng Một phiên làm việc của người dùng được đánh dấu bằng việc nhập một từ khóa và nhấn nút search. Các kết quả gợi ý được đưa ra, khi người dùng quyết định chọn một tài liệu (A), hệ thống gợi thống gợi ý các tài liệu có liên quan (dựa vào phân tích LSA trước và phân tích lịch sử phiên làm việc). Khi người dùng chọn một tài liệu (B) tiếp theo trong phần của hệ thống gợi ý để đọc, hệ thống ghi nhận tài liệu B có liên quan nhất trong phiên làm việc đó với tài liệu A. Và cứ thế, hệ thống sẽ cập nhật và đánh giá lại sự liên quan nhất định của các tài liệu qua các phiên làm việc của người dùng. Hệ thống còn đưa ra kỹ thuật khảo sát (survey) để thu thập ý kiến chính xác hơn của người dùng về sự tương đồng của các tài liệu. Hạn chế của phương pháp này, là khi có một tài liệu mới được cập nhật, chỉ số lịch sử truy cập của nó là 0, hoặc một giá trị âm nào đó. Có thể về cơ bản thì nó rất tương đồng với văn bản A trên chẳng hạn, nhưng phải qua nhiều lần, nhiều phiên làm việc thì nó mới đứng đầu trong các văn bản liên quan của A. 4. CÁC ĐÓNG GÓP CHÍNH CỦA LUẬN VĂN Cung cấp bộ phân tách văn bản thành các từ khóa với văn bản tiếng Việt và văn bản tiếng Anh. Sử dụng bộ đọc văn bản đầu vào Ifilter để xử lý, kết hợp các file từ điển, file từ stopword để tách dữ liệu được đọc vào thành các từ khóa, đặc trưng cho tài liệu đó. Kỹ thuật LSA, đánh giá độ tương đồng về mặt ngữ nghĩa giữa các tài liệu dựa trên kỹ thuật xử lý ma trận SVD. Phần này sẽ được trình bày chi tiết trong luận văn còn lại của dự án Cung cấp kỹ thuật xử lý lịch sử phiên làm việc của một người dùng, cho phép các kết quả chính xác hơn sau nhiều phiên làm việc. Đề xuất mô hình và phương thức triển khai cho phần mở rộng dự án, xây dựng hệ thống CSDL động trên Internet và đẩy hết các quá trình xử lý thành on-line (hệ thống như một tool tìm kiếm cho khách hàng. Hệ thống sẽ bắt đầu khi người dùng bắt đầu phiên làm việc) CÀI ĐẶT Tách tài liệu thành các từ khóa. Tìm kiếm dựa trên từ khóa Mô hình này áp dụng cho những lần gợi ý đầu tiên, cho khi người dùng nhập từ khóa. Giải thuật tách từ khóa (chạy off-line): Input: tập tài nguyên là sách, tạp chí, trang thông tin (html) ở các định dạng tài liệu. Output: Tập các từ khóa với rank tương ứng. Quá trình tìm kiếm sẽ ưu tiên với những khóa được lọc ra ở tập khóa có mức độ ưu tiên được đánh giá bằng rank tương ứng của chúng Giải thuật này được thiết kế để chạy offline trong phiên bản đầu tiên này. Quá trình cập nhật tài liệu được người quản trị nhập. Chi phí thời gian cho modul này là khá lớn, một cuốn sách điện tử tầm 200 trang tương ứng là 3 phút cho hệ thống đọc và tách thành từ khóa. Tập văn bản nguồn Tập văn bản đã được phân tách Hình 1: Hình minh họa tập tách văn bản 5.2 Mô hình tìm tư vấn dựa trên phân tích ngữ nghĩa tiềm ẩn Cập nhật CSDL (dữ liệu tài liệu liên quan ) Tập các tài liệu liên quan tới 1 tài liệu Xử lý LSA (ma trận và giải thuật SVD) Tập tài liệu (từ khóa) Sau khi tách thành tập các từ khóa, modul này sẽ thực hiện việc cập nhật tiếp các tài liệu liên quan, có độ tương đồng nhất định về nội dung. Mỗi tài liệu sẽ được xác định cùng với nó một tập các tài liệu khác có tương đồng về mặt nội dung. Hình 2: Cấu trúc giải thuật LSA 5.3 Mô hình tư vấn dựa trên lịch sử phiên truy cập của người dùng Kế thừa từ các hệ thống học thông minh, từ các phiên làm việc của người dùng, hệ thống sẽ tự động cập nhật để chính xác hơn những thông tin có trong cơ sở dữ liệu để phục vụ cho những lần tư vấn sau đó. Có rất nhiều mô hình khai thác trên lĩnh vực người dùng. Trong đồ án này, tôi chỉ khai thác trên khía cạnh sở thích và lịch sử các phiên làm việc của người dùng. Khi người dùng đăng ký thông tin, hệ thống ghi nhận ở tài khoản của họ, thông tin về các lĩnh vực người dùng quan tâm để lọc các kết quả tìm kiếm. Tại phiên làm việc của người dùng, khi người dùng click vào một tài liệu mà hệ thống đưa ra để gợi ý cho tài liệu đang đọc, hệ thống sẽ cập nhật hệ số tương quan giữa 2 tài liệu đó, phục vụ cho các kết quả tư vấn ở lần tiếp theo. Xử lý tác thao tác người dùng Xử lý query, tạo kết quả trả Tài liệu trả về Hiển thị kết quả ra browser Các tài liệu liên quan Cập nhật tài liệu liên quan Tập tài liệu Truy vấn CSDL (tài liệu) Tài liệu có liên quan với tài liệu kết quả Tài liệu chứa từ khóa trong query Câu truy vấn Nhận và tiền xử lý query Hình 3: Quy trình truy vấn GIAO DIỆN TRANG CHỦ CHƯƠNG TRÌNH Hình 4: Giao diện chính trang chủ chương trình PHẦN I: VẤN ĐỀ VÀ THỰC TRẠNG ĐẶT BÀI TOÁN Hiện nay, khoa học kỹ thuật ngày càng phát triển. Máy vi tính được phát triển từ năm 1980 đã ngày càng được sử dụng rộng rãi với các ứng dụng tiên tiến của nó. Theo đó, các hệ thống lưu trữ tài liệu dần chuyển sang lưu trữ số trên máy tính. Các hệ thống thư viện điện tử, thư viện trực tuyến ngày càng được sử dụng rộng rãi. Theo đó, là các vấn đề liên quan đến tìm kiếm, chia theo danh mục và gợi ý nội dung đọc Ebook cho người dùng. Trên internet, chúng ta đã có rất nhiều các công cụ tìm kiếm và gợi ý các tài liệu cần đọc và những tài liệu liên quan. Thí dụ như công cụ tìm kiếm của Google, ngoài những tài liệu có chứa từ khóa, nó còn gợi ý những tài liệu có độ tương đồng nhất định với nội dung người dùng tra cứu, thể hiện ở các liên kết cuối mỗi trang. Với amazon.co.uk, hệ thống recommender chỉ với những thành viên đăng ký tài khoản với hệ thống. Khi đăng ký tài khoản, user đăng ký luôn các sở thích và các lĩnh vực họ quan tâm. Với hệ thống mubu.com, họ gợi ý trong lĩnh vực âm nhạc. Người dùng cũng phải cung cấp thông tin về sở thích như ca sỹ, nhạc sĩ, thể loại nhạc quan tâm. Từ đó, hệ thống gợi ý cho người dùng không cần keyword… Hình 5: Tìm kiếm thông tin – So sánh gợi ý của người và máy Rất nhiều người không có thời gian để lọc ra trong một tệp các cuốn sách được thông tin mình mong muốn. Thậm chí trong một cuốn sách dầy tới nghìn trang. Mục lục ở mỗi cuốn sách cũng là các tóm tắt ý, các chủ đề viết về cho cuốn sách. Người dùng có thể tìm trong các mục lục đó, cũng có thể tìm theo từ khóa (ứng với mỗi tài liệu, chúng được tìm theo từ khóa dựa vào chương trình đọc tài liệu đó). Như hình trên, vấn đề là, tìm được một cuốn sách chứa chủ đề của mình và có đủ lượng thông tin cần thiết cho vấn đề mình quan tâm. Hoặc khi chưa đủ thông tin, người dùng được gợi ý những cuốn sách viết về những chủ đề có liên quan mà người ta cần tra cứu thông tin về. Bài toán đặt ra là, trong kho dữ liệu, bao gồm rất nhiều cuốn sách, rất nhiều các tài liệu như bài báo, tạp chí. Người dùng cần tra cứu thông tin về một vấn đề nào đó. Hệ thống sẽ phải cung cấp những cuốn sách viết về vấn đề đó và sắp xếp theo thứ tự ưu tiên nhất định cho người đọc. Hơn nữa, hệ thống cũng cung cấp các tài liệu mà những người dùng trước đó đã sử dụng khi cần tra cứu vấn đề đó. Người dùng thiết lập một phiên giao dịch, bằng việc đăng nhập vào hệ thống hoặc có thể không cần đăng nhập (Tất nhiên, khi đăng nhập vào hệ thống sẽ được hỗ trợ một số tính năng tìm kiếm nâng cao). Bằng việc đánh một từ khóa người dùng quan tâm, hệ thống sẽ cung cấp hai loại kết quả: Kết quả do truy vấn SQL trong cơ sở dữ liệu của hệ thống Kết quả do phân tích qua lịch sử truy cập của những người dùng trước. Với loại kết quả đầu tiên, kết quả tìm được do việc truy vấn bằng các câu truy vấn SQL trong cơ sở dữ liệu. CSDL phải được thiết kế sao cho quá trình tìm kiếm là thuận lợi nhất. Khi tìm được các kết quả theo mức độ ưu tiên, người dùng sẽ chọn một văn bản nào đó để nghiên cứu. Hệ thống phải cung cấp tiếp cho người dùng những tài liệu liên quan tới tài liệu mà họ đang đọc. Việc tìm những văn bản liên quan là dựa trên sự tương đồng giữa hai văn bản. Với loại kết quả thứ hai, hệ thống sẽ cung cấp cho người dùng những văn bản mà qua những lần truy cập hệ thống trước đó, hệ thống ghi nhận những tài liệu mà các người dùng trước đã đọc khi đọc tài liệu này học tài liệu khác cùng chủ đề hay có độ tương đồng nhất định với tài liệu đó. Sơ đồ tổng quát giao dịch của hệ thống: Query search Phân tích phiên làm việc 1.Truy vấn theo từ khóa 2.Truy vấn theo tài liệu liên quan (LSA + phân tích lịch sử làm việc) Items Databases Hình 6: Mô hình sơ đồ hệ thống gợi ý cho người dùng Kết quả trả lại được sắp xếp theo thứ tự giảm dần của mức độ ưa thích. CÁC VẤN ĐỀ VÀ CÁC GIẢI PHÁP HIỆN TẠI Các hệ thống gợi ý (recommender systems - RS) Các khái niệm về Recommender System Recommender Systems (RS) là một hế thống lọc thông tin đặc biệt, hệ thống cho phép lọc thông tin dựa trên sự quan tâm của người dùng và nội dung của văn bản. Điển hình, một hệ thống RS sẽ so sánh những thông tin người dùng với những đặc trưng liên quan. Những đặc trưng này có thể thu thập từ nội dung thông tin (Cách tiếp cận theo nội dung: Content - based approach) hoặc từ môi trường mạng xã hội của người sử dụng (Cách tiếp cận theo hướng lọc cộng tác: Collaborative filtering approach). Như vậy dựa vào khái niệm trên chúng ta có thể thấy hiện có hai kỹ thuật chính được sử dụng để xây dựng một hệ thống RS hiện nay. Một là kỹ thuật hướng nội dung – Content based approach, kỹ thuật này cho phép hệ thống đưa ra những gợi ý phù hợp nhất với những tiêu chuẩn đã được xác định. Hệ thống phải nắm được tất cả những đặc điểm chính được thể hiện trong đối tượng được quan tâm (Theo từ khoá của người dùng) và sắp xếp chúng theo những tiêu chuẩn tương ứng. Mặt khác , tiếp cận theo hướng lọc cộng tác – Collborative filtering CF lại làm việc dựa trên cơ chế tìm kiếm những sự đồng nhất của một cá nhân với cộng đồng mà họ tham gia để xác định gợi ý hơn là dựa trên việc xác thực nội dung của sự quan tâm. Tức là CF dựa trên sự công tác giữa một nhóm cá thể có chung một quan điểm hay một sự lựa chọn nào đó để đưa ra nhưng gợi ý cho người tìm kiếm. Hình 7: Sơ đồ tổng quát hệ thống Trong môt số hệ thống cũng thường áp dụng cả hai kỹ thuật này cách này gọi là hệ thống lai (Hybrid). Về căn bản mô hình bài toán được xây dựng như sau: Gọi C là số thành viên của hệ thống: ci là tường người dùng cụ thể. Gọi S là toàn bộ không gian đối tượng có thể đưa ra và si là một đối tượng cụ thể. Gọi u là giá trị phù hợp của đối tượng s với người dùng c. Vậy bài toán là sự ánh xạ u: CxS à R. Trong đó R chính là tập hợp các đối tượng được đưa ra giới thiệu. Tập R sẽ được sắp xếp theo thứ tự giảm dần của u.Công việc chính của giải thuật đơn giản chỉ là đi tìm giá trị hàm u=f(c, s) sao cho u (max) là giá trị được ưa thích nhất. Dễ thấy độ phức tạp của bài toán là rất cao bởi không gian S là rất lớn. Ví dụ như cách ứng dụng về gợi ý sách, số lượng sách có thể lên tới hàng triệu quyển. Hoặc hệ thống gợi ý về CDs…Đồng thời không gian C cũng rất lớn nếu như mạng phát triển mang tính toàn cầu như Ebay, Google, Yahoo có thể lên đến hàng tỉ thành viên. Các hệ thống recommender tiêu biểu Hệ thống bán hàng trực tuyến m a z o n e . Hình 8: Giao diện tìm kiếm của Amazone.com Đầu vào: Tên thiết bị, tên công ty, tên danh mục hay bất cứ từ khóa nào Đầu ra: Gợi ý cho người dùng các sản phẩm hiện có. Hình 9: Giao diện kết quả trả lại Kết quả trả về với đúng cuốn sách cần tìm. Ngoài ra, hệ thống còn tư vấn các sản phẩm khác tương tự Hệ thống tìm kiếm âm nhạc trực tuyến Chacha.vn. Hình 10: Giao diện kết quả tìm kiếm của Amazone.com Recommender System của ChaCha.vn là một hệ thống tư vấn âm nhạc độc đáo với nhiều tính năng nổi trội, là công cụ hỗ trợ bạn nghe nhạc một cách hữu hiệu nhất. Hệ thống Recommender tư vấn cho người dùng những thông tin mới như: Nghệ sĩ liên quan : Hệ thống này sẽ cho bạn biết sự liên quan giữa các nghệ sĩ với nhau, xét theo tiêu chí là mức độ yêu thích của người dùng đối với các nghệ sĩ đó. Người dùng hợp gu : Hệ thống đưa ra danh sách nhóm người dùng có cùng sở thích âm nhạc với bạn. Đồng thời cho biết thêm mức độ hợp “gu” của bạn với một người trong nhóm đó là thấp, trung bình, hay cao. Bài hát liên quan : Hệ thống sẽ đưa ra danh sách các bài hát có liên quan gần gũi đến một bài hát cụ thể nào đó để người dùng tham khảo. Giới thiệu các bài hát mới : Hệ thống tư vấn cho người dùng các bài hát mới mà theo dự đoán của hệ thống, đó là các bài hát người dùng sẽ thích nghe. Hoạt động của hệ thống Hệ thống tư vấn gồm 4 chức năng hoạt động như sau: Nghệ sĩ liên quan: Dựa trên các thông tin về nghệ sĩ (các bài hát, thể loại sáng tác hay trình bày, mức độ quan tâm của người dùng…), hệ thống sẽ tính toán để đo mức liên quan giữa các nghệ sĩ, sau đó đưa ra danh sách các nghệ sĩ có độ liên quan cao nhất. Người dùng hợp “gu”: Dựa trên các bài hát đã nghe qua của từng người dùng cụ thể, hệ thống tính toán mức độ hợp “gu” (hợp sở thích) giữa những người dùng khác nhau. Trên cơ sở đó đưa ra danh sách những người dùng có mức độ hợp “gu” cao nhất. Bài hát liên quan: Dựa vào thể loại, mức độ được ưa thích của bài hát, hệ thống tính toán độ liên quan giữa các bài hát khác nhau. Sau đó đưa ra danh sách bài hát có độ liên quan cao nhất đối với bài hát hiện tại. Giới thiệu các bài hát mới: Dựa vào tiểu sử người dùng (các bài hát đã nghe qua, đánh giá của người dùng về các bài hát đã nghe), hệ thống sẽ tiến hành dự đoán mức độ ưa thích của người dùng đối với các bài hát chưa nghe. Thông qua đó, sắp xếp các bài hát và đưa ra danh sách các bài hát có độ ưa thích cao nhất để tư vấn cho người dùng . Hệ thống này có ưu điểm nổi bật: Hệ thống giúp cho người dùng có thể tìm thấy các bài hát gần gũi với bài hát mà mình yêu thích thông qua các bài hát liên quan. Hệ thống Recommender cũng là kênh kết nối bạn với những người dùng khác có cùng sở thích âm nhạc. Bạn sẽ có nhiều cơ hội làm quen, khám phá những sở thích mới lạ từ những người cùng “gu” âm nhạc. Với các mục hỗ trợ tìm kiếm hiện nay, người dùng muốn tìm một bài hát buộc phải đưa thông tin nào đó về bài hát cần tìm (tên bài hát, một câu hát trong bài, tên ca sĩ, nhạc sĩ sáng tác...). Vì thế rất khó để tìm thấy một bài hát mới hoặc một bài hát hợp sở thích của mình, hoặc bạn sẽ gặp khó khăn nếu bạn không có thông tin về bài hát đó. Với chức năng tư vấn âm nhạc, hệ thống Recommender cho phép người dùng có thể khám phá các bài hát mới lạ, bất ngờ. Nhờ hệ thống Recommender, bạn có thể nghe nhạc chọn lọc theo đúng sở thích mà không mất nhiều thời gian tìm kiếm. Kết luận: Nhìn chúng các hệ thống truyền thống đều có mặt hạn chế nhưng chúng ta biết cách kết hợp các kỹ thuật phù hợp với từng hệ thống riêng biết. Trong nhiều hệ thống thực tế chúng ta đã thấy được khả năng mở rồng đầy tiềm năng đặc biệt trong hệ thống tìm kiếm. Xử lý tài liệu tiếng Việt 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 nghiên cứu về cấu của các nhà nghiên cứu Việt Nam. Các quan điểm trong nghiên cứu về ngữ pháp tiếng Việt, chúng ta có thể thấy rằng chưa có một định nghĩa chuẩn thống nhất về cách gọi của từ loại cũng như cấu trúc các ngữ của tiếng Việt. Trong đồ án này, người viết luận văn sẽ chủtrương bám sát theo quan điểm được nhiều tác giảđã thống nhất, quan điểm này được đánh giá là khá phù hợp với ngữ pháp tiếng Việt hiện tại. Đồng thời, trong quá trình xây dựng đồ án, tác giả cũng tiến hành so sánh và bổ sung thêm những phần lý thuyết thuộc hai quan điểm của Nguyễn Tài Cẩn và Diệp Quan Ban. Nguyễn Tài Cẩn (1975) [14] cho rằng cụm danh từ (danh ngữ) gồm có ba phần : phần đầu, phần trung tâm và phần cuối như sơ đồ sau : Hình 11: Sơ đồ cấu trúc từ của Nguyễn Tài Cẩn Trong thực tế danh ngữ còn có thể xuất hiện cả dưới dạng những dạng chỉ có hai phần: phần đầu+phần trung tâm, phần trung tâm+phần sau hoặc phần đầu + phần sau. Phần trung tâm của danh ngữ không phải chỉ có một từ trung tâm mà bao gồm cả bộphận trung tâm ghép gồm hai trung tâm T1 và T2, với hai vị trí T1, T2 bộ phận trung tâm có thể xuất hiện dưới 3 biến dạng : o Có đầy đủ : T1T2, ví dụ : con chim ( này) o Dạng thiếu T1 : -T2, ví dụ : - chim (này) o Dạng thiếu T2: T1-, ví dụ : con – ( này) -Phần đầu của danh ngữ có tất cả 3 loại thành tố phụ (3 loại định tố) : o Định tố “cái”, ví dụ : cái cậu học sinh ấy o Định tố chỉ số lượng, ví dụ : mấy cái cậu học sinh ấy o Định tố chỉ ý nghĩa toàn bộ, ví dụ : tất cảmấy cái cậu học sinh ấy -Phần cuối của danh ngữ, có thể có 2 loại định tố có tổ chức hoàn toàn khác nhau: o Loại định tố chỉ gồm một từ, ví dụ : một quyển sách quý o Loại định tố do một mệnh đềđảm nhiệm, ví dụ : cuốn sách tôi vừa mua hôm qua Trong tiếng Việt có theer dùng những từ loại sau đây để làm định tố cuối : + Danh từ, ví dụ : vườn cau + Tính từ, ví dụ : ghế dài, một cái ghể rất tốt + Động từ, ví dụ : bàn học + Từ chỉ trỏ, ví dụ : sáng nay, người ấy + Từ chỉ vị trí, ví dụ : nhà trong, cổng trước + Từ chỉ con số : giường một, ngày 27 Hồ Lê (1992) [20] cho rằng vị trí của số lượng từ, đại từ chỉ định và sự kiện từ xoay xung quanh danh từ theo mô hình sau : Trong đó: D1: gồm những danh từ như : con, cái, …; ông, bà…; loại, thứ, hạng, …; phía, bên, nơi, chốn, buổi, hôm, ngày, giờ, khi, lúc…. D2: gồm những danh từ còn lại. Ví dụ: - Con mèo đen lớn rồi - Cô y tá - Phía ngoài sân Nguyễn Kim Thản (1997) [20] cho rằng việc nghiên cứu cụm danh từ chính là việc nghiên cứu từ tổ danh từ, loại từ chiếm ưu thế tuyệt đối trong nhóm danh từ. Danh từcó thể ghép với danh từ, thời vị từ, số từ, động từ, tính từ, đại từvà một số từ phụ khác như : khi, lúc, hồi, dạo, thưở, khoảng, độ, bữa, buổi, đằng, phía, phương, nơi, bên, ngả, lối, hạng, cái, loại, cỡ, khổ, bậc, ngạnh….. -Từ tố danh từ + danh từ (N) : o Từ tố N1 N2, ví dụ : cân gạo, bó rau, hòm sách, chùm cau, tóc mây, tiền nghìn, sông Hồng, huyện Gia Lộc, nước Lào… o Từ tố N1 z N2, ví dụ : quê của mẹ, nhà bằng gạch, kế hoạch vềkinh tế, sách cho thiếu nhi, nhãn ở Hưng yên… oTừ tố N1 (z) N2, ví dụ : quê mẹ, nhà gạch, kế hoạch kinh tế sách thiếu nhi, nhãn Hưng yên…. ( z : là giới từ). -Từ tố danh từ + thời vị từ (E): oTừ tổ N E, ví dụ : Ngoài nhà ngoài có cái giường mình nằm oTừ tổ N (z) E, ví dụ: ý định ( của) trên như thế nào ? -Từ tố danh từ + số từ ( F): từ chỉ số lượng bao giờ cũng đặt trước danh từ (FN), ví dụ : hai cái bàn. Từ chỉ thứ tự bao giờ cũng đặt sau danh từ ( NF), ví dụ : bàn số hai, quyển thứ năm... o Từ tố danh từ + động từ, ví dụ : cá sống, nước sôi, gió lùa, kế hoạch làm việc…. oTừ tố danh từ + tính từ, ví dụ: quả táo vàng, cái áo trắng… oTừ tố danh từ + đại từ chỉđịnh, ví dụ: con mèo ấy, cái xe này, … Diệp Quang Ban (1999) [1] đưa ra cấu tạo chung của cụm danh từ có ba phần: phần trung tâm, phần phụ trước, phần phụ sau. Phần trung tâm thường là một danh từ hoặc một ngữ danh từ. Trong phần phụ trước người ta đã xác định được ba vị trí khác nhau sắp xếp theo một trật tự nhất định. Ở phần phụ sau thường nhận được hai vị trí có trật tựổn định. Phần phụ trước cụm danh từ chuyên dùng chỉ mặt số lượng của sự vật nêu ở trung tâm, phần phụ sau chủ yếu dùng chỉ mặt chất lượng của sự vật nêu ở trung tâm. Phần phụ trước Phần phụ trung tâm Phần phụ sau -3 -2 -1 0 1 2 Ví dụ: tất cả những con mèo đen ấy -3 -2 -1 0 1 2 Vị trí 0 là vị trí của danh từ chính Vị trí -1 là vị trí của từ chỉ xuất cái Vị trí -2 là vị trí của từ ch._.ỉ số lượng, ví dụ: một, hai,…; vài, ba, dăm, dăm ba...; mỗi, từng, mọi…; những, các, một…; mấy Vị trí -3 là vị trí của từ chỉ tổng lượng, ví dụ : hết thảy, tất cả, cả… Vị trí 1 là vị trí của từ nêu đặc trưng miêu tả có thể gặp nhiều loại từ khác nhau như : danh từ, động từ, tính từ, số từ, đại từ và thời vị từ. Ví dụ: phòng tạp chí, phòng đọc, phòng hẹp, phòng chúng tôi…. Vị trí 2 là vị trí của từ chỉ định, ví dụ: cái máy này, quả táo kia… Tóm tắt đặc trưng của cấu trúc ngữ pháp tiếng Việt, Anh 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 stopword, 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. Như đã trình bày ở trên, ngày nay, các tài liệu viết tiếng Việt đang chuyển sang khai thác trên font chữ chung, tuân theo chuẩn unicode. Điều này có lợi rất nhiều cho việc đọc chính xác các tài liệu tiếng việt của các chương trình đọc. 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. Xử lý tài liệu theo ngữ nghĩa Đặt vấn đề 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à: 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ện 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. 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ể. Dựa trên ngữ liệu (Corpus – Based) Hướng tiếp cận này sẽ rút ra các quy 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. Phân tích ngữ nghĩa tiềm ẩn (LSA) Cũng liên quan tới mảng ngữ nghĩa của từ, trong đồ án tốt nghiệp này, chúng tôi khai thác chiều khác của phân tích về mặt ngữ nghĩa. Ngoài việc tương đồng từ khóa về mặt hình thức (về bản mặt từ), chúng tôi còn đề cập tới tương đồng về nội dung của tài liệu. Có nhiều phương pháp khác nhau để đánh giá sự tương đồng về nội dung như phương pháp Định chỉ số ngữ nghĩa tiềm ẩn (LSI – Latent Semantic Index), phương pháp Phân tích ngữ nghĩa tiềm ẩn (LSA – Latent Sematic Analys). Chỉ mục ngữ nghĩa tiềm ẩn (LSI) thêm một bước quan trọng cho việc xử lý chỉ mục tài liệu.Thêm vào việc ghi những từ khóa mà một tài liệu chứa. Phương pháp này khảo sát toàn bộ tập dữ liệu, để thấy những tài liệu khác chứa một số từ tương được với các từ đó. LSI được phát triển đầu tiên ở Bellcore trong cuối những năm 80. LSI xem các tài liệu có nhiều từ thông dụng là có nghĩa, và xem những tài liệu ít từ thông dụng là ít có nghĩa. Mặc dù thuật giải LSI không hiểu tí gì về nghĩa của các từ, nó nhận ra các khuân mẫu. Khi bạn tìm kiếm một CSDL chỉ mục LSI, công cụ tìm kiếm này xem xét những giá trị tương tự mà nó tính toán cho mỗi từ của nội dung, và trả về các tài liệu mà nó nghĩ là thích hợp nhất với câu truy vấn. Bởi vì hai tài liệu có thể rất gần nghĩa với nhau thậm chí nếu chúng không cùng chung một từ khóa đặc biệt, LSI không yêu cầu một sự phân tích lấy tương xứng để trả về các kết quả hữu dụng. Ở những vị trí mà một tìm kiếm theo từ khóa đơn giản sẽ không thực hiện được nếu không có phân tích lấy tương xứng, thì LSI sẽ thường trả về những tài liệu liên quan mà không chứa tất cả những từ khóa đó. Phương pháp đề cập nữa là phân tích ngữ nghĩa tiềm ẩn (LSA), là phần kia của đồ án. Xin vui lòng xem đồ án của Mr Cường sẽ có trình bầy chi tiết về phương pháp LSA, và áp dụng của nó trong việc phân tích nội dung của tài liệu. Nhận xét, kết luận Phân tích ngữ nghĩa là một khâu rất quan trọng trong hệ thống gợi ý. Bước tách từ vựng đã tách tài liệu thành các từ khóa và nó đặc trưng cho tài liệu đó. Hệ thống sẽ tìm kiếm trong kết quả trả về cho người dùng lần đầu tiên bằng việc so khớp các từ khóa được nhập với các từ khóa trong phần từ khóa của các tài liệu. Khâu xử lý về nội dung sẽ xác định các tài liệu nào giống tài liệu nào. Giống ở đây chỉ mức độ tương đồng về mặt nội dung giữa các tài liệu đem gợi ý. Có thể hai tài liệu không có bộ từ khóa giống nhau, nhưng nó có thể sẽ giống về nội dung. Thu thập thông tin người dùng Ưu điểm của các hệ thống tự học Hệ thống tự học là hệ thống dựa vào thông tin của người dùng mà người dùng cung cấp những lần giao dịch với hệ thống để phát hiện ra những sở thích lĩnh vực người dùng quan tâm để cải thiện kết quả trả về cho người dùng cho sát với những yêu cầu thực tế. Hệ thống là một phần nhỏ của hệ chuyên gia-là hệ mà khai thác tri thức trong những lần “giao tiếp” với người dùng bằng các tập luật đã được định nghĩa sẵn. Những ưu điểm của hệ thống tự học chúng tôi tổng kết được. Tri thức của hệ thống là tri thức mở. Các giao tiếp với người dùng có thể thay đổi sau những lần giao dịch để thích hợp với sở thích của người dùng hơn. Cho phép người dùng lựa chọn bước tiếp theo của hệ thống. Kết quả tìm kiếm đối với một hệ thống search engine ngày càng sát hơn với nhu cầu của người tìm kiếm. Càng thông minh hơn sau nhiều lần giao dịch với người dùng. Hệ thu nhận và tạo một profile cho người dùng (nếu họ đăng ký thông tin với hệ thống). Và sau những lần giao dịch với hệ, hệ sẽ học được và loại bỏ những thông tin không cần thiết, tăng bộ lọc cho kết quả trả về. Phân tích logfile Logfile là file ghi nhận thông tin về lịch sử làm việc của người dùng với một hệ nào đó. Việc phân tích logfile sẽ góp phần quan trọng để xác định những sở thích của người dùng để thu hẹp phạm vi các kết quả trả về, đồng thời cũng thu thập để chính xác hơn những dữ liệu mà hệ thống có với những hệ gợi ý. Có rất nhiều các kỹ thuật phân tích logfile, trong phạm vi đồ án này, tôi chỉ giới thiệu mà không đi sâu vào phương pháp nào, để giới thiệu một ứng dụng nhỏ trong hệ thống về việc phân tích các thông tin trong các lần giao dịch với hệ thống. Phân tích dựa thông tin người dùng Việc ghi nhận các thông tin của người dùng như địa điểm, độ tuổi, giới tính, hay một số các thông tin về sở thích sẽ giúp hệ thống lọc chính xác hơn các kết quả đưa lại cho người dùng. Thí dụ, một trang nhạc có thể đưa mặc định trong playlist của một người dùng có tuổi 13 những bài hát thiếu nhi. Những hệ thống đa người sử dụng, phân tích dựa trên thống tin người dùng thể hiện ở các nhóm quản trị hệ thống, nhóm các người dùng thông thường hay những khác vãng lai. Với những hệ thống đó, những thông tin về người dùng sẽ quyết định giao diện của hệ thống đối với người dùng đó. Kết luận Một hệ thống recommender system cần phải kết hợp tối đa các phân tích để trả lại kết quả chính xác và phù hợp nhất cho yêu cầu của người dùng. Những thông tin do người dùng cung cấp sẽ là những bộ lọc cho kết quả, những nguồn thông tin đầu vào cho những gợi ý nâng cao. Hệ thống khai thác tri thức dựa trên thông tin được cung cấp bởi người được áp dụng rất nhiều ngay từ những năm 60 được thể hiện ở những hệ chuyên gia, hệ tư vấn. Vấn đề lưu trữ dữ liệu Vấn đề lưu trữ dữ liệu cũng là bài toán không nhỏ với những bộ máy tìm kiếm. Ở phần dưới, tôi sẽ giới thiệu những công cụ tìm kiếm nổi tiếng trên internet hiện nay. Mỗi hệ thống đều có những giải pháp lưu trữ dữ liệu riêng phụ thuộc vào giải thuật tìm kiếm của mình. Với những search engine, phải có kế hoạch cập nhật thông tin định kỳ nhất định để cập nhật sự thay đổi (những hệ thống tìm kiếm online) hay khi cập nhật tài liệu mới (những hệ thống trên CSDL có sẵn). Trong đồ án này, chúng tôi cũng lựa chọn một phương thức lưu trữ dữ liệu sẽ được trình bày chi tiết trong phần sau. PHẦN II: CƠ SỞ LÝ THUYẾT CÁC BỘ MÁY TÌM KIẾM Một số engine thông dụng Sau đây là danh sách một số search engine. Tại sao chúng được gọi là các search engine “lớn”? Đó là vì chúng được biết đến nhiều và sử dụng tốt. Với các chuyên gia web, các công cụ tìm kiếm lớn là danh sách những nơi quan trọng nhất bởi chúng phát sinh ra một lượng lớn các trang web tiềm tàng. Đối với những người tìm kiếm, các công cụ tìm kiếm phổ biến thường trả lại kết quả đáng tin cậỵ Dưới đây là danh sách các search engine. Hình 12: Giao diện tìm kiếm của Google Nguyên thủy, Google là một đề án của trường Đại học Stanford được thực hiện bởi hai sinh viên Larry Page và Sergey Brin gọi là BackRub. Đến năm 1998 thì đổi thành Google, và đồ án đó đã trở thành công ty riêng Google đặt tại khuôn viên trường đại học. Google là công cụ tìm kiếm nổi tiếng, tốt nhất hiện tại cho tìm kiếm thông tin trên web. Dịch vụ dựa vào crawler, spider cung cấp trang web với thông tin đưa ra toàn diện cùng mức độ liên quan tốt. Hình 13: Giao diện tìm kiếm Yahoo Đưa ra năm 1994, yahoo là “thư mục” cũ nhất của web, một nơi các nhà tổ chức trang web thành các thư mục. Tuy nhiên, vào tháng 10 năm 2002, yahoo chuyển sang lập danh sách dựa vào crawler cho những kết quả chính của nó. Công cụ này sử dụng công nghệ từ Google cho tới 2/2004. Hiện nay, Yahoo sử dụng công cụ tìm kiếm riêng của mình. Yahoo Directory vẫn tồn tai. Bạn sẽ chỉ ra các liên kết “danh mục” phía dưới một số các trang web liệt kê trong kết quả trả về của một tìm kiếm từ khóa. Khi được đề xuất, những trang web này dẫn bạn đến một danh sách các trang web đã được xem xét và phê chuẩn bởi một nhà biên tập. Công nghệ Alta Vista và AllTheWeb được phối hợp với kỹ thuật Inktomi, một công cụ tìm kiếm dựa trên crawler, để tạo nên một Yahoo crawler hiện nay. Vừa qua, thương vụ mua bán Yahoo với Microsoft không thành, khiến nhiều chuyên gia đánh giá, trong thời gian tới, cả 2 hãng này sẽ có bước đột phá trong công nghệ tìm kiếm và đánh giá các site. Ask Jeeves Ask Jeeves bắt đầu nổi tiếng từ năm 1998 và 1999, được biết như một công cụ tìm kiếm “ngôn ngữ tự nhiên” cho phép ta tìm kiếm bằng cách đặt câu hỏi và trả về kết quả với những gì có vẻ là trả lời đúng. Hình 14 Giao diện tìm kiếm Ask Jeeves Thực sự, công nghệ không phải là những gì làm cho Ask Jeeves thực thi tốt. Bên cạnh các bối cảnh, công vụ này tại một thời điểm có hơn 100 trình soạn thảo giám sát các log tìm kiếm. Sau đó, chúng vào trong web và định vị những site mà chúng cho là tốt nhất tương xứng với các truy vấn phổ biến nhất. All the web Hình 15: Giao diện tìm kiếm All the web Chiến lược tìm kiếm Công nghệ tìm kiếm ngữ nghĩa trên thế giới hiện nay Hầu hết các hiệu quả gần đây của các công cụ tìm kiếm dựa vào ngữ nghĩa phụ thuộc vào công nghệ xử lý ngôn ngữ tự nhiên để phân tích và hiểu câu truy vấn. Một trong những công cụ tìm kiếm đầu tiên và thông dụng nhất là Ask Jeesves. Nó liên kết những điểm mạnh của phần mềm phân tích ngôn ngữ tự nhiên, xử lý khai khoáng dữ liệu và tạo cơ sở tri thức với những phân tích theo kinh nghiệm. Người dùng có thể gõ các truy vấn bằng ngôn ngữ tự nhiên và nhận được những trả lời thỏa đáng. Một kiểu nâng cao khác của công cụ tìm kiếm Internet là Cycorp ( Cyc liên kết cơ sở tri thức lớn nhất trên thế giới với Internet. Cyc là một cơ sở tri thức bao la và đa ngữ cảnh. Với Cyc Knowledge Server, nó cho phép các site Internet thêm vào tri thức ngữ nghĩa thông dụng và phân biệt những nghĩa khác nhau của khái niệm nhập nhằng. Bàn về hiệu quả của các tìm kiếm ngữ nghĩa. Nhiều công ty lớn đang thật sự hướng đến vấn đề của tìm kiếm ngữ nghĩa, sự phát triển của Microsoft về web có lẽ phụ thuộc vào khả năng của nó để hoàn thiện công cụ tìm kiếm mà dẫn đầu là Google. Kết quả là Microsoft đưa ra một chương trình tìm kiếm mới gọi là MSNBot, nó lướt Web để xây dựng một chỉ mục các liên kết HTML và các tài liệu. MSNBot được dự định như là một công nghệ mà kết hợp các ứng dụng cho hệ điều hành Windows. Sau đó Microsoft sẽ kết nối công cụ tìm kiếm của nó với cômg MSN trong phiên bản Wíndows kế tiếp của nó nhằm dễ dàng tìm kiếm e-mail, spreadsheets và các tài liệu trên PC. Về Công nghệ tìm kiếm. Tìm kiếm ngữ nghĩa giải quyết với các khái niệm và các mối quan hệ logic. Nếu xem xét các vấn đề thực tế của tìm kiếm ngữ nghĩa, chúng ta sẽ thấy rằng, cây tìm kiếm đứng trước tình trạng thiếu logic đưa đến vấn đề chưa hoàn tất hay “ngắc ngứ” (Incompleteness and Halting Problem). Đầu tiên, về vấn đề Incompleteness, kết luận có thể được xem như là một sự suy diễn của một dãy logic gắn lại với nhau. Ở mỗi điểm, có thể có nhiều hướng khác nhau để tới một suy diễn mới. Vì vậy, để đạt hiệu quả, có một nhóm các khả năng phân nhánh để bằng cách nào đó hướng tới một giải pháp đúng, và nhóm các phân nhánh đó có thể trải ra trong các hướng mới lạ. Trong một hệ thống logic phức tạp, có một số lượng lớn các chứng cớ tiềm tàng. Một số chúng dài và không rõ ràng nếu chỉ có một chứng cơ. Được chúng minh vào những năm 1930, một số hệ thống logic đủ phức tạp vốn đã là không đầy đủ. Nói cách khác, có các câu lệnh mà không thể được chứng minh một cách logic. Luận cứ của nó cho điều đó liên quan đến một vấn đề khác, vấn đề Halting. Vấn đề Halting suy ra rằng, các giải thuật hiện nay sẽ không bao giờ kết thúc trong một câu trả lời. Khi nói về Web, chúng ta nói tới hàng triệu các sự kiện và chục ngàn luật và có thể nối kết đan lại với nhau trong những hướng phức tạp. Vì thế, không gian của các chứng cứ tiềm tàng là vô tận, và cây này theo logic sẽ trở nên vô tận. Chiến lược tìm kiếm Chiến lược tìm kiếm với thông tin trên Web ngữ nghĩa dựa trên nền tảng các công nghệ trên. Từ search engine thường được dùng rộng rãi để mô tả các công cụ tìm kiếm dựa trên crawler và các thư mục do con người cung cấp. Đây là hai loại của các search engine tập hợp các danh sách của chúng trong những cách khác nhau hoàn toàn. Search engine dựa vào crawler gồm 3 phần: 1. Bộ thu thập thông tin: Robot là một chương trình tự động duyệt qua các cấu trúc siêu liên kết để thu thập tài liệu và đệ quy nó để nhật về tất cả các tài liệu có liên quan với tài liệu này. Về bản chất, nó chỉ là một chương trình duyệt và thu thấp thông tin từ các site theo đúng giao thức web. Như trình duyệt thông thường không được gọi là robot do thiếu tính chủ động. Chúng chỉ duyệt web khi có sự tác động của con người. 2. Bộ lập chỉ mục - Index Hệ thống lập chỉ mục hay gọi là hệ thống phân tích và xử lý dữ liệu thực hiện việc phân tích, trích chọn những thông tin cần thiết (thường là các từ đơn, từ ghép, cụm từ quan trọng) từ những dữ liệu mà robot thu thập được và tổ chức thành cơ sở dữ liệu riêng để có thể tìm kiếm trên đó một cách nhanh chóng, hiệu quả. Hệ thống chỉ mục là danh sách các từ khóa, chỉ rõ các từ khóa nào xuất hiện ở trang nào, địa chỉ nào. 3. Bộ tìm kiếm thông tin Search engine là cụm từ để chỉ toàn bộ hệ thống bao gồm bộ thu thập thông tin, bộ lập chỉ mục và bộ tìm kiếm thông tin. Các bộ này hoạt động liên tục từ lúc khởi động hệ thống, chúng phụ thuộc lần nhau về mặt dữ liệu và độc lập về hoạt động. Search engine tương tác với user thông qua giao diện web, có nhiệm vụ nhận và trả về những tài liệu thỏa yêu cầu của user. Nói các khác, tìm kiếm từ là tìm kiếm các trang mà những từ trong câu truy vấn xuất hiện nhiều nhất, trừ stopword (những từ quá thông dụng, cảm thán…). Một từ trong câu truy vấn càng xuất hiện nhiều trong một trang thì trang đó càng được chọn để trả về. Một trang chứa tất cả các từ trong câu truy vấn thì tốt hơn là trang không chứa hoặc chỉ một số từ. Ngày nay, hầu hết các search engine đều hỗ trợ chức năng tìm kiếm cơ bản và nâng cao, từ đơn từ ghép, cụm từ, danh từ riêng… Ngoài việc tìm chính xác theo từ khóa, các search engine còn cố gắng hiểu ý nghĩa thực sự của câu hỏi thông qua câu chữ do người dùng cung cấp. Điều này được thể hiện qua chức năng sửa lỗi chính tả. Nguyên lý hoạt động Search engine điều khiển robot đi thu thập thông tin trên mạng thông qua các hyperlink. Khi robot phát hiện ra một site mới, nó gửi tài liệu về cho server chính để tạo cơ sở dữ liệu chỉ mục phục vụ cho nhu cầu tìm kiếm thông tin. Vì thông tin trên mạng luôn thay đổi nên robot phải cập nhật liên tục các site cũ. Mật độ cập nhật phụ thuộc vào từng hệ thống search engine. Khi search engine nhận câu truy vấn, nó tiến hành phân tích, tìm trong cơ sở dữ liệu chỉ mục và trả về những tài liệu thỏa yêu cầu. XỬ LÝ VĂN BẢN TIẾNG VIỆT Từ và cấu trúc từ của tiếng Việt Đị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 tao 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ấu trúc từ tiếng Việt Từ của tiếng Việt không giống với những 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 (1 từ) , từ ghép. Theo như thống kê trên trang thì độ dài của một từ tiếng Việt được thể hiệnt trong bảng: Độ dài của từ Tần số Tỉ lệ % 1 8933 12.2 2 48995 67.1 3 5727 7.9 4 7040 9.7 ≥ 5 2301 3.1 Tổng cộng 72994 100 Table 1: : Tần suất xuất hiện độ dài từ tiếng Việt trên trang Vdict.com Các phương pháp tách từ tiếng Việt đã được nghiên cứu Nguyên lý thống kê dựa vào Internet Thông qua các search engine thương mại, chúng ta có thể rút trích những thông tin thống kê hữu ích từ Internet. Đó là tần số tài liệu (document frequency – df), số lượng các tài liệu đã được lập chỉ mục có chứa từ cần xét. Ta chuẩn hóa giá trị df bằng cách chia cho một hằng số MAX (là số lượng các tài liệu tiếng Việt đã được lập chỉ mục) để xấp xỉ xác suất xuất hiện của một từ trên Internet. Trên thực tế, chúng ta khó có thể biết được chính xác số lượng các tài liệu tiếng Việt đã được lập chỉ mục, do đó, thông qua thực nghiệm1 giá trị df của các từ thông dụng, chúng tôi chọn giá trị MAX là 109. Tiếng Việt df có 21.3 × 106 của 20.4 × 106 một 14.4 × 106 Table 2: Tần số tài liệu của một số từ thông dụng trong tiếng Việt Do từ tiếng Việt gồm một (số) tiếng liên tiếp nhau, ta cần độ đo thông kê mức độ liên kết giữa các tiếng. Mutual information -MI là một khái niệm quan trọng trong lý thuyết thông tin, được dùng trong xử lý ngôn ngữ tự nhiên để thể hiện quan hệ giữa hai từ cụ thể x và y (Church et al [3]): Tuy nhiên, chúng tôi không chỉ xét các cặp tiếng mà còn xét nhóm n tiếng (n-gram). Tương tự Chien et al [3], chúng tôi mở rộng công thức tính MI của bigram cho n-gram: Với cw là chuỗi gồm n tiếng (cw = s1s2…sn), lw và rw là hai chuỗi con dài nhất (n-1) của cw (lw = s1s2…sn-1 và rw = s2s3…sn). Nếu giá trị MI(cw) lớn thì lw và rw có khuynh hướng cùng xuất hiện chung trong tài liệu trên Internet (tức là cw có khả năng cao là từ ghép). Ví dụ: xét chuỗi “đại học khoa học tự nhiên”, ta so sánh khả năng chuỗi “khoa học tự nhiên” hay “học khoa học tự” là từ ghép. Ta thấy rằng “khoa học tự nhiên” có giá trị MI lớn hơn hẳn MI của “học khoa học tự” (không có ý nghĩa). Chuỗi Wf MI khoa học tự nhiên 39200 0.92 khoa học tự 41800 học tự nhiên 39900 học khoa học tự 14900 0.27 học khoa học 28600 Table 3: Ví dụ về MI của n-gram Trong phần tiếp theo, tôi sẽ giới thiệu hướng tiếp cận bằng giải thuật di truyền để xác định MI tối ưu toàn cục, tức là cách tách từ hợp lý nhất của câu Giải thuật di truyền Với mỗi câu, chúng ta sẽ xác định cách tách từ hợp lý nhất. Tuy nhiên, không gian tìm kiếm sẽ rất lớn do có nhiều cách tổ hợp các tiếng thành từ. Dựa vào nguyên lý tiến hóa và di truyền, giải thuật di truyền thích hợp cho việc xác định (xấp xỉ) các lời giải tối ưu hóa toàn cục trong không gian tìm kiếm rất lớn thay vì các lời giải tối ưu cục bộ (Michalewicz, [10]). Giải thuật di truyền sẽ tiến hóa một quần thể qua nhiều thế hệ nhằm tối ưu hóa toàn cục thông quá quá trình chọn lọc, lai, biến dị và tái sinh. Chất lượng của mỗi cá thể trong quần thể được xác định bằng hàm thích nghi và qua mỗi thế hệ, chúng ta sẽ chọn lại N cá thể tốt nhất sau khi thực hiện quá trình lai, biến dị và tái sinh. Giải thuật di truyền áp dụng cho bài toán tách từ tiếng Việt được tóm tắt như sau: Mục tiêu: Xét văn bản t gồm n tiếng t=s1s2…sn. Mục tiêu của quá trình GA là xác định những cách tách hợp lý nhất văn bản t thành m đọan t=w1w2…wm với wk=si…sj (1 ≤ k≤ m, 1≤ i, j≤ n) có thể là từ đơn hay từ phức. Cách biểu diễn: Quần thể (pop) là tập hợp các cá thể (id) được biểu diễn bằng xâu nhị phân. Mỗi bit tương ứng với một tiếng. Vậy, một từ sẽ gồm các bit giống nhau liên tiếp. 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 Khởi tạo quần thể: Ở bước này, ta khởi gán các tham số như số lượng thế hệ, kích thước quần thể, tỉ lệ lai, tỉ lệ biến dị và tỉ lệ tái sinh. Các cá thể ban đầu của quần thể được phát sinh ngẫu nhiên. Tuy nhiên, chúng tôi áp dụng một số ràng buộc nhằm tối ưu hóa các chuỗi ngẫu nhiên được phát sinh ra. Dưới đây là thống kê rút ra từ từđiển trực tuyến chưa 72994 từ và ngữ2 Thống kê theo độ dài của từ trong từ điển Độ dài của từ Tần số Tỉ lệ % 1 8933 12.2 2 48995 67.1 3 5727 7.9 4 7040 9.7 ≥ 5 2301 3.1 Tổng cộng 72994 100 Do hiện chưa có từ điển chuẩn dành cho xử lý ngôn ngữ nên chúng tôi quyết định chọn thống kê dựa trên một từ điển thông dụng. Dựa vào số liệu thống kê, ta thấy rằng có trên 67% các từ trong từđiển có độ dài là 2 tiếng, khoảng 30% là từ đơn hay từ gồm 3-4 tiếng. Các từ dài hơn chỉ chiếm khoảng 3% trong từđiển, trong đó thường là các thành ngữ. Phép lai: Chúng tôi áp dụng thao tác lai 1-điểm chuẩn trên hai xâu bit. Với cặp cá thể id1 id2, hai cá thể con được tạo ra bằng cách lấy phần đầu của id1 nối vào phần sau của id2 và ngược lại. Tuy nhiên, nếu cá thể con vi phạm các điều kiện giới hạn về kích thước (mỗi đoạn wk có kích thước tối đa là 4), ta sẽ chuẩn hóa cá thể này bằng cách đảo các bit gây ra vi phạm ở cuối đoạn này. Phép biến dị: Thay vì dùng phép biến dị đảo bit ngẫu nhiên, chúng tôi chỉ đảo các bit ở biên của mỗi phân đoạn. Tương tự phép lai, ta sẽ chuẩn hóa các cá thể để thỏa điều kiện giới hạn kích thước của phân đoạn. Tái sinh: Sau khi thực hiện phép lai và biến dị, ta chọn lại một số cá thể ở thế hệ trước (theo tỉ lệ đã chọn) đưa vào quần thể mới. Phép chọn: Ở mỗi thế hệ, chúng ta chỉ chọn giữ lại N cá thể tốt nhất. Hàm thích nghi của mỗi cá thể id được xác định như sau: với id=w1w2…wm là một cá thể trong quần thể pop = {id1, …, idN} Hội tụ: Quá trình tiến hóa nhằm cải thiện độ thích nghi của các cá thể trong quần thể, tức là cải thiện chất lượng của việc tách từ. Do đó, chúng ta sẽ dừng quá trình tiến hóa nếu độ thích nghi của thế hệ sau không cao hơn thế hệ trước, hoặc số lượng thế hệ đạt ngưỡng cho trước. Giải thuật dùng trong bài toán sẽ dựa vào bộ từ điển ngôn ngữ tiếng Việt cho sẵn trước để xác định các từ loại. Giải thuật chúng tôi dùng sẽ được trình bày phần sau cố gắng phán đoán chính xác nhất ý nghĩa từ loại. Thuật toán, otomat tách từ Trong phần này, tôi chỉ giới thiệu mang tính lý thuyết các giải thuật, các otomat tách từ tiếng Việt đã được nghiên cứu. 1. Xây dựng ôtômát âm tiết đoán nhận tất cả các âm tiết tiếng Việt 2. Xây dựng ôtômát từ vựng đoán nhận tất cả các từ vựng tiếng Việt. 3. Dựa trên các ôtômát nêu trên, xây dựng đồ thị tương ứng với câu cần phân tích và sử dụng thuật toán tìm kiếm trên đồ thị để liệt kê các cách phân tích có thể. Bảng chữ cái của ôtômát âm tiết là bảng chữ cái tiếng Việt, mỗi cung chuyển được ghi trên đó một ký tự. Ví dụ, với ba âm tiết phương, pháp, trình ta sẽ có ôtômát đoán nhận âm tiết như Hình 1. Hình 16: Xây dựng ôtômát âm tiết Thuật toán xây dựng ôtômát âm tiết Input: Từ điển âm tiết Output: Ôtômát âm tiết. Thuật toán: 1. Lập trạng thái khởi đầu ; 2. Vòng lặp đọc cho tới khi hết tệp dữ liệu, lấy ra từng âm tiết. Gọi các ký tự của âm tiết đó là a. b. Vòng lặp trong khi () i. Lấy ra ký tự ; ii. Tìm trong các cung chuyển từ trạng thái cung trên đó ghi ký tự . Nếu có cung như thế: 1. 2. iii. Nếu không có cung ( nào như thế thì thoát khỏi vòng lặp b. c. Với từ i đến i. Tạo mới trạng thái q, ghi nhận là trạng thái không kết; ii. Thêm cung chuyển trên đó ghi ký tự ; iii. d. Ghi nhận q là trạng thái kết; Ôtômát từ vựng được xây dựng tương tự, với điểm khác như sau: thay vì ghi trên mỗi cung chuyển một âm tiết, ta ghi số hiệu của trạng thái (kết) của ôtômát âm tiết tại đó đoán nhận mỗi âm tiết của từ nhằm giảm kích thước của ôtômát từ vựng. Ví dụ, với hai từ phương pháp và phương trình, giả sử khi đưa lần lượt các âm tiết phương, pháp, trình qua ôtômát âm tiết, ta đến được các trạng thái kết ghi các số n1, n2, n3 thì trên các cung chuyển tương ứng ta ghi các số n1, n2, n3 (Hình 2). Hình 17: Xây dựng ôtômát từ vựng Thuật toán xây dựng ôtômát từ vựng Input: Từ điển từ vựng, ôtômát âm tiết Output: Ôtômát từ vựng. Thuật toán: 1. Lập trạng thái khởi đầu ; 2. Vòng lặp đọc cho tới khi hết tệp dữ liệu, lấy ra từng mục từ word. Gọi các âm tiết của word là ; 3. Sử dụng ôtômát âm tiết để đoán nhận các âm tiết trên, được các số hiệu của trạng thái (kết) tương ứng là a. b. Vòng lặp trong khi ( ) i. Lấy ra số ; ii. Tìm trong các cung chuyển từ trạng thái cung trên đó ghi số . Nếu có cung như thế 1. 2. iii. Nếu không có cung ( nào như thế thì thoát khỏi vòng lặp b. c. Với từ i đến i. Tạo mới trạng thái q, ghi nhận là trạng thái không kết; ii. Thêm cung chuyển ( trên đó ghi số ; iii. d. Ghi nhận là trạng thái kết Sau khi đã xây dựng xong hai ôtômát, ta ghi chúng vào hai tệp định kiểu để dùng trong bước phân tách từ vựng. Nếu mỗi ký tự (char) được ghi vào tệp với kích thước 2 byte (mã Unicode), mỗi số nguyên (int) có kích thước 4 byte thì tệp lưu ôtômát âm tiết có kích thước 146KB, tệp ôtômát từ vựng có kích thước 1MB. Tư tưởng của thuật toán phân tách từ vựng là quy việc phân tách câu về việc tìm đường đi trên một đồ thị có hướng, không có trọng số. Giả sử câu ban đầu là một dãy gồm n+1 âm tiết s0, s1, ..., sn. Ta xây dựng một đồ thị có n+2 đỉnh v0, v1, ..., vn, vn+1, sắp thứ tự trên một đường thẳng từ trái sang phải; trong đó, từ đỉnh vi đến đỉnh vj có cung (i < j) nếu các âm tiết si, si+1, ..., sj-1 theo thứ tự lập thành một từ. Khi đó mỗi cách phân tách câu khác nhau tương ứng với một đường đi trên đồ thị từ đỉnh đầu v0 đến đỉnh cuối vn+1. Trong thực tế, cách phân tích câu đúng đắn nhất thường ứng với đường đi qua ít cung nhất trên đồ thị. Trong trường hợp câu có sự nhập nhằng thì đồ thị sẽ có nhiều hơn một đường đi ngắn nhất từ đỉnh đầu đến đỉnh cuối, ta liệt kê toàn bộ các đường đi ngắn nhất trên đồ thị, từ đó đưa ra tất cả các phương án tách câu có thể và để người dùng quyết định sẽ chọn phương án nào, tuỳ thuộc vào ngữ nghĩa hoặc văn cảnh. Ví dụ, xét một câu có cụm "thuộc địa bàn", ta có đồ thị như sau (Hình 3) Hình 18: Một tình huống nhập nhằng Cụm này có sự nhập nhằng giữa thuộc địa và địa bàn và ta sẽ có hai kết quả phân tách là "thuộc địa / bàn" và "thuộc / địa bàn". Ta có thể chỉ ra rất nhiều những cụm nhập nhằng trong tiếng Việt, chẳng hạn "tổ hợp âm tiết", "bằng chứng cớ",... Trường hợp trong câu có âm tiết không nằm trong từ điển thì rõ ràng ôtômát âm tiết không đoán nhận được âm tiết này. Kết quả là đồ thị ta xây dựng từ câu đó là không liên thông. Dựa vào tính chất này, ta thấy rằng nếu đồ thị không liên thông thì dễ dàng phát hiện ra rằng đơn vị âm tiết không đoán nhận được không nằm trong từ điển âm tiết, tức nó bị viết sai chín._.

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

  • docCNTT1037.doc