Làm thế nào để nhận biết ý định của người khác làm việc?


11

Alexa của Amazon , Nuance's Mix và Facebook của Wit.ai đều sử dụng một hệ thống tương tự để chỉ định cách chuyển đổi lệnh văn bản thành mục đích - tức là điều mà máy tính sẽ hiểu. Tôi không chắc tên "chính thức" cho cái này là gì nhưng tôi gọi nó là "nhận biết ý định". Về cơ bản là một cách để đi từ "vui lòng đặt đèn của tôi thành độ sáng 50%" thành lights.setBrightness(0.50).

Cách chúng được chỉ định là bằng cách nhà phát triển cung cấp danh sách "các cách nói mẫu" được liên kết với một mục đích và được gắn thẻ tùy chọn với các vị trí của "thực thể" (về cơ bản là các tham số). Đây là một ví dụ từ Wit.ai:

ví dụ wit.ai

Câu hỏi của tôi là: làm thế nào để các hệ thống này hoạt động? Vì tất cả chúng đều rất giống nhau, tôi cho rằng có một số công việc tinh dịch mà tất cả chúng đều sử dụng. Có ai biết nó là gì?

Thật thú vị Houndify sử dụng một hệ thống khác giống như regexes : ["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]. Tôi cho rằng điều đó được tích hợp vào tìm kiếm chùm của hệ thống nhận dạng giọng nói của họ, trong khi Alexa, Wit.ai và Mix dường như có các hệ thống Speech-> Text và Text-> Intent riêng biệt.

Chỉnh sửa: Tôi tìm thấy một điểm khởi đầu - Một cơ chế cho sự tương tác giữa người và robot thông qua các lệnh thoại không chính thức . Nó sử dụng một cái gì đó gọi là Phân tích ngữ nghĩa tiềm ẩn để so sánh các cách nói. Tôi sẽ đọc lên về điều đó. Ít nhất nó đã cho tôi một điểm khởi đầu trong mạng trích dẫn.

Chỉnh sửa 2: LSA về cơ bản là so sánh các từ được sử dụng (Bag of Words) trong mỗi đoạn văn bản. Tôi không thấy làm thế nào nó có thể hoạt động rất tốt trong trường hợp này vì nó hoàn toàn mất trật tự từ. Mặc dù có lẽ trật tự từ không quan trọng lắm đối với các loại lệnh này.

Chỉnh sửa 3: Chủ đề ẩn Các mô hình Markov trông có vẻ thú vị.


Bài đăng này giải thích phân loại ý định một cách chi tiết: mrbot.ai/blog/natural-lingu- Processing / từ
znat

Điều này dường như sử dụng phương pháp "túi từ" mà tôi đã đề cập trong câu hỏi của mình. Về cơ bản chỉ cần thêm các vectơ từ trong câu. Đó không thể là cách nó hoạt động mặc dù. Giao diện của Wit và Nuance cho thấy rằng họ nhận ra các thực thể mà túi từ không thể dễ dàng thực hiện. Ngoài ra, các từ bị mất tất cả các đơn đặt hàng, vì vậy, một cái gì đó như "Đặt báo thức cho 10 giờ 5 phút" sẽ không thể phân biệt được với "Đặt báo thức cho 5 giờ 10". Phải có một cái gì đó nhiều hơn đang diễn ra.
Timmmm

Khai thác thực thể là một vấn đề khác trong đó trình tự quan trọng. Nếu bạn có nhiều dữ liệu, Rnn sẽ hoạt động, trong các bộ dữ liệu nhỏ hơn, thường xuyên xuất hiện trong các chatbot, các trường ngẫu nhiên có điều kiện hoạt động rất tốt
znat

Ok, vì vậy ... Tôi đang tìm kiếm một câu trả lời chi tiết hơn là "một RNN sẽ hoạt động". Hầu hết các hệ thống học tập trình tự hiện đại sử dụng RNNs có vẻ như đã cho.
Timmmm

ý định là về ý nghĩa chung của các câu (avg của vectơ) và các thực thể là về việc học bối cảnh (các từ xung quanh) trong đó chúng xuất hiện. Rnn hoặc CRF chỉ là các thuật toán có thể được sử dụng vì chúng học từ các chuỗi. Nếu bạn muốn tìm hiểu chi tiết, hãy xem mã nguồn Rasa
znat

Câu trả lời:


4

Mặc dù không trực tiếp trả lời câu hỏi của bạn, bạn có thể quan tâm đến lĩnh vực trả lời câu hỏi tự động . Để trả lời các câu hỏi văn bản ngôn ngữ tự nhiên, trước tiên chúng phải được hiểu, trùng với vấn đề của bạn.

Một nguồn tài nguyên tốt là khóa học của Jurafsky và Manning . Đặc biệt các phần về ngữ nghĩa và trả lời câu hỏi có thể giúp với những gì bạn đang tìm kiếm. Có các video bài giảng kèm theo có sẵn trên youtube ở đây .


Tôi thấy phần đầu tiên của câu trả lời của bạn rất buồn cười nhưng nhiều thông tin.
Diego

Có lẽ điều này sẽ tốt hơn khi nhận xét vì, như bạn thừa nhận, nó không trả lời câu hỏi.
kbrose

2

Bài này có một cách tiếp cận. Về cơ bản họ sử dụng túi từ - họ chuyển đổi các từ thành các vectơ thưa thớt và sau đó thêm chúng lên.

Nó có vẻ hoạt động khá tốt nhưng một lỗ hổng lớn là câu trả lời không phụ thuộc vào trật tự từ, vì vậy bạn không thể thực hiện các truy vấn như "Bao nhiêu kg trong một pound" trừ khi bạn đặc biệt sử dụng chúng.

Tuy nhiên tôi đã nhắn tin với Alexa và nó khá nhạy cảm với những thay đổi trật tự từ nên có thể họ sử dụng một cái gì đó tương tự.


Tò mò - những vectơ thưa thớt có lợi thế gì so với Naive Bayesian? Cả hai tôi đều giải quyết các vấn đề có thể phân tách tuyến tính với giả định túi lời nói ngây thơ
Angad
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.