Tải bản đầy đủ (.pdf) (19 trang)

Phân loại tin rao vặt theo nhu cầu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (647.48 KB, 19 trang )

Phân loại tin rao vặt
theo nhu cầu
Cán bộ hướng dẫn: TS. Phan Xuân Hiếu
ThS. Trần Mai Vũ
Sinh viên thực hiện: Đậu Đình Nghĩa


Lý do thực hiện đề tài






Internet ra đời, kéo theo sự phát triển mạnh mẽ của thương mại
điện tử và quảng cáo trực tuyến
Rao vặt là một hình thức của quảng cáo trực tuyến, cho phép
ngưởi sử dụng tự đăng tin quảng cáo tùy theo mục đích cá
nhân
Việc phân loại tin rao vặt cho phép xác định xu hướng quảng
cáo của người sử dụng, đồng thời đánh giá được mức độ nổi
trội của nhu cầu này so với nhu cầu khác.


Nội dung chính








Tổng quan về phân lớp văn bản
Một số giải thuật phân lớp văn bản
Mô hình cho bài toán phân loại tin rao vặt theo
nhu cầu sử dụng SVMs
Thực nghiệm và đánh giá


Tổng quan về phân lớp văn bản






Phân lớp văn bản là một trong những nhiệm vụ nghiên cứu
quan trọng trong lĩnh vực khai phá văn bản. Phân lớp văn bản
là sắp xếp văn bản vào một hay nhiều lớp cho trước
Internet ra đời => dữ liệu tăng trưởng nhanh => nhu cầu phân
loại dữ liệu, đặc biệt là dữ liệu văn bản
Ứng dụng:






Phân loại thư điện tử và lọc thư rác
Dự đoán ngôn ngữ: tiếng Việt, tiếng Anh, tiếng Nhật,…
Phân tích quan điểm (ví dụ: quan điểm về sản phẩm là tích cực, tiêu cực

hay trung lập)
Phân loại chủ đề (chẳng hạn chính trị, kinh doanh, công nghệ,…)


Một số giải thuật phân lớp văn bản






Perceptron: xây dựng một siêu phẳng phân tách các mẫu
dương khỏi các mẫu âm
K Nearest Neighbors (kNN): phân lớp đối tượng dựa vào
khoảng cách gần nhất giữa các đối tượng cần phân lớp với tất
cả đối tượng trong tập dữ liệu huấn luyện. Sau đó dựa vào k
láng giềng của nó để phân lớp.
Support Vector Machines (SVMs): xây dựng siêu phẳng phân
tách các mẫu dương khỏi các mẫu âm với độ chênh lệch cực
đại – độ chênh lệch ở đây gọi là lề (margin)


Khái quát bài toán phân loại tin rao
vặt theo nhu cầu


Yêu cầu phân loại tin rao vặt dựa theo các nhu cầu, gồm 7 lớp:
cần bán, cần mua, cần cho thuê, cần thuê, cần tìm, cần tuyển, khác



Mô hình cho bài toán phân loại tin rao
vặt theo nhu cầu sử dụng SVMs


Tiền xử lý dữ liệu




Do đặc trưng của tin rao vặt, dữ liệu chứa nhiều tiếng lóng, ký
tự viết tắt, lỗi chính tả, viết hoa,… khiến quá trình xử lý gặp
rất nhiều khó khăn
Dùng biểu thức chính quy (regular expression) để nhất quán
một số đặc trưng thường gặp (nhưng được viết không theo một
mẫu cố định):




097.992.834, 01662523485, 0165 883 2959 … ==> sodienthoai
, … ==> email
example.com, , … ==> siteaddress


Biểu diễn văn bản bằng vector







Unstructured data ==> structured data
Tách câu, tách từ, loại bỏ stop-word
Xét tập dữ liệu huấn luyện D = {D1, D2,…, Dm} với m là số văn
bản trong tập dữ liệu huấn luyện
Mỗi văn bản Di được biểu diễn dưới dạng vector đặc trưng di
với
, trong đó di = (wi1, wi2,…, win) với n là số
vector đặc trưng của văn bản, wij là trọng số của đặc trưng thứ j


Biểu diễn văn bản bằng vector (tiếp)


Trọng số của đặc trưng có thể được tính toán bằng nhiều cách
khác nhau. Dưới đây là một số cách tính trọng số đặc trưng.



Term Frequency



Inverse Document Frequency



Term Frequency Inverse Document Frequency



Đánh giá mô hình phân lớp


Dữ liệu mất cân bằng




Dữ liệu bị mất cân bằng cao khi một
số lớp có số file trội hơn hẳn các lớp
khác
Có một số phương pháp để giải quyết
việc mất cân bằng dữ liệu như căn
chỉnh tham số C cho từng lớp hoặc
resampling


Thực nghiệm và đánh giá


Dữ liệu











Thu thập từ website
Tập dữ liệu gồm 16940 file, gồm 13540 file cho huấn luyện và 3400 cho kiểm
thử, chuyển thành 2 file vector đặc trưng là muaban và muaban.test
Tổng số đặc trưng: 15228
Bao gồm 7 lớp: cần bán, cần mua, cần cho thuê, cần thuê, cần tìm, cần tuyển,
khác

Sử dụng libSVM để thực nghiệm với dữ liệu
Phần mềm hỗ trợ


Kết quả




Bài toán sử dụng SVMs với soft
margin và hàm nhân RBF, đánh
giá kết quả bằng việc điều chỉnh
hai tham số là C và gamma.
Ở đây, em giữ nguyên gamma
(mặc định là 1/tổng số đặc trưng),
tăng dần C, đồng thời căn chỉnh C
cho từng lớp, thu được kết quả
như hình bên với tham số như sau

svm-train -c –w1 1 –w2 15 –w3 4 –w4 240 –w5 12 –w6 1 –w7 5 muaban



Kết quả với c = 10000


Ước lượng tham số









LibSVM có một công cụ
cho phép grid search để ước
lượng tham số C và g
Dưới đây là một số tham số
tốt khi sử dụng grid search:
C=2 g=0.125 rate=97.777
C=2 g=0.015625 rate=95.8789
C=64 g=0.125 rate=98.065
C=64 g=0.015625 rate=98.161




Accuracy = 97.76%


Kết luận



Kết quả




Mặc dù dữ liệu mất cân bằng cao nhưng kết quả phân
lớp tương đối tốt

Hướng phát triển





Tập trung vào phần tiền xử lý dữ liệu, làm sạch và
chuẩn hóa dữ liệu
Lựa chọn đặc trưng
Thử nghiệm trên tập dữ liệu mới


Cảm ơn Thầy, Cô và các bạn
đã lắng nghe



×