3

我正在尝试使用 deeplearning4j从头开始​​复制论文 NLP(几乎) 。我已完成以下步骤:

  1. 加载 SENNA 词向量
  2. 为 CoNLL'03 数据集编写一个迭代器:对于每个单词,我通过连接其相邻单词的单词向量来形成一个单词特征向量(窗口大小 = 5)
  3. 使用上面的数据集迭代器来训练一个简单的回归层,例如:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
    .seed(seed).iterations(iterations)
    .learningRate(1e-8f)
    .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
    .list(2)
    .layer(0, new DenseLayer.Builder()
        .nIn(wordVecLayers * windowSize).nOut(hiddenSize)
        .activation("relu")
        .weightInit(WeightInit.DISTRIBUTION)
        .dist(new UniformDistribution(-2.83 / Math.sqrt(hiddenSize), 2.83 / Math.sqrt(hiddenSize)))
        .biasInit(0.0f).build())
    .layer(1, new OutputLayer.Builder(LossFunction.NEGATIVELOGLIKELIHOOD)
        .nIn(hiddenSize).nOut(types.size())
        .activation("softmax").weightInit(WeightInit.DISTRIBUTION)
        .dist(new UniformDistribution(-2.83 / Math.sqrt(hiddenSize), 2.83 / Math.sqrt(hiddenSize)))
        .biasInit(0.0f).build())
    .backprop(true).pretrain(false)
    .build();

我尝试了许多不同的配置,但没有一个对我有用。该模型继续预测所有带有“O”标签的单词。如果您能指出我的方法有什么问题,我将不胜感激?下一步我应该做什么?谢谢!

4

1 回答 1

2

我们的 word2vec 情感示例是一个很好的起点: https ://github.com/deeplearning4j/dl4j-0.4-examples/tree/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/recurrent/word2vecsentiment

这包括对词向量进行序列标记(这也是 NER)

于 2016-07-25T12:06:30.193 回答