在Haskell中是否有任何现成的词法分析解决方案,允许运行时动态词典?

Dou*_*hen 7 haskell nlp lexical-analysis alex

我正在研究一个小的Haskell项目,该项目需要能够将一小部分严格形成的英语用于令牌以进行语义分析.对于具有许多不同末端效应器的系统而言,它是一种非常天真的自然语言接口,而不是可以发出的命令.我目前正在使用Alex,但Alex依赖其词典进行静态编译.系统的性质使得世界上的末端效应器的数量甚至类型可以在编译之后增加和减少,因此我需要能够在运行时从词典中添加或移除可行的令牌.

我已经尝试过寻找动态lexing解决方案,而我最接近的是这款动态Lexer引擎,自2000年以来看起来并没有更新.

我一直在考虑一些技术,比如使用较低级别的方法(也许是Attoparsec),甚至为Alex配置重新编译钩子并将词法分析器与应用程序的其余部分分开.

这种词汇分析有哪些众所周知的解决方案?我打算最终通过自然语言处理为工作程序员工作,所以我可以采用一种不那么简化的方法,但目前基本的词法分析器是我需要的.

Don*_*art 4

CTK相当于秒差距,但用于词法分析。它支持动态添加新的组合器。