Stolica.ru
    Реклама Rambler's Top100 Service     Все Кулички
 
Заневский Летописец
 
    Виртуальный орган невиртуальной жизни
      Девятый год издания 18.09.2007         N 1514   

Repetitio est...

    "Repetitio est mater studiorum!" - говорили древние римляне на своем древнем римском языке.
    Но всегда ли повторение - мать учения?
    Прочитайте первую фразу, она вас ничем не смущает?

    На прошлой неделе попалась мне на глаза одна программка, в аннотации которой было написано следующее:

    "Программа **** - незаменимый инструмент для всех, чья деятельность так или иначе связана с сочинением текстов на русском языке. Он избавит вас как минимум от одного прохода утомительной вычитки, и, очень возможно, найдет такие огрехи, которые ни вы сами, ни даже профессиональный редактор в жизни бы не обнаружили."
    К сожалению, программа была сделана так, что даже проверить ее работоспособность оказалось довольно затруднительно.
    Тем не менее, продравшись через полностью отсутствующий интерфейс и путаное описание ключей командной строки, я некоторое время поколдовал над произвольно взятыми текстами.
    Но и результаты программа выдавала так же путано и невнятно, как была написана и приложенная инструкция.

    Таким образом, в наличии имелось максимальное расхождение между процитированной мной рекламой и самим рекламируемым продуктом.

    Поэтому при цитировании я заменил название программы звездочками, чтобы не рекламировать плохой продукт. Я не рекомендую вам ее искать и использовать.

    Но идея была прекрасна: автоматически отыскивать в тексте близко расположенные друг к другу похожие (или повторяющиеся) слова для их последующего исправления.

    Например, такого "шедевра":

"Если, конечно, при этом подумать об этом конечном эффекте
и придумать эффективный способ повышения этой способности."

    К сожалению "перлы" подобного типа весьма распространены, но значительно более замаскированы, чем в приведенном примере.

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

    Как говаривал один мой старинный приятель:

"Взял бумаги и чернил,
Сел и песню сочинил!"

    Программка получилась довольно простой.
    За основу взята процедура определения так называемого различия Левенштейна двух строк (слов).
    "Различие Левенштейна" - это минимальное число символов, которое требовалось бы заменить, вставить или удалить для того, чтобы превратить одну строку (слово) в другую строку (слово).

    Общий алгоритм таков: из текста вырезается некоторый кусок, все слова которого сравниваются между собой.
    Слова, уровень различия между которыми меньше заданного порога, считаются похожими и выделяются в тексте.
    Требуется ли замена одного из них синонимом, или этот повтор является стилистической находкой, - решать самому автору.

    Это, собственно, и все.

    Далее следуют некоторые технические подробности.

    Очевидно, что "Различие Левенштейна" не может быть слишком большим: при его величине в 10 символов практически любое слово похоже на любое другое слово.
    Но и отыскивать только полностью совпадающие слова тоже нелепо.
    Исходя из этого задается диапазон величин: от 2 до 4 символов.
    Очевидно также, что бессмысленно рассматривать четырехбуквенные слова для "различия Левенштейна" равного четырем символам, они (по определению) все "похожи" друг на друга.
    Поэтому не удивляйтесь, если программа несколько "поправит" установленные вами параметры.
    Зона поиска повторов взята с ближайшего потолка и по умолчанию составляет 15 слов, но вы можете изменить этот параметр по своему вкусу.

    Программа "Repetitio est..." предназначена для проверки кириллических текстов в текстовых файлах и html-страницах. Латиница и все иные символы из рассмотрения исключаются.
    Все остальные тонкости, я полагаю, нетрудно будет определить опытным путем.
    Дерзайте!

    Форма ввода для проверяемого файла.


Обложка      Предыдущий номер       Следующий номер
   А Смирнов    ©1999-2017
Designed by Julia Skulskaya© 2000