Flutter: Понимание человеческого языка

это может быть немного необычный вопрос. Я реализовал голосовой ввод в своем приложении, и мне нужен какой-то механизм, который будет понимать семантику человеческого языка. Предположим, что строка содержит предложение, которое сказал пользователь.

Например, допустим, пользователь сказал «Выключите устройство». В этом случае я мог бы сделать что-то вроде этого:

      if(msg.contains("Turn off")){
   ...
}

Однако это не распространяется на другие случаи, например, если пользователь сказал «Выключите устройство» или другие языки.

Поэтому мне нужна какая-то библиотека/пакет, который может реализовать что-то вроде этого:

      if(LanguageParser.stringHasMeaning(msg, "Turn off")){
   ...
}

Есть ли какая-нибудь библиотека/пакет для достижения чего-то подобного во Flutter или вообще. Я знаю, что обнаружение не будет на 100% точным. Любое руководство приветствуется. Спасибо ^^

1 ответ

В итоге я последовал совету @paulsm4. Я использовал специальный сервер NLP (обработка естественного языка), чтобы проанализировать значение . В моем случае я использовал wit.ai, потому что он бесплатный и довольно простой в использовании.

wit.ai принимает ваше сообщение, и вы можете настроить намерения и объекты для извлечения данных из сообщения.

Допустим, ваше сообщение «включите»:

  1. Вы можете отправить это сообщение на серверную часть wit.ai следующим образом: https://api.wit.ai/message?q=turn%20on
  2. 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
            }
        ]
    }
}
  1. Вы можете проанализировать список намерений и выполнить желаемое действие на основе полученных намерений.
  2. Имейте в виду, что вам нужно настроить и обучить wit.ai на примерах, чтобы это работало. Однако есть некоторые встроенные намерения, такие как .

Что касается Flutter, я использовал стандартный пакет для выполнения запросов. Возможно, вы захотите выполнить некоторые локальные манипуляции со строками перед отправкой запроса.

Другие вопросы по тегам