SVMを使用して質問を分類しようとしています。サポートベクターマシンを使用したQues分類
しかし、彼らはSCIKIT-LEARNとPANDASスペイシーが、使用している - 私は参考のために、このリンクをたどっています。私はSpark Mllibを使って同じことをしたい。私は、データフレームを作成するには、このコードを使用しています -
sc = SparkContext(conf=sconf) # SparkContext
sqlContext = SQLContext(sc)
data = sc.textFile("<path_to_csv_file>")
header = data.first()
trainingDF = sqlContext.createDataFrame(data
.filter(lambda line: line != header)
.map(lambda line: line.split("|"))
.map(lambda line: ([line[0]], [line[2]], [line[6]]))).toDF("Question", "WH-Bigram", "Class")
をそして、私は私のサンプルcsvファイルdataframe- trainingDF.show(3)
+--------------------+-------------------+------+
| Question| WH-Bigram| Class|
+--------------------+-------------------+------+
|[How did serfdom ...| [How did]|[DESC]|
|[What films featu...| [What films]|[ENTY]|
|[How can I find a...| [How can]|[DESC]|
を印刷することにより、以下の結果を得ていますが -
#Question|WH|WH-Bigram|Class
How did serfdom develop in and then leave Russia ?|How|How did|DESC
私はword2vecを使ってSVMのトレーニングデータを作成し、SVMを使って訓練しようとしています。私のデータはこの形式で変換されword2vec使用した後
word2Vec1 = Word2Vec(vectorSize=2, minCount=0, inputCol="Question", outputCol="result1")
training = word2Vec1.fit(trainingDF).transform(trainingDF)
model = SVMWithSGD.train(training, iterations=100)
-
[Row(Question=[u'How did serfdom develop in and then leave Russia ?'], WH-Bigram=[u'How did'], Class=[u'DESC'], result1=DenseVector([0.0237, -0.186])), Row(Question=[u'What films featured the character Popeye Doyle ?'], WH-Bigram=[u'What films'], Class=[u'ENTY'], result1=DenseVector([-0.2429, 0.0935]))]
しかし、私は、私がここで立ち往生していますTypeError: data should be an RDD of LabeledPoint, but got <class 'pyspark.sql.types.Row'>
というエラーになってSVMを使用してデータフレームを養成しようとします.. .i私が作成したデータフレームは正しくないと思います。 SVMでトレーニングするために適切なデータフレームを作成する方法を身体が知っていますか。そして、私が何か間違っているかどうか知らせてください。