Подтвердить что ты не робот

Как выполнить задачу NLP для распознавания намерений и слотов

Я хотел написать программу для вопросов о погоде. Какие алгоритмы и методы я должен начать смотреть.

ex: Будет ли солнечно в эти выходные в Чикаго. Я хотел узнать цель= погодный запрос, date= в эти выходные, location= chicago.

Пользователь может выражать один и тот же запрос во многих формах.

Я хотел бы решить некоторую ограниченную форму и искать идеи о том, как начать работу. Решение должно быть достаточно хорошим.

4b9b3361

Ответ 1

Так как ваш вход находится в форме естественного языка, лучший способ начать изучать его, сначала проанализируйте структуру предложения. и запускать предложение через NER (Named Entity Recognizer).

Разбор предложения позволяет вам придумать такие правила, как определенные типы зависимостей всегда дают вам намерение. Запуск NER позволит вам определить места и даты. Если не просто придумать правила для классификации намерения, вы можете также использовать классификатор, чтобы сделать то же самое, используя вектор функций, сформулированный из входного предложения. Фактически, некоторые из парсеров могут входить в формулировку вектор-функции.

Для обоих существует программное обеспечение из Stanford NLP Group

Возможно, вы можете посмотреть:

После того, как вы разобрали предложение, у вас есть намерение и другая информация, чтобы ответить на вопрос.

Ех: Я принял ваше предложение: "Будет ли солнечно в эти выходные в Чикаго". и пропустил его через Online Stanford NER Tagger. Который дал мне следующее:

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

Теперь вы определили дату и местоположение.

Надеюсь, это поможет. Я знаю, что ответ довольно общий, и может быть полезным только в начале.

Ответ 2

Я думаю, что это api именно то, что вы ищете. Это просто и удобно использовать.

https://wit.ai/

Ответ 3

Кроме того, https://www.luis.ai/ является хорошей реализацией структуры NLP. Они имеют API, а также SDK для nuget. Мы используем их некоторое время. Они были дешевле, чем другие варианты, на которые мы смотрели. т.е. wit.ai.

Итак, ваш пример -

ex: Будет ли солнечно в этот уик-энд в Чикаго → будет отображаться объект LUIS, названный WeatherQuery. date → будет сопоставляться с предварительно созданной сущностью LUIS dateTime местоположение → chicago → будет сопоставляться с предварительно созданной сущностью LUIS → географией или адресом, который я думаю.