Thuật toán Improved Iterative Scaling (IIS)

Một phần của tài liệu Nhận dạng thực thể tên cho ngôn ngữ nói tiếng việt và ứng dụng trong tương tác với điện thoại thông minh (Trang 32)

Dựa trên phương pháp trường điều kiện ngẫu nhiên [13] và cực đại hóa Entropy [3] đã tạo ra một thuật toán mới tối ưu có tên “Cải tiến mở rộng chuyên sâu” (Improved Iterative Scaling). Đây là thuật toán có phần phức tạp hơn nhưng lại cho hiệu suất nhanh hơn.

Thuật toán này có các bước cơ bản giống thuật toán GIS nhưng khác ở điểm là giá trị kỳ vọng của mỗi thuộc tính được chia ra thành từng phần dựa trên số lượng các thuộc tính khác cùng xuất hiện trong cặp (h,f), số lượng các cặp thuộc tính này sẽ được tính toán tham số ước lượng tiếp theo gồm các bước sau:

a. Tính giá trị kỳ vọng của tất cả các điểm gi trên hàm ước lượng tham số hiện tại chia cho tổng số thuộc tính kỳ vọng sảy ra đồng thời với gi. Các cặp (h,f) trong dữ liệu huấn luyện sẽ được tính như sau:

(2.20) (2.21)

b. Tính giá trị cập nhật mong muốn βi cho mọi thuộc tính gi

Maxc = Giá trị cực đại của c(h,f) đạt được trong đoạn văn (2.22) Sử dụng công thức Newton hoặc vài kỹ thuật tương đương để giải quyết βi

(2.23)

c. Cập nhật lại cho tham số ước lượng λi cho lần lặp tiếp theo

(2.24) d. Định nghĩa hàm ước lượng của hàm xác suất tiếp theo được định nghĩa như

công thức 2.19

e. Tiếp tục lặp cho tới khi tham số hội tụ hoặc gần hội tụ.

Các kỹ thuật tối ưu số sử dụng véc tơ gradient của hàm log-likelihood để tìm cực trị. Hiện nay có hai kỹ thuật tối ưu gồm kỹ thuật tối ưu bậc một và kỹ thuật tối ưu bậc hai.

Các phương pháp quasi-Newton là các trường hợp đặc biệt của kĩ thuật tối ưu bậc hai, tương tự như các phương pháp Newton tuy nhiên chúng không tính toán trực tiếp ma trận Hessian mà thay vào đó chúng xây dựng một mô hình của ma trận Hessian tại mỗi bước lặp bằng cách đo độ thay đổi trong vector gradient.

Phương pháp Limited memory quasi-Newton (L-BFGs) [14] cải tiến của phương pháp quasi-Newton để thực hiện tính toán khi lượng bộ nhớ bị giới hạn. Những thực nghiệm gần đây cho thấy phương pháp Limited memory quasi-Newton vượt trội hơn hẳn so với các phương pháp khác bao gồm cả GIS, IIS, gradient liên hợp... trong việc tìm cực đại hàm log-likelihood.

2.6. Một số nghiên cứu liên quan với bài toán nhận dạng thực thể tên cho ngôn ngữ nói tiếng Việt tên cho ngôn ngữ nói tiếng Việt

2.6.1. Các nghiên cứu liên quan

Nhận dạng thực thể tên đã được nghiên cứu và phát triển từ lâu. Hầu hết các bài báo trước đây thường tập trung vào nhiệm vụ nhận dạng thực thể tên được công bố trong hội nghị MUC [6, 9] và hội nghị khai thác nội dung (Automatic Content Extraction – ACE). Có nhiều nghiên cứu về nhận dạng thực thể tên cho văn bản viết thông thường [4, 5, 7]. Tuy nhiên ở đây tôi chỉ mô tả những nghiên cứu về nhận dạng thực thể tên có liên quan nhất cho cả văn bản viết và văn bản ngôn ngữ nói với đề tài luận văn của tôi đang nghiên cứu.

