{"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/controllable-unsupervised-text-attribute","title":"Controllable Unsupervised Text Attribute Transfer via Editing Entangled Latent Representation","arxiv_id":"1905.12926","date":"2019-05-30","proceeding":"NeurIPS 2019 12","authors":["Ke Wang","Hang Hua","Xiaojun Wan"],"abstract":"Unsupervised text attribute transfer automatically transforms a text to alter a specific attribute (e.g. sentiment) without using any parallel data, while simultaneously preserving its attribute-independent content. The dominant approaches are trying to model the content-independent attribute separately, e.g., learning different attributes' representations or using multiple attribute-specific decoders. However, it may lead to inflexibility from the perspective of controlling the degree of transfer or transferring over multiple aspects at the same time. To address the above problems, we propose a more flexible unsupervised text attribute transfer framework which replaces the process of modeling attribute with minimal editing of latent representations based on an attribute classifier. Specifically, we first propose a Transformer-based autoencoder to learn an entangled latent representation for a discrete text, then we transform the attribute transfer task to an optimization problem and propose the Fast-Gradient-Iterative-Modification algorithm to edit the latent representation until conforming to the target attribute. Extensive experimental results demonstrate that our model achieves very competitive performance on three public data sets. Furthermore, we also show that our model can not only control the degree of transfer freely but also allow to transfer over multiple aspects at the same time.","url_abs":"https://arxiv.org/abs/1905.12926v2","url_pdf":"https://arxiv.org/pdf/1905.12926v2.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":"controllable-unsupervised-text-attribute","repo_url":"https://github.com/nrgeup/controllable-text-attribute-transfer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"controllable-unsupervised-text-attribute","repo_url":"https://github.com/mrzjy/controllable-text-attribute-transfer","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok"}}],"tasks":[{"task_slug":"attribute","task_name":"Attribute"},{"task_slug":"text-attribute-transfer","task_name":"Text Attribute Transfer"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1905.12926","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1905.12926"}},"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/mrzjy/controllable-text-attribute-transfer","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nrgeup/controllable-text-attribute-transfer","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":2,"ran_draft_wrong":1,"unverified":5},"by_repo_kind":{"official":{"samples":8,"ran":3,"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":"622878101d35577d","entry":"bleu_count","repo":"nrgeup/controllable-text-attribute-transfer","repo_kind":"official","path":"method/mymodel-amazon/bleu.py","file_url":"https://github.com/nrgeup/controllable-text-attribute-transfer/blob/HEAD/method/mymodel-amazon/bleu.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"622878101d35577d"}},{"code_sha256_prefix":"b1bec2c4b1c9b491","entry":"clones","repo":"nrgeup/controllable-text-attribute-transfer","repo_kind":"official","path":"method/mymodel-amazon/model.py","file_url":"https://github.com/nrgeup/controllable-text-attribute-transfer/blob/HEAD/method/mymodel-amazon/model.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b1bec2c4b1c9b491"}},{"code_sha256_prefix":"11aff40704a6d93e","entry":"corpus_bleu","repo":"nrgeup/controllable-text-attribute-transfer","repo_kind":"official","path":"method/mymodel-amazon/bleu.py","file_url":"https://github.com/nrgeup/controllable-text-attribute-transfer/blob/HEAD/method/mymodel-amazon/bleu.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"11aff40704a6d93e"}},{"code_sha256_prefix":"7fe78353a2ca448c","entry":"attention","repo":"nrgeup/controllable-text-attribute-transfer","repo_kind":"official","path":"method/mymodel-amazon/model.py","file_url":"https://github.com/nrgeup/controllable-text-attribute-transfer/blob/HEAD/method/mymodel-amazon/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7fe78353a2ca448c"}},{"code_sha256_prefix":"4d99b7ed72130407","entry":"calc_bleu","repo":"nrgeup/controllable-text-attribute-transfer","repo_kind":"official","path":"method/mymodel-amazon/data.py","file_url":"https://github.com/nrgeup/controllable-text-attribute-transfer/blob/HEAD/method/mymodel-amazon/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4d99b7ed72130407"}},{"code_sha256_prefix":"49c690ca7546d3bb","entry":"incremental_bleu_count","repo":"nrgeup/controllable-text-attribute-transfer","repo_kind":"official","path":"method/mymodel-amazon/bleu.py","file_url":"https://github.com/nrgeup/controllable-text-attribute-transfer/blob/HEAD/method/mymodel-amazon/bleu.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"49c690ca7546d3bb"}},{"code_sha256_prefix":"41087a8fbd9370d0","entry":"load_human_answer","repo":"nrgeup/controllable-text-attribute-transfer","repo_kind":"official","path":"method/mymodel-amazon/data.py","file_url":"https://github.com/nrgeup/controllable-text-attribute-transfer/blob/HEAD/method/mymodel-amazon/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"41087a8fbd9370d0"}},{"code_sha256_prefix":"79e53d4ea458987d","entry":"subsequent_mask","repo":"nrgeup/controllable-text-attribute-transfer","repo_kind":"official","path":"method/mymodel-amazon/data.py","file_url":"https://github.com/nrgeup/controllable-text-attribute-transfer/blob/HEAD/method/mymodel-amazon/data.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"79e53d4ea458987d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}