- vừa được xem lúc

Natural Language Processing đã khiến cuộc sống thông minh hơn như thế nào? (Phần 2)

0 0 13

Người đăng: Lưu Phan

Theo Viblo Asia

Ở phần trước, mình đã chia sẻ về khái niệm NLP là gì và tình hình NLP trong những năm vừa qua, lý do tại sao mà NLP lại khiến mọi thứ trở nên thông minh đến như vậy.

Natural Language Processing đã khiến cuộc sống thông minh hơn như thế nào? (Phần 1)

Ở phần này, mình sẽ giải thích về cách NLP hoạt động trong smart assistant, làm thế nào mà NLP có thể làm được những điều đó.

Tại sao mình chỉ nói về Smart Assistant khi mà NLP có nhiều ứng dụng như vậy?

Như các bạn đã biết, Virtual Assistant đã thay đổi khái niệm về cuộc sống thông minh và nó khiến NLP trở nên gần gũi với con người hơn bao giờ hết.

Một mặt khác, Virtual Assistant giải quyết hầu hết các bài toán mà NLP đặt ra, bao gồm từ bước xử lý, thuật toán cho tới khi giao tiếp lại được với con người. Mình sẽ đi vào cụ thể những giai đoạn xử lý ngôn ngữ tự nhiên ở bên dưới.

1. Quy trình của một vấn đề xử lý ngôn ngữ tự nhiên NLP

Để giải quyết một bài toán NLP, thông thường sẽ có 2 quá trình: Xử lý dữ liệu và phát triển thuật toán

Xử lý dữ liệu bao gồm các công đoạn tiền xử lý các dữ liệu dạng text và cả dạng âm thanh, sau đó kết hợp thêm các dữ liệu đình kèm khác, bao gồm Part of speech để sẵn sàng đưa vào quá trình phát triển thuật toán

Phát triển thuật toán là quá trình mà ta huấn luyện các model bằng dữ liệu đã được xử lý trước đó thể thực hiện các công việc liên quan. từ đó máy tính có thể hiểu ngôn ngữ mà thực hiện những điều chúng ta muốn

Sau đây, cùng mình đi vào từng phần để hiểu rõ từng quá trình hoạt động ra sao nhé.

2. Xử lý dữ liệu -- Data Processing

Speech to text / Text to speech

Đối với virtual assistant nói riêng hay các bài toán NLP nói chung, ta đều cần phải đi qua bước xử lý dữ liệu. Cụ thể, quá trình này bao gồm việc VA thu thập và xử lý dữ liệu âm thanh từ người dùng. Âm thanh sau khi đã xử lý và lọc nhiễu sẽ được đưa vào mô hình Speech to Text để nhận được dạng text của dữ liệu đầu vào. Một mặt khác, ta cũng cần phải thực hiện quá trình tổng hợp tiếng nói Text to speech để VA có thể giao tiếp ngược lại với người sử dụng.

Speech to text

Tokenizer

Kế tiếp là việc tách đoạn text của chúng ta ra làm các đơn vị ngôn ngữ nhỏ hơn, gọi là tokenizer, trong tiếng anh, mỗi một tokenizer là một từ, ví dụ như student, worker,... nhưng trong tiếng việt thì khác, mỗi chữ là một tiếng, và một từ có thể bao gồm nhiều tiếng khác nhau. Vì vậy, việc tokenize text trong tiếng việt sẽ khó khăn hơn một chút, tuy nhiên, mô hình tokenizer không quá phức tạp và sẽ dễ dàng hoạt động tốt khi lượng corpus của chúng ta đủ lớn.

Part of speech

Part of speech tagging (hay POS tagging) là giai đoạn khi ta đưa các token đã được xử lý trước đó vào để khác định loại từ của token tương ứng là động từ, danh từ, phó từ,.... Việc này tuy có vẻ khó hiểu nhưng nó sẽ tạo ra một lượng thông tin nhất định cho việc máy tính hiểu được ý nghĩa câu nói, hay cụ thể là NER ở phần sau.

POS tagging

Lúc này, data của chúng ta đã sẵn sàng để đưa vào mô hình ngôn ngữ để hiểu được hành động mà con người yêu cầu.

3. Phát triển thuật toán NLP -- Algorithm development

Named-entities recognition