Năm 2007, Nguyễn Cẩm Tú [16] cùng các cộng sự đã sử dụng mô hình trường điều kiện ngẫu nhiên (Conditional Random Fields – CRFs) thực hiện nhận dạng thực thể tên cho văn bản viết ngôn ngữ tiếng Việt, đạt kết quả độ đo F1 trung bình là 85.51 tại hội nghị ứng dụng xử lý ngôn ngữ tự nhiên và phát triển nguồn tài nguyên ngôn ngữ châu Á.

Cũng trong năm 2007, tại hội nghị công nghệ ngôn ngữ của Úc, để cái tiến hiệu năng hệ thống hỏi đáp, Molla cùng các cộng sự [15] đã thực hiện nhận dạng thực thể tên cho ngôn ngữ nói. Tuy nhiên họ mô tả rằng họ đã sử dụng rất nhiều loại thuộc tính khác nhau bao gồm cả chữ hoa, đây là một dấu hiệu không tồn tại trong văn bản ngôn ngữ nói mà tôi sẽ thực hiện trong phần nghiên cứu của mình.

Xa hơn nữa vào năm 2005, Pan cùng các cộng sự [18] đã đề xuất hai cách tiếp cận để nhận dạng thực thể tên cho văn bản ngôn ngữ nói tiếng Trung. Các tiếp cận thứ nhất, dựa trên quan sát để nhận dạng thực thể tên có thể dễ dàng nếu nó xuất nhiều lần với một kiểu tên thực thể trong các bối cảnh khác nhau của toàn bộ văn bản. Cách thứ hai, dựa trên kiến thức mở rộng từ Internet ví dụ như các trang Web để mở rộng các ngữ cảnh thông tin của mỗi thực thể.

Mới đây nhất vào năm 2013, Hatmi cùng các cộng sự [10] đã đề xuất một phương pháp đa cấp độ dựa trên mô hình trường điều kiện ngẫu nhiên (CRFs) để nhận dạng thực thể cho các văn bản ngôn ngữ nói. Dữ liệu có kích thước hơn 40 giờ lưu lại từ bài phát biểu khác nhau trên đài truyền hình và đài phát thanh của Pháp.

Hầu hết các nghiên cứu trên thường làm việc với các bản dịch của bài phát biểu hoặc các câu chuyện. Đây là điểm khác biệt nhất về các văn bản đầu ra bởi công nghệ nhận dạng tiếng nói tự động (Automatic Speech Recognition - ASR).

Trên cơ sở những nghiên cứu có liên quan tôi thấy mình rất hứng thú nghiên cứu về lĩnh vực hiểu ngôn ngữ nói. Để có kỹ thuật hiểu ngôn ngữ nói, tôi sẽ sử dụng kỹ thuật nhận dạng thực thể tên và một chút kiến thức về hiểu ý định của người dùng.

2.6.2. Tìm hiểu Google Now – một phần mềm có xử lý cho ngôn ngữ nói tiếng Việt trên các điện thoại thông minh tiếng Việt trên các điện thoại thông minh

Google mới đây đã cập nhật ứng dụng Google Now10 cũng như Google Voice11 để hỗ trợ nhận diện các lệnh bằng giọng nói bao gồm cho tiếng Việt trên các thiết bị thông minh. Thay đổi này áp dụng cho cả ứng dụng trên hệ điều hành Android lẫn ứng dụng tìm kiếm của Google là Google Voice Search12 trên hệ điều hành iOS của Apple. Người dùng có thể tận dụng tính năng này để tra cứu về tên, tuổi của một ai đó, xem thời tiết hôm nay ra sao, tìm địa chỉ của một địa danh cụ thể. Chưa hết, nếu người sử dụng đang dùng các thiết bị thông minh chạy hệ điều hành Android, người dùng còn có thể tương tác được nhiều tính năng hơn như: gọi hoặc nhắn tin cho một ai đó, tạo một nhắc nhở hoặc báo thức, ra lệnh bật tắt Wi-Fi, Bluetooth, tất cả chỉ cần thực hiện qua ngôn ngữ nói. Dưới đây là một số lệnh mà Google Now đã xử lý khá tốt với các câu nói được tuân theo cú pháp có cấu trúc, tuy nhiên một số câu lệnh tiếng Anh thì có vẻ như là chưa có xử lý cho bên tiếng Việt.

