{"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/keep-it-private-unsupervised-privatization-of","title":"Keep It Private: Unsupervised Privatization of Online Text","arxiv_id":"2405.10260","date":"2024-05-16","proceeding":null,"authors":["Calvin Bao","Marine Carpuat"],"abstract":"Authorship obfuscation techniques hold the promise of helping people protect their privacy in online communications by automatically rewriting text to hide the identity of the original author. However, obfuscation has been evaluated in narrow settings in the NLP literature and has primarily been addressed with superficial edit operations that can lead to unnatural outputs. In this work, we introduce an automatic text privatization framework that fine-tunes a large language model via reinforcement learning to produce rewrites that balance soundness, sense, and privacy. We evaluate it extensively on a large-scale test set of English Reddit posts by 68k authors composed of short-medium length texts. We study how the performance changes among evaluative conditions including authorial profile length and authorship detection strategy. Our method maintains high text quality according to both automated metrics and human evaluation, and successfully evades several automated authorship attacks.","url_abs":"https://arxiv.org/abs/2405.10260v1","url_pdf":"https://arxiv.org/pdf/2405.10260v1.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":"abstracts"},"code_links":[{"paper_slug":"keep-it-private-unsupervised-privatization-of","repo_url":"https://github.com/csbao/kip-privatization","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"language-modeling","task_name":"Language Modeling"},{"task_slug":"language-modelling","task_name":"Language Modelling"},{"task_slug":"large-language-model","task_name":"Large Language Model"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.10260","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.10260"}},"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":"deterministic:regex_extraction","url":"https://github.com/csbao/kip-privatization","reach":{"status":"ok"}}],"summary":{"ran":9,"unverified":1},"by_repo_kind":{"official":{"samples":10,"ran":9,"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":10,"samples":[{"code_sha256_prefix":"ea20b2afe563d63f","entry":"clean_model_output","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/generator.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/generator.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ea20b2afe563d63f"}},{"code_sha256_prefix":"32acbc36604380fe","entry":"clean_text","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/generator.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/generator.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"32acbc36604380fe"}},{"code_sha256_prefix":"f1910cd6b05c84aa","entry":"create_batches","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/helper_functions.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/helper_functions.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f1910cd6b05c84aa"}},{"code_sha256_prefix":"4d4066506b0f22f8","entry":"get_data","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/helper_functions.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/helper_functions.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4d4066506b0f22f8"}},{"code_sha256_prefix":"89bc537f3c9703a1","entry":"get_text","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/helper_functions.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/helper_functions.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"89bc537f3c9703a1"}},{"code_sha256_prefix":"16c296d92209cb7d","entry":"ngram_copy_filtering","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/utils_sampling.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/utils_sampling.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"16c296d92209cb7d"}},{"code_sha256_prefix":"6cb92ff53102c75a","entry":"normalize","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/generate.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/generate.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6cb92ff53102c75a"}},{"code_sha256_prefix":"f50641f30611f77b","entry":"pad","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/generator.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/generator.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f50641f30611f77b"}},{"code_sha256_prefix":"acaf70fe7b4941ca","entry":"top_k_top_p_filtering","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/utils_sampling.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/utils_sampling.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"acaf70fe7b4941ca"}},{"code_sha256_prefix":"5c7e9c77b1969bc7","entry":"load_tokenizer","repo":"csbao/kip-privatization","repo_kind":"official","path":"src/generate.py","file_url":"https://github.com/csbao/kip-privatization/blob/HEAD/src/generate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5c7e9c77b1969bc7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}