Методика лингвистического анализа текста с помощью xMarkup, mystem и minicorpus.mdb

Содержание

Предварительные замечания

Предлагаемая методика использования xMarkup, mystem и MS Access позволяет выполнять следующее:

Определение автоматический означает, что программа реализует указанную функцию без участия человека, определение автоматизированный подразумевает большую или меньшую степень ручной работы, а автоматизируемый указывает на то, что эта функция может быть автоматизирована (при наличии базы данных, в которой лексемам уже приписаны те или иные семантические категории).

Что потребуется для работы

В начало

Пояснения по поводу порядка работы с текстом

Обработка исходного текста

Более чем вероятно, что вы обнаружите нужный вам текст на сайте библиотеки Мошкова. При этом необходимо иметь виду, что в большинстве случаев текст будет иметь следующий вид:

образец текста на lib.ru

На рисунке видны следующие недостатки оформления текста, которые затруднят работу с ним:

Если источник, найденный вами для анализа, свободен от указанных недостатков, пропустите следующий параграф, создайте в папке C:\Program Files\xmwin\bin текстовый файл в кодировке ANSI, сохраните его как text.txt и скопируйте в него содержимое своего текстового файла.

Для подготовки текста придется познакомиться с инструкцией, поставляемой совместно с программой “Графический интерфейс утилиты xMarkup. Руководство пользователя”. Следует создать текстовый файл, скопировать в него анализируемый текст, и указать этот файл в качестве исходного, апустить программу, указать в качестве файла правил обработки файл lib.par, включенный в состав архива, на вкладке “Результаты” выбрать “сохранять с префиксом xm$ в имени в исходную папку”. После выполнения преобразований необходимо проверить полученный файл с префиксом xm$, убедиться в отсутствии ошибок и переименовать его в text.txt для подготовки к загрузке в базу.

В начало

Преобразование исходного текста в набор таблиц

В состав скачиваемого архива входят три файла с правилами обработки, которые использует программа xMarkup, для преобразования исходного текста в набор таблиц. Все файлы правил обработки предусматривают работу с файлами в формате .txt с кодировкой ANSI и предназначены для преобразования информации в исходном файле в таблицы, записываемые в выходные текстовые файлы с разделителем в виде табуляции. Для указанной цели служат следующие файлы:

ФайлНазначениеВид получаемой таблицы
_para_num.parнумерация абзацев в исходном тексте<порядковый номер абзаца в тексте> – <текст абзаца>
_extr_para_sent_num.parнумерация предложений в исходном тексте <порядковый номер абзаца в тексте> – <порядковый номер предложения в тексте> – <текст предложения>
_extr_sent.par
_extr_words.par
нумерация слов (словоупотреблений) в исходном тексте– <порядковый номер слова в предложении> – <слово>

Для выполнения всех преобразований сразу в состав архива также включен пакетный файл segment_text.bat. Для его выполнения необходимо, чтобы исходный текст был сохранен в кодировке ANSI как text.txt и находился в той же папке C:\Program Files\xmwin\bin. В результате выполнения файла segment_text.bat в той же папке появятся файлы _para.txt, _sent.txt, _words.txt, связь с которыми прописана в файле minicorpus.mdb. В состав пакетного файла segment_text.bat включены пояснения по поводу этапов работы с текстом, которые выводятся на экран командной строки при выполнении цикла (для возможности просмотра этих команд необходимо выбрать шрифт Lucida Console в огкне свойств командной строки).

В начало

Пояснения по поводу работы с парсером mystem

В состав скачиваемого архива включены два файла правил обработки mystem1.par, mystem2.par для их использования утилитой xMarkup, служебный файл mystem_add и пакетный файл lemmatize.bat, запускающий парсер mystem и необходимые преобразования. Работа с парсером предусматривает наличие входного файла in.txt, выгружаемого из minicorpus.mdb и содержащего перечень уникальных словоформ анализируемого текста с их числовыми идентификаторами. В фаийле in.txt словоформы располагаются в виде списка:
717<tab>белая
879<tab>бледно