- Gọi + [Tên lưu trong danh bạ]

- Nhắn tin + [Nội dung tin nhắn] + [Tên lưu trong danh bạ (phải được đọc tên chính xác nhất)]

- Gửi email + [Tên lưu trong danh bạ] + [Nội dung email] (Nội dung có thể không chính xác lắm)

- Mở + [Tên ứng dụng]. Ví dụ: mở Facebook, mở Chrome - Chụp ảnh hoặc Quay phim

- Bật / Tắt + [Bluetooth / Wi-Fi]

- Nhắc nhở tôi + [Nội dung nhắc nhở] + [9 giờ tối tối nay / 9 giờ sáng mai / ngày mai / 8 giờ ngày 7 tháng 9] (adsbygoogle = window.adsbygoogle || []).push({});

- Báo thức lúc + [3 giờ sáng / 8 giờ tối / 7 giờ sáng mai]

- Chơi nhạc (chạy ứng dụng nhạc, chưa có cách để tạm dừng hay đổi bài)

10 https://www.google.com/landing/now/#whatisit

11 https://www.google.com/googlevoice/about.html

Tuy nhiên Google Now trên hệ điều hành Android ở một số thiết bị thông minh vẫn còn một số hạn chế như:

- Chưa đặt được lịch (một tính năng mà rất nhiều có thói quen ghi lại nhật ký hoặc lịch hẹn của mình giúp người dùng có thể theo dõi kế hoạch cá nhân). - Chưa hỗ trợ tra cứu danh bạ (tính năng này rất quan trọng bởi hiện nay những

người dùng, đặc biệt là các doanh nhân rất nhiều danh bạ có thể lên tới hàng trăm, hàng nghìn danh bạ được lưu trong máy).

- Gọi điện thoại mới chỉ gọi cho tên trong danh bạ chưa hỗ trợ gọi cho số điện thoại (số điện thoại mà người dùng có thể nói trực tiếp vào).

- Đối với phần thao tác với các cài đặt hệ thống của máy chỉ hỗ trợ cho 2 loại cài đặt cơ bản là: Bluetooth và Wi-Fi tuy nhiên chỉ mở được giao diện mà chưa thao tác được xâu hơn là bật tắt.

- Do Google Now đang xử lý theo cú pháp nên có phần cứng nhắc chưa xử lý được mềm dẻo linh hoạt trong khi người dùng tương tác bằng ngôn ngữ nói tiếng Việt ví dụ như:

o Nhắn tin cho Vũ sáng mai lên trường (với câu này Google Now thực hiện được)

o Gửi tin nhắn cho Vũ sáng mai lên trường (chỉ thay đổi một chút trong cách nói thì câu này chưa xử lý được, hiện tại câu này Google Now còn nhầm sang tính năng tìm kiếm Web – Web search)

o Tìm nhà hàng gần đây (câu này thực hiện được được nhưng thực chất vẫn là tìm kiếm trên trình duyệt và liệt kê các nhà hàng lên đầu danh sách tìm kiếm chứ không thực hiện mở ứng dụng bản đồ như người dùng mong muốn)

o Có nhà hàng nào gần đây không (tương tự với câu này Google Now hiện chưa xử lý được mà chuyển sang tính năng tìm kiếm Web)

o “Mở Zalo13” với lệnh này Google Now vẫn chưa thực hiện được nhưng khi người sử dụng đổi cách nói thành “Khởi động Zalo” thì Google Now lại thực hiện thành công.

Qua một số ví dụ ở trên, ta có thể thấy Google Now còn nhiều hạn chế khi gặp phải cách diễn đạt của mỗi người sử dụng. Cùng một vấn đề, cùng một mục tiêu nhưng người sử dụng có thể nói theo nhiều cách khác nhau nhưng Google Now xử lý còn hạn chế là do sử dụng cấu trúc cú pháp chưa linh hoạt. Bên cạnh một số hạn chế là cú pháp nói còn cứng nhắc, chưa mềm dẻo thì Google Now vẫn bị cho là xử lý còn chậm, và yêu cầu có phần khắt khe với người dùng như: người phát âm phải chuẩn…, về thông tin danh bạ thì người sử dụng muốn thực hiện được tốt cần phải lưu dưới dạng tiếng Việt có dấu (đúng chuẩn trong tiếng Việt). Tính năng mở các ứng dụng khác trong máy điện thoại thông minh thì có ứng dụng mở được, có ứng dụng chưa mở được.

