Регулярные выражения в Рубриках программы SiteSputnik

Форум Сообщества Практиков Конкурентной разведки (СПКР)

Конкурентная разведка, Бизнес-разведка, Корпоративная разведка,
Деловая разведка по открытым источникам в бизнесе.
Работаем строго в рамках закона.

Дезинформация и активные мероприятия в бизнесе
Форум Сообщества Практиков Конкурентной разведки (СПКР) »   Приемы работы с программой СайтСпутник (SiteSputnik) »   Регулярные выражения в Рубриках программы SiteSputnik
RSS

Регулярные выражения в Рубриках программы SiteSputnik

Регулярные выражения как логические величины в Правилах попадания в Рубрики

<<Назад  Вперед>>Страницы: 1 2
Печать
 
Алексей Мыльников
Долгожитель форума

Откуда: Волгоград
Всего сообщений: 877
Рейтинг пользователя: 6


Ссылка


Дата регистрации на форуме:
22 июня 2009

    В программе SiteSputnik версии 8.8.1 от 11.09.14 в Рубриках наравне и совместно с другими конструкциями (логическими величинами) можно примененять регулярные выражения, далее РВ.


      Некоторые обозначения для РВ

        \s - любой "пробельный" символ,
        | - операция логическое ИЛИ,
        подробнее про РВ здесь ....
        В СайтСпутнике РВ заключаются в фигурные скобки {РВ}


    Примеры Регулярных выражений.

    {201[0-2]} - где-то в контенте ссылки должно быть хотя бы одно из: 2010, 2011, 2012. Учитываются: 20111, 42012, 720109.
    {\s201[0-2]\s} - должно быть в контенте хотя бы одно число из: 2010, 2011, 2012. Не учитываются: 20111, 42012, 720109, так как применен пробельный символ.
    {\s201[0-2]\s(год|г\.)} - те же числа, но за числом обязательно должно следовать слово, начинающееся с год, или г.
    ~{\s201[0-2]\s(год|г\.)} - в контенте не должны встретиться эти годы, а именно: ни 2010 год или г., ни 2011 год или г., ни 2012 год или г.

    {Путин(а|у|ым|е|\s)} - удовлетворяют 5 падежей от слова Путин, а именно: Путина, Путину, Путиным, Путине, Путин, а также из-за того, что нет пробельного символа слева, удовлетворяют Распутина, Распутину, ..., но не удовлетворяют: Путинская, Путины, Распутинка.
    {(В\.Путин.{1,}){12,}} - В.Путин должен встретиться в контенте не менее 12 раз, учитываются слова В.В.Путин, В.Путина, А.В.Путиной, не учитываются Путин, Путин В.В., А.Путин, пропутинский, В.Распутин, путинка. Удобно при помощи такого РВ искать интервью с В.Путиным.
    {(Путин\s.{1,}){4,10}} - Путин в именительном падеже должен встретиться не менее 4 раз, но не более 10 раз, не учитываются пропутинский, путинка, но учитывается Распутин.
    {(\sПутин\s.{1,}){4,10}} - аналогично предыдущему, но Распутин не учитывается.

    (Украина | 'ДНР' | 'ЛНР') {(\sПутин\s.{1,}){3,}} - удовлетворяют контенты ссылок, в которых речь идет об Украине, или ДНР или ЛНР и Путин в именительном падеже упомянут не менее 3-х раз. Здесь одно РВ применено совместно с обычными величинами.
    (Украина | {(\s|")(Д|Л)НР(\s|")}) {(\sПутин\s.{1,}){3,}} - тот же самый результат, но задействованы два РВ. Вместо 'ДНР' | 'ЛНР' использовано {(\s|")(Д|Л)НР(\s|")}.

    {\s[7-9]\s[0-9]{3}\s(кг|куб\sсм)} от 7 000 до 9 999 кг или от 7 000 до 9 999 куб см - хотя бы одна такая комбинация должна быть в контенте.
    {[^0-9]\s[0-9]{2,3}\s[0-9]{3}\s(руб\.|р\.)} от 10 000 до 999 999 руб. или от 10 000 до 999 999 р.

    Два последних примера позволяют задавать диапазон чисел, то есть, можно теперь без применения поиска по источнику по диапазону чисел (если он есть), выбирать актуальный для фирмы уровень стоимости контракта, товара или числовые диапазоны другого типа.
    Целесообразно "привязываться" к впереди или позади стоящим от числа символам как это сделано выше, чтобы иногда не "попадаться" на номера телефонов, почтовые индексы или другие неинтересующие Вас числа.

    {[0-9a-z_\-\.]+@[0-9a-z_\-^\.]+\.[a-z]{2,4}} - в контенте есть е-майл адрес абсолютно любой.
    {[0-9a-z_\-\.]+@rosnano.ru} - в контенте есть любой е-майл адрес c домена rosnano.ru

    То есть, теперь можно искать контенты, содержащие е-майлы. Может пригодиться для того, чтобы делать целевые рассылки по е-майлу. Цель формируется в Правилах попадания в Рубрики и, возможно, в запросе, если источник поисковик или встроенный в ресурс поиск.

    {\s([+][7]|[7]|[8]|)(\s|\-|\s[(]|[(]|)[0-9]{3}([)]|[)]\-|[)]\s|\-|\s|)[0-9]{3}((\s|\-|)[0-9]{2}){2}} - есть любой российский телефон в основных стандартных формах записи.
    {\s([+][7]|[7]|[8]|)(\s|\-|\s[(]|[(]|)[0-9]{3}([)]|[)]\-|[)]\s|\-|\s|)[0-9]{3}(\s|\-|)44(\s|\-|)25} - российские телефоны, оканчивающиеся на 44 25, 44-25, 4425.

    Это позволяет искать сообщения на заданную тему, в которых указан любой российский телефон (или часть российских телефонов).

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

