Chương 1 PHÁT BIỂU VẤN ĐỀ 1. Giới thiệu Luận văn này trình bày về vấn đề phân loại văn bản tự động theo các chủ đề cho trước. Đề tài này đã được nghiên cứu từ đầu thập niên 1960. Kể từ đó, đề tài này đã liên tục được nghiên cứu và phát triển thông qua các thư viện điện tử, báo chí và các văn bản trực tuyến.
Khái niệm phân loại văn bản được định nghĩa như sau: “Phân loại văn bản (Text Categorization) là việc quyết định xem một mẫu văn bản thuộc về một chủ đề nào đó trong tập chủ đề cho trước. Đây là chức năng xử lý văn bản tổng quát có ích cho việc lập chỉ mục và truy xuất thông tin sau này, là một công đoạn trong hệ thống xử lý ngôn ngữ tự nhiên để phân tích nội dung và trong nhiều vai trò khác.” Xử lý ngôn ngữ tự nhiên (NLP: Natural Language Processing) làĩnh l vực thuộc ngành trí tuệ nhân tạo và ngôn ngữ học. Nó có những phương pháp giúp cho việc xử lý, thao tác và hiểu ngôn ngữ tự nhiên một cách dể dàng và làm cho các câu lệnh trong máy tính hiểu được các ngôn ngữ của nhân loại. Do đó, nó thu hút rất nhiều nhà khoa học nghiên cứu và đã đạt được những thành tựu đáng kể.
Sau đây là một vài thành tựu có thể kể đến như: Đọc văn bản (Text to Speech) Nhân dạng tiếng nói (Speech Recognition) Sinh ra ngôn ngữ tự nhiên (Natural Language Generation) Máy dịch thuật (Machine Translation) Trả lời câu hỏi (Question Answering) Tìm kiếm thông tin (Information Retrieval) Trích rút thông tin (Information Extraction) Kiểm chứng văn bản (Text-Proofing) SVTH: Phan Thanh Bình & Lê Bạch Vũ Trang 12 Luận văn tốt nghiệp GVHD: Th.s Nguyễn Chánh Thành Tóm tắc tự động (Automatic Summarization) Mơ hồ về ngữ nghĩa (Syntactic ambiguity) Xử lý ngôn ngữ bằng thống kê (Statistical Natural Language Processing) Trong luận văn này chúng tôi ình tr bày là phân lo ại văn bản tự động - một hướng nghiên cứu trong lĩnh vực xử lý ngôn ngữ tự nhiên bằng thống kê. Mục tiêu của việc phân loại văn bản tự động là phải viết một chương trình có khả năng phân loại chính xác một văn bản bất kỳ (bằng tiếng Anh). Động cơ thúc đẩy việc phân loại văn bản tự động Phân loại văn bản tự động đem lại rất nhiều lợi ích trong đời sống hiện nay. Thật vậy, sự phát triển vượt bậc của Internet dẫn đến sự bùng nổ của các văn bản trực tuyến, cho nên cần phải phân loại các văn bản nhận được vào các chủ đề khác nhau.
Nếu việc phân loại văn bản cổ điển được thực hiện thủ công, nghĩa là thông qua con người (các chuyên gia của từng lĩnh vực), thì số lượng chuyên gia tham gia vào việc phân loại là rất lớn và thời gian phân loại cũng lớn hơn, điều này rất tốn kém và gây nhàm chán cho các chuyên gia này. Tuy nhiên việc phân loại thủ công cũng không tránh khỏi những ý kiến chủ quan của những chuyên gia, vì vậy độ chính xác cũng không cao. Khi đó các công cụ ph ân loại văn bản tự động rất hữu ích cho người đọc trong việc tổ chức dữ liệu. Do đó việc phân loại tiến hành bằng máy có ưu điểm là hiệu suất cao, có thể hoạt động bất kỳ lúc nào.Tuy nhiên vấn đề ta cần quan tâm là độ chính xác của hệ thống.
Thật vậy, nếu thực hiện theo cách tự động sẽ tận dụng được khả năng quét các văn bản và khả năng xử lý nhanh của máy tính. Do đó hiệu suất sẽ lớn hơn và độ chính xác sẽ cao hơn nếu như máy tính được huấn luyện tốt. SVTH: Phan Thanh Bình & Lê Bạch Vũ Trang 13 Luận văn tốt nghiệp GVHD: Th.s Nguyễn Chánh Thành 1. Một số ứng dụng của việc phân loại văn bản theo chủ đề a.
Phân loại văn bản theo ngôn ngữ Ở một số trung tâm kiểm duyệt văn bản, số lượng văn bản nhận được rất lớn. Các văn bản này có thể được biểu diễn từ các ngôn ngữ khác nhau. Ta có thể dùng các hệ thống phân loại văn bản theo ngôn ngữ để gán các văn bản này vào từng ngôn ngữ cụ thể. Các chuyên gia ngôn ngữ sẽ kiểm duyệt các văn bản này theo ngôn ngữ chuyên môn của họ.
Phân loại thông tin theo chủ đề Cũng giống như việc phân loại văn bản theo ngôn ngữ, việc phân loại thông tin theo chủ đề sẽ phân c hia các thông tin nhận được vào các chủ đề khác nhau. Nếu việc phân loại này được thực hiện thủ công, nghĩa là thông qua con người, thì số lượng chuyên gia tham gia vào việc phân loại là rất lớn và thời gian phân loại cũng lớn hơn. Việc phân loại thủ công cũng không tránh khỏi ý kiến chủ quan của những chuyên gia, vì vậy độ chính xác cũng không cao. Trong khi đó, nếu thực hiện theo cách tự động sẽ tận dụng được khả năng quét các văn bản và khả năng xử lý nhanh của máy tính.
Do đó hiệu suất sẽ lớn hơn và độ chính xác sẽ cao hơn nếu như máy tính được huấn luyện tốt. Tìm kiếm thông tin Việc phân loại văn bản có thể áp dụng trong các hệ thống tìm kiếm thông tin nhằm tăng hiệu suất cũng như tăng độ chính xác của việc tìm kiếm. Do sự phát triển của Internet, số lượng thông tin trực tuyến ngày càng tăng. Một thao tác phổ biến trên Internet là tìm kiếm.
Tuy nhiên, do khối lượng thông tin rất lớn nên các cỗ máy tìm kiếm (search engine) thường tổ chức dữ liệu vào các chủ đề giúp không gian tìm kiếm giảm đi, qua đó tăng hiệu suất của hệ thống. Ngoài ra việc tìm kiếm theo từ khoá thường không đạt được độ chính xác cao nên các search engine thường kết hợp với tìm kiếm theo chủ đề nhằm cải thiện độ chính xác của việc tìm kiếm. SVTH: Phan Thanh Bình & Lê Bạch Vũ Trang 14 Luận văn tốt nghiệp GVHD: Th.s Nguyễn Chánh Thành d. Phân loại email Chức năng của một hệ thống phân loại email tự động là: - Từ chối mail theo luật.
- Phân phối mail vào các folder định trước. - Chuyển mail đến địa chỉ khác. Nội dung đề tài Trong luận văn chúng tôi tìm hiểu và áp dụng phương pháp k – Nearest Neighbour để phân loại văn bản tiếng Anh. Đối với ngôn ngữ tiếng Anh hiện nay có rất nhiều công trình liên quan như: Google, Yahoo, … Các văn bản cần phân loại trong luận văn chúng tôi gói gọn trong 5 chủ đề: Trí tuệ nhân tạo (artificial intelligence), Cấu trúc dữ liệu + giải thuật (structure and algorithm), mạng máy tính (network), sinh học (biology), bóng đá (football).
Các chủ đề trên được thu thập từ các trang web được Google phân loại sẵn do đó mỗi thể loại rất đa dạng về nội dung. Trong đó hai chủ đề cấu trúc dữ liệu + giải thuật và trí tuệ nhân tạo được xem là tiêu biểu nhất cho việc phân loại vì chúng giao nhau rất lớn, thêm vào đó là chủ đề mạng máy tính cũng rất gần vì chúng điều thuộc cùng một lĩnh vực khoa học máy tính. Ngoài ra, các chủ đề còn lại đại diện cho các văn bản hoàn toàn khác nhau nên việc phân loại văn bản sẽ dễ dàng hơn và đạt độ chính xác cao hơn. Do đó một văn bản có thể thuộc cùng lúc cả hai hoặc nhiều chủ đề thì việc phân loại sẽ khó khăn hơn và mức độ chính xác cũng thấp hơn.
Nếu giải quyết được tình huống khó khăn trên thì việc phân loại văn bản cho các chủ đề khác sẽ đạt độ chính xác cao hơn. Tóm lại, sau khi xây dựng thành công giải thuật phân loại văn bản cho các chủ đề trên, thì việc mở rộng phân loại văn bản cho nhiều chủ đề khác là điều hoàn toàn có thể t hực hiện được một cách dể dàng. Mỗi chủ đề cần phân loại phải trên vài trăm văn bản mẫu và phải có các chuyên gia riêng tạo lập thì mới có thể đạt được độ chính xác cao. SVTH: Phan Thanh Bình & Lê Bạch Vũ Trang 15 Luận văn tốt nghiệp GVHD: Th.s Nguyễn Chánh Thành 1.
Ứng dụng mở rộng - Lập chỉ mục và tìm kiếm của Lucene 1. Giới thiệu Lucene Lucene là bộ công cụ mã nguồn mở viết bằng Java hỗ trợ việc tạo chỉ mục (indexing) và tìm kiếm (searching) văn bản. Đây là bộ công cụ dễ sử dụng, linh hoạt và khá mạnh với mô hình kiến trúc hướng đối tượng. Lucene là một thành viên rất được ưa chuộng trong các dự án của Apache Jakarta.
Trong vài năm gần đây, hầu hết các thư viện tìm kiếm thông tin (IR: Information Retrieval) bằng Java đều hoàn toàn miễn phí. Lucene có thể tạo chỉ mục cho bất kì thông tin dạng text nào bạn muốn, sau đó thực hiện tìm kiếm theo nhiều tiêu chuẩn khác nhau. Mặc dù chỉ làm việc với text, nhưng có nhiều tính năng khác được cung cấp để bạn có thể tạo index cho văn bản Word, file PDF, XML, hay các trang HTML. Lucene không quá ph ức tạp.
Nó cung cấp một khung làm việc cơ bản, hỗ trợ bạn xây dựng một công cụ tìm kiếm đầy đủ chức năng cho website của mình. Ta có thể xem Lucene là một tầng phía dưới, giúp xử lí thao tác index và search cho các chương trình bên trên, như trong hình sau: SVTH: Phan Thanh Bình & Lê Bạch Vũ Trang 16 Luận văn tốt nghiệp GVHD: Th.s Nguyễn Chánh Thành Hình 1. Mô hình kiến trúc của Lucene Một số chương trình tìm kiếm có đầy đủ chức năng được xây dựng dựa trên cơ sở Lucene. Nếu bạn đang tìm một số thứ cần thiết đã được xây dựng sẵn hay một khung làm việc dùng cho việc crawling, xử lí văn bản, và tìm kiếm, bạn có thể xem tại trang Lucene Wiki (http://wiki.org/jakarta- lucene/PoweredBy) với nhiều chương trình: Zilverline, SearchBlox, Nutch, LARM, và jSearch.
Với sự phong phú của thông tin, và thời gian là một trong những thứ quý giá của hầu hết mọi người, chúng ta cần làm cho những câu truy vấn trở nên linh hoạt, độc lập, đặc biệt để nhanh chóng cắt ngang rào cản phân loại cứng nhắc và tìm kiếm chính xác sau đó đưa ra kết quả hợp lý nhất theo yêu cầu. SVTH: Phan Thanh Bình & Lê Bạch Vũ Trang 17 Luận văn tốt nghiệp GVHD: Th.s Nguyễn Chánh Thành 1. Cơ sở nền tảng của Lucene Lucene là sản phẩm sáng tạo của Doug Cutting và sẵn có trên SourceForge, cho phép mọi người download. Nó gia nhập dòng sản phẩm phần mềm Apache Software Foundation's Jakarta mã nguồn mở bằng Java vào tháng 9 năm 2001.
Từ khi được phổ biến rộng rãi, Lucene ngày càng được nhiều người dùng và các nhà phát triển ủng hộ.