V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bruce00
V2EX  ›  自然语言处理

有将自然语言转为对应命令的服务或开源项目吗

  •  
  •   bruce00 · 2019-05-17 10:33:52 +08:00 · 21337 次点击
    这是一个创建于 2015 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是能把接收到的自然语言处理为命令库中对应的命令。 比如 “帮我搜一下 XXXX ” 和 “ XXXX 是什么意思” 处理为同一个命令,当然 “ XXXX ” 是作为命令的参数

    6 条回复    2019-10-31 16:35:31 +08:00
    TimePPT
        1
    TimePPT  
       2019-05-17 12:04:38 +08:00   ❤️ 1
    这种特异性需求通常需要自己按照需求对 NLP 模型进行训练。
    现在市面上的流行架构是对自然语句做 NLU (语义理解),确定 intent (意图),并对意图涉及到的 Slot (槽位)进行抽取确定,之后对 slot value 做 normalize (标准化),生成标准请求字段请求下游资源,返回结果后进行结构化展示或者再 NLG (自然语言生成)到 answer
    上面是提供思路,有没有轮子就不知道了。
    bruce00
        2
    bruce00  
    OP
       2019-05-17 12:37:00 +08:00
    @TimePPT 就是感觉学习成本比较高,有可以直接用的就好了,没有的话也只有慢慢学习了。
    TimePPT
        3
    TimePPT  
       2019-05-17 13:32:44 +08:00   ❤️ 1
    @bruce00 因为需求特异吧,市面上轮子比较多的是一些生活查询类的 bot,比如查个天气啥的,查 man page 这种估计也就程序猿用的多吧 233
    其实这个好的一点是一般 man page 都是索引好的,下游资源不用太多处理,麻烦就麻烦在 NLU 这块,intent 要有数据训练分类器(如果仅仅是一个 domain 直接上过滤器就好),slot 抽取这块也比较麻烦。句式的支持上多样性越高对 NLU 的要求就越高,如果仅仅一种或者有限的几种句式的话可以试试自定义 Pattern 解决。
    TimePPT
        4
    TimePPT  
       2019-05-17 13:36:08 +08:00   ❤️ 1
    @bruce00 还有就是内容相同或者相似判断,比如你问 参数 a 是什么意思,有可能下游会有多个命令参数都带 a,怎么确定问的是哪个?
    一般这种就涉及多轮询问确定完整意图了,简单的可以用一次检索返回结果后给一个 list 进行选取,复杂的可能就要反问确定。涉及多轮交互的,就有一个对话 session 管理的问题在里面了。

    市面上应该有开源或者封装好的简单 chatbot,支持自定义那种,自己改改也许也能用。
    bruce00
        5
    bruce00  
    OP
       2019-05-17 16:38:56 +08:00
    @TimePPT 感谢耐心科普,我现在对于识别不了的消息就是手动在数据库中标记对应命令;对话管理建立之后会轻松些,能做到即时学习;文本相似应该也能解决一部分。其它的处理方法就需要继续学习了
    RingoTC
        6
    RingoTC  
       2019-10-31 16:35:31 +08:00
    可以了解一下追一科技发起的 NL2SQL 比赛,现在比赛结束了,高分方案也都分享了出来。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3379 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:56 · PVG 18:56 · LAX 02:56 · JFK 05:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.