Система Orphus
РВБ лого
Русская виртуальная библиотека
Основана 1 декабря 1999 г.
Последнее обновление: 28.05.2002 17:08
 
Что такое WT?
Информация
Возможности
Определения
Создание проекта
Настройки
Опции проекта
Горячие клавиши
Выходной индекс
Перспективы
Благодарности
Отзывы
Скачать

WordTabulator для Windows 9x/NT

Программа для статистической обработки текстов
Версия 1.0

 

Что такое WordTabulator?

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-мерное словосочетание "дорога в ад" в предложении "Благими намерениями вымощена дорога в ад".

Синтагма есть непустая последовательность словоформ в предложении, ограниченная справа разделителем из множества знаков препинания и специальных символов: {.,!?:;+=()[]/"<>}. Например, предложение «Есть хорошая латинская поговорка: "в здоровом теле - здоровый дух"» включает в себя две синтагмы - "Есть хорошая латинская поговорка" и "в здоровом теле здоровый дух". Набор разделителей может переопределяться пользователем.

Обработка текста всегда осуществляется по следующему алгоритму:
  1. Из текста в соответствии с заданным набором разделителей выделяются синтагмы.
  2. Из отдельных синтагм выделяются словоформы или словосочетания (если это необходимо).
  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)

© С.В.Логичев, 1999.
РВБ