Начало Новости Технологии и ноу-хау Дайджест Проекты Новосибирский филиал Персоналии Публикации | ||
Начало Новости Технологии Дайджест Проекты Alex AURA InBASE InDOC INTEGRA.NM SemP-T ТАО Time-EX Unicalc Частотный словарь Экономика НC филиал Персоналии Публикации
|
Самым простым является шаблон, представляющий собой последовательность слов. Если вам нужно находить в текстах места, где встречается термин персональный компьютер, то для создания соответствующего шаблона в редакторе следует написать одну строчку с этими словами. В том случае, если нужно, чтобы один и тот же шаблон находил это сочетание как в именительном, так и родительном падеже, следует ввести в него две строчки: персонального компьютера Приведенный пример демонстрирует тот факт, что шаблон в целом представляет собой конъюнкцию отдельных строк: в тексте будут находиться места, соответствующие каждой строчке содержимого шаблона. Хвост Соответственно, чтобы находились все падежи, можно написать шесть строчек, а если требуется и множественное число, - то 12 строчек. Это нерационально, поэтому предусмотрена возможность более компактной записи для таких случаев: Специальный знак многоточия указывает на то, что на его месте может находиться любая последовательность букв. Это многоточие "специальное" потому, что вводится оно специальным образом: одновременным нажатием клавиш Ctrl и тире, а при отображении в окне редактора выделяется красным цветом. При использовании морфологии в шаблонах это средство может сильно "разгрузиться" и применяться только в специальных случаях. Опция Кроме этого, в редакторе заложены другие возможности сокращенной записи шаблонов. Например, бывает, что при сокращениях не ставят точку: кв. м. или кв м или кв.м. Этот случай можно отобразить при помощи специальных знаков опции: Подразумевается, что то, что в скобках, может отсутствовать. Эти красные скобки вводятся сочетанием: Ctrl и соответствующая скобка: ( или ). Если бы такой возможности не было, пришлось бы написать шесть строчек. Ссылки на шаблоны Приведенный пример шаблона, однако, может работать неправильно. Действительно, возможен вариант слова квм, что не соответствует задуманному. Из этой ситуации можно выйти, вставив в текст нашего шаблона ссылку на другой шаблон. Создадим шаблон, состоящий из двух строчек, содержащих по одному знаку: точку и пробел. Сохраним его под каким-нибудь именем, например, [точка/пробел], а наш шаблон запишем так: Тогда вариант, когда между кв и м ничего нет, рассматриваться не будет. Для того, чтобы ввести ссылку на шаблон, нужно его имя заключить в специальные скобки, которые вводятся сочетанием Ctrl и [ или ]. Конечно, приведенный пример слишком прост для того, чтобы продемонстрировать всю полезность ссылок на шаблоны. Дальнейший текст описания, а главное, практическая работа должны показать не только удобство, но и необходимость этого механизма. Повторители Среди шаблонов, создаваемых системой, и появляющихся в новом словаре, имеется [целое]. Если его вызвать в редактор, то можно увидеть его содержимое: Красный знак равенства и цифры счетчика после него следует вводить сочетанием Alt и соответствующий знак - равенство или цифра. Кроме строгого равенства допустимо нестрогое: >= или <= (вводятся Alt и < или >). Понятно, что повторители могут использоваться не только после цифр, но и после любых шаблонами или знаков. Для букв, как русских, так и латинских, они недопустимы, в этих случаях придется использовать точную запись, например ааа (если, конечно, такое где-нибудь понадобится). Особое место занимает использование повторителя с системным шаблоном [буква]. Например, запись определяет любое слово из пятнадцати и более букв. Контекст Для случаев омонимии необходимо указывать контекст. Мы можем, например, выбрать из текста слово стол, но не любой стол, а операционный. Просто запись: нам не подойдет, потому что в этом случае выберутся оба слова. В редакторе предусмотрен механизм для такого случая. Следует, используя средства выделения, одинаковые для всех редакторов, отметить слово операционный и нажать сочетание Ctrl+N. В окне редактора эти действия отобразятся так:
Система поймет, что нам нужно искать стол, перед которым идет слово операционный, а все остальные столы не учитывать. Отметим по ходу: для отмены указания контекста служит сочетание Ctrl+C. Дистантный контекст Наш шаблон не обнаружит сочетание, например, такое: операционный универсальный стол. Выручит дистантный контекст. Используя сочетание клавиш Ctrl и . (точка в латинской раскладке), введем в строку символ красной точки:
Для большей наглядности этих точек может быть несколько:
Другой пример использования дистантного контекста:
Здесь, как видим, нас интересует содержание контактной информации, которая в объявлениях, как правило, идет после указания номера телефона, который мы обнаруживаем при помощи заранее созданного шаблона [№ телефона]. Здесь, кстати, иллюстрируется тот факт, что дистантный контекст, указанный в конце или начале строки, выберет весь текст до конца или с начала абзаца, относительно остального содержания. Отрицательный контекст Возьмем тот же пример, но с обратным смыслом: найти все столы, операционные, но не универсальные. Запись будет выглядеть так:
Красные кавычки (вводятся Ctrl+") указывают на отрицательный контекст. Значения Рассмотрим еще один пример. Пусть нам требуется найти в тексте описания технических характеристик автомобиля место, где говорится о его скорости. Составим шаблон: Сам по себе поиск фрагмена текста не очень нужен - желательно извлечь из найденного полезную информацию. Если в дальнейшем эта самая полезная информация будет как-то использоваться, допустим, для заполнения какой-нибудь базы данных, то слова, обнаруженные по этому шаблону нам нужны не будут, главное - значение, которое соответствует шаблону [число]. Используя методы, описанные выше, преобразуем:
Однако, в системе Alex имеется еще одна возможность решить ту же самую задачу: при помощи указания значений. Выделим шаблон [число] и нажмем сочетание Ctrl+V, получим:
Это - указание системе присвоить нашему шаблону значение, извлеченное из текста, покрываемого выделенным шаблоном. Таким образом, оба представленных примера шаблонов работают одинаково. В чем отличие? В том, что в первом случае слова скорость и км/час не входят в шаблон: контекст только указывается, но не используется, а во втором случае эти слова явялются составной частью шаблона. Если этот шаблон будет в дальнейшем использоваться в других шаблонах, то этот нюанс приобретает существенное значение. Сохраним наши шаблоны в словаре под именем [скорость] и напишем новый шаблон:
По умолчанию, если не указывать специально извлекаемое значение, шаблон принимает значение, соответствующее той части текста, которую он покрывает при обнаружении. Это присвоение можно изменить, если ввести нормализованное или предустановленное значение: это делается в окне словаря по команде "свойства", примененной для данного шаблона. Приведем такой пример. Допустим стоит задача: на основании содержимого некоторых текстов заполнить реляционную базу данных, в которой кроме всего прочего содержатся адреса. Правила нормализации требуют, чтобы наименования улиц были вынесены в отдельную таблицу и каждой из них присвоен уникальный числовой идентификатор. Это можно сделать уже на этапе составления словаря шаблонов, если шаблонам, соответствующим той или иной улице заранее присвоим значение, равное ее идентификатору. |
| ||||||||||||||||||||||||||||||||||||||||
© 2001 – 2005, РосНИИ ИИ. Все права защищены. | © 2001 – 2005, RRIAI. All rights reserved. | ||
© 2003 – 2008, ЗАО "ИнтеллиТек". Все права защищены. | © 2003 – 2008, IntelliTek, J.-S.C. All rights reserved. |