XÂY DỰNG BỘ DỮ LIỆU
4.1 Xây dựng bộ dữ liệu thơ tiếng Việt (UIT-Poem-Dataset)
4.1.1 Thu thập di liệu thơ
Trước khi xây dựng bộ dữ liệu gồm các cặp thơ và ảnh, chúng tôi xây dựng một
bộ dữ liệu gồm những bài thơ tiếng Việt. Các bài thơ chủ yêu được chúng tôi lấy về
từ các diễn đàn thơ công khai. Các bài thơ được lấy về toàn bộ là thơ lục bát, đây là
thể thơ gần gũi, quen thuộc với người Việt và số lượng thơ lục bát có sẵn rất lớn so
với các thể thơ còn lại. Chúng tôi viết một chương trình hỗ trợ lẫy thơ từ các diễn
đàn, hai diễn đàn chính chúng tôi chọn là lucbatmoingay.com và thivien.net.
Chương 4. XÂY DỰNG BỘ DỮ LIỆU 62
4.1.2 Tiền xử lý dữ liệu thơ tiếng Việt
Do các bài thơ được lay về từ diễn đàn công khai, và những bài tho này được đóng góp bởi nhiều người dùng khác nhau nên các dit liệu thơ khi lay về sẽ không đồng nhất về bộ gõ, có sử dụng các kí tự đặc biệt hoặc các bài thơ có nội dung xấu, không liên quan, nội dung chưa được kiểm duyệt. Nên chúng tôi tiến hành tiền xử
lý các bài thơ trước khi sử dụng để xây dựng bộ dữ liệu.
© Loại bỏ những bài thơ xấu, không liên quan, chưa kiểm duyệt: Ở bước nay,
chúng tôi sử dụng công cụ tìm kiếm để tìm các từ khóa không phù hợp trong các bài thơ, nếu có xuất hiện từ khóa không phù hợp, chúng tôi sẽ loại bỏ bài
thơ đó khỏi tập dữ liệu thơ.
e Chuyển đổi về cùng bảng mã: Với mỗi ngôn ngữ người ta thường thiết kế
riêng một bảng mã cho ngôn ngữ đó do đặc thù của ngôn ngữ. Nhiều ngôn ngữ có bảng mã không quá phức tạp như tiếng Anh, chỉ sử dụng bảng mã các chữ cái La-tinh, bên cạnh đó có nhiều ngôn ngữ có cầu trúc phức tạp đòi
hỏi một bảng mã riêng để hỗ trợ người dùng có thể kể đến như tiếng Trung
Quốc, tiếng Nhật, tiếng Thai Lan,... tiếng Việt cũng nằm trong số đó do tiếng
Việt ta là ngôn ngữ có thanh điệu thể hiện bằng các dấu như: sắc, huyền, hỏi,
Wwe THAI
ngã, nặng. Bảng chữ cái tiếng Việt cũng có những kí tự có dấu như: "a", "â",
"ơ", "ô", "ư",„.. Do đó việc tạo ra một bảng riêng cho tiếng Việt trên máy tính
là cần thiết. Về phân loại, hiện nay tiếng Việt có khoảng 14 bảng mã, trong đó Unicode, TCVN3, VNI là ba bảng mã thông dụng nhất. Có nhiều bộ gõ hay còn gọi là phần mềm hỗ trợ soạn thảo văn bản cho phép soạn thảo văn bản với các bộ mã kể trên nổi tiếng như Unikey, GơTieng Viet... Mỗi bang mã sẽ có một cách biểu diễn kí tự có dấu khác nhau nên khi mã hóa trên máy tính cũng sẽ khác nhau, do đó sẽ gây nên tình trạng không thống nhất bảng mã. Bảng mã Unicode có thể xem là bảng mã phổ biến nhất hiện nay, máy tính nào cũng có
Chương 4. XÂY DUNG BO DU LIEU 63
sẵn, néu soạn thảo van ban với bang mã Unicode thi máy nào cũng có thể xem được, còn các bảng mã khác (TCVN3, Vietware, Vni,...) thì máy có máy cài sẵn
có máy không. Do đó để thống nhất bảng mã và để dễ dàng hội nhập, bảng
mã Unicode được khuyến khích sử dụng trong mọi trường hợp. Tuy nhiên, đối với bang ma Unicode thì vẫn tồn tại 2 kiểu là Unicode tổ hợp và Unicode dựng sẵn. Hai kiểu Unicode này có cách biểu diễn và hiển thị kí tự khác nhau. Ví dụ
để hiển thị từ "ở" có 2 cách:
— Unicode tổ hợp: kết hợp ký tự "ơ" và dau hỏi
— Unicode dựng san: ký tự "ở" có sẵn trong bảng chữ
Chính vì thế khi xử lý ngôn ngữ tự nhiên trên máy tính ta cần quan tâm đến van dé bang mã vì nêu cùng một từ ngữ nhưng sử dụng 2 kiểu gõ Unicode như
ở trên thì khi mã hóa trên máy tính thì sẽ khác nhau. Thậm chí khi ta dùng mô
hình ngôn ngữ để biểu diễn từ trong một không gian véc-tơ thì với cùng một từ nhưng có người sử dung Unicode tổ hợp để gõ và sử dung Unicode dựng san
để gõ thì 2 véc-tơ biểu diễn cho từ này cũng khác nhau, diéu này gây khó khăn khi ta xử lý ngôn ngữ, cũng gây ra khó khăn trong việc huấn luyện mô hình phát sinh thơ. Do đó, khi lay dữ liệu thơ từ diễn đàn đóng góp bởi nhiều người dùng khác nhau, chúng tô sử dụng công cụ chuyển đổi bảng mã để chuyển tất
cả các bài thơ về chung một bảng mã duy nhất là Unicode dựng sẵn.
® Loại bỏ các ký tự đặc biệt và chuẩn hóa thơ: Do các bài thơ được các thành
viên trong diễn đàn đóng góp tự do nên nhiều bài thơ sẽ có xuất hiện các kí
tự đặc biệt như các dấu: "!", "2", "*" ... Những kí tự đặc biệt này thường ít có
ý nghĩa việc huấn luyện mô hình thậm chí có thể làm ảnh hưởng đến kết quả nên chúng tôi sẽ loại bỏ những kí tự đặc biệt này nếu nó có xuất hiện trong bài thơ. Ngoài ra, các bài thơ trên diễn đàn thường viết hoa các chữ cái đầu
mỗi dòng thơ. Theo những thí nghiệm khi xử lý trên ngôn ngữ tự nhiên, giữa
Chương 4. XÂY DỰNG BỘ DỮ LIỆU 64
chữ cái thường và chữ cái in hoa sẽ có sự phân biệt với nhau. Vì thế, chúng tôi chuyển tất cả các kí tự được viết hoa thành viết thường ở bước này.
e Tách từ (word segmentation): Đối với ngôn ngữ tiếng Anh, khoảng trắng (space)
được sử dụng để phân cách giữa các từ trong câu với nhau. Ví dụ trong câu:
"The fox is jumping over the fence", các từ được phân cách với nhau bởi khoảng
trắng nên câu này sẽ có 7 từ. Tuy nhiên, đối với câu tiếng Việt, khoảng trắng còn có thể dùng để phân cách giữa các âm tiết của một từ, ví dụ trong câu:
"Con cáo đang nhảy qua hang rao", nếu dựa trên khoảng trắng thì câu tiếng việt này có 7 từ nhưng thực tế từ "hàng rao" là một từ, do vậy câu này chỉ có 6
từ. Nếu không sử dụng tách từ, máy tính sẽ hiểu 2 từ "hàng" và "rào" là riêng biệt không liên quan đến nhau. Điều này sẽ ảnh hưởng đến mặt ý nghĩa câu khi ta huấn luyện mô hình phát sinh ngôn ngữ. Do đó, chúng tôi sẽ tiến hành
tách từ trên bộ dữ liệu thơ sử dụng bộ tách từ tiếng Việt (RDRsegmenter) của
tác giả Dat Quoc Nguyen[34], RDRsegmenter được huấn luyện trên bộ dit liệu
tiếng Việt và cho kết quả rất tốt với độ chính xác F1 lên đến 97,90%. Công cụ tách từ này sẽ nhận vào một câu và trả về câu đó với các từ đã được tách theo ngữ nghĩa. Ví dụ ta đưa cho đầu vào của công cụ một câu như sau:
— "Chiều chiều gió thổi vi vu"
Kết quả, ta nhận được sẽ là câu:
- "Chiều chiều gió thổi vi vu"
Theo đó, chúng tôi sử dụng công cụ tách từ RDR Segmenter để tách từ cho
toàn bộ các bài tho trong tập dt liệu.
Chương 4. XÂY DUNG BO DU LIEU 65