Кодинг: найти буквы-шпионы
Столкнулся с такой ситуацией. При копировании текста из web.archive.org в некоторых словах одна или несколько русских букв заменены латинскими с идентичным написанием. Например, p – р, H – Н, c – с.
Возникла задача автоматически лажу в тексте поправить.
Алгоритм
- Делаем split с соответствующим regex’ом, чтобы вычленить из текста слова, отделив теги, числа и пунктуацию.
- Для каждого слова считаем количество русских и английских букв в нём.
- Если количество и русских и английских букв в слове больше нуля, при этом количество английских букв не больше, чем количеств русских – печатаем слово и буквы-шпионы (написанные латиницей). На этом шаге нужен контроль человека. Смотрим, что слова и вправду “кривые” и добавляем в код соответствующие замены.
- Складываем в ассоциативный массив (в моём случае HashMap) пары “кривое слово” – “правильный аналог”.
- Бежим по массиву ключей и заменяем в тексте все кривые слова на правильные аналоги.
А как бы вы стали решать такую задачу?
Categories: Uncategorized
