Dưới đây là các công cụ mã nguồn mởđược sử dụng trong quá trình thực nghiệm:
Bảng 3. Danh sách các phần mềm mã nguồn mở được sử dụng
STT Tên phần mềm Tác giả Nguồn
1 SVM-Rank Joachims http://svmlight.joachims.org/. 2 GibbsLDA++ Phan Xuân Hiếu http://gibbslda.sourceforge.net
Ngoài các cộng cụ kể trên, chúng tôi xây dựng các module xử lý bằng ngôn ngữ
Python như sau:
• Module filter: lọc trong 14 triệu query logs, lấy ra 1 triệu query log đầu tiên. Gom nhóm tất cả các url được trả về bởi cùng một query, tính điểm cho mỗi URL trên từng phiên làm việc và tổng hợp điểm cho mỗi URL trên tất cả các phiên làm việc. Sắp xếp các URL theo thứ tự giảm dần vềđiểm.
• Module crawl: từ các URL thu được bởi module filter, tiến hành crawl nội dung trang web, phân tích và lấy ra tiêu đề, mô tả của trang web. Chúng ta coi mô tả và tiêu đề của một trang web là một tài liệu trong bộ dữ liệu học.
• Module normalize: Chuẩn hóa các nội dung thu được bởi module crawl như
loại bỏ từ dừng, các kí hiệu vô nghĩa, các nội dung trống.
• Module tfidf: Véc tơ hóa các tài liệu đã thu được theo đặc trưng về tần suất xuất hiện của từ khóa, TF-IDF.
• Module tfidf_lda: Véc tơ hóa các tài liệu thu được theo đặc trưng về tần suất xuất hiện của từ khóa, TF-IDF và đặc trưng về xác suất xuất hiện của tài liệu trong từng chủđềẩn.
• Module test: Từ các quảng cáo đã được sắp xếp theo ý kiến người dùng, tiến hành véc tơ hóa các quảng cáo theo đặc trưng về tần suất xuất hiện các từ
khóa, sau đó xếp hạng các kết quả này bằng hàm xếp hạng. Kết quả trả về sẽ được so sánh với kết quả người dùng đưa ra và tính toán các độ đo NDCG, MAP.
• Module test_lda: Từ các quảng cáo đã được sắp xếp theo ý kiến người dùng, tiến hành suy luận các chủ đề ẩn mà mỗi quảng cáo có thể thuộc vào. Véc tơ
hóa mỗi quảng cáo theo đặc trưng tần suất xuất hiện của từ hóa và đặc trưng xác suất mỗi quảng cáo thuộc vào các chủ đề ẩn. Xếp hạng các kết quả này bằng hàm xếp hạng. Kết quả trả về sẽ được so sánh với kết quả người dùng
đưa ra và tính toán các độđo NDCG, MAP.