WordTabulator для Windows 9x/NT
Программа для статистической обработки текстов
Версия 1.0
WordTabulator - это бесплатная программа, предназначенная для анализа и обработки текстов в среде Windows 95/98/NT. Это удобный и мощный инструмент, позволяющий строить индексы словоформ и синтагм для заданного множества текстов. Программа понимает тексты в основных русскоязычных кодировках и может обрабатывать документы в формате HTML, игнорируя их разметку. В дальнейшем планируется добавить ко входным форматам текстов форматы SGML и XML.
Название: WordTabulator
Платформа: Windows 95/98/2000/NT
Автор: Логичев Сергей Владимирович, С.-Петербург
Контактный адрес:
slog@ru.artificial-life.com
Версия: 1.0
Дата: 13 декабря 1999
Программа WordTabulator позволяет строить упорядоченные индексы
встречающихся в тексте морфологических и синтаксических элементов - словоформ,
словосочетаний заданной размерности или синтагм.
Анализируемые тексты задаются совокупностью входных текстовых файлов в
формате HTML (*.HTM, *.HTML) или обычного текста (*.TXT). Программа понимает
три основные кодовые страницы для кириллических текстов: Win-1251,
KOI8-r и DOS (866). Можно также задать кодовую страницу ASCII, но в этом
случае множество символов алфавита ограничится латинскими буквами.
Имеется возможность расширять состав алфавита обрабатываемых текстов и
изменять набор символов-разделителей.
Дополнительные возможности анализа дает обработка исключений. В общем
случае здесь можно говорить об обработке двух совокупностей текстов, которые
можно сравнивать на общность или различие по составу заданных
элементов.
Имеется возможность сужения обрабатываемой совокупности элементов путем
задания поискового запроса, в котором допускаются стандартные символы
маскирования (* и ?).
Выходным результатом программы является файл, содержащий
упорядоченный индекс заданных морфологических или синтаксических
элементов. Упорядочение может производиться в алфавитном порядке или по
частоте встречаемости. При сохранении выходного индекса в формате
HTML документ дополняется ссылками на исходный контекст.
На размеры обрабатываемых совокупностей текстов не накладывается никаких
ограничений - лишь бы выдержал компьютер. Нужно понимать, что сортировка
индекса, содержащего сотни тысяч различных элементов может оказаться весьма
затруднительной. Например, на Pentium II (333) с 64 Мб памяти обработка
тестового массива из 910 тысяч словоформ (4,5 Мб) заняла около 40 минут.
Выходной индекс при этом составил 135 тысяч различных словоформ.
Словоформа условно определяется как некоторая последовательность
букв, возможно, со включением дефиса (-) или апострофа ('). Словоформа
всегда начинается с буквы. Например:
"state-of-art",
"из-за",
"О'Генри".
Состав символов, разрешенных в словоформе, может быть расширен:
для этого необходимо задать множество дополнительных (не буквенных)
символов - например, цифр.
Словосочетание есть последовательность заданного числа словоформ в
пределах одной синтагмы, например 3-мерное словосочетание
"дорога в ад"
в предложении
"Благими намерениями вымощена дорога в
ад".
Синтагма есть непустая последовательность словоформ в предложении,
ограниченная справа разделителем из множества знаков препинания и
специальных символов: {.,!?:;+=()[]/"<>}. Например,
предложение «Есть хорошая латинская
поговорка: "в здоровом теле - здоровый дух"»
включает в себя две синтагмы - "Есть хорошая
латинская поговорка" и
"в здоровом теле здоровый дух".
Набор разделителей может переопределяться пользователем.
Обработка текста всегда осуществляется по следующему алгоритму:
- Из текста в соответствии с заданным набором разделителей
выделяются синтагмы.
- Из отдельных синтагм выделяются словоформы или словосочетания (если это
необходимо).
- Полученные элементы сравниваются с поисковым запросом и затем с
множеством исключений.
Работа в программе WordTabulator начинается с создания проекта -
необходимо определить множества входных текстов и исключений и задать
необходимые настройки для их обработки.
Изначально в дереве проекта создаются два пустых корневых
раздела (узла):
- Множество входных текстов
(Input Texts Set);
- Множество исключений
(Exclusion Set).
Пользователь может расширить эту структуру, создав в любом
из корневых разделов нужное число дополнительных разделов
любой степени вложенности. Например:

Создание, очистка и переименование разделов проекта осуществляется с
помощью команд меню Правка (Edit).
В созданные разделы дерева проекта включаются ссылки на текстовые файлы. Это
можно сделать двумя способами - либо добавлять файлы по одному с помощью
команды "Добавить файл(ы) к проекту" (Add file(s) to Project) или
включить все файлы из выбранной папки файловой структуры компьютера с
помощью команды "Добавить директорию" (Add Directory).
Стиль работы с деревом проекта максимально приближен к идеологии Проводника
(Explorer). Пользователь может перетаскивать объекты (файлы и разделы) с
помощью мыши и открывать файлы для просмотра/редактирования
двойным щелчком левой кнопки.
При использовании варианта, когда файлы добавляются целой директорией,
в окне Настройки (Preferences) можно определить фильтр для
включаемых файлов и задать необходимость просмотра вложенных папок
(поддиректорий).

Кроме того в окне настроек можно задать язык интерфейса программы и
отменить вывод запросов о потверждении выполнения операций удаления и очистки
разделов проекта.

Основные параметры не нуждаются в специальных пояснениях. Следует
только сказать о следующем.
Параметр "Поисковый запрос" задает строку поиска
нужных элементов. В запросе допустимы символы
маскирования:
символ астериска
(*) или процента (%) задает
любую последовательность
символов (возможно,
пустую);
символ "знак
вопроса" (?) задает любой
(один) непустой символ.
Использование запросов очень удобно в случае обработки словосочетаний, так
как позволяет значительно сузить размеры выходного индекса. К примеру в случае
2-мерных словосочетаний запрос "???? ????" задает обработку
только сочетаний 4-буквенных слов.
Параметр "Фонт для Unicode символов" задает имя TrueType
фонта, с помощью которого возможно отображение символов Unicode в HTML-тексте.
При задании опции символы Unicode включаются в состав обрабатываемых
элементов.
Параметр "Выходной индекс" задает файл результатов. При задании
выходного индекса как текстового файла (расширение .TXT) результаты
форматируются в виде текстового списка. При задании выходного индекса как
HTML-файла (расширение .HTM или .HTML) результаты форматируются в
виде HTML-таблицы с включением ссылок на контекст.
Параметр "Вывести элементы" задает состав элементов в выходном
индексе: по умолчанию включаются все элементы, но можно ограничиться только
первыми или последними N элементами.
Кодировка текстов задается для всей обрабатываемой совокупности -
смешение кодировок не допускается.
Минимальная длина элемента задается в символах (буквах) - элементы меньшей
длины игнорируются.
Минимальная частота элемента определяет пороговую частоту встречаемости
элемента в обрабатываемой совокупности текстов - элементы с меньшей частотой
игнорируются.
Параметр "Обработка исключений" задает правила обработки множества
исключений. По умолчанию элементы множества исключений "вычитаются" из
множества обрабатываемых элементов.

В режиме "пересечение" учитываются только элементы, встречающиеся
в обеих совокупностях:

В режиме "объединение" исключения просто добавляются к множеству
входных текстов:

Кроме того, можно вообще запретить обработку исключений, задав режим
"нет".
Флажок "запросы в исключениях" задает
возможность задания в текстах множества исключений поисковых запросов с
использованием символов маскирования (* и ?).
Для удобства работы с деревом проекта предусмотрены горячие клавиши,
дублирующие некоторые команды меню или нажатий кнопки мыши. Вот их
список:
| клавиша |
|
действие |
| Enter |
|
открывает выделенный
объект |
| Ctrl+PgUp |
|
сворачивает текущий
раздел |
| Ins или F7 |
|
создает новый подраздел
в дереве проекта |
| Del или F8 |
|
удаляет текущий объект
из дерева проекта |
После задания всех необходимых опций процесс обработки текстов запускается
кнопкой "Run". При этом запускается консольное приложение
WotdTabulator (файла wt.exe). После успешного выполнения этого
приложения становится доступна кнопка просмотра выходного индекса.
В случае длительного "зависания" консольного приложения, его можно
прервать нажатием на кнопку "Stop" (такая ситуация не исключена
при сортировке очень большого индекса).
При сохранении проекта в файл возможен прямой запуск процесса обработки с
помощью консольной команды:
wt.exe @@файл_проекта
Файл проекта сохраняется автоматически каждый раз при нажатии кнопки
"Run" и записывается в файл wt$temp.wt в системной папке для
временных файлов. Туда же сохраняется выходной индекс (wt$temp.htm), если он не
задан в опциях проекта.
Ниже приведены результаты обработки CD "Весь Пушкин"
для слов, оканчивающихся на -ыя. (время
обработки для Pentium II (333) с 64Мб памяти составило 23 секунды).
Поисковый запрос: *ыя
Тип элементов: Словоформа
| # |
Элементы |
Ссылки |
Частота |
| 1. |
алыя |
1
(1) |
1 |
| 2. |
Батыя |
1
(1) |
1 |
| 3. |
блистательныя |
1
(1) |
1 |
| 4. |
брачныя |
1
(1)
|
1 |
| 5. |
вечныя |
1
(1) |
1 |
| 6. |
вселенныя |
1
(1) |
1 |
| 7. |
зеленыя |
1
(1)
|
1 |
| 8. |
златыя |
1
(1) |
1 |
| 9. |
Минутныя |
1
(1) |
1 |
| 10. |
милыя |
1
(1), 2
(1) |
2 |
| 11. |
мудрыя |
1
(1) |
1 |
| 12. |
первыя |
1
(1) |
1 |
| 13. |
славныя |
1
(1) |
1 |
| 14. |
Сребристыя |
1
(1) |
1 |
| |
|
|
15 |
В следующих версиях программы предполагается ввести возможность
пост-разметки обрабатываемых текстов, чтобы иметь возможность точного
перехода в нужный контекст.
Кроме того, планируется включить в программу обработку SGML
и XML документов с возможностью анализа их DTD (Document Type
Definitions).
Данная программа не могла появиться без кропотливого труда автора
и помощи разных людей.
Хочется поблагодарить Ральфа Грисволда (Ralph Griswold) из
Аризонского Университета, разработавшего бесценный язык
программирования Icon, на
котором написано консольное приложение табулятора.
Очень полезным кодом поделился с автором Кристо Краузе (Christo
Crause) из Южной Африки.
За творческую поддержку и полезные советы большая благодарность Владимиру
Литвинову из Снежинска.
И еще - без поддержки Института
Открытого Общества (фонд Джорджа Сороса), выделившего автору грант на
разработку программного обеспечения в проекте
Русской Виртуальной Библиотеки
(Евгений Горный, Москва), ничего бы, наверное, не получилось.
Просьба направлять сообщения о всех замеченных ошибках и
пожелания автору по адресу:
slogichev@mail.ru
wtsetup.exe (680 kB)
|