20

Tôi muốn viết một chương trình để đặt câu hỏi về thời tiết. Các thuật toán và kỹ thuật tôi nên bắt đầu xem xét là gì.Cách tiếp tục với nhiệm vụ NLP để nhận ra mục đích và vị trí

ví dụ: Sẽ có nắng vào cuối tuần này ở Chicago. Tôi muốn biết mục đích = truy vấn thời tiết, ngày = cuối tuần này, vị trí = chicago.

Người dùng có thể thể hiện cùng một truy vấn dưới nhiều hình thức.

Tôi muốn giải quyết một số biểu mẫu bị ràng buộc và tìm kiếm ý tưởng về cách bắt đầu. Giải pháp cần phải đủ tốt.

Trả lời

24

Vì đầu vào của bạn ở dạng ngôn ngữ tự nhiên, cách tốt nhất để bắt đầu xem xét nó, trước tiên bằng cách phân tích cấu trúc câu. và chạy câu thông qua NER (Công cụ nhận dạng đối tượng được đặt tên).

Phân tích cú pháp câu cho phép bạn đưa ra các quy tắc như, một số loại phụ thuộc nhất định luôn cung cấp cho bạn ý định. Chạy NER sẽ cho phép bạn xác định địa điểm và ngày tháng. Nếu nó không đơn giản để đưa ra các quy tắc để phân loại ý định, bạn cũng có thể sử dụng một trình phân loại để làm tương tự bằng cách sử dụng vector đặc trưng được xây dựng từ câu đầu vào. Trong thực tế, một số trình phân tích cú pháp có thể đi vào xây dựng vectơ đặc trưng.

Đối với cả hai có tồn tại phần mềm từ Stanford NLP Group

Có thể bạn có thể nhìn vào:

Khi bạn phân tích cú pháp câu, bạn có ý định và khác thông tin yêu cầu trả lời câu hỏi.

Ví dụ: Tôi đã nhận câu của bạn "Sẽ có nắng vào cuối tuần này ở Chicago". và chạy qua Online Stanford NER Tagger. Mà đã cho tôi những điều sau đây:

Will it be sunny this <DATE>weekend</DATE> in <LOCATION>Chicago</LOCATION> 

Bây giờ bạn đã xác định ngày và địa điểm.

Tôi hy vọng điều này sẽ hữu ích. Tôi biết câu trả lời là khá chung chung, và có thể hữu ích trong việc bắt đầu.

+0

cảm ơn bạn đã sử dụng tiếng Anh đơn giản! đã giúp tôi rất nhiều! –

+0

Điểm xuất phát tuyệt vời. Mặc dù tôi thực sự quan tâm đến các đầu vào ngôn ngữ không tự nhiên (hành động, sự kiện, chuỗi, đối tượng) ... và làm như vậy mà không có phỏng đoán. –

+2

Dựa trên các giải thích được tìm thấy trong bài đăng này, nó xuất hiện ý định đó là một sản phẩm của phân tích NLU. Nhưng phải có ghi nhãn ý định ở đâu đó trong tiến trình trước khi trình phân tích cú pháp có thể phân loại ý định đó. Bất kỳ ý tưởng cho dù ghi nhãn là một quá trình thủ công, hoặc nó có thể thực sự được tự động hoàn toàn thông qua một số kiến ​​thức ngôn ngữ? – bhomass

10

Tôi nghĩ rằng api này chính xác là những gì bạn đang tìm kiếm. Thật dễ dàng và tuyệt vời để sử dụng.

https://wit.ai/

3

Bên cạnh đó, https://www.luis.ai/ là một thực hiện tốt một khung NLP. Họ có một API cũng như một SDK nuget. Chúng tôi đã sử dụng chúng một lúc rồi. Họ đã rẻ hơn so với các tùy chọn khác mà chúng tôi đã xem xét. tức là wit.ai.

Vì vậy, lại ví dụ của bạn -

ví dụ: nó sẽ có nắng vào cuối tuần này ở Chicago -> sẽ lập bản đồ đến một ý định LUIS gọi WeatherQuery. ngày -> sẽ ánh xạ tới thực thể ngày giờ LUIS được xây dựng trước vị trí -> chicago -> sẽ ánh xạ tới thực thể LUIS được xây dựng trước -> địa lý hoặc địa chỉ mà tôi nghĩ.

Các vấn đề liên quan