Quy trình xây dựng mô hình các chủ đề và công cụ tìm kiếm theo ngữ nghĩa

Một phần của tài liệu Xây dựng mô hình các chủ đề và công cụ tìm kiếm ngữ nghĩa (Trang 52 - 56)

CHƯƠNG 4: XÂY DỰNG MÔ HÌNH CÁC CHỦ ĐỀ VÀ CÔNG CỤ TÌM KIẾM THEO NGỮ NGHĨA

4.1 Quy trình xây dựng mô hình các chủ đề và công cụ tìm kiếm theo ngữ nghĩa

Trong quy trình này tác giả tiến hành các bước sau:

 Thu thập dữ liệu: Tiến hành thu thập các tài liệu trên mạng bao gồm các bài báo tiếng Việt nhằm phục vụ cho quá trình tìm kiếm. Trong luận văn này dữ liệu sẽ là các bài báo trên trang web docbao.vn và dùng công cụ Webcrawler để tiến hành thu thập các bài báo trên trang web này.

 Bóc tách dữ liệu: Sau khi tác giả đã thu thập các bài báo vềsẽ tiến hành bóc tách dữ liệu thu được bằng cách gỡ bỏ những từ vô nghĩa và tiến hành gom nhóm các từ vào cụm từ có nghĩa.

 Sử dụng mô hình LDA: Sau khi dữ liệu đã được bóc tách tác giả sử dụng mô hình LDA để tạo các chủ đề và các từ trong chủ đề đó cùng với trọng số của các từ,…Sau đó dùng công cụ lập trình để xây dựng mô hình ontology mô hình các chủ đề.

 Xây dựng chương trình tìm kiếm theo ngữ nghĩa: Sau khi tạo đươc tập tin ontology mô hình các chủ đề tác giả xây dựng chương trình dùng SPARQL để truy vấn dữ liệu và framework Jena để xử lý tập tin ontology phục vụ cho việc tìm kiếm.

4.1.1. Thu thập dữ liệu:

Dữ liệu thu thập được từ trang web www.docbao.vn thông qua công cụ WebCrawler được phát triển bởi google. Sau khi tải công cụ về để lấy dữ liệu ra được theo ý mình cần phải lập trình công cụ để chỉnh sửa kiểu dữ liệu trả về phù hợp với nhu cầu của luận văn.

Theo luận văn thì sau khi lập trình chỉnh sửa kết quả trả về của công cụ ta thu được hai tập tin với định dang XML như sau:<root><title></title><link></link></root>

Hình 4.1. Dữ liệu sau khi lấy về bằng công cụ Webcrawler bao gồm tiêu đề và địa chỉ

Dữ liệu sau khi lấy về được từ công cụ là một trang web tác giả dùng flugin hỗ trợ DOM đọc tựa đề và địa chỉ của trang web trả về dưới dạng XML theo cấu trúc như trên để hỗ trợ các bước tiếp theo cho luận văn.

Hình 4.2. Dữ liệu sau khi lấy về bằng công cụ Webcrawler

Dữ liệu lấy về của công cụ được phân tích để chỉ lấy về nội dung và phần miêu tả ngắn của trang web ta được tập tin trả về như hình 4.2 trên.

4.1.2. Bóc tách dữ liệu:

Với công cụ mã nguồn mở JvnSegmenter của Nguyễn Cẩm Túsẽ giúp việc bóc tách dữ liệu dễ dàng và chính xác hơn, trong phần mã nguồn bóc tách dữ liệu luận văn đã lập trình công cụ tích hợp thêm tính năng gỡ bỏ những Stopword để tăng cường hiệu năng cho các bước sau đó. Trong quá trình bóc tách dữ liệu nếu gặp các Stopword thì sẽ không xử lý bóc tách từ đó nữa và đồng thời cũng gỡ bỏ các từ đó khỏi tài liệu và tiến hành các bước tiếp theo.

Sau khi tiến hành bóc tách dữ liệu và gỡ bỏ Stopword ta được tập tin kết quả như sau:

Hình 4.3. Kết quả sau khi bóc tách dữ liệu 4.1.3. Sử dụng mô hình Latent Dirichlet Allocation:

Sau khi bóc tách dữ liệu tác giả sử dụng công cụ mã nguồn mở JGibbLDA [13] của Nguyễn Cẩm Tú dùng thuật toán LDA để trả về các chủ đề và các từ trong chủ đề đó cùng với các trọng số như đã mô tả ở phần trên.

Nguyễn Cẩm Tú đã sử dụng thuật toán LDA được cải tiến của nhóm tác giả David M. Blei, Andrew Y. Ng và Michael I. Jordan vào năm 2003.

Cú pháp để chạy được công cụ như sau:

$ java [-mx512M]-cp bin:lib/args4j-2.0.6.jar jgibblda.LDA -estc -dir <string>

-model <string> [-niters <int>] [-savestep <int>] [-twords <int>]

Trong đó:

 -estc: Tiếp tục ước lượng mô hình từ mô hình ước lượng trước đó.

 -model <string>: Tên của mô hình ước lượng trước đó

 -niters <int>: Số lượng Gibbslặp lấy mẫu để tiếp tục ước lượng . Giá trị mặc định là 2000.

 -savestep <int>: Số bước ( Tính theo số lượng Gibbs lặp lại lấy mẫu )mà tại đó các mô hình LDA được lưu vào ổ cứng

 -twords <int> : Số lượng từ quan trọng và có trọng số cao nhất từ trên xuống mà người dùng muốn lấy(Ví dụ ta gán nó là 20 thì trong mỗi chủ đề ta sẽ lấy được 20 từ cùng với trọng số của nó ).

 -dfile <string> :Tên tập tin chứa đựng dữ liệu sau khi tính toán xong nội dung sẽ được lưu vào đó.

Dữ liệu đầu vào của chương trình sẽ có dạng như sau:

[M]

[Tài liệu 1]

[Tài liệu 2]

[Tài liệu 3]

……..

Trong đó:

[M] là số lượng tài liệu sẽ đưa vào cho việc tính toán.

[Tài liệu] là [từ 1] [từ 2] [từ 3]…..

Sau khi đầu vào phù hợp chạy chương trình thì ta sẽ thu được các tập tin sau:

<model_name>.others

<model_name>.phi

<model_name>.theta

<model_name>.tassign

<model_name>.twords Trong đó:

<model_name>.others: Tập tin chứa đựng các tham số mà chúng ta cài đặt cho chương trình để chạy.

<model_name>.phi: Tập tin chứa đựng mối quan hệ giữa chủ đề và từ mỗi dòng là một chủ đề và mỗi cột là một từ hoặc cụm từ.

<model_name>.theta: Tập tin chứa đựng mối quan hệ giữa chủ đề và tài liệu .Mỗi dòng là một tài liệu, mỗi cột là một chủ đề.

<model_name>.tassign: Tập tin này chứa đựng các chủ đề cho các từ trong huấn luyện dữ liệu.Mỗi dòng là một tài liệu và mỗi cột là một từ và chủ đề của từ đó theo dạng <wordij>:<topic of wordij>

<model_name>.twords: Tập tin này chứa đựng các chủ đề và các từ trong chủ đề đó cùng với trọng số của nó.

Một phần của tài liệu Xây dựng mô hình các chủ đề và công cụ tìm kiếm ngữ nghĩa (Trang 52 - 56)

Tải bản đầy đủ (PDF)

(94 trang)