【问题标题】:Spark mllib Classification using scalaSpark mllib 使用 scala 进行分类
【发布时间】:2017-01-28 07:40:48
【问题描述】:

我是 Spark 基础架构的新手,所以这个问题可能很愚蠢。我使用 mllib 进行文本分类。我有一组带有标签的句子,我将它们提供给 MultinomialNaiveBayes 分类器进行训练。我找到了一个例子。

我的输入是这样的:

2014 年 12 月 31 日星期三 23:13:30 +0000 2014,1,跨年夜,0

2014 年 12 月 31 日星期三 23:14:37 +0000,1,bold angel,0

2014 年 12 月 31 日星期三 23:14:53 +0000,1,loren good give,0

var htf = new HashingTF(2000000)
val parsedData = data.map { line =>
      val parts = line.split(',')
      LabeledPoint(parts(1).toDouble, htf.transform(parts(2).split(' ')))
    }
val model = NaiveBayes.train(parsedData, lambda = 1.0, modelType = "multinomial")

因此,我获取文本并使用哈希函数将术语映射到标签{0,1}。训练后,我想预测未标记数据集的标签。所以这里开始我的实际问题。

我没有文本文档的标签,因此无法创建 LabeledPoints。我试图将“随机”值(双精度)作为这样的标签(未标记的数据存储在不同的结构中,部分(7)是这里的文本):

val testing = sc.textFile("neutralSegment.txt")
val parsedData = testing.map { line =>
  val parts = line.split(',')
  htf.transform(parts(7).split(' '))
}
val predictionAndLabel = parsedData.map(p => (model.predict(p)))

如何将处理后的数据提取为包括标签在内的原始形式?分类器生成标签,并且术语已被转换为双精度词。我只想将原始字符串与分类器生成的标签连接起来。鉴于此输入:

16800,2014 年 12 月 31 日星期三 23:03:23 +0000,null,DJVINCE1 从现在到 8 点与您的除夕倒计时组合!!,0,neutral,null,djvince 现在到除夕倒计时组合

如何将生成的标签映射到此输入以获得这样的输出:

16800,2014 年 12 月 31 日星期三 23:03:23 +0000,null,DJVINCE1 从现在到 8 点与您的除夕倒计时组合!!,0,neutral,null,djvince 现在到除夕倒计时组合,标签{0,1}

【问题讨论】:

  • 根本不需要LabeledPointNaiveBayesModel.predict 采用 RDD[Vector]Vector
  • 哈希函数产生我使用的向量,因为在我的例子中,我处理的是单词而不是双精度词。
  • 但它仍然不需要LabeledPoint
  • 用于训练而非预测。
  • 你能提供你的中性段的样本吗?我很难理解你到底想做什么。

标签: scala apache-spark apache-spark-mllib


【解决方案1】:

好吧,看来我所要做的就是创建元组,包括我的原始文本和来自哈希函数的 Vector[Double]:

val parsedData = testing.map { line =>
  val parts = line.split(',')
  val text = parts(7).split(' ')
  (line, htf.transform(text))
} 

然后将它们提供给分类器并再次创建结果和文本的元组。现在我可以使用包含我想要的两个字段的结构了。

val predictionAndLabel2 = parsedData.map(p =>
  (p._1 , model.predict(p._2))
)

【讨论】:

    猜你喜欢
    • 2014-10-27
    • 1970-01-01
    • 2017-12-20
    • 2017-03-07
    • 2020-08-13
    • 2015-12-18
    • 2018-09-17
    • 2016-04-22
    • 2017-03-24
    相关资源
    最近更新 更多