{"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/a-dual-reinforcement-learning-framework-for","title":"A Dual Reinforcement Learning Framework for Unsupervised Text Style Transfer","arxiv_id":"1905.10060","date":"2019-05-24","proceeding":null,"authors":["Fuli Luo","Peng Li","Jie zhou","Pengcheng Yang","Baobao Chang","Zhifang Sui","Xu sun"],"abstract":"Unsupervised text style transfer aims to transfer the underlying style of text but keep its main content unchanged without parallel data. Most existing methods typically follow two steps: first separating the content from the original style, and then fusing the content with the desired style. However, the separation in the first step is challenging because the content and style interact in subtle ways in natural language. Therefore, in this paper, we propose a dual reinforcement learning framework to directly transfer the style of the text via a one-step mapping model, without any separation of content and style. Specifically, we consider the learning of the source-to-target and target-to-source mappings as a dual task, and two rewards are designed based on such a dual structure to reflect the style accuracy and content preservation, respectively. In this way, the two one-step mapping models can be trained via reinforcement learning, without any use of parallel data. Automatic evaluations show that our model outperforms the state-of-the-art systems by a large margin, especially with more than 8 BLEU points improvement averaged on two benchmark datasets. Human evaluations also validate the effectiveness of our model in terms of style accuracy, content preservation and fluency. Our code and data, including outputs of all baselines and our model are available at https://github.com/luofuli/DualLanST.","url_abs":"https://arxiv.org/abs/1905.10060v1","url_pdf":"https://arxiv.org/pdf/1905.10060v1.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":"a-dual-reinforcement-learning-framework-for","repo_url":"https://github.com/luofuli/DualLanST","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"a-dual-reinforcement-learning-framework-for","repo_url":"https://github.com/luofuli/DualRL","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"text-style-transfoer","task_name":"Text Style Transfer"},{"task_slug":"unsupervised-text-style-transfer","task_name":"Unsupervised Text Style Transfer"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1905.10060","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1905.10060"}},"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/luofuli/DualLanST","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/luofuli/DualRL","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":4},"by_repo_kind":{"official":{"samples":4,"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":"02816192d57b25b7","entry":"eval","repo":"luofuli/DualLanST","repo_kind":"official","path":"nmt/nmt.py","file_url":"https://github.com/luofuli/DualLanST/blob/HEAD/nmt/nmt.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":"02816192d57b25b7"}},{"code_sha256_prefix":"47a727ca9745fdca","entry":"external_evaluation_fn","repo":"luofuli/DualLanST","repo_kind":"official","path":"utils/evaluator.py","file_url":"https://github.com/luofuli/DualLanST/blob/HEAD/utils/evaluator.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":"47a727ca9745fdca"}},{"code_sha256_prefix":"94c3fbad3b58a21d","entry":"inference","repo":"luofuli/DualLanST","repo_kind":"official","path":"nmt/nmt.py","file_url":"https://github.com/luofuli/DualLanST/blob/HEAD/nmt/nmt.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":"94c3fbad3b58a21d"}},{"code_sha256_prefix":"708972d0bc1b27bb","entry":"load_args_from_yaml","repo":"luofuli/DualLanST","repo_kind":"official","path":"common_options.py","file_url":"https://github.com/luofuli/DualLanST/blob/HEAD/common_options.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":"708972d0bc1b27bb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}