Giai đoạn tiền xử lý

Một phần của tài liệu (LUẬN văn THẠC sĩ) tóm tắt văn bản dựa vào trích xuất câu (Trang 36 - 39)

Tách từ, tách câu

Giai đoạn này thực hiện tách từ, tách câu theo ngữ pháp tiếng Việt. Sau khi thực hiện các câu được phân biệt với nhau bởi dấu “.”; các từ phân cách nhau bởi một ký tự trắng, các từ ghép có các từ đơn nối với nhau bởi dấu gạch dưới (Hình 2.4).

Hình 2.4. Các câu sau khi tách trong cửa sổ nhỏ góc dưới bên trái

Module Tách từ, tách câu được xây dựng câu dựa trên mã nguồn mở vnTokenizer của Lê Hồng Phương, Khoa Toán-Cơ-Tin học, Trường Đại học Khoa học Tự nhiên, ĐHQG Hà Nội, Việt Nam.

Chuẩn hóa văn bản

Văn bản đưa vào xử lý được chuẩn hóa theo bảng mã Unicode UTF-8. Học viên xây dựng module Chuẩn hóa văn bản để loại bỏ các từ dừng, ký hiệu

lạ, chuẩn hóa việc bỏ dấu, chuẩn hóa ký tự... nhằm giảm thiểu kích thước vector đại diện câu trong giai đoạn sau (Hình 2.5).Ngoài ra, chương trình tóm tắt văn bản thực nghiệm của luận văn còn có các module cho phép xác định ký tự vô ích, module xác định từ dừng (Stop Word8) tự động và bằng tay cho phép xây dựng danh mục ký tự vô ích, danh mục từ dừng một cách linh hoạt (Hình 2.6).

Hình 2.5. Văn bản sau khi chuẩn hóa

Hình 2.6. Xác định từ dừng và ký tự vô ích

Quá trình vector hóa văn bản và các câu theo tần suất từ và theo chủ đề ẩn thực hiện như sau:

Input: D - văn bản gốc đã được tách từ, tách câu và chuẩn hóa

Output: vd, vsi; i = 1, 2, ..., m - Danh sách vector đại diện cho văn bản và các câu theo tần suất từ

Phương pháp thực hiện:

// xác định số chiều (kích thước) của vector đại diện cho văn bản và các câu

vl=  // vl - danh sách các từ để tạo nên văn bản D

Lặp với i = 1 đến n thực hiện // n - tổng số từ trong văn bản D

Nếu wivl thì add(vl, wi) // thêm từ wi vào vl

// vector hóa văn bản D theo tần suất từ

Khởi tạo vd // vd - danh sách có số phần tử bằng số phần tử của vl

// mỗi phần tử có giá trị bằng 0

Lặp với i = 1 đến n thực hiện // n - tổng số từ trong văn bản D

j = post(vl, wi) // xác định vị trí từ wi trong vl; i = 1, 2, ..., n dec(vd, j) // tăng vị trí thứ j của danh sách vd lên 1

// vector hóa các câu của văn bản D theo tần suất từ

Lặp với i = 1 đến m thực hiện // m - số câu của văn bản D

Khởi tạo vsi // vsi - danh sách có số phần tử bằng số phần tử của

// vl và mỗi phần tử có giá trị bằng 0; i = 1, 2, ..., m Lặp với t = 1 đến s thực hiện // s - tổng số ký tự trong câu si

k = post(vl, wt) // xác định vị trí từ wt trong vl; t = 1, ..., n dec(vsi, k) // tăng vị trí thứ k của danh sách vsi lên 1

Sau quá trình vector hóa như trên chúng ta thu được một danh sách vector đại diện cho toàn văn bản và các câu theo tần suất từ (xem ví dụ 2.1.3).

Như đã phân tích tại mục 2.1.4, chúng ta tiếp tục vector hóa văn bản và các câu theo phân tích chủ đề ẩn LDA qua công cụ JGibbsLDA9 của Phan Xuân Hiếu, Graduate School of Information Sciences, Tohoku University và Nguyễn Cẩm Tú, Đại học Công nghệ, Đại học Quốc gia Hà Nội. Kết quả thu được một danh sách vector đại diện cho toàn văn bản và các câu theo chủ đề ẩn.

2.2.2. Giai tạo danh sách câu khả dụng Ví dụ 2.2.2: Xét văn bản D như sau

Một phần của tài liệu (LUẬN văn THẠC sĩ) tóm tắt văn bản dựa vào trích xuất câu (Trang 36 - 39)

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

(57 trang)