{"id":16876923,"url":"https://github.com/soxoj/bellingcat-hackathon-watchcats","last_synced_at":"2025-10-12T20:45:53.814Z","repository":{"id":207376205,"uuid":"719095615","full_name":"soxoj/bellingcat-hackathon-watchcats","owner":"soxoj","description":"📊 Adana - 1-click analytical dashboard for OSINT researchers","archived":false,"fork":false,"pushed_at":"2024-04-23T14:42:29.000Z","size":7349,"stargazers_count":36,"open_issues_count":1,"forks_count":11,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-19T23:59:20.186Z","etag":null,"topics":["analytics","bellingcat","dataset","datasets","hackathon","sentiment-analysis","topics-classification","twitter","twitter-sentiment-analysis"],"latest_commit_sha":null,"homepage":"https://adana.soxoj.com","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soxoj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-15T12:53:06.000Z","updated_at":"2024-12-31T08:47:44.000Z","dependencies_parsed_at":"2024-10-13T15:41:02.132Z","dependency_job_id":"2fe4990c-8fef-430e-a224-67cbe3b233e3","html_url":"https://github.com/soxoj/bellingcat-hackathon-watchcats","commit_stats":null,"previous_names":["soxoj/bellingcat-hackathon-watchcats"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soxoj%2Fbellingcat-hackathon-watchcats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soxoj%2Fbellingcat-hackathon-watchcats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soxoj%2Fbellingcat-hackathon-watchcats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soxoj%2Fbellingcat-hackathon-watchcats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soxoj","download_url":"https://codeload.github.com/soxoj/bellingcat-hackathon-watchcats/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235600043,"owners_count":19016195,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","bellingcat","dataset","datasets","hackathon","sentiment-analysis","topics-classification","twitter","twitter-sentiment-analysis"],"created_at":"2024-10-13T15:40:57.439Z","updated_at":"2025-10-07T07:30:42.446Z","avatar_url":"https://github.com/soxoj.png","language":"Jupyter Notebook","funding_links":[],"categories":["Jupyter Notebook"],"sub_categories":[],"readme":"# Adana: Analytical DAshboard (for NArratives)\n\n📊 1-click analytical dashboard for OSINT researchers\n\n####  👉 [Try Adana online](https://bellingcat-hackathon-watchcats-uearyc7iggn84xznppgq5k.streamlit.app/)\n\n## The idea\n\nAnalytical tool to extract insights (shown on a simple dashboard) from social media posts about narratives, sentiments, initiators, influencers and clusters of accounts.\nIt should be applicable for studying disinformation campaigns, analysing public opinion, and assessing risks related to some topics.\n\nIt's a project created by team Watch Cats during participation in [Bellingcat's First In-person Hackathon](https://www.bellingcat.com/bellingcats-first-in-person-hackathon/). \n\nInspired by [4CAT](https://4cat.nl/) and [twitter explorer](https://twitterexplorer.org/).\nThe development process is documented in [this Google document](https://docs.google.com/document/d/10xOgmZmvLM-BJeak-KNXzkx7H5oqnbn834-o94WbM50/edit#heading=h.m0d3jrsts18t).\n\n# MVP\n\nAvailable by the link: https://bellingcat-hackathon-watchcats-uearyc7iggn84xznppgq5k.streamlit.app/\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/soxoj/bellingcat-hackathon-watchcats/assets/31013580/96ed6aeb-4839-4db1-a945-e5162b18e677\" height=\"800\" /\u003e\n\u003c/p\u003e\n\n## Team members\n\n**[@soxoj](https://soxoj.com/)**, **[@dizvyagintsev](https://github.com/dizvyagintsev)**\n\n## Datasets\n\n[Twitter posts on various topics (1-20K)](https://drive.google.com/drive/u/0/folders/1GtUZkfD0cZ2xBBZ3FiDpH1Cgw_u-m1wh), including datasets enriched with topics and sentiments.\n\nInstructions:\n- [How to prepare dataset with Zeeschuimer](https://docs.google.com/document/d/19MAiqX7Vx1FcNJ44K-vSdnKDVC5gcFwtrSQiewnwW8A/edit)\n- [How to prepare CSV dataset](https://docs.google.com/document/d/1TTulgfIhSEZRQODRem9ufJWXZ7tGJdHEVYSVk8Teit4/edit)\n- Check utils/cluster_n_sentiments.ipynb for instructions on how to enrich datasets with sentiments and topics\n\n**How can I get topics and sentiments for my dataset?** Cause it’s a resource- and time-consuming operation, we implemented it in the Jupyter Notebook script available on our GitHub. For tweets vectorization we are using hkunlp/instructor-large model, for clusterization – MiniBatchKMeans, for the detection of topics – GPT-4-Turbo API, for the sentiment analysis of tweets – cardiffnlp/twitter-roberta-base-sentiment-latest mode. All steps are reproducible.\n\n## Installation\n\nFor local installation you need Python and pip installed.\n```sh\npip install -r requirements.txt\nstreamlit run dashboard.py\n```\n\nFor private cloud installation, you need:\n1. Login (register) to GitHub\n2. Fork [this repository](https://github.com/soxoj/bellingcat-hackathon-watchcats/fork)\n3. Login (register) in [Streamlit](https://streamlit.io/) by GitHub account\n4. Create a new project in Streamlit from a forked repository\n5. Deploy (*no payment method required!*)\n6. Voila!\n\n## Utils\n\n`utils` folder contains:\n- CSV tweet datasets formatter (to Twitwi)\n- `cluster_n_sentiments.ipynb`: ML stuff (enrichment of datasets with sentiments and topics)\n\n### SOWEL classification\n\nThis tool uses the following OSINT techniques:\n- [SOTL-5.2. Analyse Sentiments](https://sowel.soxoj.com/sentiments)\n\n## Some other results\n\nAn example of a hashtag network built with [Twitter Explorer](https://twitterexplorer.org/) using one of the datasets\n\n\u003cimg width=\"958\" alt=\"HashtagNetwork\" src=\"https://github.com/soxoj/bellingcat-hackathon-watchcats/assets/31013580/6327e7dd-ceb1-4f26-a5b4-6961dae5957b\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoxoj%2Fbellingcat-hackathon-watchcats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoxoj%2Fbellingcat-hackathon-watchcats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoxoj%2Fbellingcat-hackathon-watchcats/lists"}