[Comm] автоматический поиск тавтологий в тексте
Kirill Maslinsky
=?iso-8859-1?q?kirill_=CE=C1_altlinux=2Eorg?=
Ср Апр 9 12:25:33 MSD 2008
On Wed, Apr 09, 2008 at 10:40:09AM +0300, Aleksander N. Gorohovski wrote:
> Доброго времени суток уважаемое
> сообщество!
>
> Подскажите, может кто-нибудь встречал
> под Linux программу
> для поиска в тексте мест, подозрительные
> на предмет одной из самых
> распространенных стилистических
> погрешностей:
> расположенных близко по тексту
> фонетически и морфологически сходных
> слов,
> чей параллелизм никак не мотивирован.
Встречать не приходилось.
А Вам приходилось встречать отдельную программу не под Linux,
которая бы это делала?
Интересно, бывает ли такое, и как может называться.
> Т.е. другими словами -- паронимий, или
> "нечаянных тавтологий".
Паронимиями такое явление называть не совсем точно, правильнее именно
тавтологиями.
По-английски paronym употребляется в двух значениях (см. Википедию)
1. как синоним однокоренных слов (cognate)
2. как слова очень сходные по звучанию/написанию, но разные по
значению/происхождению (которые из-за этого часто путают)
По-русски термин "пароним" принято употреблять только во втором
значении.
1. Стилистическая ошибка по первому значению называется как раз
тавтология, и относится к употреблению рядом однокоренных слов (тавтология).
Кстати, это не считается ошибкой в англоязычной традиции, особенно технических и
деловых документов, поэтому вряд ли найдётся такая программа для
английского языка.
2. Стилистическая ошибка по второму значению называется парономасия,
это когда в одном предложении встречаются паронимы. Это, мне кажется,
настолько редкая вещь, что стоит ли беспокоиться?
Вообще теоретически такую программу в первом приближении реализовать
несложно:
1. Выбираем размер "окна" в тексте, в пределах которого мы будем искать
однокоренные слова, пускаем это окно "скользить" по тексту.
2. Разбиваем текст в окне на токены, делаем стемминг (лемматизацию),
В сизифе есть подходящий простой инструмент с поддержкой
русского языка (snowball).
3. Смотрим на совпадения корней (возможно, с указанной точностью, а
также с учётом stop list и минимальной длины/частотности совпавшей
леммы).
4. В качестве fallback method для обнаружения сильно изменённых корней (приставки?)
и случайных фонетических совпадений можно делать дополнительное
сравнение по редакционному расстоянию между строками.
5. Репортим пользователю найденные совпадения.
Такой метод даст какое-то количество false positives, но поскольку
результат работы программы все равно предназначен для чтения человеком,
то это некритично.
--
Kirill Maslinsky
ALT Linux Team
Подробная информация о списке рассылки community