Do công cụ tìm kiếm chủ yếu sẽ dựa trên nội dung của tiêu đề và phần mô tả ngắn gọn của bài viết nên hệ thống sẽ tiến hành bước tiền xử lý dữ liệu và index dữ liệu này vào trong Elasticsearch để phục vụ cho việc tìm kiếm.
Sau khi thu thập được dữ liệu bài viết trên wikiHow, hệ thống sẽ sử dụng VnCoreNLP để thực hiện phân tách các từ trong tiêu đề và phần mô tả ngắn gọn của bài viết. Như đã phân tích ở bên trên thì Elasticssearch sẽ gặp trở ngại với từđồng nghĩa trong quá trình thực hiện tìm kiếm. Chính vì vậy, dữ liệu được index vào trong Elasticsearch sẽ được tôi xử lý để đưa về một chuẩn chung. Các bước được thực hiện như sau:
39
- Xây dựng các cụm từ đồng nghĩa và xác định từ đại diện cho tập từ này dựa vào Word2vec. Ví dụ: Với từ “xinh_đẹp” chúng ta sẽ có được một số từ có độ tương đồng cao với từ này như:
W1 W2 Score xinh_đẹp khả_ái 0.61770927 xinh_đẹp long_lanh 0.45318955 xinh_đẹp lộng_lẫy 0.59213918 xinh_đẹp đoan_trang 0.53585093 xinh_đẹp đằm_thắm 0.54625511 xinh_đẹp ưa_nhìn 0.46228677 xinh_đẹp yêu_kiều 0.63439822 xinh_đẹp rạng_rỡ 0.58222419
Bảng 5: Các từtương đồng với "xinh đẹp"
Chỉ số tương đồng càng cao sẽ cho thấy 2 từ có nghĩa càng sát nhau và chúng ta sẽ coi chúng nằm trong 1 tập từ. Trong luận văn, mức được lựa chọn để xác định 2 từ nằm trong một tập từ gốc sẽ là 0.57 (theo khảo sát của dữ liệu được lấy từ word2vec). Chúng ta sẽ kết nạp các từ: xinh_đẹp, khả_ái, lộng_lẫy, yêu_kiều, rạng_rỡ vào tập từ hiện tại. Và đại diện cho tập từ trên sẽ là từ “xinh_đẹp”.
- Thay thế những từ trong dữ liệu đã được phân tách từ thành từ đại diện nếu như chúng nằm trong tập từ đồng nghĩa. Ví dụ với câu: “Cách để khiến cho bạn trở_nên lộng_lẫy hơn” chúng ta sẽ thay thế từ“lộng_lẫy” thành từ“xinh_đẹp” và thay thế vào câu trên.
Dữ liệu index vào trong Elasticsearch sẽ bao gồm các fields:
- article_id: id của bài viết.
- original_title: tiêu đề gốc của bài viết.
- standardized_title: tiêu đề đã được chuẩn hóa.
- original_summarization: nội dung tóm tắt gốc của bài viết.
40