{"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/encode-tag-realize-high-precision-text","title":"Encode, Tag, Realize: High-Precision Text Editing","arxiv_id":"1909.01187","date":"2019-09-03","proceeding":"IJCNLP 2019 11","authors":["Eric Malmi","Sebastian Krause","Sascha Rothe","Daniil Mirylenka","Aliaksei Severyn"],"abstract":"We propose LaserTagger - a sequence tagging approach that casts text generation as a text editing task. Target texts are reconstructed from the inputs using three main edit operations: keeping a token, deleting it, and adding a phrase before the token. To predict the edit operations, we propose a novel model, which combines a BERT encoder with an autoregressive Transformer decoder. This approach is evaluated on English text on four tasks: sentence fusion, sentence splitting, abstractive summarization, and grammar correction. LaserTagger achieves new state-of-the-art results on three of these tasks, performs comparably to a set of strong seq2seq baselines with a large number of training examples, and outperforms them when the number of examples is limited. Furthermore, we show that at inference time tagging can be more than two orders of magnitude faster than comparable seq2seq models, making it more attractive for running in a live environment.","url_abs":"https://arxiv.org/abs/1909.01187v1","url_pdf":"https://arxiv.org/pdf/1909.01187v1.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":"encode-tag-realize-high-precision-text","repo_url":"https://github.com/google-research/lasertagger","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"encode-tag-realize-high-precision-text","repo_url":"https://github.com/Mleader2/text_scalpel","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"encode-tag-realize-high-precision-text","repo_url":"https://github.com/a414351664/my_git_laser","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"encode-tag-realize-high-precision-text","repo_url":"https://github.com/googlx/lasertagger","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"encode-tag-realize-high-precision-text","repo_url":"https://github.com/leshanbog/lasertagger","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"abstractive-text-summarization","task_name":"Abstractive Text Summarization"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"sentence","task_name":"Sentence"},{"task_slug":"sentence-fusion","task_name":"Sentence Fusion"},{"task_slug":"split-and-rephrase","task_name":"Split and Rephrase"},{"task_slug":"tag","task_name":"TAG"},{"task_slug":"text-generation","task_name":"Text Generation"},{"task_slug":"high","task_name":"Vocal Bursts Intensity Prediction"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bert","method_name":"BERT"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"lstm","method_name":"LSTM"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-linear-decay","method_name":"Linear Warmup With Linear Decay"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"seq2seq","method_name":"Seq2Seq"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"},{"method_slug":"transformer","method_name":"Transformer"},{"method_slug":"weight-decay","method_name":"Weight Decay"},{"method_slug":"wordpiece","method_name":"WordPiece"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1909.01187","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1909.01187"}},"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/Mleader2/text_scalpel","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/googlx/lasertagger","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/leshanbog/lasertagger","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/a414351664/my_git_laser","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/google-research/lasertagger","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_honours":1,"ran_draft_wrong":1,"unverified":9},"by_repo_kind":{"official":{"samples":6,"ran":0,"repositories":1},"listed":{"samples":5,"ran":2,"repositories":2}},"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":"d08f324f950148de","entry":"gelu","repo":"a414351664/my_git_laser","repo_kind":"listed","path":"bert/modeling.py","file_url":"https://github.com/a414351664/my_git_laser/blob/HEAD/bert/modeling.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d08f324f950148de"}},{"code_sha256_prefix":"5842ee67106321d6","entry":"get_activation","repo":"a414351664/my_git_laser","repo_kind":"listed","path":"bert/modeling.py","file_url":"https://github.com/a414351664/my_git_laser/blob/HEAD/bert/modeling.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5842ee67106321d6"}},{"code_sha256_prefix":"ad99b5c7198b14ae","entry":"compute_exact_score","repo":"google-research/lasertagger","repo_kind":"official","path":"score_lib.py","file_url":"https://github.com/google-research/lasertagger/blob/HEAD/score_lib.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":"ad99b5c7198b14ae"}},{"code_sha256_prefix":"871aa091696585b2","entry":"compute_exact_score","repo":"Mleader2/text_scalpel","repo_kind":"listed","path":"score_lib.py","file_url":"https://github.com/Mleader2/text_scalpel/blob/HEAD/score_lib.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":"871aa091696585b2"}},{"code_sha256_prefix":"7b42fac7fabad0d0","entry":"file_based_input_fn_builder","repo":"google-research/lasertagger","repo_kind":"official","path":"run_lasertagger.py","file_url":"https://github.com/google-research/lasertagger/blob/HEAD/run_lasertagger.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":"7b42fac7fabad0d0"}},{"code_sha256_prefix":"50958618b65e514e","entry":"get_assignment_map_from_checkpoint","repo":"a414351664/my_git_laser","repo_kind":"listed","path":"bert/modeling.py","file_url":"https://github.com/a414351664/my_git_laser/blob/HEAD/bert/modeling.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":"50958618b65e514e"}},{"code_sha256_prefix":"4ac66a5bb7ec9424","entry":"get_decoder_self_attention_bias","repo":"google-research/lasertagger","repo_kind":"official","path":"official_transformer/model_utils.py","file_url":"https://github.com/google-research/lasertagger/blob/HEAD/official_transformer/model_utils.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":"4ac66a5bb7ec9424"}},{"code_sha256_prefix":"759afd2d7986d5ef","entry":"get_padding","repo":"google-research/lasertagger","repo_kind":"official","path":"official_transformer/model_utils.py","file_url":"https://github.com/google-research/lasertagger/blob/HEAD/official_transformer/model_utils.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":"759afd2d7986d5ef"}},{"code_sha256_prefix":"962597922993960f","entry":"get_position_encoding","repo":"google-research/lasertagger","repo_kind":"official","path":"official_transformer/model_utils.py","file_url":"https://github.com/google-research/lasertagger/blob/HEAD/official_transformer/model_utils.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":"962597922993960f"}},{"code_sha256_prefix":"96df8acf9bbef810","entry":"read_data","repo":"google-research/lasertagger","repo_kind":"official","path":"score_lib.py","file_url":"https://github.com/google-research/lasertagger/blob/HEAD/score_lib.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":"96df8acf9bbef810"}},{"code_sha256_prefix":"b2930bd544830411","entry":"read_data","repo":"Mleader2/text_scalpel","repo_kind":"listed","path":"score_lib.py","file_url":"https://github.com/Mleader2/text_scalpel/blob/HEAD/score_lib.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":"b2930bd544830411"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}