Size: a a a

2020 October 10

DB

Dima Boger in PiterPy Meetup
Нашёл как делает Sentry — они просто вырезают по регулярке числа, хексы, айпишники и т.д. и заменяют их на темплейт-значение (<int>, <float>, ...):
https://github.com/getsentry/sentry/blob/19b5b3e295961e4db9d1efe3f48e7d2f78e4a4a3/src/sentry/grouping/strategies/message.py
источник

DB

Dima Boger in PiterPy Meetup
Как хорошо что сентри на питоне 🙏
источник

AZ

Andrey Zakharevich in PiterPy Meetup
Dima Boger
А кто-нибудь решал проблему обратную темплейтингу? Т.е. есть набор строк, и нужно понять из какого темплейта они появились? Аля
Retry in 5 seconds, Retry in 10 seconds -> Retry in %d seconds
в общем случае это очень сложная задача. по сути тебе надо угадывать, какие части входа могут различаться, а какие нет
источник

DB

Dima Boger in PiterPy Meetup
Ну у меня есть какое-то количество входных строк каждого типа, 2-10 штук.

Замена чисел и айпишников на темплейт-строки не сработает в более сложных кейсах, где будет изменяться только одно слово например 🤷‍♂️ Но у меня пока таких кейсов вроде нет 🤔
источник

AZ

Andrey Zakharevich in PiterPy Meetup
ну ты можешь разбить все входы на слова и последовательно по ним идти, смотреть где что различается, и каким шаблоном можно это заменить. каждый шаблон надо будет писать руками, и очень много боли будет если входы будут разной длины
источник

DB

Dima Boger in PiterPy Meetup
Не, руками 100% не хочется
источник

AZ

Andrey Zakharevich in PiterPy Meetup
ну в смысле хотя бы на базовом уровне, что вот такие шаблоны поддерживаются, и вот в таком случае их можно применять
источник

AZ

Andrey Zakharevich in PiterPy Meetup
а, еще вопрос, какая тебе вычислительная сложность нужна
источник

DB

Dima Boger in PiterPy Meetup
🤷‍♂️
источник

AZ

Andrey Zakharevich in PiterPy Meetup
если времени много, а строки не очень длинные, то можно перебором добавлять по одному слову/шаблону к темплейту и смотреть, матчит ли оно префикс всех входов
источник

AZ

Andrey Zakharevich in PiterPy Meetup
хотя я вообще не уверен есть ли там решение быстрее. разве что можно сэкономить и пытаться на каждом шаге определять тип следующего слова и не перебирать вообще все варианты
источник

AZ

Andrey Zakharevich in PiterPy Meetup
ну и как-то надо предпочитать наиболее конкретный шаблон, а то .* для всего подойдет
источник
2020 October 11

ED

Eugene Denisov in PiterPy Meetup
Dima Boger
А кто-нибудь решал проблему обратную темплейтингу? Т.е. есть набор строк, и нужно понять из какого темплейта они появились? Аля
Retry in 5 seconds, Retry in 10 seconds -> Retry in %d seconds
Расстояние Левенштейна с пороговым значением?
источник

DB

Dima Boger in PiterPy Meetup
Eugene Denisov
Расстояние Левенштейна с пороговым значением?
С числами работает более простой метод с заменой чисел на темплейт-плейсхолдеры. А расстояние левенштейна наверное сломается на чем-нибудь типа Field 'id' expected a number but got 'a very long string'.
источник

ED

Eugene Denisov in PiterPy Meetup
Так обучить на имеющихся данных. Если скрипт вытащит темплэйт из более-менее похожих сообщений, дальше уже имея набор темплэйтов, можно рассортировать всё.
источник

DB

Dima Boger in PiterPy Meetup
Eugene Denisov
Так обучить на имеющихся данных. Если скрипт вытащит темплэйт из более-менее похожих сообщений, дальше уже имея набор темплэйтов, можно рассортировать всё.
Верно
источник
2020 October 12

AS

Anton Stavinsky in PiterPy Meetup
Ребят у нас кто-то из этого чата тягает людей в какую-то группу jumpin spb. Видимо знакомства какие-то. Как бы его вычислить и забанить(

100% из этой группы так как у меня с коллегой только один общий чат и это он. и оба попали в ту группу.
источник

SS

Sergey Sokolov in PiterPy Meetup
Anton Stavinsky
Ребят у нас кто-то из этого чата тягает людей в какую-то группу jumpin spb. Видимо знакомства какие-то. Как бы его вычислить и забанить(

100% из этой группы так как у меня с коллегой только один общий чат и это он. и оба попали в ту группу.
источник

PR

Paul Rudnitskiy in PiterPy Meetup
Anton Stavinsky
Ребят у нас кто-то из этого чата тягает людей в какую-то группу jumpin spb. Видимо знакомства какие-то. Как бы его вычислить и забанить(

100% из этой группы так как у меня с коллегой только один общий чат и это он. и оба попали в ту группу.
думаешь — есть смысл проводить сложное расследование и поиск? Мне кажется, проще каждому, кого втянули в новую группу - жаловаться на спам и выходить сразу. Группу довольно оперативно закроют
источник

DB

Dima Boger in PiterPy Meetup
Единственный действенный способ борьбы: mark as spam and leave кнопка, которая появляется при добавлении
источник