Flutter: Понимание человеческого языка
это может быть немного необычный вопрос. Я реализовал голосовой ввод в своем приложении, и мне нужен какой-то механизм, который будет понимать семантику человеческого языка. Предположим, что строка
Например, допустим, пользователь сказал «Выключите устройство». В этом случае я мог бы сделать что-то вроде этого:
if(msg.contains("Turn off")){
...
}
Однако это не распространяется на другие случаи, например, если пользователь сказал «Выключите устройство» или другие языки.
Поэтому мне нужна какая-то библиотека/пакет, который может реализовать что-то вроде этого:
if(LanguageParser.stringHasMeaning(msg, "Turn off")){
...
}
Есть ли какая-нибудь библиотека/пакет для достижения чего-то подобного во Flutter или вообще. Я знаю, что обнаружение не будет на 100% точным. Любое руководство приветствуется. Спасибо ^^
1 ответ
В итоге я последовал совету @paulsm4. Я использовал специальный сервер NLP (обработка естественного языка), чтобы проанализировать значение
wit.ai принимает ваше сообщение, и вы можете настроить намерения и объекты для извлечения данных из сообщения.
Допустим, ваше сообщение «включите»:
- Вы можете отправить это сообщение на серверную часть wit.ai следующим образом: https://api.wit.ai/message?q=turn%20on
- wit.ai возвращает что-то вроде этого:
{
"text": "turn on",
"intents": [
{
"id": "391529335929866",
"name": "turn_on",
"confidence": 0.9496
}
],
"entities": {},
"traits": {
"wit$on_off": [
{
"id": "53714d27-f6f6-43a0-ab93-1786e8cf6663",
"value": "on",
"confidence": 0.6317
}
]
}
}
- Вы можете проанализировать список намерений и выполнить желаемое действие на основе полученных намерений.
- Имейте в виду, что вам нужно настроить и обучить wit.ai на примерах, чтобы это работало. Однако есть некоторые встроенные намерения, такие как
.
Что касается Flutter, я использовал стандартный