Я пытался удалить повторяющиеся слова из строки в scala.
Я написал udf (код ниже), чтобы удалить повторяющиеся слова из строки:
val de_duplicate: UserDefinedFunction = udf ((value: String) => {
if(value == "" | value == null){""}
else {value.split("\\s+").distinct.mkString(" ")}
})
Проблема I 'Я сталкиваюсь с этим в том, что он также удаляет из строки одиночные символьные токены,
Например, если строка была:
"test abc abc 123 foo bar f f f"
Вывод, который я получаю:
"test abc 123 foo bar f"
То, что я хочу сделать, так это удалить только повторяющиеся слова, а не одиночные символы. Один из обходных путей, о котором я мог подумать, - это заменить пробелы между любыми одиночными символьными токенами в строке так, чтобы пример входной строки стал:
"test abc abc 123 foo bar fff"
, которая решит мою проблему, я не могу понять правильный шаблон регулярных выражений, но я верю, что это можно сделать с помощью группы захвата или прогнозирования.Я смотрел на подобные вопросы для других языков, но не смог выяснить шаблон регулярных выражений в scala.
Любая помощь по этому вопросу будет принята с благодарностью!