Я делаю классификацию текста и использую pyspark.ml.feature.Tokenizer
для токенизации текста. Однако CountVectorizer
преобразует маркированный список слов в модель мешков слов, а не в модель последовательности.
Предположим, что у нас есть следующий DataFrame с столбцами id и текстами:
id | texts
----|----------
0 | Array("a", "b", "c")
1 | Array("a", "b", "b", "c", "a")
each row in texts is a document of type Array[String]. Invoking fit of CountVectorizer produces a CountVectorizerModel with vocabulary (a, b, c). Then the output column “vector” after transformation contains:
id | texts | vector
----|---------------------------------|---------------
0 | Array("a", "b", "c") | (3,[0,1,2],[1.0,1.0,1.0])
1 | Array("a", "b", "b", "c", "a") | (3,[0,1,2],[2.0,2.0,1.0])
Здесь я хочу (для строки 1)
Array("a", "b", "b", "c", "a") | [0, 1, 1, 2, 0]
Так есть ли вообще, что я могу написать пользовательскую функцию для параллельного запуска кодирования? Или есть какая-нибудь другая библиотека, которая может работать параллельно, кроме использования spark?