Kỹ Thuật Gom Nhóm Văn Bản Demo thuật toán K-means

22 1.2K 5
Kỹ Thuật Gom Nhóm Văn Bản Demo thuật toán K-means

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đại Học Quốc Gia Tp. Hồ Chí Minh Trường Đại Học Công Nghệ Thông Tin  Kỹ Thuật Gom Nhóm Văn Bản Demo thuật toán K-means Đồ án môn học: Khai phá dữ liệu GVHD : GS.TS Đỗ Phúc Học Viên : Trịnh Hoàng Việt Quốc - CH1101127 Lớp: Cao Học K6 Tp. HCM, Tháng 11 năm 2012 MỤC LỤC LỜI GIỚI THIỆU Ngày nay, cùng với sự phát triển của công nghệ thông tin và internet, việc lưu trữ và xử lý thông tin trở nên cần thiết hơn bao giờ hết. Nhưng phần lớn thông tin mà chúng ta lưu trữ và trao đổi hằng ngày lại được lưu trữ dưới các dạng dữ liệu bán cấu trúc (semi-structured data) hoặc phi cấu trúc (non-structured data), ví dụ như trong các nhà xuất bản, hệ thống các trang web trên một website, tập các công văn, giấy tờ, báo cáo, thư tín điện tử trong một công ty. Thậm chí ta có thể nhận thấy rằng trong một hệ quản trị cơ sở dữ liệu (nơi mà dữ liệu được lưu trữ có cấu trúc) thì dữ liệu kiểu text vẫn chiếm một tỷ lệ cao. Do đó một vấn đề đặt ra là làm thế nào để có thể tìm kiếm và khai thác tri thức từ nguồn dữ liệu như vậy. Khai phá dữ liệu trở nên vần đế cấp bách, và bài toán phân nhóm dữ liệu văn bản là một trong những hướng giải quyết cho nhu cầu phân loại và xử lý thông tin. Trong đồ án nhỏ này em xin giới thiệu một số kỹ thuật gom nhóm văn bản (document clustering) và giới thiệu, áp dụng thuật toán K-means trong gom nhóm văn bản. 2 I. Tổng quan về gom nhóm văn bản: 1. Giới thiệu Gom nhóm văn bản (document clustering) là một lĩnh vực của gom nhóm dữ liệu (data clustering). Quá trình gom nhóm hướng tới phát hiện ra các nhóm tự nhiên, và từ đó giới thiệu một cái nhìn tổng quan của các phân lớp (chủ đề) trong một tập hợp tài liệu văn bản. Trong lĩnh vực trí tuệ nhân tạo, đây được xem là một phương pháp máy học không giám sát. Gom nhóm không nên bị nhầm lẫn với quá trình phân lớp (Classification). Trong một vấn đề phân lớp văn bản, số lượng phân lớp (và các tính chất của nó) được biết trước, và các tài liệu văn bản được phân phối vào các lớp này. Ngược lại, trong gom nhóm, bất kỳ cả số lượng, thuộc tính, hoặc tính chất thành viên của các phân lớp đếu không được biết trước. Sự phân biệt này được minh họa ở hình 1. Phân lớp nên được xem là một ví dụ của phương pháp máy học có giám sát. 3 Hình 1. Phân lớp và gom nhóm Một phương pháp gom nhóm tốt có thể được xem như là một cách tổ chức một tập tài liệu vào các nhóm, mà trong đó các tài liệu văn bản trong cùng một nhóm đều có sự tương tự nhau và có một sự khác biệt so với những tài liệu ở nhóm khác. Quá trình gom nhóm có khả năng sẽ sinh ra cả các phân nhóm tách biệt hoặc các phân nhóm giao (chồng) lên nhau. Trong các phân nhóm giao nhau, có khả năng một tài liệu sẽ xuất hiện trong nhiều nhóm. 4 2. Thuật toán K- means và các mở rộng: Trong lĩnh vực khai phá dữ liệu, thuật toán gom nhóm k-means là một phương pháp của phân tích nhóm. Mục tiêu của thuật toán là chia n đối tượng mục tiêu (được biểu diễn thành các điểmtrong không gian đa chiều) thành k nhóm, trong đó mỗi đối tượng mục tiêu thuộc về nhóm cótrung điểm gần nó nhất.K- means là thuật toán tiêu biểu cho loại thuật toán gom nhóm tách biệt (discriminative algorithms). Phiên bản thông dụng nhất của k-means sử dụng một kỹ thuật tinh chỉnh tuần hoàn. Vì sự tính phổ biến rộng của nó mà thuật ngữ k-means thường được liên tưởng đến phiên bản này, nhưng chính xác hơn thì đây là thuật toán Lloyd (mang tên của người phát minh), cái tên được giới khoa học máy tính nhắc đến thường xuyên hơn.Chi tiết thuật toán này như sau: Cho một tập k trung điểm m 1 (1) ,…,m k (1) , thuật toán thực thi bằng cách lặp tuần hoàn hai bước sau: - Bước gán nhóm: gán mỗi đối tượng mục tiêu vào nhóm có trung điểm gần nó nhất. Trong đó mỗi x p được phân chính xác vào một nhóm S i (t) , ngay cả khi nó có thể phân vào được hai nhóm khác nhau. - Bước tinh chỉnh: mỗi nhóm tính toán các trung điểm mới bằng trọng tâm được tính từ các đối tượng mục tiêu được phân vào trong nhóm đó. Thuật toán được cho rằng đã hội tụ và dừng lại một khi các sự phân bổ không còn thay đổi nữa. 5 - Thuật toán k-means cầu (spherical k-means): đây là thuật toán tương tự với thuật toán k-means truyền thống. Khi sử dụng thuật toán này, dữ liệu văn bản được chuyển thành các vectơ đa chiều và được tối giản hóa.Thêm nữa, nó sử dụng hàm cosin thay vì khoảng cách Euclid để tìm tính tương đồng cho các đổi tượng cần phân nhóm. Mặc dù nó phổ biến, một phần do tính dễ cài đặt, nhưng k-means cầu có nhiều điểm hạn chế như: nó phụ thuộc phần lớn vào sự khởi tạo ngẫu nhiên các nhóm một cách chung chung, điều đó có thể dẫn đến thuật toán hội tụ về các điểm tối ưu địa phương; các phân nhóm sẽ có thể chứa nhiều thành phần ngoại lại và nhiễu; và độ phức tạp của nó là O(nkl), trong đó n là số lượng tài liệu văn bản trong tập dữ liệu, k là số nhóm mong muốn, và l là số vòng lặp. Thuật toán nàythông thường phù hợp áp dụng cho các tập dữ liệu văn bản lớn và ít thay đổi. - Thuật toán k-means cầu trực tuyến (online spherical k-means): đây là thuật toán mở rộng của k-means cầu. Nó sử dụng kỹ thuật họccạnh tranh để làm tăng tốc quá trình gom nhóm trong khi vẫn đạt được độ chính xác tương tự hoặc tốt hơn. Với khuôn mẫu học cạnh tranh trực tuyến, các văn bản được truyền đến liên tục. Hoàn toàn trái ngược với một thuật toán chạy hoàn toàn trên một tập dữ liệu một lần như thuật toán k-means cầu. Khi các văn bản được đưa vào quá trình phân nhóm, các nhóm sẽ cạnh tranh để giành lấy dữ liệu đầu vào để được phân bổ cho nhóm của mình. Và nhóm chiến thắng sẽ tự điều chỉnh mình dựa vào một tỉ lệ học nhất định để có thể phản ứng mạnh hơn cho các dữ liệu đầu vào tiếp theo. Thuật toán này thường được áp dụng để phân nhóm bản sau khi được trả về từ một trình tìm kiếm, hoặc truy xuất thông tin (ví dụ Google). - Thuật toán k-means nhân hay kernel kmeans: hình 2 minh họa một tập dữ liệu mà k-means không thể gom nhóm chính xác bởi vì các điểm không tách biệt một cách tuyến tính. Ý tưởng đằng sau kernel kmeans là tìm một ánh xạ cho các điểm này đến một không gian nhiều chiều hơn, nơi mà các dữ liệu văn bản có sự khác biệt một cách tuyến tính. 6 Hình 2: (a) cho thấy một hình dạng phân bố dữ liệu không lồi mà thuật toán k-means gặp vấn đề khi gom nhóm. Trong (b) là thuật toán kernel kmeans đã thành công phân biệt rõ hai nhóm như là kết quả của việc chiếu các vectơ văn bản lên một không gian có nhiều chiều hơn. 7 II. Demo thực hiện gom nhóm văn bản bằng thuật toán k-means 1. Thuật toán K-means a) Phát biểu bài toán phân lớp với K-means: Input Tập các đối tượng X = {x i | i = 1, 2, …, N}, Số cụm: K Output Các cụm C i ( i = 1 ÷ K) tách rời và hàm tiêu chuẩn E đạt giá trị tối thiểu. Thuật toán hoạt động trên 1 tập vectơ d chiều, tập dữ liệu X gồm N phần tử: X = {x i | i = 1, 2, …, N} K-Mean lặp lại nhiều lần quá trình: - Gán dữ liệu. - Cập nhật lại vị trí trọng tâm. - Quá trình lặp dừng lại khi trọng tâm hội tụ và mỗi đối tượng là 1 bộ phận của 1 cụm. - Hàm đo độ tương tự sử dụng khoảng cách Euclidean, trong đó c j là trọng tâm của cụm C j . Hàm trên không âm, giảm khi có 1 sự thay đổi trong 1 trong 2 bước: gán dữ liệu và định lại vị trí tâm. Thuật toán: - Bước 1 - Khởi tạo Chọn K trọng tâm {c i } (i = 1÷K). - Bước 2 - Tính toán khoảng cách 8 - Bước 3 - Cập nhật lại trọng tâm - Bước 4 – Điều kiện dừng: lặp lại các bước 2 và 3 cho tới khi không có sự thay đổi trọng tâm của cụm. Hình 3. Sơ đồ khối chương trình b) Ví dụ hiện thực: Thực hiện thuật toán K-means phân thành 3 cụm cho tập vector A(x,y) như sau: A1(2, 10) A2(2, 5) A3(8, 4) A4(5, 8) A5(7, 5) A6(6, 4) A7(1, 2) A8(4, 9) Khoản cách 2 vector:a=(x1, y1),b=(x2, y2) được định nghĩa: ρ(a, b) = |x2 – x1| + |y2 – y1| . (trong ví dụ này chúng ta dùng công thức tính khoản cách này thay vì khoản cách Euclid) Áp dụng thuật toán: Bước 1: ChọnVector trọng tâm ban đầu của từng cụm: A1(2, 10), A4(5, 8)và A7(1, 2). Bước 2: tính toán khoản cách 9 (2, 10) (5, 8) (1, 2) Vector Khoản cách 1 Khoản cách 2 Khoản cách 3 Cluster A1 (2, 10) A2 (2, 5) A3 (8, 4) A4 (5, 8) A5 (7, 5) A6 (6, 4) A7 (1, 2) A8 (4, 9) Chúng ta tính khoản cách từ các vector còn lại so với các vector trọng tâm. vector trọng tâm cụm 1 x1, y1 x2, y2 (2, 10) (2, 10) ρ(a, b) = |x2 – x1| + |y2 – y1| ρ(vector, trọng tâm cụm 1) = |x2 – x1| + |y2 – y1| = |2 – 2| + |10 – 10| = 0 + 0 = 0 vector trọng tâm cụm 2 x1, y1 x2, y2 (2, 10) (5, 8) ρ(a, b) = |x2 – x1| + |y2 – y1| 10 [...]... sau lần lặp thứ 2 và thứ 3 16 2 Áp dụng thuật toán K-mean vào phân lớp văn bản a) Giới thiệu: Để áp dụng thuật toán K-mean vào phân lớp văn bản ta cần phải thực hiện vector hóa văn bản mỗi văn bản được biểu diễn dưới dạng vector , việc vector hóa văn bản sử dụng mô hình vector không gian Sau khi có tập các vector ta có thể áp dụng thuật toán K-mean vào tách văn bản b) Mô hình vector không gian Mô hình... demo nhỏ này chúng em xem trọng số của các hạn là tần số xuất hiện của hạn đó trong văn bản d) Xác định các hạn(term) trong văn bản: Xác định các hạn trong văn bản chính là việc xác định các từ trong văn bản. Tách từ trong văn bản là một bải toán khó, đặc biệt trong tiếng Việt Đối với việc xác định các hạn trong văn bản thì các từ tối nghĩa sẽ được loại bỏ đầu tiên, các từ tối nghĩa thường là các giới... và các thuật toán cho việc gom nhóm văn bản Tuy đã có rất nhiều kết quả nghiên cứu, nhưng hiện nay chưa có một giải pháp nào thực sự thực hiện được quá trình gom nhóm văn bản một cách hoàn hảo Mỗi hướng tiếp cận và giải pháp điều có ưu thế và hạn chế trong những trường hợp khác nhau Và hoàn toàn chưa có một trường hợp nào có thể sinh ra các nhóm chính xác và tự nhiên hoàn chỉnh Chương trình demo đã... nghệ”, “Thông tin” 3 Chương trình demo: a) Giao diện: Hình 4 Giao diện chương trình b) Hướng dẫn sử dụng chương trình demo: - Thực thi tập tin exe chương trình 19 - Nhấn nút Browser để chọn đến thư mục chứa các tập tin dữ liệu văn bản cho kiểm tra gom nhóm - Nhập số phân nhóm ban đầu vào ô textbox Set K và nhấn nút Apply để ghi nhận - Nhấn nút Start để bắt đầu thực thi gom nhóm 20 III Kết Luận Trong bài... từng giây Điều đó cũng tỉ lệ thuận với lượng thông tin quí giá rất lớn đang ẩn giấu khối dữ liệu khổng lồ cần được thu nhận Từ thực trạng này, ta thấy được các kỹ thuật trong ngành rút trích thông tin như gom nhóm dữ liệu cũng như gom nhóm văn bản là các ngành nghiên cứu rất hấp dẫn và hứa hẹn, bởi chúng vẫn còn nhiều vấn đề còn tồn tại đồng thời lại là những bước xử lý quan trọng nhất 21 Tài liệu Tham... bước cơ bản trong quá trình gom nhóm văn bản Tuy nhiên vì thời gian nghiên cứu có hạn cho nên chương trình chỉ dừng ở mức trãi nghiệm Kết quả đầu ra của chương trình có độ chính xác vẫn còn tương đối thấp và thiếu ổn định Nhưng đây là những tiền đề quan trọng để có thể nghiên cứu sâu hơn trong lĩnh vực này Trong thời đại thông tin số phát triển như vũ bão hiện nay Lượng dữ liệu số cũng như văn bản đều... trọng tâm trong từng nhóm phân biệt đầu tiên thì là rất tốt, tuy nhiên điều này khó thực hiện được Trong chương trình, chúng em chỉ thực hiện Random trọng tâm ban đầu Số nhóm ban đầu cũng là một vấn đề, chúng ta cần phải xác định được từ đầu số nhóm, trong khi các ứng dụng thực tế thì số nhóm này cần rút ra được từ tập dữ liệu 17 c) Xác định trọng số (tọa độ) của hạn (term) trong văn bản: Trong mô hình... Đối với văn bản tiếng anh việc tách từ tương đối dễ vì hầu hết các từ trong tiếng Anh là từ đơn chúng ta có thể áp dụng việc tách các khoảng trắng và ký tự đặc biệt Tuy nhiên hầu hết các từ trong tiếng việt là các từ ghép việc tách các từ đơn như vậy sẽ làm cho việc gom nhóm không chính xác 18 Ví dụ: “Bác sĩ”, “ca sĩ”, “nhạc sĩ”, “nha sĩ”,… thì việc tách thành từ đơn có thể làm cho việc gom nhóm không... đại số cho đại diện các tài liệu văn bản (và bất kỳ đối tượng nào, nói chung) là vectơ định danh, chẳng hạn như, ví dụ về chỉ số Nó được sử dụng trong lọc thông tin, thu hồi thông tin, lập chỉ mục và bảng xếp hạng liên quan Sử dụng đầu tiên của nó là hệ thống truy hồi thông tin SMART Tài liệu và các truy vấn được biểu diễn như là vectơ Mỗi kích thước tương ứng với một thuật ngữ riêng biệt.Nếu hạn xảy... tài liệu văn bản là tích của các biến số địa phương và toàn cục Mô hình này được biết đến như là nghịch đảo tần số của hạn tần số tài liệu mô hình Vector trọng lượng cho tài liệu d là vector Trong đó tọa độ wt,d được tính bởi công thức: - Trong đó, tft,d là tần số xuất hiện của hạn t tromg tài liệu d là nghịch đảo tần số tài liệu |D| là tổng tài liệu trong tập số tài liệu chứa hạn t trong demo nhỏ . giới thiệu, áp dụng thuật toán K-means trong gom nhóm văn bản. 2 I. Tổng quan về gom nhóm văn bản: 1. Giới thiệu Gom nhóm văn bản (document clustering) là một lĩnh vực của gom nhóm dữ liệu (data. biệt rõ hai nhóm như là kết quả của việc chiếu các vectơ văn bản lên một không gian có nhiều chiều hơn. 7 II. Demo thực hiện gom nhóm văn bản bằng thuật toán k-means 1. Thuật toán K-means a). thứ 3 16 2. Áp dụng thuật toán K-mean vào phân lớp văn bản a) Giới thiệu: Để áp dụng thuật toán K-mean vào phân lớp văn bản ta cần phải thực hiện vector hóa văn bản mỗi văn bản được biểu diễn

