Flutter:理解人类语言

Flutter: Understanding human language

这可能是一个不寻常的问题。我已经在我的应用程序中实现了语音输入,我需要某种能够理解人类语言语义的机制。假设字符串 msg 包含用户说的句子。

例如,假设用户说“关闭设备”。 在这种情况下,我可以这样做:

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

但是,这不包括其他情况,例如用户说“关闭设备电源”或其他语言。

所以我需要某种 library/package 可以完成这样的事情:

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

有没有 library/package 可以在 Flutter 或一般情况下实现类似的东西。我知道检测不会 100% 准确。任何指导表示赞赏。谢谢^^

我最终听从了@paulsm4 的建议。我使用专用的 NLP(自然语言处理)后端来解析 msg 的含义。在我的例子中,我使用了 wit.ai,因为它是免费的,而且使用起来非常简单。

wit.ai 获取您的消息,您可以配置意图和实体以从消息中提取数据。

假设您的消息是“开启”:

  1. 您可以像这样将消息发送到 wit.ai 后端:https://api.wit.ai/message?q=turn%20on
  2. wit.ai returns 像这样:
{
    "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 才能正常工作。然而,有一些内置的意图,如 turn_on.

至于 Flutter,我使用标准 http 包来发出请求。您可能希望在发送请求之前进行一些本地字符串操作。