【问题标题】:DeepLearning4J Doc2Vec input structureDeepLearning4J Doc2Vec 输入结构
【发布时间】:2021-04-24 08:11:56
【问题描述】:

我在这里看到的与 deeplearning4J 相关的问题不到 500 个,而且大多数年前,首先是一个不同的问题:DL4J 死了吗?为了构建我的人工智能,我真的必须处理可怕的 Python 吗?我不想!

现在是真正的问题,我觉得有点愚蠢,但文档和谷歌搜索有点缺乏(见上面的问题):过去几天我一直在阅读关于使用 DL4J 构建一个简单的文档分类器的内容,虽然看起来很简单,但后续的材料又是稀少的可怕。

我建立一个ParagraphVector,添加一些标签,传入训练数据并训练。我还发现,数据以LabelAwareIterator 的形式传入。使用文件结构,我什至发现了 DL4J 的 documentation 如何构造数据。但是,如果我想从 API 或类似的而不是通过文件结构读取数据怎么办?我猜我需要一个LabelAwareDocumentIterator,但是数据应该如何结构化以及如何输入?我读到了关于将结构化作为文本表格和标签作为列的内容,但这似乎相当粗略且非常不精确。

非常感谢您的帮助,以及比我迄今为止找到的更好的资源。谢谢!

--更新

通过阅读源代码(通常只检查实现是一个好主意),看起来我真正想要的是SimpleLabelAwareIterator。该代码可读性很好。还不太明白LabelAwareDocumentIterator 的用途。无论如何,简单的只需要LabelledDocuments 的列表。 LabelledDocuments 只有一个字符串内容和一个标签列表。到目前为止这么好将在今晚尝试实施。如果成功了,我会发布这个作为答案。

【问题讨论】:

  • > DL4J 死了吗?不,不是。 Stackoverflow 的 Q/A 格式不适用于这类问题,因为有很多来回梳理人们遇到的具体问题并实际帮助他们解决问题。 community.konduit.ai 的论坛是一个更好的地方。
  • 非常感谢,我很高兴听到这个消息,我会去那里的 :)

标签: java deep-learning deeplearning4j dl4j


【解决方案1】:

更新中的方法成功了。我现在使用一个 SimpleLabelAwareIterator,我用一个 LabelledDocuments 列表填充。短代码示例:

    ArrayList<LabelledDocument> labelledDocumentList = new ArrayList<LabelledDocument>();

    for(Document input : documents){
      LabelledDocument doc = new LabelledDocument();
      doc.setContent(input.content);
      doc.addLabel(input.label);
      labelledDocumentList.add(doc);
    }
    
    SimpleLabelAwareIterator iter = new simpleLabelAwareIterator(labelledDocumentList);
    
    TokenizerFactory t = new UimaTokenizerFactory();
    ParagraphVectors vec = new ParagraphVectors.Builder()
                        .minWordFrequency(1)
                        .labels(Arrays.asList("A", "B"))
                        .layerSize(100)
                        .stopWords(new ArrayList<String>())
                        .windowSize(5).iterate(iter).tokenizerFactory(t).build();
    
    vec.fit();
    tools.saveObject(vec, "models/modelName");

【讨论】:

    猜你喜欢
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2018-06-02
    • 2020-04-01
    相关资源
    最近更新 更多