首页 文章

使用ChatBot订购电影票

提问于
浏览
5

我的问题与我刚刚开始研究的项目有关,而且它是一个ChatBot .

我想要构建的机器人有一个非常简单的任务 . 它必须自动化购买电影票的过程 . 这是非常接近的域,并且机器人具有对影院数据库的所有必需访问权 . 当然,如果用户消息与订购电影票的过程无关,那么机器人可以像“我不知道”那样回答 .

我已经创建了一个简单的演示,只是为了向少数人展示它,看看他们是否对这样的产品感兴趣 . 该演示使用简单的DFA方法和一些简单的文本匹配与词干 . 我在一天内入侵了它,结果发现用户对他们能够成功订购他们想要的门票感到印象深刻 . (该演示使用与影院数据库的连接,为用户提供所需的所有信息,以便订购他们想要的门票) .

我目前的目标是创建下一个版本,一个更高级的版本,特别是在自然语言理解方面 . 例如,演示版本要求用户在单个消息中仅提供一个信息,并且无法识别它们是否提供了更多相关信息(例如电影 Headers 和时间) . 我读到这里有用的技术称为“帧和插槽语义”,它看起来很有希望,但我还没有找到有关如何使用这种方法的任何细节 .

而且,我不知道哪种方法最适合改善自然语言理解 . 在大多数情况下,我认为:

  • 使用“标准”NLP技术以更好地理解用户消息 . 例如,同义词数据库,拼写纠正,词性标签,训练一些基于统计的分类器来捕捉相似性和单词之间的其他关系(或者如果可能的话,在整个句子之间?)等 .

  • 使用AIML为会话流建模 . 我不确定在这样一个封闭的领域中使用AIML是否是个好主意 . 我从来没用过它,所以这就是我要问的原因 .

  • 使用更“现代”的方法并使用神经网络训练分类器以进行用户消息分类 . 但是,它可能需要大量标记数据

  • 我不知道的任何其他方法?

Which approach is the most suitable for my goal?

Do you know where I can find more resources about how does “Frame and slot semantics” work in details? 在谈论帧和插槽方法时,我指的是PDF from Stanford .

1 回答

  • 0

    问题相当广泛,但这里有一些想法和实用建议,基于NLP和基于文本的机器学习在类似问题领域的经验 .

    我假设虽然这是聊天机器人的“更高级”版本,但可行的工作范围非常有限 . 在我看来,这是一个非常重要的因素,因为不同的方法在使它们工作所需的手工工作量和类型上存在很大差异,而且最先进的技术可能在这里很难实现 .

    通常,要考虑的两种主要方法是基于规则和统计 . 第一个传统上更侧重于模式匹配,并且在您描述的设置中(可以投入有限的努力),将涉及手动处理规则和/或模式 . 这种方法的一个例子是使用一组封闭(但很大)的模板来匹配用户输入(例如使用正则表达式) . 这种方法在性能方面通常具有“玻璃天花板”,但可以相对快速地产生相当好的结果 .

    统计方法更多的是为一些ML算法提供一堆数据并让它从中提取规律性,将手动工作集中在收集和标记好的训练集上 . 在我看来,为了获得“足够好”的结果,您需要的数据量可能非常大,除非您能够想出一种方法来轻松收集大量至少部分标记的数据 .

    Practically 我建议在这里考虑混合方法 . 使用一些基于ML的统计通用工具从用户输入中提取信息,然后应用手动构建的规则/模板 . 例如,您可以使用Google的Parsey McParseface进行语法分析,然后对结果应用一些规则引擎,例如:将动词与"buy"之类的可能动作列表相匹配,使用提取的语法关系来查找电影名称的候选者等 . 这应该可以快速获得相当好的结果,因为语法分析器的强度将允许"understanding"甚至精心设计令人困惑的句子 .

    我还建议推迟你想要做的一些元素,比如拼写纠正,甚至是词干和同义词DB--因为问题相对封闭,你可能会有更好的投资于规则/模板框架的投资回报率和手动规则创建 . 此建议也适用于对话流的显式建模 .

相关问题