2010-05-28 28 views
7

Tôi đang lập kế hoạch một ứng dụng mà sẽ làm cho cụm tin nhắn ngắn/tweets dựa trên các chủ đề. Các số chủ đề sẽ được giới hạn như thể thao [NBA, NFL, Cricket, Bóng đá], Giải trí [phim ảnh, âm nhạc] và vân vân ...Làm thế nào tôi có thể nhóm tin nhắn ngắn [Tweets] dựa trên chủ đề? [Chủ đề Dựa Clustering]

tôi có thể nghĩ đến hai cách tiếp cận này

  • Hỏi người dùng gắn thẻ các câu hỏi như Stackoverflow. Người dùng có thể chọn thẻ từ danh sách thẻ được xác định trước. Sau đó, ở phía máy chủ, tôi sẽ nhóm chúng dựa trên các thẻ. Ưu điểm: - Thiết kế đơn giản. Ít phức tạp hơn trong mã. Nhược điểm: - Các lựa chọn cho người dùng sẽ bị hạn chế. Cụm sẽ không động. Nếu một sự kiện mới xảy ra, các thẻ được xác định trước sẽ bỏ lỡ nó.
  • Nhận tin nhắn, xóa các từ dừng [được xác định trước trong từ điển], áp dụng một số thuật toán phân cụm trên thông báo gốc để tạo cụm và tùy thuộc vào mức độ phổ biến của cụm hiển thị. Cụm sẽ được hiển thị cho đến khi nó vẫn phổ biến [nhiều tin nhắn/phút]. Các tin nhắn mới sẽ được tách ra và gán cho các cụm tương ứng. Ưu điểm: - Phân cụm động dựa trên mức độ phổ biến của sự kiện/tai nạn. Nhược điểm: - Tăng độ phức tạp. Cần thêm tài nguyên máy chủ.

Tôi muốn biết liệu có bất kỳ phương pháp tiếp cận nào khác cho vấn đề này hay không. Hoặc có cách nào để cải thiện các phương pháp được đề cập ở trên không?

Cũng đề xuất một số thuật toán phân cụm tốt.Tôi nghĩ thuật toán "K-Clustering gần nhất" phù hợp với tình huống này.

Trả lời

2

Sử dụng Bayesian classification. Đào tạo bộ lọc với một số kho dữ liệu được xác định trước và (tùy chọn) cung cấp cách để người dùng tinh chỉnh thêm bộ lọc bằng cách gắn cờ những thứ được phân loại không chính xác.

Đây là một số examples sử dụng trình phân loại Bayesian trong NLTK.

+0

cảm ơn trả lời ... Thực ra tôi muốn giữ nó như đơn giản vì nó có thể nhận được cho người dùng. Tôi nghĩ rằng nó sẽ được tốt đẹp nếu người dùng chỉ có thể nhập một số tin nhắn và máy chủ sẽ tìm ra nơi để đặt nó. Mặc dù đặt nhiều thông minh vào máy chủ sẽ khó khăn. – Jagira

+0

Bạn không phải cung cấp một cách để thực hiện đào tạo liên tục bộ lọc; mà chỉ làm cho bộ lọc tốt hơn. Nếu bạn có một kho văn bản tốt, phân loại phải được chấp nhận mà không cần điều chỉnh liên tục. –

3

Kiểm tra Carrot2, công cụ này sẽ trích xuất các thẻ từ văn bản và cụm. Bạn có thể tải xuống từ here và kiểm tra các thuật toán được triển khai (Lingo, chủ yếu) here.

Hy vọng điều này sẽ giúp bạn.

0

Tôi cũng đang làm một điều tương tự. Tôi nghĩ hashtags là một cách hay nếu bạn đang nói cụ thể về twitter. Bạn cũng có thể thực hiện một số phân loại nhưng nó nên được làm giàu với một số cơ sở tri thức bên ngoài như Wikipedia vv. Dù sao thì, nếu giải pháp của bạn tốt hơn, hãy đăng nó ở đây

Các vấn đề liên quan