关于创建stanford CoreNLP训练模型的问题

Questions about creating stanford CoreNLP training models

我一直在使用斯坦福大学的 coreNLP 对我拥有的一些数据进行情绪分析,并且我正在努力创建一个训练模型。我知道我们可以使用以下命令创建训练模型:

java -mx8g edu.stanford.nlp.sentiment.SentimentTraining -numHid 25 -trainPath train.txt -devPath     dev.txt -train -model model.ser.gz

我知道 train.txt 文件中的内容。你给句子打分,然后把它们放在 train.txt 中,就像这样: (0 (2 Today) (0 (0 (2 is) (0 (2 a) (0 (0 bad) (2 day)))) (..)))

但我不明白 dev.txt 文件中的内容。 我多次通读 this 问题,试图理解 dev.txt 中的内容,但我仍然不清楚。此外,手动对这些句子进行评分已成为一种痛苦,是否有可用的工具可以使它变得更容易?我担心我一直在使用错误数量的括号或其他类似的愚蠢错误。

此外,关于我的 train.txt 文件应该有多长有什么建议吗?我正在考虑获得 1000 个句子。这个数字是不是太小了,太大了?

感谢您的帮助:)

  1. dev.txt 应该和 train.txt 一样,只是句子不同而已。注意同一句话不能出现在dev.txt和train.txt中。开发集用于评估您在训练数据上训练的模型的质量。

  2. 我们不分发标记情绪数据的工具。此 class 可能有助于构建数据:http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/sentiment/BuildBinarizedDataset.html

  3. 以下是用于情感模型的训练集、开发集和测试集的大小:train=8544,dev=1101,test=2210

下面是一些用于评估模型的示例代码

// load a model
SentimentModel model = SentimentModel.loadSerialized(modelPath);

// load devTrees
List<Tree> devTrees;
devTrees = SentimentUtils.readTreesWithGoldLabels(devPath);

// evaluate on devTrees
Evaluate eval = new Evaluate(model);
eval.eval(devTrees);
eval.printSummary();

您可以通过查看以下内容找到您需要导入的内容等...:

edu/stanford/nlp/sentiment/SentimentTraining.java