使用 dl4j RecordReader 解析 JSON

Parsing a JSON with dl4j RecordReader

我计划在以下格式的数据集上使用 dl4j:

{"articles": [{"abstractText":"text..", "journal":"journal..", "meshMajor":["mesh1",...,"meshN"], "pmid":"PMID", "title":"title..", "year":"YYYY"},..., {..}]}

meshMajor 字段包含 class 个标签,其余是模型的输入。输入特征是文本数据。

我想知道是否有内置的 JSON 数据集迭代器,如 CSV 迭代器。我在 github 上发布的示例中进行了查找,但找不到一个。如果没有可用的,有人可以提供一些实施它的指导。

谢谢!

这看起来是一个很有希望的开始:

https://deeplearning4j.org/docs/latest/datavec-serialization

然后您应该可以使用此处的示例:

https://github.com/deeplearning4j/dl4j-examples/tree/master/datavec-examples/src/main/java/org/datavec/transform/basic

在 DL4J 的 gitter 中问过这个问题,解决方案是使用 Jackson record reader。 https://github.com/deeplearning4j/DataVec/tree/master/datavec-api/src/main/java/org/datavec/api/records/reader/impl/jackson 提供更多详细信息,阅读示例 JSON 可在

获得
  1. https://github.com/deeplearning4j/DataVec/blob/master/datavec-api/src/test/java/org/datavec/api/records/reader/impl/JacksonLineRecordReaderTest.java 并且,

  2. https://github.com/deeplearning4j/DataVec/blob/master/datavec-api/src/test/java/org/datavec/api/records/reader/impl/JacksonRecordReaderTest.java

请注意,JacksonLineRecordReader 和 JacksonRecordReaderTest.java 之间存在差异,前者要求每条 JSON 记录恰好跨越一行,而后者要求每条 JSON 记录对应一个文件。