小编Gab*_*l M的帖子

NLP 文本标记

我是 NLP 的新手,第一次做。我正在尝试解决一个问题。

我的问题是我有一些手动标记的文档,例如:

doc1 - categoryA, categoryB
doc2 - categoryA, categoryC
doc3 - categoryE, categoryF, categoryG
.
.
.
.
docN - categoryX
Run Code Online (Sandbox Code Playgroud)

这里我有一组固定的类别,任何文档都可以有任意数量的与其关联的标签。我想使用这个输入来训练分类器,以便这个标记过程可以自动化。

谢谢

nlp machine-learning

5
推荐指数
1
解决办法
5493
查看次数

SparkContext在配对对象中不可序列化

我目前正在尝试扩展使用Scala和Spark的机器学习应用程序.我正在使用我在Github上发现的Dieterich Lawson先前项目的结构

https://github.com/dieterichlawson/admm

该项目基本上使用SparkContext构建训练样本块的RDD,然后对每个集合执行局部计算(例如求解线性系统).

我遵循相同的方案,但对于我的本地计算,我需要在每个训练样本块上执行L-BFGS算法.为了做到这一点,我想使用mlLib中的L-BFGS算法,该算法具有以下特征.

runLBFGS(RDD<scala.Tuple2<Object,Vector>> data, Gradient gradient, 
         Updater updater, int numCorrections, double convergenceTol, 
         int maxNumIterations, double regParam, Vector initialWeights)
Run Code Online (Sandbox Code Playgroud)

如上所述,该方法将训练样本的RDD [Object,Vector]作为输入.问题是在每个工作者本地我不再保留数据的RDD结构.因此,我正在尝试在矩阵的每个块上使用SparkContext的并行化功能.但是当我这样做时,我得到了一个序列化器异常.(确切的异常消息在问题的最后).

这是我如何处理SparkContext的详细解释.

首先,在主应用程序中,它用于打开文本文件,它在LogRegressionXUpdate类的工厂中使用:

val A = sc.textFile("ds1.csv")
A.checkpoint
val f = LogRegressionXUpdate.fromTextFile(A,params.rho,1024,sc)
Run Code Online (Sandbox Code Playgroud)

在应用程序中,LogRegressionXUpdate类实现如下

class LogRegressionXUpdate(val training: RDD[(Double, NV)],
                           val rho: Double) extends Function1[BDV[Double],Double] with Prox  with Serializable{

def prox(x: BDV[Double], rho: Double): BDV[Double] = {
    val numCorrections = 10
    val convergenceTol = 1e-4
    val maxNumIterations = 20
    val regParam = 0.1
    val (weights, loss) = LBFGS.runLBFGS(
        training,
        new …
Run Code Online (Sandbox Code Playgroud)

serialization scala distributed-computing apache-spark

5
推荐指数
1
解决办法
5880
查看次数