После операции лемматизации, выполненной парсером, и преобразований, выполненных утилитой xMarkup, файл результатов out_n имеет вид
F1;F2;F3;F4;F5;F6;F7;F8;F9
717;белый=A;белая=S,фам,жен,од
879;бледный=A;бледно=ADV

В состав пакетного файла lemmatize.bat также включены пояснения по поводу этапов работы, которые выводятся на экран командной строки при выполнении цикла (для возможности просмотра этих команд также необходимо выбрать шрифт Lucida Console в огкне свойств командной строки).

В начало

Описание структуры базы данных minicorpus.mdb

Описание таблиц

В базе использованы таблицы следующих типов:

Если не указано иное, описание полей таблиц находится внутри самих таблиц (для этого необходимо открыть соответствующую таблицу в режиме конструктора).

Тип таблицыИмя таблицыНазначение
таблицы связи_paraсвязь с файлом _para.txt, состоящим из двух колонок — номер абзаца и текст абзаца
_sentсвязь с файлом _sent.txt, состоящим из трех колонок — номер абзаца, номер предложения в тексте и текст предложения
_wordсвязь с файлом _word.txt, состоящим из трех колонок — номер предложения, номер слова в предложении и слово (словоформа)
out_nсвязь с файлом out_n.txt, содержащим результаты морфологического разбора, выполнного парсером mystem
обновляемые таблицыt_parasсодержит абзацы исходного текста
t_sentsсодержит предложения исходного текста
t_wordsсодержит слова (словоформы) исходного текста
words_plainсодержит уникальные (не допускающие повторений) словоформы исходного текста, служит для оптимизации токенизации и создания картотеки
word_lemmхранение вариантов морфологического разбора словоформ с полем для указания правильного разбора
lemm_categхранение информации о грамматических и семантических характеристиках лексемм
перезаписываемые таблицыword_repetиспользуется для подсчета частоты словоформ в тексте:
  • поле word2 — словоформа
  • поле Повторы — количество употреблений
lemm_freqиспользуется для подсчета частоты словоформ в тексте:
  • поле lemm — лексема с индексом ЧР
  • поле lemm_freq — количество употреблений
pos_var_qtyиспользуется для подсчета количества вариантов морфологического разбора:
  • поле word1 — id словоформы из таблицы words_plain
  • поле Повторы — количество употреблений
таблицы-справочникиcateg_1хранение списка семантических категорий (в поле categ_1, повторения не допускаются).
posхранение списка частей речи (в нотации, принятой в парсере mystem); поле pos — индекс части речи, в поле no отмечены незнаменательные части речи для того, чтобы в запросе lemm_categorization предлагались для анализа только слова знаменательных частей речи.

В начало

Описание запросов

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

