Trong luận văn này chúng tơi sẽ trình bày về các phương pháp phân loại văn bản và hiện thực giải thuật K-Nearest Neightbour K-NN.. Các phần trong luận văn sẽ được trình bày như sau: Chươ
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à lĩnh 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)
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 trình 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)
1.1.1 Độ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
1.1.2 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ọ b 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 chia 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 c 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
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
Ứng dụng mở rộng - Lập chỉ mục và tìm kiếm của 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:
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.apache.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
1.3.2 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ộ Tháng 11 năm 2002, phiên bản Lucene 1.2 được phát hành, rồi đến 1.3 Ngoài những tổ chức được đề cập đến ở trang "Powered by Lucene", còn có các tạp chí như FedEx, Overture, Mayo Clinic, Hewlett Packard, New Scientist magazine, Epiphany, và một số khác
1.3.3 Mục đích, chức năng, công dụng
Doug Cutting, một nhà phát triển đầy kinh nghiệm trong lĩnh vực text-search (tìm kiếm văn bản) và công cụ phục hồi đã sáng tạo ra Lucene Cutting là tác giả chính của cỗ máy tìm kiếm V-Twin và hiện nay là kiến trúc sư thâm niên tại Excite Ông đã thiết kế Lucene nhằm giúp việc tạo index và khả năng tìm kiếm có thể phát triển trên nhiều ứng dụng, bao gồm:
Searchable email : Một ứng dụng email cho phép người dùng tìm kiếm các thông điệp đã được lưu trữ và thêm vào những thông điệp mới để tạo index khi chúng đến
Online documentation search: một documentation reader CD, Web hay được nhúng vào một ứng dụng - cho phép người dùng tìm kiếm các văn bản hướng dẫn trực tuyến
Searchable Webpages: Một trình duyệt Web hay máy chủ proxy có thể xây dựng một công cụ tìm kiếm riêng để tạo index cho mỗi trang Web mà người dùng đã vào, cho phép người dùng dễ dàng vào lại các trang Web đó
Website search: Một chương trình CGI giúp người dùng tìm được Website của bạn
Content search: Một ứng dụng cho phép người dùng tìm kiếm các văn bản đã được lưu lại theo một nội dung cụ thể; nó có thể tích hợp vào trong một hộp thoại mở văn bản ( Open Document dialog)
Version control và content management: một hệ thống quản lí văn bản có thể tạo index cho các văn bản, hay phiên bản của văn bản nhằm dễ dàng trong việc phục hồi
Tất nhiên, nhiều công cụ tìm kiếm có thể thực hiện hầu hết các chức năng trên, nhưng ít có công cụ tìm kiếm mã nguồn mở nào lại dễ dùng và linh hoạt như Lucene
1.3.4 Tạo chỉ mục và tìm kiếm
Trước tiên, bạn cần đổ dữ liệu vào ứng dụng tìm kiếm của mình (indexing) hay lấy dữ liệu ra (searching)
- Tạo chỉ mục (Indexing) bằng các tạo các đối tượng Documents với những Fields của nó (là một cặp tên/giá trị) và đổ nó vào một IndexWriter để phân tích nội dung của các Field values thành các token và tạo ra index
- Tìm kiếm (Searching) dùng một đối tượng IndexSearcher Trước hết, lấy câu truy vấn (kiểu String) từ người dùng, truyền nó cho QueryParser (và nhớ là QueryParser cần phải được khởi tạo trước đó, có cùng loại Analyzer khi bạn xây dựng index; QueryParser sẽ dùng Analyzer để phân tích chuỗi truyền vào) và trả về một đối tượng Query Sau đó, lấy đối tượng Query này dùng cho phương thức IndexSearcher.search() Nó sẽ trả về đối tượng Hits, là một tập hợp các đối tượng Document được tìm thấy Đối tượng Hits cũng chứa cả score cho mỗi Document
Bi ểu diễn văn bản
Hầu hết các văn bản đều chuyển đổi một hay nhiều chuỗi gồm các từ sang một dạng thích hợp để có thể được xử lý bởi giải thuật Các văn bản được coi là một tập hợp của các từ mà không quan tâm đến cấu trúc câu, trật tự từ, thì, từ loại Trong văn bản tiếng Anh, để so sánh sự khác nhau giữa những văn bản thì ta chuyển chúng về dạng những vector trọng số Chúng ta dựa vào những quy tắc sau để lấy thông tin từ các văn bản huấn luyện
Dấu chấm câu phân cách các từ
Loại bỏ các con số và dấu chấm câu
Chuyển tất cả các từ về dạng chữ thường
Loại bỏ những giới từ (Prepositions), liên từ (conjunctions), trợ đồng từ (auxiliary verbs), mạo từ (articles), v.v
Những từ được thay thế về dạng hình thái từ gốc Cụ thể là những từ có cùng từ hình thái thì cũng được đếm cho từ gốc, và chúng được cắt bỏ phụ tố của gốc từ
Ví dụ, những từ như: economics và economy sẽ có cùng cách thể hiện là econom
Những đặc tính bắt nguồn từ những tập văn bản huấn luyện được dùng để tạo một từ điển chứa những từ gốc, những từ nhận dạng, và số lần một từ xuất hiện trong tập huấn luyện
T ừ gốc T ừ nhận dạng S ố lần xuất hiện
Bảng 1 Ví dụ một từđiển
Giai đoạn sau này, từ điển sẽ được sử dụng như một phương tiện để tính toán tương đối quan trọng dùng để đếm số lần xuất hiện của từ trong tất cả các văn bản
Một khi từ điển được tạo ra những vector từ điển riêng lẽ được phát sinh
Mô hình không gian vector biểu diễn những văn bản như những vector trọng số trong không gian n chiều tạo thành mô hình biễu diễn dữ liệu của chúng ta Phương pháp này cần xử lý trước một lượng dữ liệu tương đối nhỏ để làm tiện ích khi chúng ta xử lý một khối lượng dữ liệu khổng lồ
Trong mô hình này một văn bản đ ược biểu diễn bằng một vector các từ với số chiều t là tổng số từ khác nhau của từ điển
Mỗi từ (term) thứ i trong một văn bản d hoặc trong câu truy vấn thứ j có một giá trị trọng số là wij
Biểu diễn một tập hợp gồm ba văn bản D1, D2, Q với số chiều t = 3 nghĩa là trong từ điển có 3 từ là T1, T2, T3
Văn bản D1 chứa 2 từ T1, 3 từ T2 và 5 từ T3 => D1 = 2T1 + 3T2 + 5T3
Văn bản D2 chứa 3 từ T1, 7 từ T2 và 1 từ T3 => D2 = 3T1 + 7T2 + T3 là số thực
Như vậy một văn bản hoặc câu truy vấn được biểu diễn dưới dạng:
Số chiều = t = | tổng số từ vựng | d j = (w 1j , w 2j , …, w tj )
Văn bản Q chứa 0 từ T1, 0 từ T2 và 2 từ T3 => Q = 0T1 + 0T2 + 2T3
Ta có cách viết dưới dạng vector như sau:
Do đó các vector D1, D2, Q sẽ được biểu diễn trên mô hình không gian vector
Hình 2 Mô hình không gian vector 3 chiều
Tập hợp n văn bản và t tổng số từ trong từ điển, ta có thể biểu diễn dưới dạng một ma trận như sau:
Mỗi dòng là một vector biểu diễn cho một văn bản, mỗi phần tử wij trong ma trận tượng trưng cho sự xuất hiện của một từ trong một văn bản nào đó; wij = 0 nghĩa là từ đó không có trong văn bản (do mỗi văn bản chỉ chứa một số từ nào đó)
Nếu một từ xuất hiện trong văn bản càng nhiều, khả năng từ đó liên quan đến chủ đề của văn bản càng lớn
Nếu một từ xuất hiện trong hầu hết các văn bản, mà các văn bản đó đều thuộc các chủ đề khác nhau, thì từ đó không có ý nghĩa đối với bất kỳ một chủ đề nào
Gọi f ij là số lần xuất hiện của từ i trong văn bản j
N là tổng số các văn bản t là tổng số từ khác nhau trong từ điển df i là tổng số văn bản chứa từ i
Có nhiều phương pháp để xác định giá trị của trọng số wij
Sau đây là một vài phương pháp phổ biến
Một văn bản được biểu diễn mởi một tập hợp các từ khóa Các câu truy vấn dựa trên phương pháp Boolean là các biểu thức Boolean gồm các từ khóa được lien kết với nhau bởi các toán tử AND, OR, NOT và các dấu ngoặc để chỉ phạm vi Ví dụ như:
[[Rio & Brazil] | [Hilo & Hawaii]] & hotel & !Hilton]
Dữ liệu kết xuất là các văn bản có liên quan hoặc không liên quan và không có sắp xếp Đây là phương pháp được sử dụng phổ biến vì nó đơn giản, dễ truy vấn, hình thức rõ ràng Giá trị wij chỉ bằng 1 hoặc 0, nghĩa là từ i có hoặc không xuất hiện trong văn bản j
2.1.2 Phương pháp tần suất từ (work frequency)
Phương pháp này cũng tương đối đơn giản để biểu diễn văn bản, vì giá trị của w ij bằng với số lần từ i xuất hiện trong văn bản j
2.1.3 Phương pháp tf-idf (frequency x inverse document frequency)
Hai phương pháp trên đều có chung nhược điểm là chỉ quan tâm đến sự xuất hiện của từ i trong văn bản j, mà không quan tâm đến sự xuất hiện của từ này trong các văn bản còn lại Khắc phục bằng phương pháp này bằng ý tưởng là một từ i mang ý nghĩa càng lớn nếu từ đó xuất hiện trong văn bản càng nhiều đồng thời ít xuất hiện trong các văn bản còn lại, giá trị wij sẽ tỉ lệ thuận với fij
Ta có: và tổng số các văn bản N, đồng thời tỉ lệ nghịch với tổng số văn bản có từ i xuất hiện
Thiết lập công thức tf-idf: và
) max( ij ij ij f tf = f
= i df idf log 2 N ij ij f w =
- tf ij : là số lần xuất hiện của từ i so với từ có số lần xuất hiện nhiều nhất trong văn bản j
- idf i : là nghịch đảo của dfi tần số của văn bản chứa từ i với tồng số văn bản N Suy ra công thức tf x idf được tính như sau:
2.1.4 Phương pháp tfc (Term Frequency Component)
Phương pháp này tương tự phương pháp trên, nhưng nó quan tâm đến độ dài của văn bản, nghĩa là độ dài văn bản càng ngắn thì văn bản càng chứa ít từ i Trong trường hợp các văn bản có cùng số lần xuất hiện của từ i, thì văn bản nào có chiều dài ngắn hơn thì giái trị của trọng số wij sẽ lớn hơn
2.1.5 Phương pháp ltc (Log Term Component)
Hai phương pháp tf x idf và tfc đều có chung nhược điểm là giá trị của trọng số phụ thuộc hoàn toàn vào giá trị của fij Trong khi giá trị của f ij có giá trị biến thiên rất lớn, đồng thời kéo theo sự biến thiên của wij cũng rất lớn vì fij tỉ lệ thuận với wij Để giảm bớt sự biến thiên này người ta thay fij bằng log2(f ij + 1)
= i ij ij ij df idf N tf w 2 ij ij * log
M k i kj i ij ij df f N df f N w
Phương pháp nào dựa trên lý thuyết về entropy Giá trị trọng số wij tỉ lệ thuận với số lần xuất hiện của từ i và entropy của từ này trong tất cả các văn bản
Trong đó là entropy của từ i m i
Rút g ọn danh sách từ
là tổng số lần xuất hiện của từ i trong tất cả các văn bản
Entropy của từ i sẽ bằng -1 nếu từ i xuất hiện trong tất cả các văn bản, đồng thời sẽ bằng 0 nếu từ i chỉ xuất hiện trong một văn bản
Như trong phần biểu diễn văn bản đã trình bày thì ta thấy số chiều của một vector cần phải xử lý bằng với số từ khóa trong danh sách từ Nhưng số từ khóa trong danh sách từ này là rất lớn khoảng hàng chục ngàn thậm chí hàng trăm ngàn từ Trong đó có nhiều từ có ý nghĩa nhiều trong việc phân loại và có cả những từ không có ý nghĩa trong phân loại văn bản ví dụ như những từ kết thúc (stop-word) như ‘and’, ‘belong to’… và rất nhiều từ xuất hiện trong hầu hết các chủ đề cần phân loại Nếu ta để những từ này trong danh sách từ khóa thì chúng sẽ gây mất thời gian và không gian lưu trữ cho việc huấn luyện và phân loại văn bản Do đó ta phải tìm cách loại bỏ những từ này ra khỏi danh sách để làm ảm kích thước của các vector và ma trận biểu diễn văn bản
M k j kj i ij ij df f N df f N w
Có năm phương pháp dùng để loại bỏ các từ thừa thường được dùng là: ngưỡng tần xuất văn bản (Document Frequency thresholding - DF), độ lợi thông tin
(Information Gain.IG), thông tin tương hỗ (Mutual Information.MI), phương pháp thống kê χ2 (CHI), độ mạnh của từ (Term Strength)
2.2.1 Phương pháp ngưỡng tần xuất của văn bản.
Phương pháp này xét đến số lần xuất hiện của các từ khóa trong các văn bản Ý tưởng của phương pháp này là tính tần xuất của từng từ khóa trong tất các văn bản Sau đó loại bỏ những từ có tần xuất thấp hơn một ngưỡng được quy định trước Giả định của phương pháp này là các từ có tần xuất thấp thì mang ít thông tin để phân loại Đây là phương pháp đơn giản nhất để giảm số từ khóa
2.2.2 Phương pháp độ lợi thông tin
P(c là các chủ đề của các văn bản Độ lợi thông tin của một từ IG(w) được tính như sau: j ) là xác suất của một văn bản thuộc chủ đề cj
P(w) là xác suất của một văn bản có từ w xuất hiện
| w) là xác suất của một văn bản thuộc chủ đề cj mà có từ w xuất hiện là xác suất của một văn bản thuộc c hủ đề cj mà không có từ w xuất hiện
Ta sẽ lần lượt được tính giá trị độ lợi thông tin của tất cả các từ khóa Từ nào có giá trị độ lợi thông tin nhỏ hơn một ngưỡng đã định trước sẽ bị loại bỏ khỏi danh sách từ
2.2.3 Phương pháp thông tin tương hỗ
- A là số văn bản thuộc chủ đề c và có chứa từ w
- B là số văn bản không thuộc chủ đề c và có chứa từ w
- C là số văn bản thuộc chủ đề c và không chứa từ w
- N là tổng số văn bản
- I(w, c j ) là thông tin tương hỗ của từ khóa w với chủ đề c j Để đơn giản cho việc tính toán, ta có công thức tính xấp xỉ sau:
Khi đó, lượng thông tin tương hỗ giữa w và c được tính theo công thức sau:
Thông tinh tương hỗ trung bình của từ khóa w đối với tất cả chủ đề là:
Thông tinh tương hỗ tối đa của từ khóa w đối với tất cả chủ đề là:
2.2.4 Phương pháp độ mạnh của từ
Phương pháp này tính độ mạnh của từ w dựa trên sự xuất hiện của nó trong các văn bản liên quan Hai văn bản được gọi là lien quan với nhau khi giá trị cosin của hai vector biểu diễn cho hai văn bản này (được trình bày trong phần sau) nhỏ hơn một giá trị được quy định trước
Gọi x và y là hai văn bản có liên quan với nhau, độ mạnh của từ khóa w là:
Phương pháp này cho rằng các từ càng xuất hiện nhiều trong các văn bản liên quan thì chúng càng có nhiều ý nghĩa thông tin
Phương pháp thống kê đo mức độ phụ thuộc giữa từ khóa w với các chủ để c χ2 j.
- A là số văn bản thuộc chủ đề c và có chứa từ w
- B là số văn bản không thuộc chủ đề c và có chứa từ w
- C là số văn bản thuộc chủ đề c và không chứa từ w
- D là số văn bản không thuộc chủ đề c và không chứa từ w
- N là tổng số văn bản
- Đại lượng thống kê (w,c) đo sự phân bố của từ khóa w trong chủ đề c
Giá trị thống kê χ 2 trung bình trên tất cả chủ đề được tính như sau: và
T ập văn bản dùng để phân loại
Các tập văn bản dùng để phân loại văn bản chia làm ba tập hợp sau: tập huấn luyện (training), tập hiệu chỉnh (validation) và tập kiểm tra (testing)
Tập huấn luyện chứa các văn bản đã được gán vào các chủ đề cho trước, dùng để huấn luyện giải thuật cho “máy học” cách nhận biết chủ đề của các văn bản, máy học bằng cách tập hợp các từ trong tập văn bản này vào cơ sở tri thức Do đó tập dữ liệu cho giai đoạn này cực kỳ quan trọng trong việc phân loại văn bản sau này với cơ sở tri thức đó
Tập hiệu chỉnh được dùng để điều chỉnh lại giải thuật phân loại sau khi máy đã học từ tập huấn luyện Chú ý có một số giải thuật không cần tập hợp này
Tập kiểm tra dùng để đánh giá tính khả thi và độ chính xác của giải thuật phân loại sau khi xây dựng thành công chương trình
Tập Reuter được dùng rất phổ biến trong việc phân loại văn bản bằng ngôn ngữ tiếng Anh Tất cả các văn bản này gồm 21578 văn bản được gọi là Reuters-
21578, do nhóm Reuter xây dựng vào năm 1987, đưa vào sử dụng cho mục đích nghiên cứu vào năm 1990 Các văn bản này được chỉnh sửa bởi D.D Lewis và Peter Schoemaker vào 1996 với định dạng ngôn ngữ đánh dấu tổng quát chuẩn SGML (Standard Generalized Markup Language) nhằm làm giảm bớt sự tối nghĩa của các từ trong văn bản Lewis và Schoemaker tìm thấy v à đã loại bỏ 595 văn bản bị trùng lấp trong tập Reuter, đồng thời thêm các định nghĩa mới Kết quả được biết hiện nay của tập Reuter-21578 được chia làm 22 tập tin - mỗi tập tin chứa 1000 văn bản và loại bỏ gần 578 Các văn bản được định dạng với các nhãn SGML để xác định các loại văn bản khác nhau như: title, text, places, people và topics
Tuyển tập Reuter-21450 (version 2) do Lewis chỉnh sửa
Version Được xây d ựng bởi
S ố lượng văn bản trong t ập training
S ố lượng văn bản trong t ập test
Ph ần trăm s ố văn bản thu ộc chủ đề
Bảng 2 Các version của tuyển tập Reuter a Định dạng Đặc tính trong phiên bản hiện nay của tập Reuters được xem là vô dụng cho mục đính nhập liệu; khi nghĩ đến những tính năng như gôm các tên chủ đề thì nó rất tai hại cho độ chính xác Điều đó cho thấy sự cần thiết phải điều chỉnh lại Reuter-21578 thành phiên bản phù hợp hơn cho việc nhập liệu Chúng ta xóa đi những văn bản không có gán nhãn, các thẻ SGML và chia các tập văn bản một cách thoải mái thành tập huấn luyện và tập kiểm tra
Tập huấn luyện dùng để tạo một từ điển Chi tiết sẽ trình bày trong mục 4.2 chương 2 Ngoài ra chúng ta cũng trích ra được các chủ đề từ các tập văn bản, định nghĩa các văn bản khác nhau và loại của chúng như ví dụ dưới đây, sau đó hoàn tất mục tiêu điều khiển của hệ thống Đánh dấu các văn bản có các nhãn giống như
earnacq để thấy được chủ đề “earn”của tài liệu được đánh dấu
Một ví dụ cho thấy các văn bản được tổ chức theo cấu trúc:
CGISPLIT="TRAINING-SET" OLDID="5555" NEWID="12">
earnacqusa
f0773 reutes u f BC-OHIO-MATTRESS-<OMT>-M
OHIO MATTRESS <OMT> MAY HAVE LOWER 1ST QTR NET
Ohio Mattress Co said its first quarter, ending February
28, profits may be below the 2.4 mln dlrs, or 15 cts a share, earned in the first quarter of fiscal 1986 The company said any decline would be due to expenses [ ] including conducting appraisals, in connection with the acquisitions
Định dạng của văn bản này cho mục đích nhập liệu, chúng ta phải chuyển hình dạng chúng thành cấu trúc có dòng đầu và thân của văn bản Dòng đầu là một phần của thân văn bản, ngoài ra còn có dòng kết thúc của văn bản
Ví dụ về một văn bản rõ ràng
BEGDOCID_1 OHIO MATTRESS <OMT> MAY HAVE LOWER 1ST QTR NET
Ohio Mattress Co said its first quarter, ending February 28, profits may be below the 2.4 mln dlrs, or 15 cts a share, earned in the first quarter of fiscal 1986 The company said any decline would be due to expenses [ ] including conducting appraisals, in connection with the acquisitions
ENDDOC b Phân nhóm các tập hợp
Trước khi chúng ta làm bất cứ thí nghiệm nào cần có những sự chuẩn bị
Ví dụ như: chúng ta phải tách các tập hợp các văn bản thành những văn bản được dùng để huấn luyện và kiểm tra Theo những quy tắc sau đây:
Chúng ta không sử dụng những chủ đề (hoặc những văn bản thuộc nhiều chủ đề) mà hầu như là nó chứa trong một văn bản, nếu văn bản này chỉ thuộc một hoặc một vài chủ đề đã được phân cho nó
Quy tắc 2: Để an toàn cho cả hai tập huấn luyện và tập kiểm tra thì các tập này phải chứa ít nhất một văn bản cho mỗi chủ đề
Quy tắc 3: Để khách quan các văn bản cần phải được chọn một cách ngẫu nhiên giữa tập huấn luyện và tập kiểm tra với sự ưu tiên chia các tập hợp theo tỉ lệ 80% và 20% tương ứng
Bảng 3 Thống kê một số chủđề trong tập Reuters
Tập 20-newsgroup cũng là một tập dữ liệu được dùng phổ biến trong lĩnh vực phân loại văn bản Mặc dù tập này ít phổ biến hơn tập Reuters nhưng nó vẫn được dùng trong nghiên cứu Tập 20-newsgroup không hỗ trợ đa chủ đề, tuy nhiên tập dữ liệu này lại hỗ trợ phân loại đa cấp
Ví dụ: các chủ đề sci.crypt, sci.space đều là các chủ đề con của chủ đề sci (science)
Bảng 4 Thống kê một số chủđề trong tập 20-newsgroup
Đánh giá độ chính của việc phân loại văn bản
Độ chính xác của các giải thuật phân loại được đánh giá bởi các giá trị của các thông số: precision, recall, accuracy, error, macro-averaging, micro-averaging Trong cùng một chủ đề, kết quả phân loại có thể xảy ra bốn trường hợp sau Đúng Sai Được gán tp (true positive) fp (false positive)
Không được gán fn (false negative) tn (true negative)
Bảng 5 Các trường hợp phân loại
Precision là tỷ lệ số văn bản được phân loại đúng so với toàn bộ văn bản được gán cho một chủ đề Điều này có nghĩa là trong một chủ đề nào đó, sau khi phân loại thì tồn tại những văn bản thực sự thuộc chủ đề này và những văn bản không thuộc chủ đề này(do phân loại sai) Do đó giá trị này càng lớn thì càng thể hiện giải thuật phân lại càng đúng đắn.Giá trị này được tính như sau:
Recall là tỷ lệ văn bản được gán đúng vào chủ đề trên tổng số văn bản thực sự thuộc chủ đề đó Điều này có nghĩa là trong quá trình phân loại, ngoài những văn bản thuộc chủ đề nào đó được phân loại đúng thì có một số văn bản cũng thuộc chủ đề đó nhưng lại được phân vào một chủ đề khác (phân loại sai).Giá trị này đạt lớn nhất khi tất cả các văn bản thuộc chủ đề đều được gán vào chủ đề đó Tuy nhiên không phải tất cả các văn bản được gán vào một chủ đề đều thực sự thuộc về chủ đề đó Giá trị Recall được tính như sau:
Hai giá trị Precision và R ecall là hai giá trị có tính trái ngược nhau Nếu chỉ dựa vào một trong hai giá trị này để đánh giá hiệu quả thì không chính xác lắm
Do đó người ta tìm một giá trị chung để đánh giá Giá trị đó là thông số f do Van Rijbergen đề xuất precision recall fscore
Accuracy là tỷ lệ các văn bản được gán và loại khỏi chủ đề một cách chính xác
Error là tỷ lệ số văn bản được gán sai hoặc loại bỏ sai khỏi chủ đề
Trong đó tp + tn + fp + fn = tổng số văn bản được phân loại
Như vậy accuracy + error = 100% fn fp tn tp tn accuracy tp
= + fn fp tn tp fn error fp
Gi ải thuật Rocchio
3.1.1 Giới thiệu Để giảm bớt những yêu cầu về chi phí xử lý bằng một phương pháp phân loại trọng tâm gọi là phân loại Rocchio - giải thuật lấy thông tin nổi tiếng được phát triển bởi Rocchio vào năm 1970 Cách tiếp cận này là một văn bản trọng tâm cho mỗi chủ đề, và phân nhóm các chủ đề, thông qua việc sử dụng những điểm tương đồng bằng cách so sánh mỗi tính năng của văn bản trọng tâm của chủ đề đó với những văn bản thử Chi phí cho việc xử lý không giảm, nhưng khả năng thấp hơn giải thuật KNN Những văn bản đã phân loại có số càng cao thì chi phí càng lớn Tr ừ phi có những dự định cho việc dùng mỗi chủ đề trọng tâm, nhưng cách hiện thực còn khá nghèo nàng
Thay vào đó là sự giống nhau của một văn bản mà không thể phân loại cho tất cả các văn bản trong một chủ đề Một thay thế tự nhiên bằng cách nào đó để lấy một văn bản riêng đại diện cho các chủ đề gọi là mẫu và để so sánh với văn bản cần phân loại với mỗi chủ đề mẫu khác nhau Ít nhất bằng trực quan, cái này chắc phải lưu việc tính toán dùng để so sánh với cách tiếp cận KNN ở mục trước
Bây giờ chúng ta sẽ nói đến một mẫu tốt nhất được biết làm cơ sở cho việc tiếp cận đến giải thuật phân loại văn bản, đó là giải thuật Recchio Trước đây giải thuật Recchio được thiết kế thích hợp cho việc lấy thông tin phản hồi
Phản hồi những văn bản có ích cho người dùng - những câu hỏi luôn có vấn đề thử thách bên trong lĩnh vực lấy thông tin Để tối ưu hóa cho việc lấy chính xác những văn bản để có thể phân loại tốt Giải thuật Recchio thích hợp cho việc lấy thông tin trong lĩnh vực phân loại văn bản Ý tưởng cơ bản đằng sau việc áp dụng cách tiếp cận giải thuật Recchio để phân loại văn bản là phải xây dựng một vector mẫu cho mỗi chủ đề Một chủ đề đã
HUTECH có vector mẫu là vector đại diện cho các văn bản được gán cho một chủ đề này
Có một số cách tiếp cận khác liên quan đến việc tối ưu một vector mẫu và mẫu Rocchio được gợi ý như một trong số chúng
Mỗi trọng số trong vector mẫu được tính toán trước và trừ cho trung bình số lần xuất hiện của cùng trọng số cho tất cả các văn bản không xuất hiện trong một chủ đề Kết quả là một phương pháp hiệu quả mà dể dàng thực hiện Giải thuật Rocchio mẫu, trong khi phương pháp mô hình không gian vector và giải thuật phản hồi thích hợp cho văn bản gốc và lọc thông tin lấy được, gồm có những thành phần được phát hiện nhằm đề nghị cho những cách thực hiện khác nhau một cách đa dạng nếu có thể
Mẫu cho mỗi chủ đề được tính như trọng số khác nhau giữa tổng của tất cả các văn bản huấn luyện thuộc và không thuộc chủ đề đó
Giải thuật Rocchio được xây dựng cho mỗi chủ đề trong tập huấn luyện một vector mẫu Vector mẫu này sẽ đại diện cho tất cả các văn bản trong chủ đề đó Văn bản cần phân loại sẽ được so sánh với vector mẫu này Nếu độ giống nhau hơn một ngưỡng định trước thì văn bản thuộc về chủ đề đó
Vector mẫu Rocchio đạ i diện là vector c k bằng cách kết hợp với mỗi vector văn bản d j trong một chủ đề c k , mà C k
C k là tập văn bản trong k chủ đề và sau đó tính điểm cho trọng số của số lần xuất hiện và chia cho tổng số các văn bản trong chủ đề Rồi trừ trung bình điểm của mỗi trọng số trong những vector văn bản không phải trong chủ đề C k này
Vector mẫu c k của chủ đề k được xây dựng như sau:
C k là tập văn bản thuộc chủ đề k trong tập huấn luyện
là tập các văn bản không thuộc chủ đề k trong tập huấn luyện
.α , β lần lượt là trọng số của những văn bản thuộc và không thuộc chủ đề k
Khi mẫu cho mỗi chủ đề đã được tính toán, văn bản cần phân loại phải được so sánh với mẫu của mỗi chủ đề và đánh dấu cho chủ đề mà có điểm giống nhau nhất Để tránh việc ưu tiên cho mẫu lớn hơn, chúng ta sẽ thực hiện cái gọi là sự giống nhau cosin giữa những văn bản, như hình sau:
Hình 3 Ảnh minh họa cho giải thuật phân loại văn bản Rocchio
Tương tự cosin chúng ta dùng sim giữa hai vector d ij và c ik Vì th ế sim( d ij , c ik ) nơi mà mỗi trọng số của xuất hiện trong vector đ ược so sánh, thay bằng dấu • , ta có công thức:
Trong đó d ij là vector của văn bản cần phân loại c ik là vector mẫu
Bình thường hóa chiều dài vector, ta dùng cosine tương tự cos giữa 2 vector d ij và c ik theo công thức sau: Điểm giống nhau này được gọi là điểm giống nhau cosine, nó giảm bớt những quan hệ ảnh hưởng đến điểm giống nhau của mẫu lớn hơn
Nhìn chung, kết hợp giữa hai bước được giải thích (phát sinh sự giống nhau những mẫu và những tính toán trên mẫu) làm cho cách tiếp cận Rocchio là một giải thuật khả thi và rất linh hoạt Bất cứ nơi nào một văn bản được phân loại, một sự tính toán cho mỗi văn bản thì không cần thiết, nhưng chỉ so sánh những vector mẫu của những chủ đề có sẵn Sau đó gán văn bản mới cho một chủ đề đặc biệt, mẫu cho chủ đề này được tính lại Một trong những lợi thế với cách tiếp cận Rocchio thì ít cần thiết cho việc xử lý dữ liệu Nó cũng rất lôi cuốn việc tính để so sánh với nhiều cách tiếp cận khác
.Giải thuật đơn giản dể thực hiện ik n i ij c d c d c d sim = • = ∑ ×
= • n i ik n i ij n i ik ij ik ij ik ij ik ij c d c d c d c c d d
.Thời gian phân loại nhanh do chỉ cần so sánh chỉ cần so sánh văn bản đầu với các vector mẫu đại diện cho mỗi chủ đề
.Độ chính xác thấp do chỉ dùng một vector mẫu làm đại diện cho cả một chủ đề (gồm vài ngàn vector văn bản).
Gi ải thuật K-Nearest Neighbour
K-Nearest Neighbour là một giải thuật nổi tiếng trong lĩnh vực phân loại văn bản Nó đã và đang được dùng từ rất sớm trước khi đem ra nghiên cứu và là một trong những giải thuật có thể hiện thực tốt nhất trong lĩnh vực này
Giải thuật học Nearest Neighbour chỉ đơn giản là lưu lại một tập hợp D các ví dụ huấn luyện Còn trong giai đoạn phân loại một văn bản x thì:
Tính toán mức độ giống nhau giữa văn bản x với tất cả văn bản trong tập D Gán x thuộc chủ đề của văn bản trong tập D gần giống với x nhất
Giải thuật này còn được gọi là:
Nếu chỉ dùng 1 văn bản mẫu gần với x nhất để quyết định chủ đề của x thì sẽ có thể dẫn đến lỗi vì văn bản gần x nhất có thể là văn bản không điển hình
Do đó, sự lựa chọn tốt hơn là tìm ra k văn bản mẫu gần với văn bản cần phân loại nhất và tìm ra chủ đề nào xuất hiện nhiều nhất trong k văn bản này
Giá trị của k thường là số lẻ để tránh trường hợp 2 chủ đề hòa nhau về số lượng, 3 hoặc 5 là thông dụng nhất
Có nhiều phương pháp để tính mức độ giống nhau của 2 vector như Euclidian distance, Hamming distance, nhưng trong phân loại văn bản thì phương pháp tính Cosin của vector trọng số TF -IDF là hiệu quả nhất Sau đây là các bước xây dựng thuật toán
Ta chuyển các văn bản huấn luyện thành các vector, với các lưu ý sau:
Các từ có tần số xuất hiện càng lớn trong văn bản thì càng quan trọng Nó chỉ ra chủ đề của văn bản đó, với fij là số lượng từ i trong văn bản j
Tần số của mỗi từ được tính như sau: tf ij : (Term frequency) tỷ lệ của fij so với fijmax trong văn bản
Các từ xuất hiện trong càng nhiều văn bản khác nhau thì nó càng ít có ý nghĩa trong việc chỉ ra chủ đề của văn bản đó
.df i (document frequency của từ i): Số lượng văn bản chứa term i
.idf i : nghịch đảo số văn bản chứa term i
( với N là tổng số văn bản ) w ij : trọng số của term i trong văn bản j
- Một từ xuất hiện nhiều trong văn bản này nhưng xuất hiện ít trong các văn bản khác thì nó sẽ có trọng số lớn
- Người ta đã tìm ra nhiều cách đánh giá trọng số của các từ Thực tế kinh nghiệm cho thấy phương pháp tf-idf làm việc khá tốt đối với văn bản
Cho một văn bản chứa tần số của các term như sau:
Giả sử ta có tổng cộng 10,000 văn bản.( N = 10,000 ) và số văn bản chứa mỗi term như sau: tf ij = f ij /Max{ f ij } w ij = tf ij * idf i = tf ij * log 2 (N/df i ) idf i = log 2 (N/df i )
Tính trọng số cho mỗi term:
A: tf = 3/3; idf = log(10000/50) = 5.3; tf-idf = 5.3
B: tf = 2/3; idf = log(10000/1300) = 2.0; tf-idf = 1.3
C: tf = 1/3; idf = log(10000/250) = 3.7; tf-idf = 1.2
Giả sử ta cần phân loại văn bản q thì ta thực hiện các bước sau:
- Chuyển q sang vector theo phương pháp TF-IDF như trên
- So sánh độ t ương tự của q với tất cả vector trong tập huấn luyện theo công thức tính độ tương tự cho 2 vector d j
Và một vector cần phân loại: Q = (0, 0, 2)
Ta tính góc của vector D1, D2 so với Q như sau: và q :
Hình 4 Mình họa xác định vector Q giống D1 hay D2 theo giải thuật
Như vậy: D1 gần giống với Q hơn là D2
- Cuối cùng là chọn chủ đề gần với q nhất
- Thời gian huấn luyện là: O(|D| Ld) để chuyển các văn bản mẫu sang vector TF-IDF
|D| là tổng số văn bản mẫu, Ld là độ dài trung bình của các văn bản mẫu
- Thời gian phân loại 1 văn bản là: O(Lt + |D||Vt|) để so sánh với tất cả vector mẫu
Trong đó Lt là độ dài của vector cần phân loại Vt là số chiều của vector
- Nếu số lượng văn bản huấn luyện nhiều thì thời gian phân loại càng lâu nhưng độ chính xác càng cao θ2 t 3 t 1 t 2
Gi ải thuật Nạve Bayes
- Đây là phương pháp học và phân loại văn bản dựa trên lý thuyết sác xuất Lý thuyết Bayes đóng vai trò quyết định trong giải thuật
- Cho tập hợp các chủ đề ần phân loại là {c1, c 2 , … c n }
- Đặt E là một văn bản cần phân loại
- Để xác định chủ đề của E ta cần so sánh E với từng chủ đề ci
P(c dựa vào công thức Bayes j
) được tính từ tần số của các chủ đề
| docs j là số văn bản thuôc chủ đề cj
là tổng số văn bản dùng để huấn luyện
- P(E|c i ) bằng tích của sác xuất các từ của văn bản E trong chủ đề ci và
e 1 , e 2 , … e j … e m là các từ trong văn bản E
n là tổng số từ e trong văn bản E là tổng số từ trong toàn bộ văn bản thuộc chủ đề c i ij i j n c n e
Tuy nhiên ước lượng như trên có thể gây ra lỗi khi số lượng văn bản huấn luyện ít Bởi vì nếu như có một từ ek nào đó rất hiếm trong tập huấn luyện thì
∀ci : P(ek | ci) = 0 Do đó nếu ek xuất hiện trong văn bản cần phân loại E thì kết quả sẽ là :
Với: k = tổng số từ có trong từ điển
Mã giả của giải thuật Nạve Bayes được viết như sau:
Do đó người ta điều chỉnh lại công thức (CT-*) bằng cách thêm vào một hệ số ước lượng Laplace như sau:
Từ tập huấn luyện, trích ra danh sách từ V
Tính giá trị P(cj) và P(x k | c j ) cho các từ
docs j ← tất cả các văn bản có chủ đề là c
Text j ← một văn bản chứa tất cả văn bản docsj
- for each word x k in V do
nk ← số lần xuất hiện của xk trong Text
- Cho văn bản cần phân loại là X
- N ← tất cả các từ xuất hiện trong X
3.3.4 Đánh giá giải thuật là chủ đề của X
- Thời gian huấn luyện là: O(|D|L d + |C||V|)
- Thời gian phân loại: O(|C| Lt)
L d là độ dài trung bình của một văn bản trong tập huấn luyện D
|D| là số văn bản trong tập huấn luyện
|V| số lượng từ trong danh sách từ
Gi ải thuật cây quyết định
là độ dài của văn bản cần phân loại
- Đây là giải thuật đơn giản, dễ hiện thực Độ chính xác chấp nhận được
Nhưng nhược điểm của giải thuật là giả thiết các mẫu vector thống kê độc lập với nhau nên kết quả phân loại có thể không chính xác
Cây quyết định là cây m phân Mỗi nút trên cây là một từ khóa trong hệ thống và một giá trị ngưỡng Trong quá trình tìm văn bản, nếu từ khóa xuất hiện trong văn bản thấp hơn giá trị ngưỡng tại vị trí có từ khóa này thì văn bản sẽ được tìm kiếm trên nhánh bên trái, ngược lại nó sẽ được tìm trên nhánh bên phải
Việc tìm kiếm này sẽ kết thúc ở nút lá Nút lá sẽ cho biết chủ đề văn bản
HUTECH Hình 5 Cây quyết định cho chủđề “earning”
Giải thuật cây quyết định được trình bày như sau:
- Xây dựng cây quyết định bằng văn bản huấn luyện
- Xác định điều kiện phân nhánh
- Để tìm ra từ khóa và giá trị ngưỡng tại mỗi nút
- Sử dụng phương pháp độ lợi thông tin (maximum information gain)
- Để quyết định khi nào dừng thuật toán
Ví dụ như tất cả các phần tử có cùng chủ đề
- Cắt nhánh cây quyết định để giảm kích thước của cây
- Để tránh cho tập huấn luyện quá lớn
- Để tối ưu hóa hiệu quả của giải thuật
3.4.2 Entropy và độ lợi thông tin.
* Entropy được dùng để đo độ đồng nhất của một tập hợp cho trước Entropy được tính như sau:
S là một tập văn bản gồm có C chủ đề
P i là tỷ lệ văn bản trong tập S thuộc chủ đề Ci
* Độ lợi thông tin được tính thông qua hiệu số giữa Entropy của tập S trước và sau khi phân chia thành các tập con Sv Độ lợi thông tin được tính như sau: Trong đó:
A là thuộc tính phân chia
|S| là số văn bản trong tập S
|Sv| là số văn bản trong tập con Sv
Giá trị Entropy nằm trong khoảng [0, 1] Entropy(S) bằng 0 khi tất cả văn bản cùng thuộc một chủ đề, bằng 1 khi các văn bản phân bố đều cho các chủ đề trong tập S
3.4.3 Cắt nhánh cây quyết định.
Tại mỗi bước, bỏ đi những node ít hữu dụng nhất
Tìm kiếm cây tốt nhất bằng cách dùng tập đánh giá (validation set)
Tìm cây tốt nhất bằng cách đánh giá chéo (cross-validation)
I Tìm kích thước tối ưu cho cây
1 Chia tập huấn luyện thành N phần
2 Tăng kích thước cây sử dụng N-1 phần, và cắt bỏ các phần dư ra
4 Xác định kích thước của cây sau khi cắt nhánh
II Việc huấn luyện sử dụng toàn bộ tập huấn luyện, và được cắt nhánh cho kích thước tối ưu.
Hình 6 Biểu đồ thể hiện hiệu quả của việc cắt nhánh
Cây quyết định có ưu điểm là đễ diễn đạt bằng hình ả nh trực quan, phương pháp luận đễ hiểu, rõ ràng
Giải thuật có khuynh hướng chia tập huấn luyện ra càng lúc càng nhỏ hơn, gây ra các vấn đề sau: không hiệu quả khi tổng quát hóa, cần một lượng dữ liệu huấn luyện lớn Cây không ổn định và khác biệt rất nhiều khi thay đổi một ít dữ liệu huấn luyện.
Gi ải thuật mạng Neuron (Neural Network)
Giải thuật mạng Nueron là giải thuật phân loại dựa trên sự mô phỏng khả năng suy luận của con người Bộ não con người gồm khoảng 10 11 neuron được kết
HUTECH nối với nhau Việc suy luận diễn ra trên các neuron và sự chuyển kết nối giữa các neuron này
Thành phần cơ bản của mạng neuron là các perceptron Mỗi perceptron gồm: n + 1 ngõ nhập
Các ngõ nhập x1, x 2 , …, x n tương ứng với n dữ liệu nhập của hệ thống x 0 là ngõ nhập mặc định
Hình 7 Mô hình một Perceptron
Mỗi ngõ nhập của perceptron kết hợp với một trọng số w1, w 2 , …, w n và w 0 = 1 Việc huấn luyện perceptron chính là cập nhật các giá trị cho các thông số này Giải thuật huấn luyện cho perceptron như sau:
Cho | D | là số mẫu repeat for all samples if (mẫu x(x1, x 2 , …, x n ) phân loại sai) then w i = w i + η(t-o)xi end if end for until không còn lỗi xảy ra trong vòng lặp for
t: giá trị thực của mẫu hiện tại
o: giá trị xuất của mẫu thông qua perceptron
η: tốc độ học của hệ thống
Nhận xét (t – o) chính là sai số giữa các giá trị thực của mẫu và giá trị sinh ra bởi perceptron Mục tiêu là cố gắng thu giảm giá trị sai biệt này, nếu bằng số học η lớn giải thuật sẽ hội tụ nhanh hơn, tuy nhiên kết quả sẽ giảm độ chính xác do có thể bỏ sót một số điểm tối ưu
Một nhận xét khác về perceptron là giải thuật này chỉ sử dụng được trong trường hợp các mẫu khả phân loại tuyến tính Trong trường hợp này, giải thuật sẽ hội tụ ở điểm tối ưu sao cho có thể phân loại đúng các mẫu nhập Tuy nhiên đây chỉ là điểm tối ưu cục bộ, giải thuật sẽ không đảm bảo sẽ đạt được tối ưu toàn cục Để xây dựng hệ thống sao cho có khả năng phân loại tập mẫu không tuyến tính, ta phải sử dụng mô hình mạng neuron Mạng neuron bao gồm nhiều perceptron tượng trưng cho các neuron và các kết nối giữa các neuron này Các neuron được chia thành nhiều lớp bao gồm một lớp chỉ nhập, một lớp xuất và một hoặc nhiều lớp ẩn
Hình 8 Mô hình mạng neuron
Việc huấn luyện cho một mạng neuron cũng bao gồm công việc cập nhật các trọng số cho các perceptron Tuy nhiên giải thuật phức tạp hơn nhiều do ta chỉ biết dữ liệu nhập, dữ liệu xuất cho từng mẫu và phải cập nhật các trọng số cho tất cả các perceptron ở các lớp Việc cập nhật này được thực hiện theo hai chiều là lan truyền thuận và lan truyền ngược
Hình 9 Mô hình lan truyền dữ liệu
Lan truyền theo chiều thuận: dữ liệu xuất của tầng i sẽ được sử dụng như dữ liệu nhập của tầng i + 1 Quá trình lan truyền từ tầng nhập để tính giá trị xuất cho tầng xuất
Lan truyền theo chiều ngược: độ chênh lệch giữa giá trị thực và giá trị xuất bởi mạng ở tầng i sẽ được dùng để điều chình trọng số cho tầng i - 1
Công thức điều chỉnh trọng số như sau:
- Phương pháp mạng neuron có ưu điểm là độ chính xác cao, có khả năng hoạt động trên dữ liệu kích thước lớn và có khả năng xử lý lỗi tốt δk = o k (1 - o k ) (t k - o k ) δh = o h (1 - o h )∑ k k
- Nhược điểm giải thuật hiện thực phức tạp, tốc độ học rất chậm, kết quả của quá trình học không có ý nghĩa trực quan đối với con người.
Gi ải thuật Support Vector Machine
3.6.1 Các mặt phân cách (Hyperplanes) a Trường hợp cần phân loại các văn bản vào hai chủ đề
- Như đã đề cập trong phần các phương pháp biểu diễn văn bản thì các văn bản sau khi được chuyển thành các vector thì ta có thể biểu diễn chúng trong không gian vector Để phân loại hai chủ đề này ta cần một đường phân cách chúng
- Giả sử ta xét các mặt phân cách tuyến tính thì trong không gian hai chiều thì đường phân cách chính là đường thẳng Còn trong không gian nhiều chiều hơn thì đó là các mặt phẳng
- Ta có thể biểu diễn các đường phân cách này bằng các phương trình tuyến tính như: ax + by = c.Ví dụ:
- Nhưng kết quả là có rất nhiều đường thẳng thỏa mãn điều kiện này
Ta cần tìm đường thẳng phân cách hai tập hợp này ax + by ≥ c cho các điểm màu đen ax + by ≤ c cho các điểm màu trắng
Hình 11 Các trường hợp của đường phân cách
- Do đó vấn đề đặt ra là phải tìm ra một đường thẳng tối ưu Điều đó đồng nghĩa với việc tìm ra a, b, c tối ưu b Trường hợp có nhiều hơn hai chủ đề
- Giả sử ta có n chủ đề cần phân loại thì ta sẽ chia ra n cặp chủ đề để xử lý Mỗi cặp chủ đề gồm chủ đề ni và chủ đề không phải ni Ta có hình ảnh minh họa sau:
Hình 12 Biểu diễn nhiều chủđềkhác nhau trong phương pháp SVM
3.6.2 Giải thuật Support Vector Machine
- Như đã trình bày ở phần trên thì có rất nhiều giải pháp chọn đường phân cách cho hai tập hợp Phương pháp Support Vector Machine tìm giải pháp tối ưu cho đường phân cách này theo hướng sao cho các khoảng cách giữa các Vector gần đường phân cách nhất và đường phân cách là lớn nhất Khoảng cách này được gọi là biên tối đại (Maximize margin)
- Hàm quyết định được xác định bởi tập hợp con của tập huấn luyện, tập con này được gọi là các vector hỗ trợ (Support Vectors) Ý tưởng này được minh họa ở hình sau Do đó vấn đề còn lại là giải quyết phương trình bậc hai
Hình 13 Mô tảphương pháp SVM
Gọi: w là tiêu chuẩn của đường phân cách
x i là vector biểu diễn văn bản thứ i
y i là chủ đề của xi (y i i i i i y x w = ∑ α bằng +1 hoặc -1 )
Ta có các ràng buộc cho sự tối ưu như sau: xi – w + b >= 1 khi yi = +1 xi – w + b