我是Spark基礎架構的新手,所以這個問題可能很愚蠢。我使用mllib進行文本分類。我有一組帶有標籤的句子,我將它們輸入MultinomialNaiveBayes分類器進行訓練。我找到了一個例子。Spark mllib使用scala進行分類
我的輸入形式如下:
週三12月31日23點13分三十秒+0000 2014,1,度過除夕,0
週三12月31日23:14: 37 +0000 2014,1,大膽的天使,0
週三12月31日23點十四分53秒+0000 2014,1,給羅蘭好,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,週三12月31日23時03分23秒+0000 2014年,空,DJVINCE1於即日起至8與除夕倒計時混合!!,0,中性,空,djvince
16800,週三23年12月31日:即日起至除夕倒數混合
如何才能得到這樣的輸出映射製作標籤這種輸入:03:23 +0000 2014,null,DJVINCE1現在直到8與您的除夕倒數混合!!,0,中立,空,djvince現在直到新年前夕倒計時混合,標籤{0,1}
根本不需要'LabeledPoint'。 'NaiveBayesModel.predict'採用'RDD [Vector]'或'Vector'。 – zero323
散列函數產生我使用的向量,因爲在我的情況下,我處理的不是雙打的單詞。 –
但它仍然不需要'LabeledPoint'。 – zero323