Тип запросаИмя запросаНазначение
запросы на удаление записейclear_lemm_categудаление всех записей из таблицы lemm_categ
clear_t_parasудаление всех записей из таблицы t_paras
clear_t_sentsудаление всех записей из таблицы t_sents
clear_t_wordsудаление всех записей из таблицы t_words
clear_word_lemmудаление всех записей из таблицы word_lemm
clear_words_plainудаление всех записей из таблицы words_plain
запросы на добавление записейadd_parasдобавление данных из таблицы _para в таблицу t_paras
add_sentsдобавление данных из таблицы _sent в таблицу t_sents
add_wordsдобавление данных из таблицы _word в таблицу t_words
add_words_plainдобавление уникальных словформ из таблицы t_words в таблицу words_plain
after_mystem_3добавление вариантов морфологического разбора в таблицу word_lemm для их анализа
after_mystem_4добавление слов с дефисом в таблицу word_lemm для их анализа
lemm_categ_addдобавление данных в таблицу lemm_categ
запрос на объединениеafter_mystem_1После токенизации, выполненной парсером mystem, номеру-идентификатору словоформы приписаны в строку все варианты морфологического разбора. В целях дальнейшего анализа необходимо получить таблицу только из двух колонок — номер-идентификатор и вариант морфологического разбора. Для этого используется оператор UNION
запросы на выборкуafter_mystem_2выбор непустых строк из запроса after_mystem_1
lemm_categ_selectзапрос-источник данных для добавления в таблицу lemm_categ
lemm_categorizationзапрос для присвоения семантических категорий лексемам, источник данных для вкладки “Категоризация”
record_cardзапрос для выбора необходимых параметров для формирования карточки слова; служит источником формирования подчиненной формы record_card на вкладке “Карточка слова”
record_card_sourceзапросы для выбора необходимых параметров для анализа сочетаемости слов
record_card_source_11
record_card_two_wordsзапрос, результирующий выбор параметров для формирования карточки сочетаемости пар слов; служит источником формирования подчиненной формы record_card_two_words на вкладке “Сочетаемость”
record_set_1группировка лексем по категориям с возможностью просмотра контекстов употребления лексем, источник вкладки “Контексты по категориям”
tokenizationисточник данных для принятия решения о правильном варианте морфологического разбора, источник данных для вкладки “Лемматизация”
word_sentзапрос, выделяющий конкретную словоформу в предложении верхним регистром букв
words_plain_for_mystemисточник данных для экспорта в файл in.txt для анализа парсером mystem
запросы на создание таблицafter_mystem_5создание таблицы pos_var_qty, содержащей количество вариантов разбора словоформ
after_mystem_7создание таблицы word_repet, содержащей количество вариантов разбора словоформ
lemm_freq_createсоздание таблицы lemm_freq
запросы на обновлениеafter_mystem_6добавление числа вариантов морфологического разбора в таблицу words_plain
after_mystem_8добавление частоты употреблений словоформы в таблицу words_plain
after_mystem_9добавление в таблицу t_words морфологического разбора словоформ, для которых парсер предложил только один вариант разбора
lemm_freq_updateобновление таблицы lemm_freq по результатам анализа правильности вариантов морфологического разбора
update_t_words_by_lemmasвызывает обновление поля lemm_F таблицы t_words по результатам проверки морфологического разбора
update_tokenizationвызывает обновление поля checked таблицы words_plain по результатам проверки морфологического разбора

В начало

Описание макросов

В базе использованы самые простые макросы — представляющие собой последовательный вызов тех или иных запросов. Макросы, с указанием запросов, которые они вызывают, и кнопок на форме MainForm, запускающих макросы, перечислены в таблице ниже. Пояснения по действиям, выполняемых макросом, не приводится, так как оно следует из названия кнопки. Запросы описаны в соответствующих разделах.

Имя макросаЗапускаемые запросыУправляющая кнопка
clear_text_tables
  1. clear_t_paras
  2. clear_t_sents
  3. clear_t_words
  4. clear_word_lemm
  5. clear_words_plain
  6. clear_lemm_categ
[1] Очистить рабочие таблицы
(Вкладка “Кнопки управления”)
add_paras_sents_words
  1. add_paras
  2. add_sents
  3. add_words
  4. add_words_plain
[3] Добавить в базу абзацы, предложения и слова
(Вкладка “Кнопки управления”)
load_for_mystemЭкспорт данных из запроса words_plain_for_mystem в текстовый файл in.txt для лемматизации[4] Выгрузить слова для лемматизации
(Вкладка “Кнопки управления”)
load_from_mystem
  1. after_mystem_5
  2. after_mystem_6
  3. after_mystem_7
  4. after_mystem_8
  5. after_mystem_9
  6. after_mystem_4
[7] Загрузить слова из mystem (Шаг 2)
(Вкладка “Кнопки управления”)
update_tokenization_results
  1. update_t_words_by_lemmas
  2. update_tokenization
