{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/characterizing-and-detecting-hateful-users-on","title":"Characterizing and Detecting Hateful Users on Twitter","arxiv_id":"1803.08977","date":"2018-03-23","proceeding":null,"authors":["Manoel Horta Ribeiro","Pedro H. Calais","Yuri A. Santos","Virgílio A. F. Almeida","Wagner Meira Jr"],"abstract":"Most current approaches to characterize and detect hate speech focus on \\textit{content} posted in Online Social Networks. They face shortcomings to collect and annotate hateful speech due to the incompleteness and noisiness of OSN text and the subjectivity of hate speech. These limitations are often aided with constraints that oversimplify the problem, such as considering only tweets containing hate-related words. In this work we partially address these issues by shifting the focus towards \\textit{users}. We develop and employ a robust methodology to collect and annotate hateful users which does not depend directly on lexicon and where the users are annotated given their entire profile. This results in a sample of Twitter's retweet graph containing $100,386$ users, out of which $4,972$ were annotated. We also collect the users who were banned in the three months that followed the data collection. We show that hateful users differ from normal ones in terms of their activity patterns, word usage and as well as network structure. We obtain similar results comparing the neighbors of hateful vs. neighbors of normal users and also suspended users vs. active users, increasing the robustness of our analysis. We observe that hateful users are densely connected, and thus formulate the hate speech detection problem as a task of semi-supervised learning over a graph, exploiting the network of connections on Twitter. We find that a node embedding algorithm, which exploits the graph structure, outperforms content-based approaches for the detection of both hateful ($95\\%$ AUC vs $88\\%$ AUC) and suspended users ($93\\%$ AUC vs $88\\%$ AUC). Altogether, we present a user-centric view of hate speech, paving the way for better detection and understanding of this relevant and challenging issue.","url_abs":"https://arxiv.org/abs/1803.08977v1","url_pdf":"https://arxiv.org/pdf/1803.08977v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"characterizing-and-detecting-hateful-users-on","repo_url":"https://github.com/manoelhortaribeiro/HatefulUsersTwitter","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"characterizing-and-detecting-hateful-users-on","repo_url":"https://github.com/PhilippeCodes/Twitter-Pronoun-Retweet-Graph-Analysis","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1803.08977","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1803.08977"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/manoelhortaribeiro/HatefulUsersTwitter","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PhilippeCodes/Twitter-Pronoun-Retweet-Graph-Analysis","reach":{"status":"ok"}}],"summary":{"unverified":2},"by_repo_kind":{"official":{"samples":2,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"148628d0db229e14","entry":"tweepy2neo4j_materialize_user","repo":"manoelhortaribeiro/HatefulUsersTwitter","repo_kind":"official","path":"crawler/neo4j_schema.py","file_url":"https://github.com/manoelhortaribeiro/HatefulUsersTwitter/blob/HEAD/crawler/neo4j_schema.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"148628d0db229e14"}},{"code_sha256_prefix":"b632759f99e44c73","entry":"tweepy2string_tweet","repo":"manoelhortaribeiro/HatefulUsersTwitter","repo_kind":"official","path":"crawler/neo4j_schema.py","file_url":"https://github.com/manoelhortaribeiro/HatefulUsersTwitter/blob/HEAD/crawler/neo4j_schema.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b632759f99e44c73"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}