2011-11-29 34 views
7

Bạn có thể vui lòng cho tôi biết cách thể hiện thuộc tính hoặc lớp để phân loại văn bản trong weka. Bằng cách sử dụng thuộc tính nào tôi có thể phân loại? tần số từ hoặc chỉ từ? Cấu trúc ARFF có thể là gì? Bạn có thể cho tôi một vài ví dụ về cấu trúc đó không?Làm thế nào để đại diện cho văn bản để phân loại trong weka?

Cảm ơn bạn rất nhiều trước.

Trả lời

11

Một trong những giải pháp thay thế đơn giản nhất là để bắt đầu với một tập tin ARFF cho một vấn đề hai lớp như:

 
@relation corpus 

@attribute text string 
@attribute class {pos,neg} 

@data 
'long text with words ... ',pos 

Văn bản được thể hiện dưới dạng một kiểu String và lớp là một danh nghĩa với hai giá trị.

Sau đó, bạn có thể áp dụng hai bộ lọc:

  1. StringToWordVector mà biến đổi các văn bản thành một đại diện vector từ. Bộ lọc sử dụng thuộc tính cho mỗi từ. Bạn có thể tinh chỉnh các tham số để chọn biểu diễn nhị phân/tần số, xuất phát hoặc từ dừng. Biểu diễn tốt nhất phụ thuộc vào vấn đề. Nếu văn bản không dài, thường biểu diễn nhị phân là đủ.
  2. Sắp xếp lại để di chuyển thuộc tính lớp đến vị trí cuối cùng, Weka giả định nó ở đó.

Bạn có thể tìm thêm thông tin và cách tiếp cận khác để chuyển đổi dữ liệu của bạn trong trang wiki Weka này: http://weka.wikispaces.com/Text+categorization+with+WEKA

0

Trong WEKA, bạn có thể chọn thuộc tính của riêng bạn. Trong ví dụ này, chúng tôi chỉ có 2 lớp và tất cả các từ duy nhất được sử dụng làm thuộc tính. Nếu bạn chọn tần suất từ ​​làm thuộc tính của mình, thì bạn chỉ định '2' nếu từ đó xảy ra hai lần trong văn bản của bạn và '0' nếu không, hoặc '1' nếu từ đó chỉ xuất hiện một lần.

Dưới đây là định dạng ví dụ .arff.

@RELATION anyrelation 

@ATTRIBUTE word1 
@ATTRIBUTE word2 
... 
@ATTRIBUTE wordn 
@ATTRIBUTE class {class1, class2} 

@DATA 
1,2,....,0,class1 
0,3,....,1,class2 
Các vấn đề liên quan