3

我可能需要为 OpenNLP 创建一个自定义训练集,这需要我手动注释很多条目。

为了让事情变得更容易,GUI 解决方案可能是最好的主意(手动编写注释标签并不酷),而且我刚刚发现了 BRAT,它看起来像我需要的。

BRAT 可以导出带注释的文件 (.ann),但我在OpenNLP 的手册中没有找到对此文件类型的任何引用,我不确定这是否可行。

我想做的是从 BRAT 导出这个带注释的文件,并用它来训练 OpenNLP 的模型,我真的不在乎它是否可以使用代码或 CLI 来完成。

有人可以指出我正确的方向吗?

4

1 回答 1

2

OpenNLP 原生支持 BRAT 格式,用于名称查找器的训练和评估。目前不支持其他组件。添加对其他组件的支持可能并不困难,如果您有兴趣,您应该在 opennlp-dev 列表中请求它。

CLI 可以用来训练一个带有 brat 的模型,这里的命令会告诉你用法:

  • bin/opennlp TokenNameFinderTrainer.brat

以下参数是训练模型所必需的:

  • bratDataDir 这应该指向包含您的 .ann 和 .txt 文件的文件夹
  • annotationConfig 这必须指向 brat 用于注释项目的配置文件
  • lang 文本文档的语言(例如 en)
  • model 创建的模型文件的名称

Name Finder 需要将其输入切割成句子和标记。默认情况下,它假定每行一个句子并应用空格标记化。可以使用 ruleBasedTokenizer 或 tokenizerModel 参数调整此行为。另外,可以通过 sentenceDetector Model 参数使用自定义句子检测器模型。

要评估您的模型,可以通过将 .brat 附加到它们的名称以类似的方式使用交叉验证和评估工具。

  • bin/opennlp TokenNameFinderCrossValidator.brat
  • bin/opennlp TokenNameFinderEvaluator.brat

为了加快您的注释项目,您可以使用 opennlp-brat-annotator。它可以加载名称查找器模型并与 BRAT 集成以自动注释您的文档。这可以加快您的注释工作。您可以在 opennlp 沙箱中找到该组件。

于 2016-10-13T12:19:09.160 回答