Лекция 8. Языки запросов корпусных менеджеров. Выходные интерфейсы В.П. Захаров Санкт-Петербургский государственный университет Обобщенная структурная модель языка запросов Собственно поисковые элементы (термины, выражающие информационную потребность, и т.п.). 2. Средства морфологической нормализации текстовых элементов запроса. 3. Поисковые (булевские) операторы. 4. Средства линейной грамматики (операторы расстояния, позиционные операторы). 5. Дополнительные условия поиска: 1. поиск в определенных полях (частях) документа; ограничение области поиска по языку, региону, дате создания документа; и т.п. Средства управления критерием смыслового соответствия. 7. Требование на сортировку (ранжирование) выдаваемых результатов поиска. 8. Требования к форме представления результатов поиска: 6. Лекция 8 вид выдаваемых результатов; количество выдаваемых документов; и т.п. Корпусная лингвистика 2 Способы задания запроса Два подхода (базируются на языке регулярных выражений): оконный интерфейс см. далее язык запросов BONITO формализованный язык запросов см. далее язык запросов DDC Лекция 8 Корпусная лингвистика 3 Язык регулярных выражений Каждое выражение состоит из одной или нескольких управляющих команд. Некоторые из них можно группировать, и тогда они считаются за одну команду. Все управляющие команды разбиваются на три класса: простые символы, а также управляющие символы, играющие роль их заменителей; управляющие конструкции (квантификаторы повторений, оператор альтернативы, группирующие скобки и т.д.); так называемые мнимые символы (в строке их нет, но они "помечают" какую-то часть строки например, ее конец). Лекция 8 Корпусная лингвистика 4 Язык регулярных выражений (2) Простые символы Класс простых символов, действительно, самый простой. А именно, любой символ в строке на языке RegEx обозначает сам себя, если он не является управляющим. К управляющим символам причисляются следующие: .*?+[]{}|$^ Группы символов "л.к" "л[иуа]к" Квантификаторы повторений Ноль и более совпадений: "19*8« Одно и более совпадений: "[а-я]+-[а-я]+" Ноль или одно совпадение: "Петров[аы]?" Заданное число совпадений: А{n,m} - указывает, что символ "А" может быть повторен от n до m раз; А{n} - символ "А" должен быть повторен ровно n раз; А{n, } - символ "А" может быть повторен n или более раз. Лекция 8 Корпусная лингвистика 5 Bonito/Manatee Язык запросов поиск отдельных атрибутов (словоформа, лемма, тэг); • использование регулярных выражений; • логические операторы; • средства задания структуры (границы предложения и др.); • быстрая обработка сложных запросов; • шаблоны; • Конкордансные списки история запросов пользователя; • просмотр морфологических характеристик словоформы; • отображение леммы; • Операции над конкордансом сохранение списков в файл; • печать списков; • сортировка по ключевым словам, контексту; • фильтрация (удаление части построенных конкордансов); • удаление повторений. • Лекция 8 Корпусная лингвистика 6 Bonito: запросы Пользователь может ввести собственно запрос, сформулированный по правилам языка запросов системы, или шаблон (готовый или созданный пользователем) в окно запросов. Запрос состоит из двух частей: тип запроса (выбирается кнопкой-меню в верхнем левом углу окна); текст запроса или шаблона (набирается в первом окне ввода). Лекция 8 Корпусная лингвистика 7 Bonito: примеры запросов Пример 1. Поиск синтагмы Допустим, мы хотим найти разрывную синтагму "take (smth) out". В окно запроса вводится "take". Строится конкорданс для данного КС. Выбирается тип запроса Положительный фильтр (P-filter). В оба окна "From:" и "To:" вводится значение "2", что соответствует второй позиции справа от найденного слова для "оторванной" части синтагмы (у нас "out"). В окно запроса вводим "out". Выдается: for governor would force it to <take> petitions out into voting the peasant . Nonetheless , they <take> time out -- much time -Mis-ter McBride . You do that or <take> you out a permit right now Лекция 8 Корпусная лингвистика 8 Bonito: поиск всех форм слова по лемме В окно запроса вводится "[lemma="be"] within <head>". Выдается: <head>DECISIONS <ARE> MADE</head>Asked to elaborate <head>LEADERSHIP <IS> HOPEFUL</head>The housingNations .<head>FORMULA <IS> DUE THIS WEEK</head>The Advisory year .<head>COULD <BE> SCRAMBLE</head>Some predict ends .<head>CHOICE <WAS> EXPECTED</head>The selection <head>TOBACCO ROAD <IS> DEAD . LONG LIVE TOBACCO Лекция 8 Корпусная лингвистика 9 Bonito: поиск по морфологическим признакам (1) • a sequence of an adjective, a noun, a conjunction and another noun: [pos="JJ.*"] [pos="N.*"] "and|or" [pos="N.*"]; (takes some time to compute) • • • a noun, followed by either is or was, followed by a verb ending in ed: [pos="N.*"] "is|was" [pos="V.*" & word=".*ed"]; similar, but is or was followed by a past participle (which is described by a special POS tag): [pos="N.*"] "is|was" [pos="VBD"]; catch or caught, followed by a determiner, any number of adjectives and a noun, or a noun, followed by was or were, followed by caught: "catch|caught" [pos="DT"] [pos="JJ"]* [pos="N.*"] | [pos="N.*"] "was|were" "caught"; (due to the truncation to 15 concordance lines in this demo version, you will only get results matching the first disjunct of this query) look or bring, followed by either up or down with at most 10 non-verbs in between: "look|bring" [pos != "VB.*"]{0,10} "up|down" Лекция 8 Корпусная лингвистика 10 Bonito: поиск по морфологическим признакам (2) В окно запроса вводится "[tag="VVZv"]". Выдается: charge of the election , " <deserves> the praise and thanks of the However , the jury said it of Fulton County , which when the new management face is a state law which <believes> " these two offices should be <receives> none of this money " . The <takes> charge Jan. 1 the airport be <says> that before making a first Пример демонстрирует возможность корпусного менеджера искать словоформы по морфологическим признакам. Код "VVZv" означает, что это третье лицо ед.ч. (Zv) значимого глагола (VV). Такая кодировка предложена схемой аннотирования SUSANNE. Следовательно, данная возможность будет успешно использоваться теми, кто знаком с принципами данной схемы аннотирования. Лекция 8 Корпусная лингвистика 11 Bonito: Поиск конкретной словоформы (КС) В окно запроса вводится КС "run". Выдается: announced that he would not <run> for reelection . Georgia medical benefits paid out would <run> 1 billion or more in the May , said today Jones will <run> well ahead of his GOP opponents reports that he had decided to <run> and wanted Mr. Screvane , investigation Street car tracks <run> down the center of Pennsylvania Система ищет полное соответствие запрашиваемому слову и выдает результат. Иных словоформ для КС "run" не будет найдено. Лекция 8 Корпусная лингвистика 12 Bonito: Поиск синтагмы В окно запроса вводится "run in". Выдается: contest . The Orioles got a <run in> the first inning when Breeding record in the 600 - yard <run in> the Knights of Columbus track The Bears added their last <run in> the sixth on Alusik 's double for the third Indianapolis <run in> the ninth . Despite the 45 's first major league home <run in> the fifth put the Sox back Словоформы ищутся в строго заданном (линейном) порядке, как неразрывная синтагма. Лекция 8 Корпусная лингвистика 13 Bonito: Поиск различных форм слова (1) В окно запроса вводится "runs? in". Выдается: tied the game , and single <runs in> the eighth and ninth gave record in the 600 - yard <run in> the Knights of Columbus track their eight hits for two <runs in> the sixth . Chuck Hinton The Bears added their last <run in> the sixth on Alusik 's double 's first major league home <run in> the fifth put the Sox back В данном запросе используется управляющий символ "?", который означает, что предшествующая ему буква "s" может встретиться ноль или один раз. Полученный результат подтверждает это. Лекция 8 Корпусная лингвистика 14 Bonito: Поиск различных форм слова (2) В окно запроса вводится "run(|s|ning)". Выдается: announced that he would not <run> for reelection . Georgia medical benefits paid out would <run> 1 billion or more in the the group are interested in <running> on the required non lawyer and former FBI man is <running> against the Republican tied the game , and single <runs> in the eighth and ninth gave Здесь используются группирующие скобки и оператор альтернативы ( | ) (логическое "или"). То есть, системе дается команда найти КС "run" или "runs" или "running". Лекция 8 Корпусная лингвистика 15 Корпусный менеджер DDC: язык запросов (1) (Dialing-DWDS-Concordance) Тип Назначение запроса Пример Результат Word Описание слова дом Все предложения, в которых есть морфологический вариант слова «дом». Word* Описание слова до* Все предложения, в которых есть слово, имеющее префикс «до». /regexp/ Описание слова регулярным выражением /^до.*ло$/ Все предложения, в которых есть слово, имеющее префикс «до» и постфикс «до». *Word *до Лекция 8 Описание слова Все предложения, в которых есть слово, имеющее постфикс «до». Корпусная лингвистика 16 Корпусный менеджер DDC: язык запросов (2) (Dialing-DWDS-Concordance) Тип запроса Пример Результат [PartOfSpeech описание слова Features] [C ед] [Г пвл] "PartOfSpeech" - часть речи, "Features" - граммемы (см. ниже полный список граммем и частей речи) @Word описание слова @дом все предложения, в которых есть словоформа "дом" (точное соответствие) "X1 X2 ... XN" последовательность слов "мой новый дом" "дом [Г]" все предложения, в которых есть "мой новый дом" все предложения, в которых есть "дом", за которым сразу идет какой-нибудь глагол Q1 && Q2 конъюнкция описаний слов или последовательностей слов дом && [С ед] все предложения, в которых есть "дом" и существительное в единственном числе Лекция 8 Назначение Корпусная лингвистика 17 Корпусный менеджер DDC: язык запросов (3) (Dialing-DWDS-Concordance) Тип запроса Назначение Пример Q1 && !Q2 конъюнкция описаний слов или последовательностей слов с отрицанием [С ед] && все предложения, в !дом которых есть существительное в единственном числе, но нет слова "дом" Q1 || Q2 дизъюнкция описаний слов или последовательностей слов [Г 2л] || "мой дом" near(Q1;Q2;n) два слова рядом друг с NEAR другом 0<=n<=32 (дом ; [С]; 2) Лекция 8 Корпусная лингвистика Результат все предложения, в которых есть глагол во втором лице или словосочетание "мой дом" все предложения, в которых есть "дом" и какое-нибудь существительное, и между ними стоит не больше двух слов 18 Корпусный менеджер DDC: язык запросов (4) (Dialing-DWDS-Concordance) Тип запроса Назначение Пример Результат "X1 #D1 X2 #D2 : XN" последовательность слов с максимальными дистанциями "мой #1 дом" все предложения, в которых есть "мой", за которым следует "дом", и между ним не больше одного слова A with B конъюктивное описание слова (должно одновременно выполняться А и B) петух with [C им] поиск слова петух, которому приписана морф. интерпретация [C им] Лекция 8 Корпусная лингвистика 19 Корпусный менеджер CQP (1) (Corpus Query Processor) Способы задания запросов: 1. простой поиск, подобный использованию Google, задан по умолчанию; 2. поиск точной последовательности с использованием упрощенного языка запросов (кавычки); 3. поиск с использованием всех возможностей CQP. Слово в запросе может быть представлено: словоформой (setting); леммой – необходим знак % (set% означает set, sets, setting); набором словоформ или лемм со знаком дизъюнкции |, для нахождения одного или другого слова запроса, например indignation|resentment indignation ИЛИ resentment; для поиска набора лемм используется % в конце всего выражения (absorb|accumulate% для поиска absorbed, accumulates и т.д.); подцепочкой .*, e.g. indigna.* находит indignant и indignation неизвестным словом . (точка); последовательностью неизвестных слов, которые могут быть заданы .. (две точки соответствуют возможному интервалу между словами) или диапазоном ..N-M (где N и M соответствуют минимальному и максимальному количеству слов в интервале). Лекция 8 Корпусная лингвистика 20 Корпусный менеджер CQP (2) (Corpus Query Processor) Примеры запросов: thank верхний или нижний регистр: "[tT]hank"; Слово, начинающееся с confuse, за которым следует предлог или личное местоимение: "confuse.*" [pos="IN" | pos="PP"]; или "confuse.*" ([pos="IN"] | [pos="PP"]); или "confuse.*" [pos="IN|PP"]; то же самое, но на расстоянии от 0 до 10 слов: "confuse.*" []{0,10} [pos="IN" | pos="PP"]; то же самое, но без точек между: "confuse.*" [word!="\."]{0,10} [pos="IN" | pos="PP"]; (надо использовать \, иначе будут исключены все односимвольные слова) Лекция 8 Корпусная лингвистика 21 Входной интерфейс для поиска в НКРЯ Лекция 8 Корпусная лингвистика 22 Входной интерфейс для грамматического поиска в НКРЯ Лекция 8 Корпусная лингвистика 23 Выходной интерфейс НКРЯ Лекция 8 Корпусная лингвистика 24 SARA: корпусный менеджер BNC Лекция 8 Корпусная лингвистика 25 Выходной интерфейс BNC Лекция 8 Корпусная лингвистика 26 Выходной интерфейс Bonito (Marie Kopřivová, Jan Kocek) Лекция 8 Корпусная лингвистика 27 Выходной интерфейс DDC Лекция 8 Корпусная лингвистика 28