Ngày đăng: 10/04/2015, 00:10

Từ khóa liên quan

Mục lục

  • LỜI GIỚI THIỆU

  • I. Tổng quan về gom nhóm văn bản:

    • 1. Giới thiệu

    • Gom nhóm văn bản (document clustering) là một lĩnh vực của gom nhóm dữ liệu (data clustering). Quá trình gom nhóm hướng tới phát hiện ra các nhóm tự nhiên, và từ đó giới thiệu một cái nhìn tổng quan của các phân lớp (chủ đề) trong một tập hợp tài liệu văn bản. Trong lĩnh vực trí tuệ nhân tạo, đây được xem là một phương pháp máy học không giám sát. Gom nhóm không nên bị nhầm lẫn với quá trình phân lớp (Classification). Trong một vấn đề phân lớp văn bản, số lượng phân lớp (và các tính chất của nó) được biết trước, và các tài liệu văn bản được phân phối vào các lớp này. Ngược lại, trong gom nhóm, bất kỳ cả số lượng, thuộc tính, hoặc tính chất thành viên của các phân lớp đếu không được biết trước. Sự phân biệt này được minh họa ở hình 1. Phân lớp nên được xem là một ví dụ của phương pháp máy học có giám sát.

    • 2. Thuật toán K- means và các mở rộng:

      • Trong lĩnh vực khai phá dữ liệu, thuật toán gom nhóm k-means là một phương pháp của phân tích nhóm. Mục tiêu của thuật toán là chia n đối tượng mục tiêu (được biểu diễn thành các điểmtrong không gian đa chiều) thành k nhóm, trong đó mỗi đối tượng mục tiêu thuộc về nhóm cótrung điểm gần nó nhất.K-means là thuật toán tiêu biểu cho loại thuật toán gom nhóm tách biệt (discriminative algorithms).

      • Phiên bản thông dụng nhất của k-means sử dụng một kỹ thuật tinh chỉnh tuần hoàn. Vì sự tính phổ biến rộng của nó mà thuật ngữ k-means thường được liên tưởng đến phiên bản này, nhưng chính xác hơn thì đây là thuật toán Lloyd (mang tên của người phát minh), cái tên được giới khoa học máy tính nhắc đến thường xuyên hơn.Chi tiết thuật toán này như sau:

      • Cho một tập k trung điểm m1(1),…,mk(1), thuật toán thực thi bằng cách lặp tuần hoàn hai bước sau:

      • - Bước gán nhóm: gán mỗi đối tượng mục tiêu vào nhóm có trung điểm gần nó nhất.

      • - Thuật toán k-means cầu (spherical k-means): đây là thuật toán tương tự với thuật toán k-means truyền thống. Khi sử dụng thuật toán này, dữ liệu văn bản được chuyển thành các vectơ đa chiều và được tối giản hóa.Thêm nữa, nó sử dụng hàm cosin thay vì khoảng cách Euclid để tìm tính tương đồng cho các đổi tượng cần phân nhóm.

      • Mặc dù nó phổ biến, một phần do tính dễ cài đặt, nhưng k-means cầu có nhiều điểm hạn chế như: nó phụ thuộc phần lớn vào sự khởi tạo ngẫu nhiên các nhóm một cách chung chung, điều đó có thể dẫn đến thuật toán hội tụ về các điểm tối ưu địa phương; các phân nhóm sẽ có thể chứa nhiều thành phần ngoại lại và nhiễu; và độ phức tạp của nó là O(nkl), trong đó n là số lượng tài liệu văn bản trong tập dữ liệu, k là số nhóm mong muốn, và l là số vòng lặp. Thuật toán nàythông thường phù hợp áp dụng cho các tập dữ liệu văn bản lớn và ít thay đổi.

      • - Thuật toán k-means cầu trực tuyến (online spherical k-means): đây là thuật toán mở rộng của k-means cầu. Nó sử dụng kỹ thuật học cạnh tranh để làm tăng tốc quá trình gom nhóm trong khi vẫn đạt được độ chính xác tương tự hoặc tốt hơn.

      • Với khuôn mẫu học cạnh tranh trực tuyến, các văn bản được truyền đến liên tục. Hoàn toàn trái ngược với một thuật toán chạy hoàn toàn trên một tập dữ liệu một lần như thuật toán k-means cầu. Khi các văn bản được đưa vào quá trình phân nhóm, các nhóm sẽ cạnh tranh để giành lấy dữ liệu đầu vào để được phân bổ cho nhóm của mình. Và nhóm chiến thắng sẽ tự điều chỉnh mình dựa vào một tỉ lệ học nhất định để có thể phản ứng mạnh hơn cho các dữ liệu đầu vào tiếp theo. Thuật toán này thường được áp dụng để phân nhóm bản sau khi được trả về từ một trình tìm kiếm, hoặc truy xuất thông tin (ví dụ Google).

      • - Thuật toán k-means nhân hay kernel kmeans: hình 2 minh họa một tập dữ liệu mà k-means không thể gom nhóm chính xác bởi vì các điểm không tách biệt một cách tuyến tính. Ý tưởng đằng sau kernel kmeans là tìm một ánh xạ cho các điểm này đến một không gian nhiều chiều hơn, nơi mà các dữ liệu văn bản có sự khác biệt một cách tuyến tính.

      • II. Demo thực hiện gom nhóm văn bản bằng thuật toán k-means

        • 1. Thuật toán K-means

          • a) Phát biểu bài toán phân lớp với K-means:

          • b) Ví dụ hiện thực:

          • 2. Áp dụng thuật toán K-mean vào phân lớp văn bản

            • a) Giới thiệu:

            • Để áp dụng thuật toán K-mean vào phân lớp văn bản ta cần phải thực hiện vector hóa văn bản mỗi văn bản được biểu diễn dưới dạng vector , việc vector hóa văn bản sử dụng mô hình vector không gian. Sau khi có tập các vector ta có thể áp dụng thuật toán K-mean vào tách văn bản.

            • b) Mô hình vector không gian

            • Mô hình vector không gian hay mô hình vector hạn là một mô hình đại số cho đại diện các tài liệu văn bản (và bất kỳ đối tượng nào, nói chung) là vectơ định danh, chẳng hạn như, ví dụ về chỉ số. Nó được sử dụng trong lọc thông tin, thu hồi thông tin, lập chỉ mục và bảng xếp hạng liên quan. Sử dụng đầu tiên của nó là hệ thống truy hồi thông tin SMART.

            • c) Xác định trọng số (tọa độ) của hạn (term) trong văn bản:

            • Trong mô hình vector không gian cổ điển, trọng lượng cụ thể hạn trong các vectơ tài liệu văn bản là tích của các biến số địa phương và toàn cục. Mô hình này được biết đến như là nghịch đảo tần số của hạn tần số tài liệu mô hình. Vector trọng lượng cho tài liệu d là vectorTừ điển

Tài liệu cùng người dùng

Tài liệu liên quan