私はSparkのインフラストラクチャには新しく、この質問はばかげているかもしれません。テキスト分類にはmllibを使用します。私はトレーニングのためにMultinomialNaiveBayes分類器にフィードするラベル付きの文章を持っています。私はその事例を見つけました。Spark mllibスカラを使った分類
私の入力がこの形態である:
大晦日を過ごす水曜日12月31日午後11時13分30秒0000 2014,1、、0
水曜日12月31日23時14分: 37 +0000 2014,1、太字天使、0
水12月31日午前23時14分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)ここにテキストである)このようなラベルとして「ランダム」の値(double)を与えることを試みた:
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)))
私はその処理されたデータを抽出することができますどのようにラベルを含むオリジナルのフォーム?クラシファイアはラベルを生成し、用語は倍に変換されています。私はちょうど元の文字列を分類器からの生成ラベルと連結したいと思う。今までのあなたの大晦日カウントダウンが!!ミックスと8、0、ニュートラル、ヌル、djvinceに
16800、水曜日12月31日午後11時03分23秒0000 2014、ヌル、DJVINCE1:この入力を考えます
16800、水曜日12月31日23:今、大晦日のカウントダウンミックスまで
は、このような出力を得るために、この入力に生成ラベルをマッピングすることができますどのように:03:23 +0000 2014、null、DJVINCE1、今年は8歳まで新年のイブカウントダウンミックス!!、0、ニュートラル、ヌル、djvince今年新年イブカウントダウンミックス、ラベル{0,1}
「LabeledPoint」はまったく必要ありません。 'NaiveBayesModel.predict'は' RDD [Vector] 'または' Vector'のいずれかをとります。 – zero323
ハッシュ関数は私が使用するベクトルを生成します。私の場合、私は二倍ではない単語を扱っているからです。 –
しかし、まだ 'LabeledPoint'は必要ありません。 – zero323