Инструмент анализа для изучения появления высказываний, разжигающих ненависть, дезинформации и представляющих интерес повествований на платформе чата Telegram. Используйте этот инструмент с осторожностью, поскольку он не поддерживает модерацию и фильтрацию контента. Вы несете ответственность за контент, который может быть экспортирован.
Короче говоря, этот инструмент позволяет вам выполнять поиск по всем каналам, на которые вы подписаны, с помощью списка ключевых слов/фраз и возвращает все соответствующие результаты в различных форматах с графической визуализацией. Он также при необходимости загружает медиафайлы и, таким образом, может использоваться в качестве поисковой системы мультимедиа (в настоящее время в этой функции есть некоторые ошибки - не используйте в качестве исчерпывающего инструмента поиска мультимедиа).
Скриншот инструмента в действии, изучающего разжигание ненависти во время полномасштабного вторжения России в Украину
Ключевые особенности
Этот инструмент предназначен для работы с куклами-носками, которые следят за многими каналами, освещающими определенную тему.
Вы можете изменить данные своего API, чтобы использовать разные учетные записи, отредактировав файл api_values.txt .
Этот инструмент работает как Google Trends, показывая ежедневный объем ключевых терминов и карту с течением времени.
Фильтрация дат позволяет сузить поиск до более короткого периода времени. Если оставить пустым, оно автоматически масштабируется до максимального диапазона данных.
Инструмент использует поиск Telegram, что означает, что он особенно хорош для поиска на русском языке и в целом хорошо обрабатывает окончания слов.
Создает отдельные графики для каждого ключевого термина.
Создает агрегированный график, показывающий все ключевые термины при поиске на одном графике для сравнения.
Составляет отчет в формате PDF, в котором показаны графики и распечатывается полный код для аудита данных и проверки доказательств.
Выводит сводку файла TXT, включая всю основную статистику, например, дату запуска, найденные каналы и относительную громкость на канал.
Дополнительная загрузка носителя для получения результатов (это значительно (например, действительно значительно) продлевает время, необходимое для запуска инструмента)
Загруженный носитель имеет имя файла Channelid_postid, поэтому оригинал легко найти.
Этот скрипт ищет сообщения, содержащие указанные поисковые запросы, в каналах Telegram, участником которых является пользователь. Он экспортирует результаты поиска в форматы HTML и CSV, генерирует отчет и отображает количество сообщений за день.
Он предназначен для отслеживания тенденций поисковых запросов почти так же, как это делает Google Trends. Это может быть очень полезно для выявления случаев разжигания ненависти или дискуссий/нарративов после определенных событий.
Эта текущая версия не вносит каких-либо существенных изменений в данные, например, на графике не отображается частота терминов, скорректированная с учетом частоты всех сообщений. Это означает, что необходимо провести дальнейший анализ, чтобы гарантировать, что резкий всплеск показателей не смешивается с резким всплеском общей активности. По этой причине выходные данные графика следует рассматривать как свидетельство необходимости дальнейших исследований и статистического анализа.
Пример результата исследования разжигания ненависти во время полномасштабного вторжения России в Украину
Это изображение является примером результата, показывающего, как на исследуемых каналах наблюдался всплеск использования определенных терминов.
Пример созданного отчета
Это изображение представляет собой пример результата отчета — PDF-документа, в котором описывается код и в конце печатается сценарий. Это означает, что независимо от того, какие изменения или какая версия сценария используется, можно тщательно изучить точный процесс.
Скриншот некоторой информации, генерируемой в отчете статистики в формате txt.
Этот инструмент был протестирован на поисковых запросах на английском и русском языках.
ВНИМАНИЕ: этот инструмент использует ваш список отслеживаемых групп в качестве списка, в котором он осуществляет поиск. Это может включать личные чаты/группы. В целях OPSEC рекомендуется использовать одноразовую учетную запись и следить только за чатами, посвященными расследованиям.
Установка
Клонируйте репозиторий tg-keyword-trends, выполнив следующую команду в терминале или командной строке:
Установите необходимые зависимости Python с помощью pip:
pip install -r requirements.txt
Функции
График корректирует масштаб для самых старых и новых сообщений.
CSV-файл, созданный для дальнейшей обработки.
HTML-файл, созданный для открытия ссылок.
Создает отчет, документирующий ключевые детали очистки (дата, каналы доступа и т. д.) для проверки результатов.
Загрузка медиа
Использование:
Добавьте условия поиска, по одному в строке, в файл .txt. Вскоре вам будет предложено ввести местоположение файла.
Убедитесь, что у вас есть данные API Telegram [https://my.telegram.org/auth]
Скрипт будет выполнять поиск по всем каналам, участником которых является пользователь.
Результаты поиска будут экспортированы в виде файлов HTML и CSV в выходную папку с отметкой времени.
Скрипт сгенерирует отчет, содержащий результаты поиска по каждому каналу.
Скрипт отобразит количество сообщений в день для каждого поискового запроса на графике и сохранит его в виде изображения.
Функции:
извлечь_api_details : прочитать сведения об API из «api_details.txt».
check_search_terms_file : прочитайте условия поиска из «search_terms.txt» или предложите пользователю ввести условия поиска.
create_output_directory : создать каталог с отметкой времени для хранения выходных файлов.
print_colored : Распечатать текст указанным цветом с помощью модуля colorama.
render_url : генерирует HTML-код для гиперссылки, используя URL-адрес и текст сообщения.
gener_report : создать отчет, содержащий результаты поиска для каждого канала.
сюжет_ключевого слова_частоты : отобразите количество сообщений в день для каждого поискового запроса на графике.
Советы:
Благодаря функции фильтрации по дате этот инструмент также хорошо работает в качестве поисковой системы Telegram, которая позволяет получать результаты с фильтрацией по дате. Просто запустите поиск в нужном окне даты и откройте выходной html-файл, чтобы получить список соответствующих сообщений и их ссылки.
Инструмент автоматически обрабатывает часовые пояса и подстраивается под них. Будьте особенно осторожны при редактировании любого раздела кода, связанного с форматами времени и даты, поскольку его сложно отладить.
Рекомендуется создать отдельную учетную запись Telegram для каждой темы. Это позволит вам ориентироваться только на релевантные каналы и удалит шум.
Вам не нужно искать существительные в единственном и множественном числе отдельно, так как это обрабатывается поиском Telegram (вообще говоря, для английского и русского языка).
*На этом изображении показано использование различных топонимов слова «Бакмут», включая старые советские названия. Одним из вариантов использования этого инструмента может быть проверка поисковых запросов, используемых в OSINT-исследованиях. Как можно видеть здесь, можно ограничить потенциал их коллекционирования, если они будут использовать только официальное нынешнее название города, а не прошлые и спорные названия. *
Зависимости:
панды~=2.0.0
matplotlib~=3.7.1
Телемарафон~=1.28.2
колорама~=0.4.6
Подушка~=9.5.0
отчетлаб~=3.6.12
numpy~=1.24.2
питц~=2023.3
tqdm~=4.65.0
Версия Python: Python 3.11 или выше.
TODO
предотвратить исчезновение открытого графика PNG
добавить обработку ошибок при вводе даты пользователя
создавать графики как за термин, так и агрегировать, чтобы устранить проблемы масштабирования
вставить все графики в отчет PDF (отдельно от отчета в формате TXT)
используйте отчет в формате txt, чтобы заполнить отчет в формате PDF контекстными данными.
добавьте параметры asyncio для оптимизации производительности, особенно при загрузке мультимедиа.
лучшее графическое представление, например, процентное использование с течением времени для корректировки новых каналов или всплеска активности (постоянные улучшения и новые графики — никогда не завершайте это, просто добавьте больше)
убедитесь, что вышеуказанное включено в отчет в формате pdf
выбор временного диапазона
список пользовательских каналов
создание облака слов всех совпадающих сообщений для извлечения дополнительного контекста, терминов и информации
установить возможность группировать термины в одну строку на графике (например, переводы/транслитерации)
Возможная функция: установите местоположение по умолчанию для всех загруженных медиафайлов со списком ранее загруженных медиафайлов, чтобы предотвратить дублирование.