Closed. 这个问题正在寻求书籍、工具、软件库等的推荐。不满足堆栈溢出指南 /help/closed-questions 。目前不接受答案。
我正在购买一个开源框架,用于编写自然语言语法规则,以通过注释进行模式匹配。您可以将其视为正则表达式,但在标记而不是字符级别进行匹配。这样的框架应该使匹配标准能够引用附加到输入标记或跨度的其他属性,以及在操作中修改此类属性。
我知道三个选项符合此描述:
GATE 基于注释的 Java 表达式 (JAPE) http://gate.ac.uk/sale/tao/splitch8.html#chap%3ajape
斯坦福 CoreNLP 的 TokensRegex http://nlp.stanford.edu/software/tokensregex.shtml#Mail
UIMA http://uima.apache.org/ Ruta http://uima.apache.org/ruta.html (Tutorial http://uima.apache.org/gscl13.html#gscl.tutorial )
图表达式 (GExp) http://code.google.com/p/graph-expression/ *
目前还有其他类似的选择吗?
相关工具
虽然我知道一般的解析器生成器像Antlr http://www.antlr.org/ 也可以达到这个目的,我正在寻找更适合自然语言处理或信息提取的东西。
UIMA http://uima.apache.org/ 包括一个正则表达式注释器 http://uima.apache.org/d/uima-addons-current/RegularExpressionAnnotator/RegexAnnotatorUserGuide.html 用于在 XML 中声明规则的插件,但似乎是在字符而不是高级对象上操作。
我知道这种任务通常是通过统计模型来执行的,但对于狭窄的结构化领域,手工制定规则是有好处的。
* 对于 GExp,“规则”实际上是在代码中实现的,但由于选项太少,我选择包含它。
您还可以检查 HTQL。它支持标记的正则表达式搜索。从美国地址搜索州和邮政编码的示例是:
a=htql.RegEx();
a.setNameSet('states', states);
a.reSearchList(address.split(), r"&[ws:states]<,>?<\d{5}>", case=False)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)