SVM을 사용하여 질문을 분류하려고합니다.Ques 분류 지원 벡터 기계 사용
그러나 그들은 SCIKIT-배우고 팬더 적응을 사용했다 - 나는 참조 할 수 있도록이 링크를 따라하고있다. 나는 Spark Mllib을 사용하여 같은 일을하고 싶다. 가 나는 Dataframe 만들려면이 코드를 사용하고 -
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")
을 내가 점점 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]|
내 샘플 CSV 파일을 인쇄하여 그 결과를 다음입니다 것은 -
#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 다음 점점 오류를 사용하여 dataframe를 훈련 할 때 .. .i 내가 만든 데이터 프레임이 올바르지 않다고 생각합니다. SVM을 사용하여 훈련 할 수있는 적합한 데이터 프레임을 만드는 방법을 알고 있습니다. 그리고 내가 잘못한 일을하고 있는지 알려주세요.