用ANTLR进行浅层解析

用ANTLR进行浅层解析,antlr,Antlr,我正在尝试开发一种解决方案,能够在封闭的环境中提取某些动作 例如,在预订电影票的上下文中,如果用户说: “我想明天晚上去看电影,那是卡萨布兰卡,我想坐在最后一排,谢谢” 我设计了一些语法来获得电影的名字,想要的座位,放映的日期和时间等等 然而,尽管我考虑过使用ANTLR来开发这样的解决方案,但我不知道它是否有这样的功能,我的意思是,我是否可以定义几个根符号。ANTLR不太适合解析人类语言:它们太模糊了。试试看。下面是一个列表。ANTLR不适合解析人类语言:它们太模糊了。试试看。下面是一个列表。A

我正在尝试开发一种解决方案,能够在封闭的环境中提取某些动作

例如,在预订电影票的上下文中,如果用户说:

“我想明天晚上去看电影,那是卡萨布兰卡,我想坐在最后一排,谢谢”

我设计了一些语法来获得电影的名字,想要的座位,放映的日期和时间等等


然而,尽管我考虑过使用ANTLR来开发这样的解决方案,但我不知道它是否有这样的功能,我的意思是,我是否可以定义几个根符号。

ANTLR不太适合解析人类语言:它们太模糊了。试试看。下面是一个列表。

ANTLR不适合解析人类语言:它们太模糊了。试试看。下面是一个列表。

ANTLR有解决语法歧义的方法。这些方法在ANTLR 4中得到了改进,但在处理歧义语言(尤其是人类语言)时,您将面临一个巨大的限制,这将不可避免地使ANTLR不适合此任务:

ANTLR最终通过确定多个潜在选项中的一个特定选项是正确的解决方案来解决歧义。由于该解析发生在ANTLR解析过程的早期阶段,因此很难将语义逻辑纳入决策过程(与仅涉及语法的逻辑相反)


编辑:ANTLR4在NLP上下文中特别有趣的一件事是,ANTLR4使用A作为其解析器的基础。在那里的某个地方,我知道有可能修改它以用于自然语言处理,但到目前为止,我还没有弄清楚如何使它工作。参考:我开发了ANTLR 4运行时的版本,目前略落后于参考分支,但我将在今年夏天晚些时候赶上。

ANTLR有解决语法歧义的方法。这些方法在ANTLR 4中得到了改进,但在处理歧义语言(尤其是人类语言)时,您将面临一个巨大的限制,这将不可避免地使ANTLR不适合此任务:

ANTLR最终通过确定多个潜在选项中的一个特定选项是正确的解决方案来解决歧义。由于该解析发生在ANTLR解析过程的早期阶段,因此很难将语义逻辑纳入决策过程(与仅涉及语法的逻辑相反)


编辑:ANTLR4在NLP上下文中特别有趣的一件事是,ANTLR4使用A作为其解析器的基础。在那里的某个地方,我知道有可能修改它以用于自然语言处理,但到目前为止,我还没有弄清楚如何使它工作。参考:我开发了ANTLR 4运行时的版本,目前略落后于参考分支,但我将在今年夏天晚些时候赶上。

谢谢,我将看看这些替代方案。无论如何,有没有办法用ANTLR将某些动作识别成一个句子?@adsuar,“有没有办法用ANTLR将某些动作识别成一个句子?”,当然,NLP工具包会做得更好。这些工具包附带了语言的语法,你可以开箱即用:有了ANTLR,你需要编写自己的语法(这永远不会接近可靠地解析各种英语句子!)。就我所见,在你为我提供的软件列表中,几乎给出的每个软件都有一个重要的统计工作,通过语料库,我现在有一个很大的不足或语料库。这就是为什么我想知道ANTLR的浅层解析,因为我可以开发出捕捉某些概念的小语法。我不确定我可以用多少种不同的方式告诉你ANTLR不适合这个任务。。。我看你已经把心思放在了ANTLR上,希望得到确认。无论如何,走ANTLR的路!:)别担心。你说服了我,我放弃了。无论如何,我对ANTLR的浅层解析很感兴趣,据我所知,现在还不可能。谢谢,我会看看这些替代方案。无论如何,有没有办法用ANTLR将某些动作识别成一个句子?@adsuar,“有没有办法用ANTLR将某些动作识别成一个句子?”,当然,NLP工具包会做得更好。这些工具包附带了语言的语法,你可以开箱即用:有了ANTLR,你需要编写自己的语法(这永远不会接近可靠地解析各种英语句子!)。就我所见,在你为我提供的软件列表中,几乎给出的每个软件都有一个重要的统计工作,通过语料库,我现在有一个很大的不足或语料库。这就是为什么我想知道ANTLR的浅层解析,因为我可以开发出捕捉某些概念的小语法。我不确定我可以用多少种不同的方式告诉你ANTLR不适合这个任务。。。我看你已经把心思放在了ANTLR上,希望得到确认。无论如何,走ANTLR的路!:)别担心。你说服了我,我放弃了。无论如何,我对ANTLR的浅层解析很感兴趣,就我所见,现在还不可能。