rpl*_*evy 5 nlp machine-learning mallet crf
对于使用Java库Mallet的SimpleTagger类进行条件随机场(CRF)的人来说,这是一个问题.假设我已经使用了多线程选项的最大CPU数量我有可用的(这种情况下):我会在哪里开始,就样的东西,我应该尝试,如果我需要它运行得更快?
一个相关的问题是,是否有办法做一些类似于随机梯度下降的东西,这会加速训练过程?
我想要做的培训类型很简单:
Input:
Feature1 ... FeatureN SequenceLabel
...
Test Data:
Feature1 ... FeatureN
...
Output:
Feature1 ... FeatureN SequenceLabel
...
Run Code Online (Sandbox Code Playgroud)
(其中的功能是我在自己的代码中对数据进行处理的输出.)
我在使用除Mallet以外的任何CRF分类器时遇到了大问题,但是我可能不得不再次回溯并重新访问其中一个实现,或尝试新的实现.
是的,随机梯度下降通常比 Mallet 中使用的 L-BFGS 优化器快得多。我建议你尝试CRFSuite,你可以通过 SGD 或 L-BFGS 来训练它。您还可以尝试 L\xc3\xa9on Bottou\ 的基于 SGD 的实现,但这更难设置。
\n\n除此之外,我相信CRF++是最常用的 CRF 软件。不过它是基于 L-BFGS 的,所以对你来说可能不够快。
\n\nCRFSuite 和 CRF++ 都应该很容易上手。
\n\n请注意,如果您有大量标签,所有这些都会很慢。至少 CRFSuite 可以配置为仅考虑观察到的 label-n-gram(在 (n-1) 阶模型中),这通常会使训练和预测更快。
\n| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |