Язык запросов

advertisement
Лекция 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
Download