Я пытаюсь обучить модель word2vec, используя реализацию spark.Я следую учебному пособию по документации spark, но продолжаю получать сообщение об ошибке: «данные должны быть СДР списка строк»
Мои данные были обработаны для удаления заглавных букв, стоп-слов и знаков препинания.Пример таков:
[Row(removed=['manakamana', 'doesnt', 'answer', 'questions', 'yet', 'makes', 'point', 'nepal', 'like', 'rest', 'planet', 'picturesque', 'far', 'peaceable', 'kingdom']),
Row(removed=['wilfully', 'offensive', 'powered', 'chestthumping', 'machismo', 'good', 'clean', 'fun']),
Row(removed=['difficult', 'imagine', 'material', 'wrong', 'spade', 'lost', 'found']),
Row(removed=['despite', 'gusto', 'star', 'brings', 'role', 'hard', 'ride', 'shotgun', 'hectors', 'voyage', 'discovery'])]
Моя путаница заключается в том, что в документации говорится, что word2vec принимает ввод pyspark.sql.dataframe, которым является мой набор данных.С другой стороны, некоторые говорят, что это должен быть RDD.Я также попробовал это с кодом:
removed2 = removed.rdd
Но я все еще получаю те же ошибки («ожидаемые нулевые аргументы для построения ClassDict»).Я попытался даже установить его как
removed3 = removed.rdd.map(list)
, что дает
[[['manakamana',
'doesnt',
'answer',
'questions',
'yet',
'makes',
'point',
'nepal',
'like',
'rest',
'planet',
'picturesque',
'far',
'peaceable',
'kingdom']],
[['wilfully',
'offensive',
'powered',
'chestthumping',
'machismo',
'good',
'clean',
'fun']],
[['difficult', 'imagine', 'material', 'wrong', 'spade', 'lost', 'found']]
, но теперь оно выдает ошибку "java.util.ArrayList не может быть приведен к java.lang.String"
Другая проблема, по-видимому, заключается в том, что пример github https://github.com/apache/spark/blob/master/examples/src/main/python/ml/word2vec_example.py больше не работает (также получает RDD в виде списка как строковую ошибку).
Я совершенно не понимаю, что вводитьформат word2vec принимает.