如何使用斯坦福NER CFR训练大型数据集

时间:2016-03-04 09:29:59

标签: hadoop machine-learning stanford-nlp

我使用Stanford's NER CRF,想要训练大型数据集,让我们说100k新闻文章。如何训练数据,需要多长时间?我是机器学习领域的新手,并希望得到一些指导。

问题1: 所有这些变量意味着什么?我应该特别注意哪些?

numClasses: 8 numDocuments: 100 numDatums: 48721 numFeatures: 168489 Time to convert docs to data/labels: 1.0 seconds numWeights: 4317368 QNMinimizer called on double function of 4317368 variables, using M = 25.

问题2:我应该在一台机器上运行培训,还是在像Hadoop这样的分布式系统上运行?

问题3:计算似乎是CPU和内存密集型,我该如何克服这些要求?

1 个答案:

答案 0 :(得分:0)

  • 您能否提供有关训练数据的更多详情。通常,您可以在人类标记数据上训练NER系统,例如2003 CoNLL数据集。你有多少人类标记数据?

  • NER系统的常见问题解答提供了一些减少内存的建议:

    http://nlp.stanford.edu/software/crf-faq.shtml#d

  • 此时无法在多台计算机上运行NER培训。

  • 我对此并不乐观,但我认为默认情况下,CRFClassifier在评估渐变时会使用多线程...如果它不使用多线程,则在属性中添加以下内容会导致它开始使用指定线程数的多线程:

    multiThreadGrad=4