Специальный процессинг данных

Обработка текстовых объектов

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

  • Приведение наименований товаров, персоналий и других объектов данных к унифицированному виду для того, чтобы улучшить навигацию и идентифицировать дубликаты
  • Автоматическая расстановка формализованных атрибутов объектов на основе информации, содержащейся в их наименованиях. Например, установка классификаторов крепости и емкости алкогольных напитков, брэндов или принадлежности товаров группам
  • Автоматическое распознавание компонентов почтовых адресов
  • Какие-то иные
  • Как работает процессинг текстовых объектов?

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

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

    Синтаксис описания правил

    Правила обработки текстовых объектов перечисляются в текстовом файле с расширением sr. Например goods.sr.В общем, правило состоит из трех компонентов:

  • образец поиска
  • определитель операции
  • целевой образец
  • Для некоторых операций целевой образец не используется (например в правилах изменение регистра символов образца).Приведет вводный пример простого правила замены:

    
    сабака
    

    Разберем приведенное правило. Как не трудно догадаться, целью такого правила может быть исправление часто встречающейся ошибки в написании слова “собака”. Здесь образец поиска - “сабака”, целевой образец - “собака”, а определитель операции %> В конце строки приведен пример комментария: он начинается с трех символов %-- и заканчивается вместе со строкой. Все, что находится между %-- и концом строки игнорируется системой.Допускается и обратный порядок написания того же выражения:

    
    собака
    

    Здесь образец поиска и целевой образец поменялись местами, а в качестве определителя операции используется %<Вообще, все служебные конструкции в правилах обработки текстовых объектов начинаются с символа %. Обычно служебная конструкция состоит из пары символов: собственно, префиксного знака % и второго символа, определяющего операцию или что-то еще (позже мы опишем все возможные для использования служебные конструкции).

    Кроме двух упомянутых зеркальных операций замены существуют три операции замены регистра слов:

    %A
    Переводит слова образца в верхний регистр
    %a
    Переводит слова образца в нижний регистр
    %K
    Переводит первую букву первого слова образца в верхний регистр
    Остались еще несколько важных операторов, но их мы рассмотрим позже, а сейчас сосредоточимся на способах определения образцов поиска.

    Прежде всего необходимо знать, что программа поступает с образцами поиска и замены аналогично тому, как и с обрабатываемым текстом: она дробит образцы на отдельные слова и знаки, а потом сравнивает или подставляет результирующие цепочки. Возвращаясь к нашему простому примеру, представим, что анализируется текст: "Редкая сабака не побежит за кошкой." Система при обработке этого текста превратит его примерно в следующую цепочку

    Индексация телефонов