Theo Wikipedia, “Xử lý ngôn ngữ tự nhiên (NLP), là một lĩnh vực khoa học máy tính, kỹ thuật thông tin và trí tuệ nhân tạo tập trung vào nghiên cứu các tương tác về mặt ngôn ngữ giữa máy tính và con người, cụ thể hơn là làm thế nào để lập trình cho máy tính xử lý và phân tích một lượng lớn dữ liệu ngôn ngữ tự nhiên.”
Nói cách khác, NLP quan tâm đến việc làm thế nào để máy tính hiểu và tận dụng được các tập dữ liệu sẵn có dưới dạng ngôn ngữ tự nhiên. NLP đã được ứng dụng rộng rãi trong thực tế nhằm: tiết kiệm sức lao động, thúc đẩy các ngành nghề kinh doanh mới, và giúp các nhà hoạch định chiến lược trong việc đưa ra quyết định,… Các ứng dụng phổ biến của NLP bao gồm: ứng dụng giám sát mạng xã hội, chatbot, và tổng đài trả lời tự động.
Ứng dụng giám sát mạng xã hội
Ứng 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à 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.
Phân loại khía cạnh là xác định xem bài đăng hay bình luận liên quan đến khía cạnh nào của sản phẩm hay dịch vụ. Đó có thể là chất lượng, giá thành các món ăn với một nhà hàng, dịch vụ chăm sóc khách hàng với một khách sạn hoặc là tốc độ đường truyền với một nhà cung cấp dịch vụ Internet. Trích xuất từ khóa chịu trách nhiệm trích xuất các từ hay cụm từ đại diện cho các khía cạnh trong câu/đoạn/bình luận đầu vào. Các từ, cụm từ này thường là các danh từ, cụm danh từ trong câu. Tác vụ cuối cùng liên quan đến việc phân loại cảm xúc của người dùng. Việc phân loại cảm xúc này không dừng lại ở mức câu/đoạn/bình luận mà là phân loại cảm xúc người dùng trên từng khía cạnh của sản phẩm được nhắc đến trong câu/đoạn/bình luận. ABSA là một bài toán khó không chỉ bởi chúng ta thiếu dữ liệu gán nhãn để huấn luyện mô hình mà còn bởi vì tính không cấu trúc, nhiều ẩn dụ, từ “lóng”, và sai chính tả của dữ liệu mạng xã hội.
Chat bots
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 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.
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.
Kết luận
Tóm lại chat-bot, ứng dụng giám sát mạng xã hội, tổng đài trả lời tự động là một trong số những ứng dụng lớn của NLP trong thực tế. FPT.AI là một trong số ít đơn vị tiên phong cung cấp đầy đủ những ứng dụng NLP kể trên cho tiếng Việt. FPT.AI chat-bot là một trong những nền tảng miễn phí cho phép người không có chuyên môn tạo chat-bot của riêng mình trong một khoảng thời gian ngắn. Module nhận dạng ý định của người dùng và nhận diện tên thực thể của FPT.AI chat-bot là một trong những module có độ chính xác cao nhất hiện thời trên các tập dữ liệu tiếng Việt. Các dịch vụ khác như phân tích cảm xúc, phân tích khía cạnh cảm xúc, nhận dạng tiếng nói, văn bản sang tiếng nói được cung cấp như các API mở cho cộng đồng sử dụng. Chi tiết về các dịch vụ của FPT.AI có thể được tìm thấy ở địa chỉ https://fpt.ai/.
FPT.AI là nền tảng trí tuệ nhân tạo hàng đầu tại Việt Nam, được Tập đoàn FPT nghiên cứu, phát triển từ năm 2012 và triển khai tại nhiều đơn vị kinh doanh trong và ngoài nước. FPT.AI cung cấp nền tảng, nơi các lập trình viên và doanh nghiệp có thể phát triển các giải pháp giúp giải quyết nhiều bài toán cho doanh nghiệp. Ứng dụng của FPT.AI có thể kể đến như trợ lý ảo, chatbot, tổng đài chăm sóc khách hàng, nhận diện hình ảnh,… là chìa khóa giúp doanh nghiệp tự động hóa, tối ưu hóa vận hành – chăm sóc khách hàng và tăng cường hiệu quả kinh doanh. Ngày 18/4/2019 tới đây tại Thành phố Hồ Chí Minh sự kiện Insight FPT.AI sẽ được tổ chức nhằm mục đích chia sẻ về nền tảng FPT.AI dưới góc nhìn kinh doanh và dưới góc nhìn kỹ thuật.
Ngan Dong – FPT HO