如何为聊天机器人实现语法分析器?

How to implement a syntax analyzer for a chatbot?

实际上,我正在尝试使用 python 在 slack 中制作一个用于信息检索目的的简单聊天机器人,并且我想出了一个用于 synatx 检查的上下文无关语法 (CFG)。现在我有了一个语法,我想为这个语法创建一个解析 table/ 解析树来验证我的输入字符串。如果您能让我知道一些可以帮助我实现解析器来为我的聊天机器人执行语法检查的库/链接/材料,那将非常有帮助。

感谢任何帮助。谢谢。

如果您已经编写了上下文无关文法,则可以使用 NLTK 的 ChartParser 来解析任何输入,如下所述:http://www.nltk.org/book/ch08.html

但是,我认为手写语法不够健壮,无法处理用户可能编写的大量变体。由于性能不佳,这些在几十年前就已经过时了,在选区解析中,人们宁愿使用树库来生成语法。

根据你想要存档的具体内容,我建议你也看看依赖解析器,例如来自 spaCy。它们速度更快,让您可以轻松地从句子的谓词导航到它的主语和宾语。