13 https://zaloapp.com/

Chƣơng 3. Nhận dạng thực thể tên cho ngôn ngữ nói tiếng Việt sử dụng phƣơng pháp học máy

3.1. Hệ thống trợ lý ảo cho ngƣời Việt trên điện thoại thông minh

Mục tiêu trong luận văn của tôi là xây dựng được mô hình nhận dạng thực thể tên cho văn bản ngôn ngữ nói có hiệu suất tốt và có kích thước nhỏ gọn đáp ứng và chạy

được ngay trên ĐTTM. Mô hình có khả năng nhận biết thực thể tên hay các đối số trong các câu lệnh giao tiếp bằng ngôn ngữ nói giữa người dùng và ĐTTM. Để đánh giá được kết quả thực tế của mô hình tôi đã tích hợp mô hình nhận dạng thực thể tên vào ứng dụng phần mềm trợ lý ảo cho người Việt trên ĐTTM có tên VAV (Virtual Assistant for Vietnamese). VAV14 như một trình thông dịch ngôn ngữ tự nhiên giữa người sử dụng và những chiếc ĐTTM thực hiện một số các câu lệnh của người dùng như: định vị vị trí, tìm chỉ dẫn đường đi từ điểm A tới điểm B trên bản đồ, chơi một bài hát hay một bản nhạc, thực hiện cuộc gọi cho một danh bạ dược lưu trong danh bạ của điện thoại hay một số điện thoại bất kỳ mà người dùng nhập vào điện thoại thông minh qua ngôn ngữ tự nhiên. Ngoài ra, người dùng có thể hỏi thông tin về thời tiết với thời gian và vị trí cụ thể, thiết lập lịch hẹn, gửi thư điện tử, chụp ảnh, quay video, đặt báo thức, hỏi ngày âm lịch và rất nhiều tính năng khác.

Một số mẫu câu lệnh khi sử dụng ngôn ngữ tự nhiên tương tác với ứng dụng VAV mà hệ thống VAV có thể hiểu và xử lý như sau:

Bảng 3.1: Một số mẫu câu lệnh ngôn ngữ nói mà ứng dụng phần mềm trợ lý ảo cho ngƣời Việt (VAV) có thể xử lý

Các câu lệnh mà ngƣời dùng sử dụng ngôn ngữ tự nhiên nói, ra lệnh cho điện thoại thông minh

Xử lý câu lệnh

ngã tư khuất duy tiến nguyễn trãi ở đâu

(where is khuat duy tien nguyen trai intersection)

Bản đồ - tìm kiếm vị trí

(Map – search a location)

đánh thức lúc 7 giờ kém 15 phút sáng (adsbygoogle = window.adsbygoogle || []).push({});

(wake up at quarter to 7 o’clock am) Báo thức – đặt báo thức (Alarm – set alarm)

tìm đường từ hà đông đến 88 láng hạ

(find direction from ha dong to 88 lang ha)

Bản đồ - tìm chỉ dẫn đường đi

(Map – find direction)

gọi số 0903206714

(call number 0903206714 )

Điện thoại – thực hiện cuộc gọi

(Phone – make a call)

đặt lịch họp với ibm 9 giờ 15 sáng thứ tư tuần sau

(arrange a meeting with ibm at quarter pass 9 Wednesday morning next week)

Lịch – thêm một sự kiên

(Calendar – add an event)

vào trang dân trí chấm com chấm vn

(open page dan tri dot com dot vn)

Trình duyệt – mở một trang web

(Browser – open a web page)

mở bài hạ trắng

(play song ha trang) Ca nhạc – chạy một bài hát

(Music – play a song)

thời tiết vũng tàu ngày kia

(the weather in vung tau the day after tomorrow) Thời tiết – Thông tin thời tiết

(Weather – weather infor)