Шаблоны бывают простые и сложные. Совсем не обязательно их писать самому. Обращайтесь на форум, думаю, что здесь есть кому помочь.

Благодарю Дмитрия Владимирова из Владивостока за содействие при реализации регулярных выражений в Рубриках программы SiteSputnik.

tungus1973
Модератор форума

Откуда: г. Санкт-Петербург
Всего сообщений: 795
Рейтинг пользователя: 11


Ссылка


Дата регистрации на форуме:
3 июля 2009
Алексей Борисович, супер! :good:
Регулярные выражения хоть и не просты для начинающих, но позволяют очень гибко выполнять поиск в тексте практически любых слов и фраз. При должных навыках работы с регулярками в рубрики будет попадать именно то, что нужно, без мусора.

Дополнительный вопрос.
Иногда может быть очень удобным использовать в одной строке одновременно регулярное выражение и простой запрос СайтСпутника. Например, нам нужно найти дату "24 марта", но в 2009 году или ранее, то есть не в 2010, 2011, 2012, 2013 или 2014 годах. В таком случае можно было бы эффективно сочетать стандартные правила рубрик с регулярным выражением:

'24 марта' /1 {\s201[0-4]\s}

Таким образом затраты ресурсов компьютера на обработку регулярок будут минимальными - точечно и только там, где это действительно необходимо.
Можно ли реализовать это?
Алексей Мыльников
Долгожитель форума

Откуда: Волгоград
Всего сообщений: 877
Рейтинг пользователя: 6


Ссылка


Дата регистрации на форуме:
22 июня 2009

tungus1973 написал:
[q]
'24 марта' /1 {\s201[0-4]\s}
[/q]

В первом топике я написал, что "логическое НЕ" есть, использовать в одной строке одновременно регулярное выражение и простой запрос можно, но расстояние в словах пока не реализовано. В Вашем случае можно получить нужный результат, используя возможности самих РВ. Будет это выглядеть так:

{\s24\sмарта\s[1800-2009]\s} - проще, но не учтены даты ранее 1800 года

или так:

