텔레그램 키워드 트렌드
텔레그램 채팅 플랫폼에서 증오심 표현, 허위 정보, 관심 있는 서술의 출현을 탐색하기 위한 분석 도구입니다. 이 도구에는 콘텐츠 조정이나 필터링 기능이 없으므로 주의하여 사용하시기 바랍니다. 내보낼 수 있는 콘텐츠에 대한 책임은 귀하에게 있습니다.
즉, 이 도구를 사용하면 키워드/문구 목록을 사용하여 팔로우하는 모든 채널을 검색하고 그래프 시각화를 통해 다양한 형식으로 일치하는 모든 결과를 반환할 수 있습니다. 또한 선택적으로 미디어를 다운로드하므로 미디어 검색 엔진으로 사용할 수 있습니다(현재 이 기능에는 일부 버그가 있으므로 전체 미디어 검색 도구로 사용하지 마십시오).
러시아의 본격적인 우크라이나 침공 중 증오심 표현을 조사하는 도구의 스크린샷
주요 특징
- 이 도구는 특정 주제를 다루는 여러 채널을 따르는 양말 인형과 함께 작동하도록 설계되었습니다.
- api_values.txt 파일을 편집하여 다른 계정을 사용하도록 API 세부 정보를 변경할 수 있습니다.
- 이 도구는 일일 주요 용어의 양과 시간 경과에 따른 지도를 보여주는 Google 트렌드처럼 작동하도록 설계되었습니다.
- 날짜 필터링을 사용하면 검색 범위를 더 짧은 기간으로 좁힐 수 있습니다. 비워 두면 데이터의 최대 범위에 맞게 자동으로 크기가 조정됩니다.
- 이 도구는 Telegram 검색을 사용하는데, 이는 특히 러시아어 검색에 적합하고 일반적으로 단어 끝을 잘 처리한다는 것을 의미합니다.
- 각 주요 용어에 대한 개별 그래프를 생성합니다.
- 비교를 위해 검색의 모든 주요 용어를 동일한 그래프에 표시하는 집계 그래프를 생성합니다.
- 그래프를 표시하고 데이터 감사 및 증거 검증을 위한 전체 코드를 인쇄하는 보고서 PDF를 컴파일합니다.
- 실행 날짜, 검색된 채널, 채널당 상대 볼륨 등 모든 주요 통계를 포함하는 TXT 파일 요약을 출력합니다.
- 결과를 위한 선택적 미디어 다운로드(이로 인해 도구 실행에 필요한 시간이 엄청나게(정말로) 연장됩니다.)
- 다운로드한 미디어에는 파일 이름이 Channelid_postid이므로 원본을 쉽게 찾을 수 있습니다.
이 스크립트는 사용자가 회원으로 속한 텔레그램 채널에서 특정 검색어가 포함된 메시지를 검색합니다. 검색 결과를 HTML 및 CSV 형식으로 내보내고 보고서를 생성하며 일일 메시지 수를 표시합니다.
Google 트렌드와 거의 동일한 방식으로 검색어 동향을 모니터링하도록 설계되었습니다. 이는 특정 사건 이후 증오심 표현이나 토론/내러티브의 출현을 식별하는 데 매우 유용할 수 있습니다.
이 현재 버전은 데이터를 크게 조정하지 않습니다. 예를 들어 그래프에는 모든 메시지의 발생률에 맞게 조정된 용어의 발생률이 표시되지 않습니다. 이는 용어의 급격한 급증이 일반 활동의 급격한 급증으로 혼동되지 않도록 추가 분석을 수행해야 함을 의미합니다. 이러한 이유로 그래프 출력은 추가 연구 및 통계 분석의 필요성을 나타내는 것으로 취급되어야 합니다.
러시아의 본격적인 우크라이나 침공 당시 증오심 표현을 조사한 결과 예시
이 이미지는 조사 중인 채널에서 특정 용어의 사용이 어떻게 급증했는지 보여주는 예시 결과입니다.
생성된 보고서의 예
이 이미지는 코드의 개요를 설명하고 마지막에 스크립트를 인쇄하는 PDF 문서인 보고서의 결과 예입니다. 이는 어떤 변경 사항이나 사용 중인 스크립트 버전에 관계없이 정확한 프로세스를 면밀히 조사할 수 있음을 의미합니다.
txt 통계 보고서에서 생성된 일부 정보의 스크린샷
이 도구는 영어 및 러시아어 검색어에 대해 테스트되었습니다.
경고: 이 도구는 팔로우하는 그룹 목록을 검색 목록으로 사용합니다. 여기에는 개인 채팅/그룹이 포함될 수 있습니다. OPSEC를 위해 버너 계정을 사용하고 조사 관련 채팅만 팔로우하는 것이 좋습니다.
설치
터미널이나 명령 프롬프트에서 다음 명령을 실행하여 tg-keyword-trends 저장소를 복제합니다.
git clone https://github.com/thomasjjj/tg-keyword-trends.git
tg-keyword-trends 디렉터리로 이동합니다.
cd tg-keyword-trends
pip를 사용하여 필수 Python 종속성을 설치합니다.
pip install -r requirements.txt
특징
- 그래프는 가장 오래된 게시물과 최신 게시물의 규모를 조정합니다.
- 추가 처리를 위해 생성된 CSV입니다.
- 링크를 열기 위해 생성된 HTML 파일입니다.
- 발견 사항의 감사 가능성을 위해 스크레이핑의 주요 세부 정보(날짜, 액세스한 채널 등)를 문서화하는 보고서를 생성합니다.
- 미디어 다운로드
용법:
- 검색어를 한 줄에 하나씩 .txt 파일에 추가하세요. 곧 파일 위치를 입력하라는 메시지가 표시됩니다.
- Telegram API 세부 정보가 준비되어 있는지 확인하세요 [https://my.telegram.org/auth]
- 스크립트는 사용자가 구성원으로 속한 모든 채널을 검색합니다.
- 검색 결과는 타임스탬프가 표시된 출력 폴더에 HTML 및 CSV 파일로 내보내집니다.
- 스크립트는 각 채널에 대한 검색 결과를 포함하는 보고서를 생성합니다.
- 스크립트는 각 검색어에 대한 일일 메시지 수를 그래프로 표시하고 이를 이미지로 저장합니다.
기능:
- retrieve_api_details : 'api_details.txt'에서 API 세부정보를 읽습니다.
- check_search_terms_file : 'search_terms.txt'에서 검색어를 읽거나 사용자에게 검색어를 입력하라는 메시지를 표시합니다.
- create_output_directory : 출력 파일을 저장하기 위해 타임스탬프가 지정된 디렉터리를 만듭니다.
- print_color : colorama 모듈을 사용하여 지정된 색상으로 텍스트를 인쇄합니다.
- render_url : URL과 메시지 텍스트를 사용하여 하이퍼링크에 대한 HTML 코드를 생성합니다.
- generate_report : 각 채널에 대한 검색 결과가 포함된 보고서를 생성합니다.
- 줄거리_키워드_주파수 : 각 검색어에 대한 일일 메시지 수를 그래프로 표시합니다.
팁:
- 날짜 필터링 기능으로 인해 이 도구는 날짜 필터링 결과를 허용하는 Telegram 검색 엔진으로도 잘 작동합니다. 필요한 날짜 창에서 검색을 실행하고 일치하는 메시지 목록과 해당 링크에 대한 출력 HTML 파일을 엽니다.
- 이 도구는 시간대를 자동으로 처리하고 조정합니다. 시간 및 날짜 형식과 관련된 코드 섹션을 편집할 때는 디버깅하기 어렵기 때문에 특히 주의하십시오.
- 각 주제별로 전용 텔레그램 계정을 생성하는 것이 좋습니다. 이렇게 하면 관련 채널만 타겟팅하고 노이즈를 제거할 수 있습니다.
- 단수명사와 복수명사를 별도로 검색할 필요는 없습니다. 이는 텔레그램 검색(일반적으로 영어와 러시아어의 경우)에서 처리되므로 별도로 검색할 필요가 없습니다.
*이 이미지는 옛 소련 이름을 포함하여 "Bakmut"에 대한 다양한 지명의 사용법을 보여줍니다. 이 도구의 한 가지 용도는 OSINT 연구에 사용된 검색어의 유효성을 검사하는 것입니다. 여기에서 볼 수 있듯이 과거의 논란이 많은 이름 대신 도시의 공식 현재 이름만 사용하는 경우 수집 가능성이 제한될 수 있습니다. *
종속성:
- 팬더~=2.0.0
- matplotlib~=3.7.1
- 텔레톤~=1.28.2
- 컬러마~=0.4.6
- 베개~=9.5.0
- Reportlab~=3.6.12
- numpy~=1.24.2
- 피츠~=2023.3
- tqdm~=4.65.0
Python 버전: Python 3.11 이상
TODO