hôm nay ngày bao nhiêu âm lịch

(what lunar date is today) Lịch – Lịch âm theo người Việt

(Calendar lunar calendar)

gửi số điện thoại của yến cho dương vũ

(send the phone number of yen to duong vu)

Danh bạ - Chuyển thông tin danh bạ (adsbygoogle = window.adsbygoogle || []).push({});

(Contact – send contact infor)

bật bluetooth

(turn on bluetooth) Cài đặt hệ thống – Cài đặt Bluetooth

(Setting turn on Bluetooth)

tăng độ sáng màn hình một chút

(increase the screen brightness a little bit)

Cài đặt hệ thống – Cài đặt độ sáng màn hình

(Setting increase brightness)

Hệ thống hoạt động như sau: Ban đầu, người dùng sẽ ra lệnh hoặc hỏi ĐTTM thông qua hộp thoại (bước 1). Hộp thoại này sẽ có nhiệm vụ xử lý các tín hiệu âm thanh của các câu nói đầu vào gửi tới hệ thống nhận dạng tiếng nói tự động (Automatic Speech Recognition - ASR) của Google (trong VAV tôi sử dụng ứng dụng Google Voice15) để nhận dạng tiếng nói và chuyển sang dạng văn bản ngôn ngữ nói (bước 2).

Văn bản đầu ra cho bởi ASR sẽ được gửi tới module AIML16 Matcher – đây là nơi xử lý các câu trả lời thông minh (bước 3). Nếu người dùng đưa các câu đầu vào khớp với AIML thì module này sẽ gửi các thông tin trả lời về module thực thi ở thành phần thực hiện các tác vụ - Action Executor (bước 4). Trong trường hợp này module thực thi thường có thể sẽ trả lời ngay được những câu hỏi kiểu như “bạn có thể làm gì” bằng cách hiển thị một danh sách các chức năng mà hệ thống có thể thực hiện được tới màn hình hiển thị cho người dùng biết. Còn trong trường hợp module AIML không có dữ liệu khớp với câu đầu vào của người dùng thì hệ thống sẽ gửi tới thành phần phân loại lệnh – Company Type Identifier (bước 5).

Tại đây thành phần này sẽ có chức năng xác định những ứng dụng, tính năng của ĐTTM và hành động (action) nào có liên quan tới câu đầu vào của người dùng. Ví dụ như: “mở trang web vnexpress.net” như vậy thành phần phân loại lệnh của hệ thống sẽ phải nhận ra được thành phần ứng dụng là trình duyệt web có liên quan và hành động là mở cho địa chỉ liên kết là vnexpress.net hay trong câu “tìm đường từ ngã tư sở đến hồ tây” thì thành phần phân loại lệnh của hệ thống cần phải xác định được ứng dụng là

bản đồ (map) và hành động cần thực thi là chỉ dẫn (direction).

Câu dữ liệu đầu vào của người dùng tiếp tục được gửi tới một thành phần khác trong hệ thống đó là thành phần nhận dạng thực thể tên (đây là một trong những

15 https://www.google.com/googlevoice/about.html

thành phần chính của hệ thống cũng là nghiên cứu chính của mà tôi thực hiện cho luận văn của mình) để nhận dạng và trích chọn ra các đối số trong các câu dữ liệu đầu vào (bước 6). Các đối số này là các thành phần như: thời gian, địa chỉ, tên ứng dụng, kiểu số (gồm phần trăm, số nguyên, số thực), địa chỉ website, địa chỉ email… trong câu dữ liệu đầu vào. Để làm rõ hơn tôi và có cái nhìn trực quan hơn xin đưa ra một vài ví dụ như sau.

Ví dụ câu đầu vào của người dùng như: “mở trang web vnexpress.net” thành phần nhận dạng thực thể tên sẽ phải nhận dạng được thực thể của dữ liệu đầu vào như sau:

mở trang web <url>vnexpress.net</url>. Việc chú thích theo định dạng XML để người

Một phần của tài liệu Nhận dạng thực thể tên cho ngôn ngữ nói tiếng việt và ứng dụng trong tương tác với điện thoại thông minh (Trang 32)