Синтаксический разбор цитаты при помощи шаблонов
Если в шаблоне нет символьных блоков, первым проверяется наличие блок-полей, соответствующих дополнительной информации, например, такой как «Выпуск», «Том». Если такие блок-поля отсутствуют в ссылке или находятся в неправильной последовательности, то отбор прекращается, иначе происходит переход к первостепенным блок-полям: «Автор», «Название», «Источник». В качестве примера, рассмотрим применение… Читать ещё >
Синтаксический разбор цитаты при помощи шаблонов (реферат, курсовая, диплом, контрольная)
Под синтаксическим разбором цитаты [Захарова, 2003] мы будем понимать определение полей, входящих в нее, и нахождение их значений.
Согласно нашему подходу, синтаксический разбор осуществляется путем сопоставления цитаты различным шаблонам. В случае, если цитата подходит под какой-либо шаблон, то указанным в шаблоне полям ставится в соответствие их текстовое значение.
Каждый шаблон описывается упорядоченным набором блок-полей или символьных блоков.
:= {|}+.
Блок-поле в записи шаблона представляют собой имя поля, заключенное в угловые скобки. Определение в цитате значения некоторого блок-поля происходит при помощи других шаблонов (будем называть их частичными) путем нахождения им соответствий в цитате.
Частичные шаблоны описываются на языке PCRE (Perl Compatible Regular Expressions) [PCRE, 2010]. Редактирование и создание их требует от пользователя хорошего знания этого языка. Пример частичного шаблона «Фамилия И.О.» поля :
[A-ZА-Я][a-zа-я]?['-]?[A-ZА-Я]?[a-zа-я]+s[A-ZА-Я]. A-ZА-Я].
В цитате может быть как один, так и несколько элементов, соответствующих указанному полю (например, у рассматриваемого источника может быть несколько авторов), при этом одно блок-поле может выделять из цитаты несколько значений этого поля.
В синтаксическом разборе мы используем следующие блок-поля: «Автор», «Название», «Год», «Название журнала», «Том», «Выпуск», «Стартовая страница», «Конечная страница», «URL» и другие.
Символьные блоки — это набор символов, как правило, присутствующий в шаблоне для описания характерных для библиографической ссылки элементов. Например, согласно [ГОСТ 7.1−84, 1984] название статьи и название журнала в библиографической ссылке разделяются комбинацией «//». Символьные блоки располагаются в шаблоне между блок-полями.
Синтаксический разбор цитаты можно разделить на три этапа:
Нормализация цитаты — это устранение из цитаты незначимых символов, приведение ее к виду, удобному для сопоставления с шаблонами.
Поиск цитаты в уже имеющейся библиографической базе данных.
Применение шаблонов.
Нормализация цитаты в предлагаемом нами варианте включает в себя:
Удаление всех повторяющихся пробелов.
Удаление и исправление некоторых комбинаций символов.
Приведение значений некоторых полей к удобному для сопоставления виду.
Замена сокращений на полные варианты слов [ГОСТ 7.12−93, 1994].
Наличие этого этапа необязательно, но в ряде случаев улучшает качество разбора цитаты.
После нормализации происходит проверка совпадения значений полей цитаты с уже имеющейся в библиографической базе данных информацией: фамилиями авторов, названиями и др. Если цитата уже имеется в базе, то она определяется однозначно, в противном случае делается попытка ее разбора с помощью шаблонов.
Разбор включает следующие действия:
Определение типа цитаты. Используется несколько типов цитат: журнальная статья (основной), труды конференций, книги, электронные источники, серийные издания. Каждому из типов соответствуют свои наборы полей, которые могут входить в ссылку. По их наличию и определяется тип цитаты.
Применение шаблонов в последовательности, зависящей от типа цитаты. Каждый из шаблонов соответствует определенному типу ссылки, поэтому с целью скорейшего и более точного разбора ссылки в первую очередь применяются шаблоны, соответствующие данному типу ссылки, а затем все остальные.
Отделение данных при помощи частичных шаблонов. Если никакой из имеющихся шаблонов не соответствует цитате, то делается попытка обнаружить хоть какую-нибудь информацию о ссылке при помощи частичных шаблонов.
Применение каждого шаблона происходит по следующему алгоритму:
Если в шаблон входят символьные блоки, проверяется их наличие и правильная последовательность в ссылке, иначе — переход к следующему шаблону.
Каждая из частей цитаты, заключенная между символьными блоками, проверяется на соответствие блок-полям, стоящим в шаблоне между ними, в случае несоответствия — переход к следующему шаблону.
Если всем полям установлены соответствия, то цитата считается разобранной.
Важным в описанном выше алгоритме является решение пункта 2.
Если в шаблоне нет символьных блоков, первым проверяется наличие блок-полей, соответствующих дополнительной информации, например, такой как «Выпуск», «Том». Если такие блок-поля отсутствуют в ссылке или находятся в неправильной последовательности, то отбор прекращается, иначе происходит переход к первостепенным блок-полям: «Автор», «Название», «Источник».
Поиск начинается с поля «Автор». Для него имеется широкий спектр шаблонов, позволяющих извлекать данные об авторах с высокой долей точности:
:= | |…
Далее, учитывая положение остальных первостепенных полей относительно поля «Автор», определяются их значения.
В качестве примера, рассмотрим применение к библиографической ссылке «Загорулько Ю. А., Боровикова О. И. Технология построения онтологий для порталов знаний по гуманитарным наукам // Труды Всероссийской конференции с международным участием „Знания-Онтологии-Теории“ (ЗОНТ-07). Новосибирск, 2007. Т.1, С.191−200.» следующих трех шаблонов:
- 1: //:
- 2: //
- 3: //
Первый шаблон отбрасывается ввиду отсутствия символьного блока «:» в тексте ссылки. Происходит переход ко второму шаблону. Его часть справа от символьного блока «//» применяется к части цитаты «Труды Всероссийской конференции с международным участием «Знания-Онтологии-Теории «(ЗОНТ-07). Новосибирск, 2007. Т.1, С.191−200.», но ввиду отличного порядка значений блок-полей в цитате, шаблон отбрасывается.
Третий шаблон срабатывает правильно, отделяя все элементы ссылки.