Đặt vấn đề Đầu tiên chúng ta cần phải nhắc đến các cuộc cách mạng công nghiệp trên thế giới, nó đã trãi qua 3 cuộc cách mạng lớn: động cơ hơi nước, động cơ đốt trong, kỹ thuật số. Và cuộc cách mạng công nghiệp lần 4 được đánh dấu bởi những công nghệ mới mang tính đột phá: robotics, trí thông minh nhân tạo, công nghệ nano, công nghệ sinh học, in 3D… Trong đó lĩnh vực trí tuệ nhân tạo đã và đang được các ông chủ lớn như: Google, Facebook… nghiên cứu và phát triển hết sức mạnh mẽ. Việc sử dụng ngôn ngữ giọng nói để tìm kiếm thông tin hoặc sử dụng ngôn ngữ nói để hỏi và đáp cho thiết bị điều khiển, robot đã không còn là vấn đề xa lạ đối với các hãng nước ngoài lớn hiện nay, nhưng nhược điểm của các phần mềm hiện tại là ít hỗ trợ cho ngôn ngữ tiếng việt, chính vì vậy mà nó đã làm cho ngôn ngữ Tiếng Việt của chúng ta bị hạn chế và ít phát triển hơn so với các ngôn ngữ khác, đa phần các phần mềm phát triển hiện nay chỉ dành cho ngôn ngữ nước ngoài chủ yếu là ngôn ngữ Tiếng Anh. Nội dung luận văn tập trung vào nghiên cứu mạng nơ-ron hồi quy, có khả năng xử lý ngôn ngữ tiếng việt.
Mô hình được thiết kế theo dạng chuỗi – sang – chuỗi và được ứng dụng cho robot trợ lý.2 Mục tiêu của đề tài - Nghiên cứu mạng nơ-ron hồi quy, nghiên cứu mô hình LSTM - Thiết kế ứng dụng mạng nơ-ron hồi quy trong xử lý ngôn ngữ tự nhiên, thực hiện mô hình chuỗi – chuỗi ứng dụng trong các trợ lý ảo. - Thực thi ứng dụng trên nền tảng hệ thống nhúng Raspberry Pi. 21 Luan van - Thiết kế mô hình robot trợ lý để minh hoạ cho ứng dụng mạng nơ-ron hồi quy trong xử lý ngôn ngữ tự nhiên. - Sử dụng mạng nơ-ron hồi quy, chính xác là mạng Long Short-Tearm Memory (LSTM) để tự tạo ra ngôn ngữ tự động.
- Tạo ra thiết bị robot hỏi đáp, tìm kiếm thông tin bằng giọng nói, hỗ trợ trên nền tảng ngôn ngữ Tiếng Việt. - Tích hợp điều khiển thiết bị Smart Home giúp cho việc điều khiển thiết bị một cách thông minh hơn, và đây cũng là một trong những lĩnh vực đang phát triển mạnh mẽ hiện nay. 22 Luan van CHƯƠNG 2: TỔNG QUAN 2.1 Định nghĩa về xử lý ngôn ngữ tự nhiên Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) 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.
Các hệ thống chatbot giao tiếp với con người bằng giọng nói (như Siri) hoặc bằng văn bản (như các chatbot phát triển trên nền Facebook Messenger). Dù giao tiếp bằng hình thức nào, chatbot cũng cần phải hiểu văn bản để có thể đưa ra những câu trả lời phù hợp cho khách hàng. Thành phần đảm nhiệm công việc này trong hệ thống chatbot được gọi là NLU (Natural Language Understanding), trong đó có rất nhiều các kĩ thuật xử lý ngôn ngữ tự nhiên (Natural Language Processing, viết tắt là NLP) được áp dụng.2 Một vài ứng dụng của xử lý ngôn ngữ tự nhiên trong Tiếng việt 2.1 Ứng dụng giám sát mạng xã hội Các ứngng dụng giám sát mạng xã hội có nhiệm vụ tìm hiểu và phân tích ý kiến của người dùng về một sản phẩm hay dịch vụ trên mạng như các trang tin tức, diễn đàn, blogs và các mạng xã hội phổ biến như Twitter, Facebook … Mục đích cuối cùng của nó là tìm hiểu xem người dùng có hài lòng với sản phẩm hay dịch vụ nào đó hay không, họ hài lòng và không hài lòng về cái gì. Những thông tin như vậy sẽ giúp các nhà lãnh đạo hiểu được nhu cầu, phản hồi của người dùng, từ đó có những cải tiến, chiến lược phù hợp.
Giám sát mạng xã hội có thể được chia thành hai bước: thu thập và phân tích dữ liệu. Thu thập dữ liệu liên quan đến việc tìm và lấy tất cả các bài báo, bình luận từ các trang web, diễn đàn, blogs, các bài đăng, bình luận của người dùng trên mạng xã hội, lưu trữ và phân loại chúng vào các danh mục phù hợp. Một chương trình thu thập thông tin tốt là chương trình có thể thu thập thông tin từ nhiều nguồn khác nhau, chắt lọc, tổng hợp và phân loại chúng theo một cách rõ ràng và 23 Luan van thuận tiện nhất cho việc phân tích. Bộ phân tích có nhiệm vụ xác định và phân loại ý kiến người dùng dựa trên tập dữ liệu đã được tổng hợp từ bước trước.
Cụ thể hơn, với mỗi bài đăng hay bình luận, xác định xem nó là phản hồi tích cực, tiêu cực hay trung lập. Nhưng trong một số trường hợp khác, người ta có thể muốn biết chi tiết hơn ý kiến của người dùng về một khía cạnh cụ thể của sản phẩm. Khi đó, một bộ phân tích cảm xúc với từng khía cạnh của sản phẩm/dịch vụ (ABSA) sẽ được triển khai. ABSA bao gồm ba tác vụ chính: phân loại khía cạnh, trích xuất từ khóa và phân loại cảm xúc.2 Chatbot Chatbot là một chương trình máy tính được xây dựng để có thể trò chuyện với con người.
Một chat-bot đơn giản có thể dùng để thay con người trả lời các câu hỏi lặp đi lặp lại của người dùng như: “Sự kiện X diễn ra khi nào?”, “Vinaphone MAX70 là gì?”, “iPhone X giá bao nhiêu?”. Chatbot cũng có thể đóng vai trò là một trợ lý ảo, trợ giúp trong các công việc phức tạp hơn như hỗ trợ đặt hàng, đăng ký một sự kiện, hoành thành các biểu mẫu … hầu hết các công việc/hoặc tác vụ có thể được thực hiện theo các bước. Một chat-bot thường bao gồm phần giao diện và phần hiểu ngôn ngữ tự nhiên (NLU) bên dưới. Hai thành phần liên quan đến xử lý ngôn ngữ tự nhiên không thể thiếu của một NLU module là bộ phân loại ý định và nhận diện thực thể (NER).
Phân loại ý định giúp chat-bot hiểu ý định của người dùng. Về mặt bản chất phân loại ý định chính là một bài toán phân loại câu với tập nhãn là các ý định có thể có của người dùng (đã được định nghĩa từ trước). NER giúp chat-bot trích xuất các thông tin trong yêu cầu/câu trả lời của người dùng. Các thông tin đó có thể là tên sản phẩm, địa chỉ, số điện thoại, số tài khoản của người dùng, NER là một bài toán gán nhãn chuỗi cơ bản: cho vào một câu đầu vào, trích xuất tất cả các thực thể định danh trong câu và phân loại chúng vào một trong các nhãn đã được định nghĩa từ trước.
Một thành phần xử lý ngôn ngữ tự nhiên khác có thể được thêm vào chat-bot là bộ quản lý hội thoại, bộ sinh ngôn ngữ (NLG), và bộ phân tích cảm xúc. Một bộ quản lý hội thoại sẽ lưu trữ, phân tích và tận dụng ngữ cảnh cuộc hội thoại và giúp chat-bot suy luận hành động tiếp theo trong khi NLG giúp sinh câu trả lời đầy đủ, tự nhiên 24 Luan van nhất bằng ngôn ngữ tự nhiên cho chat-bot. Một bộ phân tích cảm xúc có thể cần bởi vì cùng một câu có thể mang nhiều nghĩa khác nhau trong các văn cảnh khác nhau, do đó có thể cần được trả lời theo các cách khác nhau phụ thuộc vào cảm xúc của người dùng.3 Tổng đài tự động (ACC) Mục đích của tổng đài tự động (ACC) là bắt chước con người trong việc trả lời điện thoại. Ba thành phần cơ bản của ACC bao gồm: một module nhận diện tiếng nói, một module xử lý ngôn ngữ tự nhiên và một module chuyển văn bản thành tiếng nói.
Mục đích cuối cùng của module nhận dạng tiếng nói là giúp máy tính hiểu được tiếng nói của con người (hay là các tín hiệu âm thanh). Module xử lý ngôn ngữ tự nhiên chịu trách nhiệm xử lý yêu cầu của người dùng (giống hệt như một chat-bot nhưng với đầu vào hệ thống là đầu ra của module nhận dạng tiếng nói). Module chuyển văn bản thành tiếng nói chịu trách nhiệm sinh ngôn ngữ nói từ câu trả lời của chat-bot đến người dùng dưới dạng văn bản. Những người dùng khác nhau có giọng, kiểu nhấn, và cách nói khác nhau.
Do đó, một bộ nhận dạng tiếng nói tốt cho tất cả mọi người là một bài toán khó. Nó đòi hỏi một bộ dữ liệu huấn luyện khổng lồ, đa dạng về giọng, độ tuổi, vùng miền, cách nói …Cũng tương tự như vậy, một bộ sinh tiếng nói tốt là bộ có thể sinh tiếng nói một cách tự nhiên nhất, giống với người nói nhất. Một trong những khó khăn lớn nhất của bài toán sinh ngôn ngữ từ văn bản là một câu có thể được nói theo nhiều giọng với nhiều cách nhấn, lên giọng khác nhau tùy thuộc vào từng hoàn cảnh.4 Một vài hướng nghiên cứu hiện tại A. Retrieval-based model Retrieval-based model có một kho định nghĩa trước các câu trả lời chúng có thể sử dụng, không giống như generative models cái mà có thể generate câu trả lời chúng không bao giờ nhìn thấy trước đây.
Rõ hơn, từ một câu đầu vào tới retrieval- based model là một context c sẽ chọn ra một câu trả lời response r có khả năng nhất. Ouputs của model là câu trả lời tốt nhất. Để tìm ra câu trả lời tốt nhất bạn cần phải tính toán điểm cho tất cả các câu trả lời và chọn ra một với số điểm cao nhất. Generative models Không định nghĩa trước câu trả lời.
Chúng tự tạo ra câu trả lời (from scratch). Generative models tạo ra dựa trên kĩ thuật machine translation, nhưng thay vì chuyển từ ngôn ngữ này sang ngôn ngữ kia, chúng chuyển từ câu thoại này sang câu thoại kia. Tất cả các phương pháp đều có ưu nhược điểm. Dùng kho dữ liệu được tạo bằng tay như retrieval-based không tạo ra các lỗi cú pháp.
Tuy nhiên chúng không thể trả lời các trường hợp chưa nhìn thấy bao giờ cái mà không thích hợp với các câu trả lời đã định nghĩa trước. Vì nhiều lý do, những models này không biết thông tin đối tượng giống như tên được nhắc tới trong hội thoại. Generative models thông minh hơn. Chúng có thể truy xuất thông tin đối từ từ input và phản hồi ấn tượng như bạn đang nói chuyện với con người.
Tuy nhiên, những models này thì khó để train, và hay mắc lỗi cú pháp (đặc biệt là câu hội thoại dài), và cần rất nhiều dữ liệu để train.