intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Luận văn Thạc sĩ Công nghệ thông tin: Tự động nhận dạng ngôn ngữ dựa vào học sâu

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:58

18
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Luận văn "Tự động nhận dạng ngôn ngữ dựa vào học sâu" được tổ chức thành ba chương có nội dung như sau: Chương 1 Xác định ngôn ngữ trong văn bản; Chương 2 Mô hình mạng LSTM; Chương 3 Áp dụng mô hình LSTM cho bài toán nhận biết ngôn ngữ.

Chủ đề:
Lưu

Nội dung Text: Luận văn Thạc sĩ Công nghệ thông tin: Tự động nhận dạng ngôn ngữ dựa vào học sâu

  1. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN HỒNG THANH TỰ ĐỘNG NHẬN DẠNG NGÔN NGỮ DỰA VÀO HỌC SÂU LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VĂN VINH Hà Nội 2021
  2. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN HỒNG THANH TỰ ĐỘNG NHẬN DẠNG NGÔN NGỮ DỰA VÀO HỌC SÂU LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VĂN VINH Hà Nội 2021
  3. i LỜI CAM ĐOAN Tôi cam đoan luận văn được thực hiện dưới sự hướng dẫn của TS.Nguyễn Văn Vinh. Các số liệu, kết quả kiểm tra dữ liệu kiểm thử trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác. Hà Nội, Ngày 01 tháng 12 năm 2021 Người cam đoan Nguyễn Hồng Thanh
  4. ii LỜI CẢM ƠN Lời đầu tiên em xin gửi lời cảm ơn đến toàn thể các giảng viên trong Khoa Công nghệ thông tin - Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã truyền đạt kiến thức và định hướng nghiên cứu cho em trong thời gian em học tập tại Trường. Em xin gửi lời cảm ơn đến các cán bộ phụ trách thuộc Khoa Công nghệ thông tin đào tạo sau đại học, những người đã quản lý, tư vấn và hỗ trợ em trong quá trình học tập cũng như làm luận văn. Em xin gửi lời cảm ơn sâu sắc đến TS. Nguyễn Văn Vinh, người thầy đã trực tiếp tận tình hướng dẫn, tạo mọi điều kiện thuận lợi cho em trong suốt thời gian làm luận văn tốt nghiệp. Cuối cùng, Em xin gửi lời cảm ơn đến bạn bè, đồng nghiệp cũng như gia đình luôn tạo điều kiện để em hoàn thành luận văn. Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình nhưng chắc rằng luận văn này khó tránh khỏi những thiếu sót. Em rất mong nhận được sự chia sẽ, đóng góp ý kiến của giảng viên và các bạn. Hà Nội, Ngày 01 tháng 12 năm 2021 Học viên Nguyễn Hồng Thanh
  5. iii MỤC LỤC LỜI CAM ĐOAN .................................................................................................................... i LỜI CẢM ƠN ......................................................................................................................... ii Danh mục các ký hiệu và chữ viết tắt ......................................................................... v Danh mục các bảng ..........................................................................................................vi Danh mục các hình vẽ, đồ thị ..................................................................................... vii MỞ ĐẦU................................................................................................................................. 1 CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN NHẬN BIẾT NGÔN NGỮ ............... 3 1.1 Giới thiệu chung .......................................................................................... 3 1.2 Các phương pháp xác định ngôn ngữ.......................................................... 3 1.2.1 Mô hình ngôn ngữ ................................................................................ 3 1.2.2 Phương pháp xác định ngôn ngữ dựa trên n-gram ............................... 6 1.2.3 Phương pháp xác định ngôn ngữ dựa vào Naive Bayes ...................... 7 1.2.4 Phương pháp xác định ngôn ngữ dựa vào máy hỗ trợ vectơ (SVM) ... 8 1.2.5 Phương pháp láng giềng gần nhất (K-Nearest Neighbor).................... 9 1.2.6 Phương pháp Word2vec ..................................................................... 10 1.2.6.1 Skip-gram .................................................................................... 12 1.2.6.2 Túi từ liên tục (CBOW) .............................................................. 16 1.2.7 Phương pháp xác định ngôn ngữ dựa vào học sâu............................. 17 CHƯƠNG 2: MÔ HÌNH MẠNG LSTM ....................................................................... 18 2.1 Mạng Nơ ron nhân tạo .............................................................................. 18 2.1.1 Hàm kích hoạt. ................................................................................... 19 2.1.2 Chức năng kích hoạt đầu ra ................................................................ 22 2.2 Mạng nơ ron hồi qui RNN ........................................................................ 25 2.3 Mạng LSTM .............................................................................................. 27 2.3.1 Cổng đầu vào, cổng quên và cổng đầu ra .......................................... 27 2.3.2 Ô nhớ tiềm năng ................................................................................. 28 2.3.3 Ô nhớ .................................................................................................. 29 2.3.4 Các trạng thái ẩn................................................................................. 30 2.4 Kỹ thuật Dropout....................................................................................... 31
  6. iv 2.4.1 Drop-Out ............................................................................................ 31 2.4.2 Hoạt động của Drop-Out .................................................................... 31 2.4.3 Tính hiệu quả của Drop-Out .............................................................. 32 CHƯƠNG 3: ÁP DỤNG MÔ HÌNH LSTM CHO BÀI TOÁN NHẬN BIẾT NGÔN NGỮ ........................................................................................................................ 34 3.1 Giới thiệu ................................................................................................... 34 3.2 Áp dụng LSTM cho bài toán nhận biết ngôn ngữ..................................... 34 3.3 Đánh giá và thử nghiệm. ........................................................................... 37 3.3.1 Phương pháp đánh giá ........................................................................ 37 3.3.2 Cấu hình thử nghiệm .......................................................................... 38 3.3.3 Kịch bản đánh giá thử nghiệm ........................................................... 40 3.3.4 Kết quả đánh giá thử nghiệm ............................................................. 44 3.3.5 Phân tích và thảo luận ........................................................................ 45 KẾT LUẬN ............................................................................................................................ 47 Tài liệu tham khảo: .......................................................................................................... 48
  7. v Danh mục các ký hiệu và chữ viết tắt Viết tắt Tiếng Anh Tiếng việt LM Language Model Mô hình ngôn ngữ LI Language Identification Xác định ngôn ngữ LID Automatic Language Identification Tự động nhận biết ngôn ngữ NN Neural Network Mạng nơ ron ANN Artifical Neural Network Mạng nơ ron nhân tạo DNN Deep Neural Network Mạng học sâu FFNN Feed Forward Neural Network Mạng nơ ron chuyển tiếp nguồn cung cấp FP Forward Propagation Lan truyền xuôi BP Back Propagation Lan truyền ngược GRU Gate Recurrent Unit Đơn vị hồi qui có cổng RNN Recurrent Neural Network Mạng Nơ ron hồi qui LSTM Long Short-Term Memory Bộ nhớ ngắn hạn dài ML Machine Learning Học máy NLP Nature Language Processing Xử lý ngôn ngữ tự nhiên NB Naive Bayes KNN K-Nearest Neighbor K láng giềng gần nhất. SVM Support Vector Machine Máy hỗ trợ vectơ LR Linear Regression Hồi qui tuyến tính.
  8. vi Danh mục các bảng Bảng 3.1 Cấu hình phần cứng máy tính ............................................................. 38 Bảng 3.2 Gán nhãn cho 10 ngôn ngữ ................................................................. 39 Bảng 3.3 Thử nghiệm trên 2 lớp LSTM và BiLSTM với độ dài vector Embedding = 256 ................................................................................................ 40 Bảng 3.4 Kết quả thực nghiệm với các vector embedding có kích thước khác nhau nhưng có cùng batch size khi sử dụng mô hình BiLSTM.......................... 41 Bảng 3.5 Kết quả thực nghiệm với cùng một độ dài của vector embedding nhưng batch_size có kích thước khác nhau. ....................................................... 41 Bảng 3.6 Độ chính xác mô của hình huấn luyện với các batch size khác nhau 42 Bảng 3.7 Độ chính xác f1-score trong quá trình huấn luyện trên 10 ngôn ngữ với batch_size = 64.............................................................................................. 42
  9. vii Danh mục các hình vẽ, đồ thị Hình 1.1 Kiến trúc hệ thống .................................................................................. 6 Hình 1.2 Máy hỗ trợ vectơ SVM .......................................................................... 9 Hình 1.3 Minh họa Skip-gram dưới dạng mạng neural. ..................................... 14 Hình 1.4 Minh họa CBOW dưới dạng mạng neural ........................................... 16 Hình 2.1 Một mạng nơron chuyển tiếp nguồn cấp dữ liệu đơn giản .................. 19 Hình 2.2 Hàm kích hoạt ReLU() được sử dụng trong NN.................................. 20 Hình 2.3 Hàm kích hoạt sigmoid() được sử dụng trong NN .............................. 20 Hình 2.4 Mạng nơron hai lớp được xây dựng bởi một lớp ẩn, bao gồm M số đơn vị ẩn hi. ................................................................................................................ 21 Hình 2.5 Mạng nơ ron học sâu với L lớp ẩn ....................................................... 22 Hình 2.6 Lớp đầu ra softmax trong một bài toán phân loại, mang lại xác suất cho mỗi lớp cho một mẫu đầu vào ............................................................................. 22 Hình 2.7 Hàm softmax()...................................................................................... 23 Hình 2.8 Tìm giá trị hàm mất mát nhỏ nhất là mục tiêu khi huấn luyện mạng nơ ron ........................................................................................................................ 24 Hình 2.9 Một RNN có kết nối phản hồi bên trong lớp ẩn................................... 26 Hình 2.10 Kiến trúc RNN chưa được mở rộng ................................................... 26 Hình 2.11 Các phép tính tại cổng đầu vào, cổng quên và cổng đầu ra trong một đơn vị LSTM ....................................................................................................... 28 Hình 2.12 Các phép tính toán trong ô nhớ tiềm năng của LSTM ....................... 29 Hình 2.13 Sử dụng phép nhân theo từng phần tử trong ô nhớ của LSTM ......... 30 Hình 2.14 Phép tính nhân được thực hiện trên từng phần tử của trạng thái ẩn .. 30 Hình 2.15 Mô tả kỹ thuật drop-out...................................................................... 31 Hình 3.1 Mô hình LSTM áp dụng cho bài toán .................................................. 34 Hình 3.2 Mô tả chi tiết lớp LSMT ...................................................................... 35 Hình 3.3 Mô tả hoạt động của lớp DROP-OUT ................................................. 35 Hình 3.4 Mô tả cấu trúc của lớp DENSE ............................................................ 36 Hình 3.5 Độ chính xác (accuracy) với epochs = 4 với mô hình 10 ngôn ngữ .... 43 Hình 3.6 Độ mất mát (loss) với hơn 4 epochs đối với mô hình 10 ngôn ngữ .... 43 Hình 3.7 Mô hình nhận biết ngôn ngữ tự động dựa vào học sâu cho kết quả chính xác.............................................................................................................. 44 Hình 3.8 Gán nhãn sai dẫn đến kết quả dự đoán sai trong quá trình nhận biết ngôn ngữ .............................................................................................................. 44 Hình 3.9 Kết quả dự đoán sai .............................................................................. 45
  10. 1 MỞ ĐẦU Hiện nay, công nghệ thông tin ngày càng phát triển và ứng dụng mạnh mẽ trên mọi lĩnh vực kinh tế, xã hội, .... Hơn nữa, chúng ta đã và đang trải qua đại dịch Covid19 vì vậy, việc liên lạc và giao dịch trực tuyến ngày càng quan trọng và thực hiện thường xuyên trong công việc hàng ngày. Lượng thông tin chúng ta tìm kiếm và giao tiếp ngày càng nhiều và thể hiện với nhiều ngôn ngữ khác nhau. Chính vì vậy, việc tự động nhận biết ngôn ngữ tự động (Automatic Language Identification - LID) giúp cho việc tìm kiếm thông tin và dịch máy chính xác và hiệu quả hơn. Do đó, chúng tôi tập trung nghiên cứu và giải quyết bài toán nhận biết ngôn ngữ tự động. Hiện nay có nhiều cách tiếp cận cho bài toán nhận biết ngôn ngữ tự động như coi bài toán nhận biết ngôn ngữ là bài toán phân lớp văn bản và các kỹ thuật học máy được áp dụng cho bài toán trên. Gần đây, các kỹ thuật học sâu thể hiện vượt trội trong việc áp dụng cho các bài toán phân lớp văn bản. Chính vì vậy, chúng tôi lựa chọn mô hình bộ nhớ ngắn dài hạn (LSTM - Long Short Term Memory) để áp dụng cho bài toán tự động xác định ngôn ngữ. Đây là mô hình hiệu quả cho các bài toán xử lý văn bản. Chúng tôi cũng xây dựng tập dữ liệu cho 10 ngôn ngữ và thử nghiệm việc nhận biết ngôn ngữ tự động trên 10 ngôn ngữ đó. Đánh giá và thử nghiệm trên 10 ngôn ngữ cho kết quả khả quan. Bố cục luận văn như sau: Luận văn được tổ chức thành ba chương có nội dung như sau: Mở đầu Chương 1: Xác định ngôn ngữ trong văn bản: Giới thiệu tổng quan về nhận biết ngôn ngữ tự động dựa vào học sâu, giới thiệu một vài phương pháp nhận biết ngôn ngữ tự động hiện tại, so sánh các phương pháp này với nhau. Chương 2: Mô hình mạng LSTM: Trình bày các mô hình nhận biết ngôn ngữ tự động dựa vào học sâu mà đầu vào là các đoạn văn bản. Chúng tôi tập trung vào mô tả chi tiết về lý thuyết mô hình LSTM. Mô hình này được đánh giá là tốt trong các mô hình nhận biết ngôn ngữ dựa vào đoạn văn bản hiện nay và sử dụng chúng trong bài toán xác định ngôn ngữ của luận văn này.
  11. 2 Chương 3: Áp dụng mô hình LSTM cho bài toán nhận biết ngôn ngữ: Trình bày mô hình LSTM trong nhận biết ngôn ngữ tự động dựa vào học sâu áp dụng cho bài toán với đầu vào là các đoạn văn bản, dựa trên việc mô hình hóa dữ liệu và thuật toán học máy cho LID. Với mỗi một đoạn văn bản đưa vào, thuật toán học máy này sẽ xác định được ngôn ngữ. Kết luận Trình bày vắn tắt những công việc mà luận văn đã làm được đồng thời nêu định hướng phát triển tiếp theo của luận văn.
  12. 3 CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN NHẬN BIẾT NGÔN NGỮ Giới thiệu tổng quan về nhận biết ngôn ngữ tự động dựa vào học sâu với đầu vào là các đoạn văn bản, giới thiệu một vài phương pháp nhận biết ngôn ngữ hiện tại, so sánh các phương pháp này với nhau. 1.1 Giới thiệu chung Trong những năm gần đây, các trang web sử dụng tính năng tự động nhận biết ngôn ngữ trở nên phổ biến hơn, các trang web của các mạng xã hội như Facebook, Twitter ... các website tìm kiếm như Bing, Baidu, Google [1]. Điều ấn tượng là cách dịch và nhận biết ngôn ngữ thường chính xác. Mặc dù đôi khi bản dịch của một biểu thức hoặc một đoạn văn bản không hoàn toàn phù hợp với ý nghĩa thực sự của nó. Nhận dạng ngôn ngữ tự động (LID - language Identification) nhằm mục đích xác định tự động ngôn ngữ mà không cần có sự can thiệp của con người [2]. LID là một quy trình hiện diện trong nhiều dịch vụ web ngày nay. Khi tìm kiếm trên web, nhiều trang web có hỗ trợ LID cho văn bản được viết trên thanh tìm kiếm, các kết quả tìm kiếm phù hợp nhất sau đó được hiển thị đầu tiên. Các ngôn ngữ liên tục phát triển và thay đổi, điều này có thể trở thành một vấn đề khi xây dựng các mô hình tự động nhận biết ngôn ngữ. Trong thời đại mà mọi người giao tiếp trực tuyến, những thay đổi diễn ra nhanh chóng, từ ngày này sang ngày khác, một cộng đồng trực tuyến có thể bắt đầu sử dụng một từ hoặc tiếng lóng hoàn toàn mới. Nó phổ biến với văn bản viết xấu hoặc các từ viết sai chính tả trực tuyến do giao tiếp nhanh chóng trên các nền tảng trực tuyến. Khả năng xác định một ngôn ngữ của các đoạn văn bản vẫn cần được khám phá thêm. Trí tuệ nhân tạo và máy học cố gắng bắt chước cách thức hoạt động của bộ não con người [3]. Một số phương pháp tiếp cận khác nhau đã được nghiên cứu từ những năm 60 trong lĩnh vực nhận dạng ngôn ngữ tự động [2], nhưng cũng giống như AI, đã có sự gia tăng nhanh chóng về hiệu suất trong 10 năm qua. LID có thể được sử dụng trên dữ liệu từ giọng nói, ngôn ngữ ký hiệu hoặc từ văn bản. 1.2 Các phương pháp xác định ngôn ngữ 1.2.1 Mô hình ngôn ngữ Mô hình ngôn ngữ (Language Model - LM) là các phân phối xác suất trên một ngữ liệu đơn ngữ, được sử dụng trong nhiều bài toán khác nhau của xử lý
  13. 4 ngôn ngữ tự nhiên, ví dụ: dịch máy bằng phương pháp thống kê, nhận dạng giọng nói, nhận dạng chữ viết tay, sửa lỗi chính tả hay phân đoạn từ,…. Thực chất, mô hình ngôn ngữ là một hàm chức năng có đầu vào là một chuỗi các từ và đầu ra là điểm đánh giá xác suất một người bản ngữ có thể nói chuỗi đó. Nói đơn giản, mô hình ngôn ngữ có thể cho biết xác suất một câu (hoặc cụm từ) thuộc một ngôn ngữ nào đó là bao nhiêu? Ví dụ: khi áp dụng mô hình ngôn ngữ cho tiếng Việt: P[“thứ 6 tôi đi học Trí Tuệ Nhân Tạo”] = 0.9 P[“đi học thứ 6 tôi Nhân Trí Tuệ Tạo”] = 0.02 Trong mô hình ngôn ngữ, nếu tập văn bản càng lớn, càng đa dạng thì kết quả của mô hình ngôn ngữ càng chính xác. Mô hình ngôn ngữ được áp dụng trong rất nhiều lĩnh vực của xử lý ngôn ngữ tự nhiên như: kiểm tra lỗi chính tả, dịch máy hay phân đoạn từ... Chính vì vậy, nghiên cứu mô hình ngôn ngữ chính là tiền đề để nghiên cứu các lĩnh vực tiếp theo. Mô hình ngôn ngữ có nhiều hướng tiếp cận, nhưng chủ yếu được xây dựng theo mô hình n-gram. Mô hình ngôn ngữ n-gram: Cách thông dụng nhất được dùng để mô hình hóa ngôn ngữ vào trong LM là thông qua các n-gram. Với mô hình n-gram, chúng ta coi một văn bản, đoạn văn bản là chuỗi các từ liền kề nhau, 𝑤1 , 𝑤2 , ... , 𝑤 𝑛−1 , 𝑤 𝑛 , và sau đó phân tích xác suất của chuỗi với công thức xác suất kết hợp: P(𝑤1 , 𝑤2 , ... , 𝑤 𝑚−1 , 𝑤 𝑚 ) = P(𝑤1 )*P(𝑤2 |𝑤1 )*P(𝑤3 |𝑤1 𝑤2 )*....*P(𝑤 𝑚 |𝑤1 𝑤2 … . . 𝑤 𝑚−1 ) 1.1 Theo công thức (1.1), mô hình ngôn ngữ cần phải có một lượng bộ nhớ vô cùng lớn để có thể lưu hết xác suất của tất cả các chuỗi độ dài nhỏ hơn m. Rõ ràng, điều này là không thể khi m là độ dài của các văn bản ngôn ngữ tự nhiên (m có thể tiến tới vô cùng). Để có thể tính được xác suất của văn bản với lượng bộ nhớ chấp nhận được, ta sử dụng xấp xỉ Markov bậc n [4]: P(𝑤 𝑚 |𝑤1 , 𝑤1 , ... , 𝑤 𝑚−1 ) = P(𝑤 𝑚 |𝑤 𝑚−𝑛 , 𝑤 𝑚−𝑛+1 , ... , 𝑤 𝑚−1 ) 1.2 Và do vậy, mỗi từ sẽ liên quan có điều kiện tới toàn bộ các từ trước nó (ta sẽ gọi đây là lịch sử của sự kiện hoặc từ đó).
  14. 5 Tuy nhiên, việc sử dụng toàn bộ các từ trước đó để đoán nhận từ tiếp theo là không thể thực hiện được vì hai nguyên nhân sau. Đầu tiên là phương pháp này không khả thi về mặt tính toán do tốn quá nhiều thời gian, tốn tài nguyên hệ thống cho mỗi lần dự đoán. Hai là, trong rất nhiều trường hợp, chỉ sau khi duyệt vài từ trong lịch sử, ta đã nhận thấy rằng đó là một câu chưa từng gặp trước đây. Bởi vậy kể cả khi đã biết toàn bộ lịch sử của một từ, xác suất của nó vẫn có thể là không biết. Thay vào đó, các mô hình ngôn ngữ thường ước lượng tương đối xác suất dựa trên giả định Markov (hay mô hình Markov ẩn [4]), rằng từ tiếp theo chỉ chịu ảnh hưởng từ một vài từ trước đó. Một mô hình Markov bậc n giả định rằng chỉ n từ trước đó có liên hệ ngữ cảnh với từ đang cần xác định. Việc quyết định bao nhiêu từ trước đó mà LM quan tâm được gọi là bậc n (order) của mô hình ngôn ngữ. Với n = 1, gọi là unigram, đó là tập hợp các chữ cái hoặc các từ đơn. Với n = 2, gọi là bigram, đó là tập gồm hai chữ cái hoặc hai từ. Với n = 3, gọi là trigram, đó là tập gồm các cụm ba chữ cái hoặc ba từ. Ví dụ, nếu chúng ta muốn ước lượng xác suất 2-gram của một từ 𝑤 𝑖 với mô hình Markov [4] bậc 2 thì chúng ta sẽ dựa trên hai từ trước đó: P(𝑤1 𝑤2 . . . 𝑤 𝑖 ) = P(𝑤 𝑖 |𝑤 𝑖−2 𝑤 𝑖−1 ) 1.3 Một cách tổng quát, xác suất xuất hiện của một từ (𝑤 𝑚 ) được coi như chỉ phụ thuộc vào n từ đứng liền trước nó (𝑤 𝑚−𝑛 , 𝑤 𝑚−𝑛+1 , ... , 𝑤 𝑚−1 ) chứ không phải phụ thuộc vào toàn bộ dãy từ đứng trước (𝑤1 , 𝑤2 , ... , 𝑤 𝑚−1 ). Như vậy, công thức tính xác suất văn bản được tính lại theo công thức: P(𝑤1 𝑤2 …𝑤 𝑚 ) = P(𝑤1 )*P(𝑤2 |𝑤1 )*P(𝑤3 |𝑤1 𝑤2 )*…* P(𝑤 𝑚−1 |𝑤 𝑚−𝑛−1 𝑤 𝑚−𝑛 …𝑤 𝑚−2 )*P(𝑤 𝑚 |𝑤 𝑚−𝑛 𝑤 𝑚−𝑛+1 …𝑤 𝑚−1 ) 1.4 Xây dựng mô hình ngôn ngữ: Để xây dựng (huấn luyện) một mô hình ngôn ngữ ta cần một ngữ liệu đơn ngữ (corpus) có kích thước tương đối và một bộ ước lượng thống kê có nhiệm vụ mô hình hóa lượng xác suất của ngữ liệu. Các bộ ước lượng được mà LM sử dụng, theo những cách khác nhau, đều cần đến tần suất của các n-gram, do đó chúng ta cần phải đếm số lần xuất hiện của các n-gram từ 1-gram cho đến n-gram với n là số bậc mô hình chúng ta đang huấn luyện.
  15. 6 Xác định ngôn ngữ chính là bài toán phân loại văn bản nên trong phần này, chúng tôi sẽ giới thiệu một vài phương pháp xác định ngôn ngữ cũng như phương pháp phân loại văn bản. Có thể kể tên các loại phương pháp này như: mô hình Markov [4], vectơ tần suất 3-gram (Trigram Frequency Vector), phân lớp văn bản dựa trên n-gram, phương pháp Naive Bayes, phương pháp Support Vector Machine (SVM), phương pháp K-Nearest Neighbor (KNN). Hình 1.1 Kiến trúc hệ thống Hình 1.1 miêu tả kiến trúc chung của các hệ thống. Tất cả đều là phương pháp thống kê, và làm việc với một tập các ngôn ngữ được xác định trước. Khi huấn luyện hệ thống với một ngôn ngữ nó lưu thông tin trong đường trung tâm. Mỗi hệ thống có một mô hình thống kê cho mỗi ngôn ngữ mà nó huấn luyện. Khi một đoạn văn bản được phân lớp, hệ thống sẽ so sánh các đoạn văn bản lạ với mỗi mô hình ngôn ngữ, tính toán về khoảng cách và độ tương đồng sau đó chọn ngôn ngữ gần giống nhất. 1.2.2 Phương pháp xác định ngôn ngữ dựa trên n-gram (đưa vào đây) Kỹ thuật này là phương pháp phân loại văn bản, được giới thiệu trong [5] rằng có thể được áp dụng trong xác định ngôn ngữ, với mỗi lớp (category) là một ngôn ngữ. Hệ thống này dựa trên việc so sánh các hồ sơ tần suất n-gram (n-gram frequency profiles). Một tập tần suất n-gram là một danh sách các n-gram xảy ra được xắp sếp theo thứ tự tăng dần. Với mỗi loại ngôn ngữ chúng ta muốn huấn luyện hệ thống, chúng ta tạo ra tập n-gram của nó sử dụng tất cả n-gram với n từ 1 đến 5.
  16. 7 Khi muốn phân lớp một đoạn văn bản phải xây dựng tập tần suất n-gram cho đoạn văn bản đó rồi so sánh với tập ngôn ngữ mà đã tính toán khi huấn luyện hệ thống. Việc so sánh này là tính toán khoảng cách giữa các tập với nhau, bao gồm khác nhau về vị trí rank( 𝑡 𝑖 , text) của n-gram 𝑡 𝑖 trong hồ sơ đoạn văn bản chưa xác định với vị trí rank( 𝑡 𝑗 , 𝑙 𝑗 ) của n-gram tương ứng trong tài liệu j của ngôn ngữ. Khoảng cách giữa 2 hồ sơ được tính là tổng tất cả các khoảng cách cho mỗi n-gram. 𝑁 𝐷𝑗 = ∑ 𝑖=1 | rank( 𝑡 𝑖 , text) - rank( 𝑡 𝑗 , 𝑙 𝑗 ) 1.5 Trong đó: N là số lượng trigrams. Hệ thống tính toán khoảng cách giữa các hồ sơ của ngôn ngữ chưa được nhận dạng với ngôn ngữ đã biết và lấy ngôn ngữ có khoảng cách ngắn nhất. 1.2.3 Phương pháp xác định ngôn ngữ dựa vào Naive Bayes Naive Bayes [6] là phương pháp phân loại dựa vào xác suất được sử dụng rộng rãi trong lĩnh vực máy học và nhiều lĩnh vực khác như trong các công cụ tìm kiếm, các bộ lọc mail, … Ý tưởng cơ bản của cách tiếp cận này là sử dụng xác suất có điều kiện giữa từ hoặc cụm từ và chủ đề để dự đoán xác suất chủ đề của một văn bản cần phân loại. Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong văn bản đều độc lập với nhau. Như thế NB không tận dụng được sự phụ thuộc của nhiều từ vào một chủ đề cụ thể. Chính giả định đó làm cho việc tính toán NB hiệu qủa và nhanh chóng hơn các phương pháp khác với độ phức tạp theo số mũ vì nó không sử dụng cách kết hợp các từ để đưa ra phán đoán chủ đề. Mục đích chính là làm sao tính được xác suất P(𝐶𝑗 |d’), xác suất để văn bản d’ nằm trong lớp 𝐶𝑗 . Theo luật Bayes, văn bản d’ sẽ được gán vào lớp 𝐶𝑗 nào có xác suất P(𝐶𝑗 |d’) cao nhất. Công thức để tính P(𝐶𝑗 |d’) như sau: |𝑑′ | P(𝐶 𝑗 ).∏ 𝑖=1 P( 𝑤 𝑖 | 𝐶𝑗 ) 𝐻 𝐵𝐴𝑌𝐸𝑆 (d’) = arg max ( ) 1.6 |𝑑′ | ′ ∑ 𝐶′ ∈ 𝐶 P(𝐶 ′ ). ∏ 𝑖=1 P( 𝑤𝑖| 𝐶 ) 𝐶𝑗 ∈ 𝐶 Trong đó: |d’| là số lượng các từ trong văn bản d’
  17. 8 𝑤 𝑖 là một từ trong không gian đặc trưng F với số chiều là |F| P(𝐶𝑗 ) được tính dựa trên tỷ lệ phần trăm của số văn bản mỗi lớp tương ứng ||𝐶 𝑗 || ||𝐶 𝑗 || P(𝐶𝑗 ) = =∑ ′ || ||𝐶|| 𝐶′ ∈𝐶||𝐶 1.7 trong tập huấn luyện: 1+𝑇𝐹( 𝑤 𝑖 | 𝐶𝑗 ) 1.8 P(𝑤 𝑖 |𝐶𝑗 ) = |𝐹|+∑ 𝑤′ ∈|𝐹| 𝑇𝐹( 𝑤 ′ | 𝐶𝑗 ) Naive Bayes là một công cụ rất hiệu quả trong một số trường hợp. Kết quả có thể rất xấu nếu có ít dữ liệu huấn luyện và các tham số dự đoán (như không gian đặc trưng) có chất lượng kém. Nhìn chung, đây là một thuật toán phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề. Naive Bayes có ưu điểm là cài đặt đơn giản, tốc độ thực hiện thuật toán nhanh, dễ dàng cập nhật dữ liệu huấn luyện mới và có tính độc lập cao với tập huấn luyện. 1.2.4 Phương pháp xác định ngôn ngữ dựa vào máy hỗ trợ vectơ (SVM) Phương pháp máy hỗ trợ vectơ (Support Vector Machine - SVM) là phương pháp phân loại rất hiệu quả được Vapnik giới thiệu năm 1995 [7]. Ý tưởng của phương pháp là cho trước một tập huấn luyện được biểu diễn trong không gian vector, trong đó mỗi một văn bản được xem như một điểm trong không gian này. Phương pháp này tìm ra một siêu mặt phẳng h quyết định tốt nhất có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng, tạm gọi là lớp + (cộng) và lớp – (trừ). Chất lượng của siêu mặt phẳng này được quyết định bởi một khoảng cách (được gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khoảng cách biên càng lớn thì càng có sự phân chia tốt các điểm ra thành hai lớp, nghĩa là sẽ đạt được kết quả phân loại tốt. Mục tiêu của thuật toán SVM là tìm được khoảng cách biên lớn nhất để tạo kết qủa phân loại tốt. Có thể nói SVM thực chất là một bài toán tối ưu, mục tiêu của thuật toán là tìm được một không gian H và siêu mặt phẳng quyết định h trên H sao cho sai số khi phân loại là thấp nhất, nghĩa là kết qủa phân loại sẽ cho kết quả tốt nhất.
  18. 9 Hình 1.2 Máy hỗ trợ vectơ SVM Phương trình siêu mặt phẳng chứa vector 𝑑 𝑖 trong không gian như sau: ⃗⃗⃗ 𝑖 . ⃗⃗𝑤 + b = 0 𝑑 1.9 +, ⃗⃗⃗ 𝑖 . ⃗⃗𝑤 + 𝑏 > 0 𝑑 ⃗⃗⃗ ⃗⃗⃗ h(𝑑 𝑖 ) = sign(𝑑 𝑖 . ⃗⃗𝑤 ) = { 1.10 −, ⃗⃗⃗ 𝑖 . ⃗⃗𝑤 + 𝑏 < 0 𝑑 ⃗⃗⃗ Như thế vector h(𝑑 𝑖 ) biểu diễn sự phân lớp của vector 𝑑 𝑖 vào hai lớp. Gọi 𝑌𝑖 mang giá trị +1 hoặc -1, khi đó 𝑌𝑖 = +1 văn bản tương ứng với vector 𝑑 𝑖 thuộc lớp (+) và ngược lại nó sẽ thuộc vào lớp (-). Bây giờ để có siêu mặt phẳng h, ta sẽ giải bài toán sau: Tìm Min ||𝑤 || với ⃗⃗𝑤 và b thỏa mãn điều kiện: ⃗⃗ ∀ I ∈ 1, n: 𝑌𝑖 (sign(𝑑 𝑖 – w + b)) ≥ 1 1.11 Chúng ta thấy rằng SVM là mặt phẳng quyết định chỉ phụ thuộc vào các vector hỗ trợ có khoảng cách đến mặt phẳng quyết định là 1/𝑤 𝑖 . Khi các điểm khác bị xóa đi thì thuật toán vẫn cho kết quả giống như ban đầu. Chính đặc điểm này làm cho SVM khác với các thuật toán khác vì tất cả dữ liệu trong tập huấn luyện đều được dùng để tối ưu hóa kết quả. 1.2.5 Phương pháp láng giềng gần nhất (K-Nearest Neighbor) Phương pháp láng giềng gần nhất (K-Nearest Neighbor - KNN) [8] là phương pháp truyền thống khá nổi tiếng theo hướng tiếp cận thống kê đã được nghiên cứu trong nhiều năm qua. KNN được đánh giá là một trong những phương
  19. 10 pháp tốt nhất được sử dụng từ những thời kỳ đầu trong nghiên cứu về phân loại văn bản. Ý tưởng của phương pháp này đó là khi cần phân loại một văn bản mới, thuật toán sẽ xác định khoảng cách của tất cả các văn bản trong tập huấn luyện đến văn bản này để tìm ra K văn bản gần nhất, gọi là K láng giềng gần nhất (K Nearest Neighbor), sau đó dùng các khoảng cách này đánh trọng số cho tất cả các chủ đề. Khi đó, trọng số của một chủ đề chính là tổng tất cả các khoảng cách ở trên của các văn bản trong K láng giềng có cùng chủ đề, chủ đề nào không xuất hiện trong K láng giềng sẽ có trọng số bằng 0. Sau đó các chủ đề sẽ được sắp xếp theo giá trị trọng số giảm dần và các chủ đề có trọng số cao sẽ được chọn làm chủ đề của văn bản cần phân loại. Trọng số của chủ đề 𝑐 𝑗 đối với văn bản x được tính như sau: W(𝑤 , 𝑐 𝑗 ) = ∑ 𝑑 ⃗⃗ ∈ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ } {𝐾𝑁𝑁 𝑠𝑖𝑚(𝑥, ⃗⃗⃗⃗⃗) . y(𝑑 𝑖 , 𝑐 𝑗 ) - 𝑏 𝑗 ⃗⃗⃗ 𝑑 𝑖 ⃗⃗⃗ (1.12) 𝑖 ⃗⃗⃗ Trong đó: y(𝑑 𝑖 , 𝑐 𝑗 ) thuộc {0,1}, với: y = 0: văn bản 𝑑 𝑗 không thuộc về chủ đề 𝑐 𝑗 y = 1: văn bản 𝑑 𝑗 thuộc về chủ đề 𝑐 𝑗 𝑏 𝑗 là ngưỡng phân loại của chủ đề 𝑐 𝑗 được tự động học sử dụng một tập văn bản hợp lệ được chọn ra từ tập huấn luyện. 𝑠𝑖𝑚( 𝑥, ⃗⃗⃗⃗⃗): độ giống nhau giữa văn bản cần phân loại x và văn bản d. 𝑑𝑖 Chúng ta có thể sử dụng độ đo cosine để tính khoảng cách: 𝑥 x ⃗⃗⃗⃗⃗𝑖 𝑑 (1.13) 𝑠𝑖𝑚(𝑥 , ⃗⃗⃗⃗⃗) = cos(𝑥 , ⃗⃗⃗⃗⃗) = 𝑑𝑖 𝑑𝑖 ⃗⃗⃗⃗ || 𝑥|| x ||𝑑 𝑖 || Để chọn được tham số k tốt nhất cho thao tác phân loại, thuật toán cần được chạy thử nghiệm trên nhiều giá trị K khác nhau, giá trị K càng lớn thì thuật toán càng ổn định và sai sót càng thấp. 1.2.6 Phương pháp Word2vec Word2vec là một mô hình đơn giản và nổi tiếng giúp tạo ra các biểu diễn embedding của từ trong một không gian có số chiều thấp hơn nhiều lần so với số từ trong từ điển. Ý tưởng của word2vec đã được sử dụng trong nhiều bài toán với dữ liệu khác xa với dữ liệu ngôn ngữ. Ý tưởng cơ bản của word2vec có thể được tóm tắt trong các ý sau:
  20. 11 • Hai từ xuất hiện trong những văn cảnh giống nhau thường có ý nghĩa gần với nhau. • Ta có thể đoán được một từ nếu biết các từ xung quanh nó trong câu. Ví dụ, với câu “sông Nil là con sông … thế giới ” thì từ trong dấu ba chấm khả năng cao là “dài nhất”. Với câu hoàn chỉnh “sông Nil là con sông dài nhất thế giới”, mô hình word2vec sẽ xây dựng ra embeding của các từ sao cho xác suất để từ trong dấu ba chấm là “dài nhất” là cao nhất. Một vài định nghĩa Trong ví dụ trên đây, từ “dài nhất” đang được xét và được gọi là từ đích (target word). Những từ xung quanh nó được gọi là hay từ ngữ cảnh (context words). Với mỗi từ đích trong một câu của cơ sở dữ liệu, các từ ngữ cảnh được định nghĩa là các từ trong cùng câu có vị trí cách từ đích một khoảng không quá C/2, với C là một số tự nhiên dương. Như vậy, với mỗi từ đích, ta sẽ có một bộ không quá C từ ngữ cảnh. Xét ví dụ sau đây với câu tiếng Anh: “The quick brown fox jump over the lazy dog” với C=4 Văn bản nguồn Mẫu huấn luyện (the, quick) the quick brown fox jumps over the lazy dog (the, brown) (quick, the) the quick brown fox jumps over the lazy dog (quick, brown) (quick, fox) (brown, the) over the lazy dog (brown, quick) the quick brown fox jumps (brown, fox) (brown, jumps) (fox, quick) the quick brown fox jumps over the lazy dog (fox, brown) (fox, jumps) (fox, over) Trên đây là một ví dụ về các cặp (từ đích, từ ngữ cảnh)1 1 Word2Vec Tutorial - The Skip-Gram Model.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
4=>1