Обновить результаты токенизации
(Вкладка “Лемматизация”)
add_lemm_categ
  1. add_lemm_categ
  2. lemm_freq_create
  3. lemm_freq_update
Добавить леммы для анализа
(Вкладка “Категоризация”)

В начало

Описание интерфейса основной формы (MainForm) minicorpus.mdb

Под индикатором развертывания подразумевается кнопка “+” или “–” слева или справа от записи, служащая для развертывания или свертывания записей, сгруппированных относительно текущей записи.

Вкладка Кнопки управления

На вкладке расположены кнопки, вызывающие выполнение запросов, макросов и пакетных файлов, необходимых для загрузки текста в БД и выполнения морфологического анализа. Если настройки MS Access на Вашем компьютере не позволяют выполнить какие-либо операции, необходимо следовать инструкциям внизу соответствующей кнопки.

controls.png

В начало

Вкладка Лемматизация

Вкладка предназначена для токенизации тех словоформ, для которых парсер предложил более одного варианта морфологического разбора. Имеет окно с перечнем словоформ и две кнопки – Открыть как обычный запрос и Обновить результаты токенизации.

Окно с перечнем словоформ представляет собой таблицу со следующими колонками:

Источником окна с перечнем словоформ служит запрос tokenization. При желании, можно изменить критерии отбора словоформ для токенизации. Для этого служит кнопка Открыть как обычный запрос. После того как запрос откроется, можно войти в режим конструктора и изменить условия отбора.

В правом столбце перечня словоформ имеется индикатор развертывания, после нажатия на который появляется вложенная таблица со следующими колонками:

После нажатия на индикатор развертывания около любого из вариантов морфологического разбора появляется вложенная таблица с контекстами употребления словоформы. Вложенная таблица с контекстами имеет следующие колонки:

Таблица с контекстами служит для следующих целей:

Например, в тексте встретилось два глагола стекла и четыре существительных стекла. В этом случае во вложенной таблице контекстов достаточно указать правильный вариант разбора для глаголов (“стекать=V”), а в поле pos_yes поставить отметку напротив варианта разбора “стекло=S,муж,неод”. После нажатия кнопки Обновить результаты токенизации программа присвоит вариант разбора “стекло=S,муж,неод” всем неотмеченным употреблениям формы стекла.

В начало

Вкладка Категоризация

Предназначена для присвоения произвольных категорий лексемам, составляющим словник текста. Характер присваиваемых категорий зависит от целей исследования — это может быть гипероним, условное наименование ТГ, ЛСП, ФСП, интегральной семы / семантического множителя, концепта и т.д. При необходимости присвоения лексико-семантической информации всем лексемам текста можно ориентироваться на перечень лексико-семантических помет, представленных на странице, описывающей семантическую разметку НКРЯ. Вкладка имеет два окна и одну кнопку добавить леммы для анализа, на которую необходимо нажать после того, как всем необходимым для анализа лексемам была присвоена нужная морфологическая категория.

Окна вкладки:

В начало

Вкладка Контексты по категориям

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

tab_categ_contexts.PNG

В начало

Вкладка Карточка слова

Вкладка сводит воедино всю хранящуюся в базе информацию о конкретном словоупотреблении

tab_word_record.PNG

В начало

Вкладка Сочетаемость

Вкладка предназначена для моделирования поиска сочетаний слов в пределах предложений текста по нескольким категориям (ограниченно имитируя функциональность соответствующего поиска в НКРЯ). Использование стандартных средств фильтрации и сортировки позволяет искать пары слов по следующим параметрам (по отдельности или одновременно):

tab_cooccurence.PNG

Вкладка Подсказки

Иногда на вкладках “Лемматизация” и “Категоризация” пропадает индикатор развертывания для отображения контекста. В этом случае необходимо выполнить действия, указанные на этой вкладке.

В начало

Используются технологии uCoz