我有大量的文本语料库(大约 1000 万个句子),我想用各种 NLP 工具(POS 标记器、语法解析器、依赖解析器等)对其进行预处理。我需要以某种方式存储由这些工具创建的各种注释层,并从我的 Java 代码中即时访问它们(可能通过提供语料库中文本跨度的开始和结束索引以及注释类型) .
是否已经存在用于快速存储和访问这些注释的软件系统?如果不是,那么存储和访问这些注释的最佳方式是什么?访问速度将是最重要的。
我有大量的文本语料库(大约 1000 万个句子),我想用各种 NLP 工具(POS 标记器、语法解析器、依赖解析器等)对其进行预处理。我需要以某种方式存储由这些工具创建的各种注释层,并从我的 Java 代码中即时访问它们(可能通过提供语料库中文本跨度的开始和结束索引以及注释类型) .
是否已经存在用于快速存储和访问这些注释的软件系统?如果不是,那么存储和访问这些注释的最佳方式是什么?访问速度将是最重要的。
你可以看看UIMA. 虽然它不是一个存储引擎,但它提供了一个平台,通过在管道中应用各种注释器(可以是标记器、句子拆分器、POS 标记器)将非结构化文本数据转换为更结构化的格式。输出包含文档中带有开始和结束索引的注释(您可以将输出转换为 xml 格式)。因此,您可以将语料库划分为多个文档,通过 UIMA 管道传递它们,并将输出存储在基于文档的存储中,例如 MongoDB。我认为在文档级别访问这些注释更有意义,因为注释的上下文很重要。因此,您可以从 MongoDB 存储中检索这些带注释的文档,并使用开始和结束索引或注释类型(令牌、句子等)访问注释。