Text 开源的基于规则的模式匹配/信息提取框架?

Text 开源的基于规则的模式匹配/信息提取框架?,text,open-source,nlp,named,information-extraction,Text,Open Source,Nlp,Named,Information Extraction,我正在寻找一个开源框架,用于编写自然语言语法规则,以便在注释上进行模式匹配。您可以将其视为regexp,但在标记级别而不是字符级别进行匹配。这样的框架应该允许匹配条件引用附加到输入标记或范围的其他属性,并在操作中修改这些属性 我知道有三个选项符合此描述: () * 目前还有其他类似的选项吗? 相关工具 虽然我知道像这样的通用解析器生成器也可以达到这一目的,但我正在寻找更专门为自然语言处理或信息提取定制的东西 包括一个插件,用于在XML中声明规则,但似乎是在字符而不是高级对象上操作 我知

我正在寻找一个开源框架,用于编写自然语言语法规则,以便在注释上进行模式匹配。您可以将其视为regexp,但在标记级别而不是字符级别进行匹配。这样的框架应该允许匹配条件引用附加到输入标记或范围的其他属性,并在操作中修改这些属性

我知道有三个选项符合此描述:

  • ()
  • *
目前还有其他类似的选项吗?

相关工具

  • 虽然我知道像这样的通用解析器生成器也可以达到这一目的,但我正在寻找更专门为自然语言处理或信息提取定制的东西
  • 包括一个插件,用于在XML中声明规则,但似乎是在字符而不是高级对象上操作
  • 我知道这类任务通常是通过统计模型来完成的,但是对于狭窄的、结构化的领域来说,手工制定规则是有好处的

*使用GExp,“规则”实际上是在代码中实现的,但由于选项太少,我选择将其包括在内。

您也可以检查HTQL。它支持标记的正则表达式搜索。从美国地址搜索州和邮政编码的示例如下:

a=htql.RegEx(); 
a.setNameSet('states', states);
a.reSearchList(address.split(), r"&[ws:states]<,>?<\d{5}>", case=False) 
a=htql.RegEx();
a、 setNameSet('states',states);
a、 reSearchList(address.split(),r“&[ws:states]?”,case=False)

东巴黎大学的法国学术软件Unitex也符合您的描述()

基于C++的,包含20个可选语言的预处理规则和词典。


GUI是基于图形的(您可以设计自动机,即“语法”)。

似乎是UIMA的JAPE等价物。但是我自己没有用过。谢谢,这是列表中的一个很好的补充。Ruta(以前的TextMarker)有一个很好的教程,让它试试文本工程的通用Arch-一个用于文本处理的全生命周期开源解决方案