R: Хотите проверить словарь и удалить ненужный пробел между ними, где удаление пробела сделает это слово правильным.

Я использую R для интеллектуального анализа текста и имею данные, которые были объединены из разных текстовых столбцов. Бывают случаи, когда слова разделяются пробелом, например «функция». Я хочу обнаружить все такие случаи и удалить пробел между ними, выполнив проверку словаря. Я знаю функцию splitWords в aspell, мне нужна функция, прямо противоположная тому, что делает эта.


person Gaurav Daga    schedule 04.03.2015    source источник


Ответы (1)


Вот подход, основанный на некотором коде, который я нашел, но вам нужно предоставить пример текста и даже просто псевдокод, чтобы помочь другим ответить.

Сначала создайте объект с огромным набором слов, написанных правильно. Затем вы сравниваете свой вектор слов с этим набором с adist и аргументом установите одно отличие - в идеале внутренние пробелы, которые вы хотели бы удалить. Сомневаюсь, что это все решит, но может поможет.

sorted_words <- comments(sort(table(strsplit(tolower(paste(readLines("http://www.norvig.com/big.txt"), collapse = " ")), "[^a-z]+")), decreasing = TRUE))

correct <- function(*your vector*) { c(sorted_words[adist(*your vector*, sorted_words) <= min(adist(word, sorted_words), 2)], word)[1] }

Затем используйте функцию correct.

person lawyeR    schedule 04.03.2015