'24 марта' ~{\s24\sмарта\s[201[0-4]\s} - посложнее, учтены даты до 1800 года, но если год в контенте не указап, то правило сработает,

тогда:

{/s24\sмарта\s([0-9]} ~{\s24\sмарта\s[201[0-4]\s} - практически учтет всё, вплоть до 24 марта 533 года до н. э. Мусор останется, если, например: "24 марта 1500 самураев перешли границу вдоль реки", - но они не так часто это делали. Но и Ваше Правило здесь принесет мусор.

Игорь Нежданов
Модератор форума
Прагматик
Откуда: Советский Союз
Всего сообщений: 1025
Рейтинг пользователя: 13


Ссылка


Дата регистрации на форуме:
7 июня 2009
Очень хороший инструмент. Можно тонко настроится на довольно сложные конструкции.

Спасибо!

---
Есть вопрос - спрашивайте. На прямой вопрос будет прямой ответ...
Лаборатория Перспективных Разработок
Игорь Нежданов
Модератор форума
Прагматик
Откуда: Советский Союз
Всего сообщений: 1025
Рейтинг пользователя: 13


Ссылка


Дата регистрации на форуме:
7 июня 2009
Коллеги, вчера спешил, а сегодня готов чуть шире высказаться по поводу регулярных выражений (как мы их используем). Самое очевидное - выявление сущностей. Самых разных. От упоминания людей или организаций, до всевозможных дат, адресов, телефонов, цен и т.п..

Например, вы наблюдаете некоего человека (организацию) и хотите, не просто быть в курсе всего происходящего вокруг наблюдаемого, но и знать КТО появился рядом с ним. Настраиваете регулярные выражения для выявления имен собственных и получаете каждый день перечень упоминаемых. Далее сравниваете его с предыдущими (это легко автоматизируется) и получаете список НОВЫХ. Этот список можно подгружать в БД.

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

---
Есть вопрос - спрашивайте. На прямой вопрос будет прямой ответ...
Лаборатория Перспективных Разработок
tungus1973
Модератор форума

Откуда: г. Санкт-Петербург
Всего сообщений: 795
Рейтинг пользователя: 11


Ссылка


Дата регистрации на форуме:
3 июля 2009
Для: Игорь Нежданов
А можно привести какой-нибудь несложный пример?
Vinni
Администратор

Всего сообщений: 2136
Рейтинг пользователя: 22


Ссылка


Дата регистрации на форуме:
5 июня 2009

Алексей Мыльников написал:
[q]
Шаблоны бывают простые и сложные.
[/q]

угу. а еще есть утилиты для контроля - например мне нравится RegexCoach. задаешь строку, РВ и его опции и смотришь - находит ли РВ то, что нужно. при необходимости корректируешь РВ...

кстати. а какой стандарт РВ поддерживается PCRE или классический?. далее буду в PCRE писать.


Игорь Нежданов написал:
[q]
Настраиваете регулярные выражения для выявления имен собственных
[/q]


ну это-то понятно - собственные имена начинаются с большой буквы - то есть фраза "Иванов встретился с Петровым", а не фраза "Иванов пошел домой" можно описать так

Иванов\s+(\S+\s+){1,5}([А-Я]\S+)

Vinni
Администратор

Всего сообщений: 2136
Рейтинг пользователя: 22


Ссылка


Дата регистрации на форуме:
5 июня 2009
Другое дело, что я использовал еще одну возможность РВ - не только проверки соответствия строки шаблону, а и выделения нужной подстроки из строки - круглые скобки.
если в СС поддерживается и это (как переменная, которую можно вставить в отчет или как-то так), то можно сразу узнать, о ком речь и как-то автоматизировать сохранение этйо информации, а не смотреть вручную, с кем он там взаимодействовал :preved:
Алексей Мыльников
Долгожитель форума

Откуда: Волгоград
Всего сообщений: 877
Рейтинг пользователя: 6


Ссылка


Дата регистрации на форуме:
22 июня 2009

Vinni написал:
[q]
угу. а еще есть утилиты для контроля - например мне нравится RegexCoach. задаешь строку, РВ и его опции и смотришь - находит ли РВ то, что нужно. при необходимости корректируешь РВ...
[/q]

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

Vinni написал:
[q]
какой стандарт РВ поддерживается PCRE или классический?.
[/q]

PCRE

Vinni написал:
[q]
Другое дело, что я использовал еще одну возможность РВ - не только проверки соответствия строки шаблону, а и выделения нужной подстроки из строки - круглые скобки.
если в СС поддерживается и это (как переменная, которую можно вставить в отчет или как-то так), то можно сразу узнать, о ком речь и как-то автоматизировать сохранение этйо информации, а не смотреть вручную, с кем он там взаимодействова
[/q]

Да, поддерживается, плюс нужные подстроки выделяются цветом.

Игорь Нежданов
Модератор форума
Прагматик
Откуда: Советский Союз
Всего сообщений: 1025
Рейтинг пользователя: 13


Ссылка


Дата регистрации на форуме:
7 июня 2009

tungus1973 написал:
[q]
Для: Игорь Нежданов
А можно привести какой-нибудь несложный пример?
[/q]

Можно, но он вряд ли поможет в случае с СайтСпутником - мы используем другой семантический движок. А пример правила вот:

Для выявления указаний на человека (ФИО, ФИ, Ф, И, ИО) с использованием (или без) разного рода обращений
ProperName -> Word<h-reg1>+;
Person -> ProperName | 'человек';
FormOfAddress -> 'товарищ' | 'мистер' | 'господин' | 'сэр' | 'сударь' | 'госпожа' | 'мадам' | 'сударыня'; // тут целый словарь вариантов обращений, в том числе сокращенных, неуважительных и т.п..
AdjCoord -> Adj;
AdjCoord -> AdjCoord<gnc-agr[1]> ',' Adj<gnc-agr[1]>;
AdjCoord -> AdjCoord<gnc-agr[1]> 'и' Adj<gnc-agr[1]>;
S -> Adj+ (FormOfAddress) Person;
S -> AdjCoord (FormOfAddress) Person;

---
Есть вопрос - спрашивайте. На прямой вопрос будет прямой ответ...
Лаборатория Перспективных Разработок
<<Назад  Вперед>>Страницы: 1 2
Печать
Форум Сообщества Практиков Конкурентной разведки (СПКР) »   Приемы работы с программой СайтСпутник (SiteSputnik) »   Регулярные выражения в Рубриках программы SiteSputnik
RSS

Последние RSS
Англоязычный интерфейс программы "Сайт Спутник"
Учебник по конкурентной разведке
Конкурентная разведка: маркетинг рисков и возможностей
Книга "История частной разведки США"
Книга "Нетворкинг для разведчиков"
Поиск и сбор информации в интернете в программе СайтСпутник
Новые видеоуроки по программе СайтСпутник для начинающих
Технологическая разведка
SiteSputnik. Мониторинг Телеграм
СайтСпутник: возврат к ранее установленной версии
SiteSputnik. Доступ к результатам работы из браузера
Анализ URL
Браузер для анонимной работы
Топливно-энергетический комплекс
Профессиональные сообщества СБ
Несколько Проектов в одном, выполнение Проектов по частям
SiteSputnik-Bot: Боты в программе СайтСпутник
К вопросу о телеграм
SiteSputnik: Автозамены до и после Рубрикации или Перевода
Демо-доступ к ИАС социальных сетей

Самые активные 20 тем RSS