Токенизатор должен взять поток символов (например, предложение) и разбить его на более мелкие куски (например, слова). Например, Tokenizer
в Spark будет разбивать предложение на пробелы.
Здесь вы используете RegexTokenizer
для удаления тегов HTML (точнее, разделите предложение на токены на основе тегов). Хотя это работает, вы должны убедиться, что вывод также разбит на отдельные слова. Чтобы сделать это, вы можете добавить условие к регулярному выражению, чтобы, в дополнение к тегам, разделить любые пробелы, добавив \\s+
к шаблону регулярного выражения:
val regexTokenizer = new RegexTokenizer() // removes tags from string and split into words
.setInputCol("body")
.setOutputCol("removeTags")
.setPattern("<[^>]+>|\\s+")
Теперь использование StopWordsRemover
должно работать какожидается.