Giới thiệu Xử lý ngôn ngữ tự nhiên là một nhánh của Trí tuệ nhân tạo, tậptrung vào việc nghiên cứu sự tương tác giữa máy tính và ngôn ngữ tựnhiên của con người, dưới dạng tiếng nói speec
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CHUYÊN NGÀNH 2
XÂY DỰNG “LANGUAGE MODEL” ĐỂ
TỰ ĐỘNG SINH VĂN BẢN TIẾNG VIỆT
Sinh viên thực hiện : NGUYỄN NAM QUỐC
Giảng viên hướng dẫn : THS LÊ KIM TRỌNG
Đà Nẵng, tháng 05 năm 2023
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CHUYÊN NGÀNH 2
XÂY DỰNG “LANGUAGE MODEL” ĐỂ
TỰ ĐỘNG SINH VĂN BẢN TIẾNG VIỆT
Sinh viên thực hiện : NGUYỄN NAM QUỐC Mã:21IT.T008
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày … tháng … năm 2023
Giảng viên hướng dẫn
THS LÊ KIM TRỌNG
Trang 4LỜI CẢM ƠN
Lời đầu tiên, chúng em xin cảm ơn các thầy cô tại Khoa Khoahọc máy tính - Đại học công nghệ thông tin và truyền thông Việt -Hàn đã giảng dạy, truyền đạt cho chúng em những kiến thức nềntảng cơ bản, những kinh nghiệm thực tế, định hướng giúp đỡ chúng
em trong quá trình học tập nghiên cứu tìm hiểu đề tài
Xin cảm ơn THS LÊ KIM TRỌNG đã trực tiếp hướng dẫn, giảiđáp các vướng mắc và đưa ra những lời khuyên, định hướng pháttriển trong quá trình thực hiện triển khai đề tài
Trong quá trình thực hiện đề tài chúng em đã cố gắng hoànthành trong phạm vi kiến thức mình tích lũy và học tập được, tuynhiên để hiểu hết được các kiến thức đó chúng em cần phải nổ lựchơn nữa, dành nhiều thời gian nghiên cứu và cố gắng hơn Trong quátrình làm đề tài vì kiến thức và kinh nghiệm còn ít nên chắc chắnkhông tránh khỏi những lỗi thiếu sót Vì vậy chúng em rất mongnhận được sự góp ý chỉ bảo nhiều hơn từ phía các thầy, cô để chúng
em có thể phát triển hơn nữa đề tài của mình, làm chủ kiến thức Mộtlần nữa chúng em xin chân thành cảm ơn./
Nhóm thực hiện
Trang 5MỤC LỤC
Trang
DANH MỤC CÁC TỪ VIẾT TẮT 7
DANH MỤC HÌNH VẼ 8
MỞ ĐẦU 9
1 Giới thiệu 9
2 Mục tiêu của đề tài 9
3 Nội dung và kế hoạch thực hiện 9
4 Bố cục báo cáo 9
CHƯƠNG 1 TỔNG QUAN 10
1 XỬ LÝ NGÔN NGỮ TỰ NHIÊN 10
1.1 Khái niệm Xử lý ngôn ngữ tự nhiên (NLP) 10
1.2 Nhiệm vụ của NLP 10
2 LANGUAGE MODEL 12
2.1 Khái niệm 12
2.2 Cách thực hoạt động của LM 12
2.3 Một số loại LM phổ biến là 13
2.4 Ứng dụng 13
3 RECURRENT NEURAL NETWORK 13
CHƯƠNG 2 PHÂN TÍCH ỨNG DỤNG DỰ ĐOÁN TỪ TIẾP THEO TRONG TIẾNG VIỆT 15
1 CÁC BƯỚC XÂY DỰNG 15
2 Ý TƯỞNG XÂY DỰNG MÔ HÌNH 15
CHƯƠNG 3 XÂY DỰNG 17
1 GIẢI QUYẾT VẤN ĐỀ 17
1.1 Xử lý dữ liệu 17
1.2 Xây dựng mô hình 18
1.3 Train mô hình 19
2 XÂY DỰNG ỨNG DỤNG 20
2.1 Nội dung 20
3 MÔ PHỎNG KẾT QUẢ 20
CHƯƠNG 4 KẾT LUẬN 21
1 KẾT QUẢ ĐẠT ĐƯỢC 21
1.1 Module 21
2 HƯỚNG NGHIÊN CỨU 21
Trang 6Mục tiêu phát triển trong các giai đoạn tới 21
TÀI LIỆU THAM KHẢO 21 PHỤ LỤC 22
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
Trang 8DANH MỤC HÌNH VẼ
No table of figures entries found.
Trang 9MỞ ĐẦU
1 Giới thiệu
Xử lý ngôn ngữ tự nhiên là một nhánh của Trí tuệ nhân tạo, tậptrung vào việc nghiên cứu sự tương tác giữa máy tính và ngôn ngữ tựnhiên của con người, dưới dạng tiếng nói (speech) hoặc văn bản(text) Mục tiêu của lĩnh vực này là giúp máy tính hiểu và thực hiệnhiệu quả những nhiệm vụ liên quan đến ngôn ngữ của con ngườinhư: tương tác giữa người và máy, cải thiện hiệu quả giao tiếp giữacon người với con người, hoặc đơn giản là nâng cao hiệu quả xử lývăn bản và lời nói
Xử lý ngôn ngữ tự nhiên ra đời từ những năm 40 của thế kỷ 20,trải qua các giai đoạn phát triển với nhiều phương pháp và mô hình
xử lý khác nhau Có thể kể tới các phương pháp sử dụng ô-tô-mát và
mô hình xác suất (những năm 50), các phương pháp dựa trên kýhiệu, các phương pháp ngẫu nhiên (những năm 70), các phươngpháp sử dụng học máy truyền thống (những năm đầu thế kỷ 21), vàđặc biệt là sự bùng nổ của học sâu trong thập kỷ vừa qua
Xử lý ngôn ngữ tự nhiên có thể được chia ra thành hai nhánh lớn,không hoàn toàn độc lập, bao gồm xử lý tiếng nói (speechprocessing) và xử lý văn bản (text processing) Xử lý tiếng nói tậptrung nghiên cứu, phát triển các thuật toán, chương trình máy tính
xử lý ngôn ngữ của con người ở dạng tiếng nói (dữ liệu âm thanh).Các ứng dụng quan trọng của xử lý tiếng nói bao gồm nhận dạngtiếng nói và tổng hợp tiếng nói Nếu như nhận dạng tiếng nói làchuyển ngôn ngữ từ dạng tiếng nói sang dạng văn bản thì ngược lại,tổng hợp tiếng nói chuyển ngôn ngữ từ dạng văn bản thành tiếngnói Xử lý văn bản tập trung vào phân tích dữ liệu văn bản Các ứngdụng quan trọng của xử lý văn bản bao gồm tìm kiếm và truy xuấtthông tin, dịch máy, tóm tắt văn bản tự động, hay kiểm lỗi chính tả
tự động Xử lý văn bản đôi khi được chia tiếp thành hai nhánh nhỏhơn bao gồm hiểu văn bản và sinh văn bản Nếu như hiểu liên quan
Trang 10tới các bài toán phân tích văn bản thì sinh liên quan tới nhiệm vụ tạo
ra văn bản mới như trong các ứng dụng về dịch máy hoặc tóm tắt vă
Có nhiều lý do khiến xử lý ngôn ngữ tự nhiên là một nhiệm vụ khónhư tập từ vựng rộng lớp và được cập nhật thường xuyên, cấu trúcngữ pháp linh hoạt và đôi khi khá lỏng lẻo, ngôn ngữ đôi khi thể hiệncảm xúc, ẩn ý của người viết Tuy nhiên có hai lý do cơ bản nhất làtính nhập nhằng của ngôn ngữ (ambiguity) và sự cần thiết của trithức nền (background knowledge) Tính nhập nhằng ta sẽ trao đổi ởphần sau, trước hết nói về tri thức nền
Một đứa trẻ, từ khi sinh ra cho tới khi tập nói, tập đọc trải qua mộtgiai đoạn dài phát triển Trong giai đoạn này đứa trẻ không ngừngtiếp xúc với thế giới bên ngoài, có các trải nghiệm và tiếp thu kiếnthức từ thế giới xung quanh Những tri thức cơ bản dần dần đượchình thành như lửa thì nóng, nước đá thì lạnh, đi đường đèn đỏ thìdừng, đèn xanh thì đi, nhưng không có đèn tím Những tri thức nàygiúp ích rất nhiều cho con người trong việc hiểu ngôn ngữ Việc đưacác tri thức nền này vào máy tính là thách thức lớn, đến nay vẫnchưa có giải pháp tốt
Tiếp đến, về tính nhập nhằng của ngôn ngữ, nhập nhằng là hiệntượng xảy ra khi ngôn ngữ có thể được hiểu theo nhiều cách khácnhau, tùy thuộc vào ngữ cảnh mà nó xuất hiện Trong xử lý ngôn ngữ
tự nhiên, nhập nhằng có thể xuất hiện ở nhiều cấp độ, từ vựng, ngữpháp, ngữ nghĩa, dẫn tới khó khăn trong việc xử lý trên máy tínhnbản tự động
2 Mục tiêu của đề tài
Xây dựng một mô hình dự đoán các từ tiếp theo trong TiếngViệt Ứng dụng các kĩ thuật đã được học trong môn “Xử lý ngôn ngữ
tự nhiên” vào đề tài
3 Nội dung và kế hoạch thực hiện
Thực hiện theo kế hoạch đề cương của báo cáo đã duyệt
Trang 114 Bố cục báo cáo
Sau phần Mở đầu, báo cáo được trình bày trong 04 chương, cụthể như sau:
Chương 1 Tổng quan
Chương 2 Phân tích ứng dụng dụng dự đoán từ
Chương 3 Xây dựng mô hình, huấn luyện
Chương 4 Đánh giá và kết luận
Và cuối cùng là Tài liệu tham khảo và Phụ lục liên quan đến đềtài
Trang 12CHƯƠNG 1 TỔNG QUAN
1 XỬ LÝ NGÔN NGỮ TỰ NHIÊN
1.1 Khái niệm Xử lý ngôn ngữ tự nhiên (NLP)
Xử lý ngôn ngữ tự nhiên là một nhánh của trí tuệ nhân tạo tập
trung vào các ứng dụng trên ngôn ngữ của con người Trong trí tuệ
nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó
nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ -công cụ
hoàn hảo nhất của tư duy và giao tiếp
NLP kết hợp ngôn ngữ học tính toán mô hình ngôn ngữ con người
dựa trên quy tắc với các mô hình thống kê, học máy và học sâu
Cùng với đó, những công nghệ này cho phép máy tính xử lý ngôn
ngữ của con người dưới dạng dữ liệu văn bản hoặc giọng nói và 'hiểu'
ý nghĩa đầy đủ của nó, hoàn chỉnh với ý định và tình cảm của người
nói hoặc người viết
sẽ hữu ích
Mô hình ngôn ngữ: là nhiệm vụ dự đoán từ tiếp theo trong câu sẽ là gì dựa trênlịch sử của các từ trước đó Mục tiêu của nó là tìm hiểu xác suất của một chuỗi các từxuất hiện trong một ngôn ngữ nhất định Mô hình hóa ngôn ngữ rất hữu ích để xâydựng các giải pháp cho nhiều vấn đề, chẳng hạn như nhận dạng giọng nói, nhận dạng
ký tự quang học, nhận dạng chữ viết tay, dịch máy và sửa lỗi chính tả
Phân loại văn bản: là nhiệm vụ gộp văn bản vào một tập hợp các danh mục đãbiết dựa trên nội dung của nó Phân loại văn bản cho đến nay là nhiệm vụ phổ biếnnhất trong NLP và được sử dụng trong nhiều công cụ khác nhau, từ nhận dạng thư ráccho đến phân tích tình cảm
Trang 13Trích xuất thông tin: là nhiệm vụ trích xuất thông tin có liên quan từ văn bản,chẳng hạn như các sự kiện lịch từ email hoặc tên của những người được đề cập trongmột bài đăng trên mạng xã hội.
Truy xuất thông tin: là nhiệm vụ tìm kiếm các tài liệu có liên quan đến truy vấncủa người dùng từ một bộ sưu tập lớn Các ứng dụng như Google Search là các trườnghợp sử dụng thông tin được biết đến nhiều
Trợ lý đối thoại: là nhiệm vụ xây dựng hệ thống đối thoại có thể trò chuyện bằngngôn ngữ của con người Alexa, Siri, v.v., là một số ứng dụng phổ biến của tác vụ này.Tóm tắt văn bản: nhiệm vụ này nhằm tạo ra các bản tóm tắt ngắn của các tài liệudài hơn trong khi vẫn giữ được nội dung cốt lõi và giữ được ý nghĩa tổng thể của vănbản
Q&A: là nhiệm vụ xây dựng một hệ thống có thể tự động trả lời các câu hỏi đặt
Phân cấp độ khó của các nhiệm vụ:
Trang 142 LANGUAGE MODEL
2.1 Khái niệm
Language model(LM) là một mô hình đại diện cho những kiến thức đã biết vềmột ngôn ngữ, những kiến thức ấy có thể là những từ, chuỗi các từ có thể có hay mức
độ thường xuyên mà chúng xuất hiện
Là một phân phối xác suất trên các chuỗi từ Nó cho phép chúng ta ước tính xácsuất của một dãy gồm m phần tử trong một ngôn ngữ, ký hiệu là P (w1,…,wm), trong đómỗi wi thường là một từ trong ngôn ngữ Có nghĩa là từ một LM chúng ta có thể dựđoán khả năng xuất hiện một chuỗi các từ
Language model là trung tâm của nhiều nhiệm vụ xử lý ngôn ngữ tự nhiên quantrọng Gần đây, các mô hình ngôn ngữ dựa trên mạng lưới thần kinh đã chứng tỏ hiệusuất tốt hơn so với các phương pháp cổ điển, cả độc lập và là một phần của các nhiệm
vụ xử lý ngôn ngữ tự nhiên khó khăn hơn
LM được chia thành ba nhóm:
Statistical Language Model (Count-based)
Neural Network Language Model (Continuous-space)
Knowledge-based Language Model
Trang 15Ngoài ra còn một số LM khác chẳng hạn như KenLM,
2.2 Cách thực hoạt động của LM
Các mô hình ngôn ngữ xác định xác suất “từ” bằng cách phân tích dữ liệu vănbản Để giải quyết vấn đề này ta cần cung cấp dự liệu cho nó thông qua một thuật toánthiết lập các quy tắc cho ngữ cảnh trong ngôn ngữ tự nhiên Sau đó, mô hình áp dụngcác quy tắc này trong các nhiệm vụ ngôn ngữ để dự đoán chính xác hoặc tạo ra các câumới Về cơ bản, mô hình học các tính năng và đặc điểm của ngôn ngữ cơ bản và sửdụng các tính năng đó để hiểu các cụm từ mới
Có một số cách tiếp cận xác suất khác nhau đối với Language model, những cáchtiếp cận này khác nhau tùy thuộc vào mục đích của mô hình ngôn ngữ Từ góc độ kỹthuật, các loại khác nhau tùy theo lượng dữ liệu văn bản mà chúng phân tích và phéptoán mà chúng sử dụng để phân tích nó Ví dụ: mô hình ngôn ngữ được thiết kế để tạocâu cho bot Twitter tự động có thể sử dụng phép toán khác và phân tích dữ liệu vănbản theo cách khác với mô hình ngôn ngữ được thiết kế để xác định khả năng xảy ratruy vấn tìm kiếm
3 RECURRENT NEURAL NETWORK
Đôi khi, dữ liệu của chúng ta mang ý nghĩa trình tự, tức nếu thay đổi trình tự dữliệu, kết quả sẽ khác Dễ thấy rõ nhất ở dữ liệu văn bản
Trang 16Ví dụ, “Con ăn cơm chưa” và “Con chưa ăn cơm”, nếu tách mỗi câu theo từ, tađược bộ vocab [ ‘con’, ‘ăn’, ‘cơm’, ‘chưa’], one hot encoding và cho tất cả vào neuralnetwork , có thể thấy ngay, không có sự phân biệt nào giữa 2 câu trên Việc đảo thứ tựduyệt các từ làm sai lệch ý nghĩ của câu Nói cách khác, chúng ta cần một neuralnetwork có thể xử lí tuần tự Mạng này chứa các vòng lặp bên trong cho phép thông tin
có thể lưu lại được
Để xử lý tuần tự đầu tiên cần đưa đầu vào vào một cách tuần từ các từ Từ đầutiên được đưa vào, vector ht −1 sẽ lưu và cho ra xác suất cao nhất của một từ có trong bộ
từ điển Tiếp theo ht −1 sẽ được đưa vào ht cùng với từ tiếp theo và mô hình cũng sẽcho ra xác suất cao nhất của một từ có trong bộ từ điển Hay nói một cách dể hiểu, mộtmạng RNN có thể được coi là nhiều bản sao chép của cùng một mạng, trong đó mỗiđầu ra của mạng này là đầu vào của một mạng sao chép khác
Dưới đây là mô hình thuần của mạng RNN:
Trang 18CHƯƠNG 2 PHÂN TÍCH ỨNG DỤNG DỰ ĐOÁN
TỪ TIẾP THEO TRONG TIẾNG VIỆT
2 Ý TƯỞNG XÂY DỰNG MÔ HÌNH
Một mô hình ngôn ngữ thống kê được học từ văn bản thô và dự đoán xác suấtcủa từ tiếp theo cho các từ đã có trong chuỗi Để làm được điều đó trước tiên chúng tacần xử lý các vấn đề liên quan đến dữ liệu Với những văn bản thô chúng ta thườnggặp những vấn đề như:
Chữ hoa và thường lẫn lộn: Đối với chúng ta vấn đề này không quá quantrọng nhưng đối với máy tính, nó phân biệt chữ hoa và chữ thường Và điềunày làm tăng độ phức tạp khi xử lý mặc dù nó không ảnh hưởng nhiều đến ýnghĩa
Ký tự đặc biệt: những ký tự này thường gây khó khăn trong việc tách từ vàtách câu
Các từ sai chính tả
Một số ký tự viết tắt
Các từ và cụm từ trong tiếng việt
Với mục đích dự đoán từ tiếp theo, việc xây dựng mô hình liên quan đến việccung cấp các chuỗi từ đầu vào được xử lý lần lượt trong đó dự đoán có thể được thựchiện và học cho mỗi chuỗi đầu vào Tương tự như vậy, khi đưa ra dự đoán, quy trình
có thể nhận một hoặc một vài từ, sau đó các từ dự đoán có thể được thu thập và xử lýlàm đầu vào cho các dự đoán tiếp theo để xây dựng chuỗi đầu ra được tạo Do đó, vớimỗi cách xử lý văn bản nguồn thành các chuỗi đầu vào và đầu ra chúng ta có nhữnghiệu quả tương ứng để mô hình có thể học cách dự đoán từ
Những cách mà chúng ta có thể áp dụng như:
One-word-in and one-word-out
Three-word-in and one-word-out
Line-by-line,…
Trang 19Tiếp theo là xây dựng mô hình Đây là phần quan trọng nhất của ứng dụng vì nóquyết định hiệu suất cũng như độ chính xác của các từ dự đoán
Hiện nay, việc sử dụng Neural Network trong việc phát triển các mô hình ngônngữ đã trở nên rất phổ biến Các phương pháp tiếp cận mạng nơ-ron đang đạt được kếtquả tốt hơn so với các phương pháp cổ điển cả trên các mô hình ngôn ngữ độc lập Cụthể như phương pháp word embedding (nhúng từ) được sử dụng, sử dụng vectơ có giátrị thực để biểu diễn từng từ trong không gian vectơ được chiếu Cách biểu diễn các từ
đã học này dựa trên cách sử dụng của chúng cho phép các từ có nghĩa tương tự có cáchbiểu diễn tương tự Neural Language Model giải quyết vấn đề thưa thớt dữ liệu n-gramthông qua tham số hóa các từ dưới dạng vectơ (nhúng từ) và sử dụng chúng làm đầuvào cho mạng nơ-ron Phương pháp tiếp cận bằng Neuron Network cho ngôn ngữ môhình hóa có thể được mô tả bằng cách sử dụng ba thuộc tính mô hình sau:
Liên kết mỗi từ trong từ vựng với một vectơ đặc điểm của từ
Biểu thị hàm xác suất chung của các dãy từ dưới dạng các vectơ đặc trưngcủa các từ này trong dãy
Học đồng thời vectơ đặc trưng từ và các tham số của hàm xác suất.Điều này đại diện cho một mô hình tương đối đơn giản, trong đó cả mô hình biểudiễn và mô hình xác suất đều được học cùng nhau trực tiếp từ dữ liệu văn bản thô
Trang 20CHƯƠNG 3 XÂY DỰNG
1 GIẢI QUYẾT VẤN ĐỀ
1.1 Xử lý dữ liệu
a Tìm kiếm và thu thập dữ liệu
Để có thể dự đoán từ ra gần với ngữ cảnh và không thay đổi nhiều về ý nghĩacâu, chúng ta chọn tập dữ liệu phân chia các văn bản thành các lĩnh vực khác nhau
Ở đây chúng em chọn tập dữ liệu: (link) gồm 40000 bài báo được chia thành 8 lĩnhvực: Chính trị Xã hội, Đời sống, kinh doanh, pháp luật, sức khỏe, thế giới, thể thao,văn hóa
b Tiền xử lý dữ liệu
Trước tiên loại bỏ tất cả vấn đề của một văn bản thô:
- Ghép các từ tiếng Việt lại trước khi tách ra để đảm bảo vẫn giữ được ngữnghĩa
- Đưa tất cả về dạng chữ thường bằng hàm lower()
- Sử dụng biểu thức chính quy để loại bỏ tất cả các ký tự đặc biệt ('!"#$
%&()*+,-./:;<=>?@[\]^`{|}~)ra khỏi văn bản
Kết quả thu được sau các bước tiền xử lý:
c Mô hình Recurrent Neural Network
Với mục đích đưa vào một đoạn văn bản (một số lượng từ, câu) và để dựđoán ra từ tiếp theo, mô hình RNN chúng ta xây dựng lần này sẽ lấy đầu vào là
50 từ (số lượng từ là tùy vào các bạn) và đầu ra sẽ là 1 từ Như vậy dữ liệuchúng ta đưa vào training sẽ là nhiều đoạn 51 từ, lấy 50 từ làm dữ liệu training(data) và 1 từ cuối cùng của câu đó làm kết quả (labels)