NER là quá trình trích xuất các thực thể được đặt tên từ text, để dễ dàng hiểu được cách NER hoạt động, hãy xem ví dụ bên dưới:

NER

Khi ta đưa vào một câu nói "Ê google, bật giùm vợ tôi cái đèn phòng khách", NER sẽ giúp cho máy tính xác định đâu là các chủ thể hay đối tượng được nhắc tới trong câu nói. Ví dụ Vợ:PERSON, Bật:ACTION,... những loại thực thể này được mô hình quy định trước, dựa trên dữ liệu đã train ra mô hình NER tương ứng

Chunking

Chunking giúp ta xác định được mối quan hệ giữa các thành phần trong ngôn ngữ, có thể hiểu đơn giản là xác định chủ ngữ, vị ngữ, bổ ngữ và mỗi liên hệ giữa các thành phần này trong câu. Như ví dụ bên dưới, hành động Bật sẽ có đối được là Cái đèn, và cái đèn sẽ có thuộc tính là Phòng khách,... (Lúc này, VA sẽ hiểu là mình muốn bật cái đèn chứ không phải bật con vợ)

Phrase

một ví dụ khác về chunking trong tiếng anh

Việc xác định các mối liên hệ này cho máy tính một hiểu biết về câu nói, từ đó nó có thể thiết lập nên một hệ thống kiến thức, gọi là knowledge graph. Knowledge graph là cách mà máy tính mô phỏng lại cái gọi là trí nhớ/hiểu biết/kiến thức của con người.

Trích xuất thông tin -- Information extraction

Từ việc ghi nhận và phân tích câu nói, lúc này, máy tính cần xác định yêu cầu của con người và chuyển đổi thành hành động, hành động này có thể được thực hiện bằng cách chuyển câu nói thành dạng mệnh lệnh có cấu trúc như bên dưới. Sau đó, mệnh lệnh này sẽ được VA chuyển đi bằng các phương thức hoặc API khác nhau dựa trên hành động tương ứng. Ví dụ mệnh lệnh bật đèn sẽ được xử lý và gửi tới thiết bị điều khiển đèn thông qua wifi.

Tổng kết

Và đó là toàn bộ quá trình mà VA hoạt động để có thể hiểu và hành động theo ý người dùng. Với sự phát triển nhanh chóng của NLP, không biết liệu tương lai những trợ lý ảo này còn có thể thông minh đến mức nào. Hãy comment bên dưới nhé.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tấn công và phòng thủ bậc nhất cực mạnh cho các mô hình học máy

tấn công bậc nhất cực mạnh = universal first-order adversary. Update: Bleeding edge của CleverHans đã lên từ 3.1.0 đến 4.

0 0 28

- vừa được xem lúc

[Deep Learning] Key Information Extraction from document using Graph Convolution Network - Bài toán trích rút thông tin từ hóa đơn với Graph Convolution Network

Các nội dung sẽ được đề cập trong bài blog lần này. . Tổng quan về GNN, GCN. Bài toán Key Information Extraction, trích rút thông tin trong văn bản từ ảnh.

0 0 204

- vừa được xem lúc

Trích xuất thông tin bảng biểu cực đơn giản với OpenCV

Trong thời điểm nhà nước đang thúc đẩy mạnh mẽ quá trình chuyển đổi số như hiện nay, Document Understanding nói chung cũng như Table Extraction nói riêng đang trở thành một trong những lĩnh vực được quan tâm phát triển và chú trọng hàng đầu. Vậy Table Extraction là gì? Document Understanding là cái

0 0 216

- vừa được xem lúc

Con đường AI của tôi

Gần đây, khá nhiều bạn nhắn tin hỏi mình những câu hỏi đại loại như: có nên học AI, bắt đầu học AI như nào, làm sao tự học cho đúng, cho nhanh, học không bị nản, lộ trình học AI như nào... Sau nhiều lần trả lời, mình nghĩ rằng nên viết hẳn một bài để trả lời chi tiết hơn, cũng như để các bạn sau này

0 0 137

- vừa được xem lúc

[B5'] Smooth Adversarial Training

Đây là một bài trong series Báo khoa học trong vòng 5 phút. Được viết bởi Xie et. al, John Hopkins University, trong khi đang intern tại Google. Hiện vẫn là preprint do bị reject tại ICLR 2021.

0 0 32

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 124