编辑:道歉,如果这不是这类问题的适当空间 . 如果你能指点一个更好的论坛,我将不胜感激

我正在手动将NLP规则应用于聊天机器人 .

目前,我有一套简单的规则 - 遵循某些触发词的动作 .
例如: "Create the match on saturday."

这已经适用于相对简单的短语,如上面的例子,我希望像"create"这样的单词并将其指定为 action 单词,期望"match"然后将其指定为 object 实体; "saturday"作为 time

当我尝试扩展机器人可以处理的范围时,它变得更加复杂 . 这是我正在尝试处理的一个例子:

"Update the memo title of the match on saturday to 'Game Day'."

我不确定如何前进 .

我考虑手动扩展(期待)实体,然后尝试一种我仍在解析 action 单词的方法,但如果传递了某个不同的阈值 objects ,那么我执行该 action 的一个子集 .

例如: update 显然会发出一个动作信号,但添加"memo","title","'Game day'"表示动作的一个子集,因为这比一个更简单的"create match"更多 . 然后,针对预定的一组实体检查其他对象(如"title")会将意图缩小到 update title .

我看到这个逻辑中有很多漏洞,尤其是因为复杂性甚至略有增加 .

这使我进入了依赖解析领域 .
但是看着dep . 解析,我想知道这是否在手动实现中是可行的 .

我将使用python代码,它不会深入学习 .

您如何看待我概述的基于规则的基本方法?对于特定于域的机器人来说,这听起来是否可行?

我是否应该考虑使用Python提供的NLP库,如NLTK或spaCy并使用它们的功能?我对使用这些功能(例如spaCy的依赖性解析器)的担心是它太过分了,或者处理我的域特定任务的复杂性增加了太多 . 此外,可能因为我还没有看到在另一个项目中有效使用它,我想我怀疑学术界或研究之外的依赖解析器的实用性 .

编辑:道歉,如果这不是这类问题的适当空间 . 如果你能指出我正确的方向,我将不胜感激