【发布时间】:2015-01-15 05:32:34
【问题描述】:
我正在使用 OpenNLP 令牌名称查找器来解析非结构化数据,我已经创建了一个 4MM 记录的语料库(训练集),但是当我在 Eclipse 中使用 OpenNLP API 从这个语料库中创建一个模型时,过程大约需要 3 hrs 非常耗时。模型建立在默认参数上,即迭代 100 和截止 5。
所以我的问题是,我怎样才能加快这个过程,怎样才能减少构建模型的过程所花费的时间。
语料库的大小可能是造成这种情况的原因,但只是想知道是否有人遇到过这种问题,如果遇到过,那么如何解决这个问题。
请提供一些线索。
提前致谢!
【问题讨论】:
-
试试jvm内存参数:
-Xms=512m -Xmx=2048m -
感谢您提出这个建议,但您知道我已经将 -Xmx 增加到 10GB,因为该过程占用了大约 10GB 空间。增加内存后,仍然需要3个小时。这就是为什么我有点担心。
-
没有其他方法可以加快这个过程。将其导出为 jar 文件并运行它可能会给您额外的 ~500mb(eclipse 需要)。那是400万条记录吗?我猜 GATE (gate.ac.uk) 将花费比这更多的时间。
-
好的,我将尝试将项目导出为 jar 文件并在命令提示符下运行它。是的,语料库包含 400 万条记录。你知道如何在 Spark 上运行它以加快进程。
-
采用可扩展的分布式解决方案(如 Apache Spark)可能是正确的想法。我不确定您正在构建哪种模型,但 Spark 的 MLlib 支持多种类型。 spark.apache.org/docs/1.1.0/mllib-guide.html
标签: java machine-learning apache-spark opennlp maxent