{"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/fast-and-accurate-neural-crf-constituency-1","title":"Fast and Accurate Neural CRF Constituency Parsing","arxiv_id":"2008.03736","date":"2020-08-09","proceeding":"IJCAI 2020 7","authors":["Yu Zhang","Houquan Zhou","Zhenghua Li"],"abstract":"Estimating probability distribution is one of the core issues in the NLP field. However, in both deep learning (DL) and pre-DL eras, unlike the vast applications of linear-chain CRF in sequence labeling tasks, very few works have applied tree-structure CRF to constituency parsing, mainly due to the complexity and inefficiency of the inside-outside algorithm. This work presents a fast and accurate neural CRF constituency parser. The key idea is to batchify the inside algorithm for loss computation by direct large tensor operations on GPU, and meanwhile avoid the outside algorithm for gradient computation via efficient back-propagation. We also propose a simple two-stage bracketing-then-labeling parsing approach to improve efficiency further. To improve the parsing performance, inspired by recent progress in dependency parsing, we introduce a new scoring architecture based on boundary representation and biaffine attention, and a beneficial dropout strategy. Experiments on PTB, CTB5.1, and CTB7 show that our two-stage CRF parser achieves new state-of-the-art performance on both settings of w/o and w/ BERT, and can parse over 1,000 sentences per second. We release our code at https://github.com/yzhangcs/crfpar.","url_abs":"https://arxiv.org/abs/2008.03736v1","url_pdf":"https://arxiv.org/pdf/2008.03736v1.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":"fast-and-accurate-neural-crf-constituency-1","repo_url":"https://github.com/yzhangcs/crfpar","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"fast-and-accurate-neural-crf-constituency-1","repo_url":"https://github.com/yzhangcs/parser","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"constituency-parsing","task_name":"Constituency Parsing"},{"task_slug":"dependency-parsing","task_name":"Dependency Parsing"},{"task_slug":null,"task_name":"GPU"}],"methods":[{"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":"crf","method_name":"CRF"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"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":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"},{"method_slug":"wordpiece","method_name":"WordPiece"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/constituency-parsing-on-ctb5","task":"Constituency Parsing","dataset":"CTB5","model":"CRF Parser + BERT","rank_in_archive_order":5,"of":9,"metrics":{"F1 score":"92.27"},"uses_additional_data":false},{"leaderboard":"/sota/constituency-parsing-on-ctb5","task":"Constituency Parsing","dataset":"CTB5","model":"CRF Parser","rank_in_archive_order":7,"of":9,"metrics":{"F1 score":"89.80"},"uses_additional_data":false},{"leaderboard":"/sota/constituency-parsing-on-ctb7","task":"Constituency Parsing","dataset":"CTB7","model":"CRF Parser + Electra","rank_in_archive_order":1,"of":3,"metrics":{"F1 score":"91.92"},"uses_additional_data":false},{"leaderboard":"/sota/constituency-parsing-on-ctb7","task":"Constituency Parsing","dataset":"CTB7","model":"CRF Parser + BERT","rank_in_archive_order":2,"of":3,"metrics":{"F1 score":"91.55"},"uses_additional_data":false},{"leaderboard":"/sota/constituency-parsing-on-ctb7","task":"Constituency Parsing","dataset":"CTB7","model":"CRF Parser","rank_in_archive_order":3,"of":3,"metrics":{"F1 score":"88.60"},"uses_additional_data":false},{"leaderboard":"/sota/constituency-parsing-on-penn-treebank","task":"Constituency Parsing","dataset":"Penn Treebank","model":"CRF Parser + RoBERTa","rank_in_archive_order":6,"of":27,"metrics":{"F1 score":"96.32"},"uses_additional_data":false},{"leaderboard":"/sota/constituency-parsing-on-penn-treebank","task":"Constituency Parsing","dataset":"Penn Treebank","model":"CRF Parser + BERT","rank_in_archive_order":11,"of":27,"metrics":{"F1 score":"95.69"},"uses_additional_data":false},{"leaderboard":"/sota/constituency-parsing-on-penn-treebank","task":"Constituency Parsing","dataset":"Penn Treebank","model":"CRF Parser","rank_in_archive_order":20,"of":27,"metrics":{"F1 score":"94.12"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2008.03736","atlas_url":"https://app.syntology.ai/?focus=2008.03736","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2008.03736"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/huggingface/transformers","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/yzhangcs/crfpar","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/jiesutd/NCRFpp","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yzhangcs/parser","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/harvardnlp/pytorch-struct","reach":null}],"summary":{"ran":2,"ran_draft_wrong":1},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"found_in_text":{"samples":2,"ran":2,"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":"aba5ec2610fcf76f","entry":"Biaffine","repo":"yzhangcs/crfpar","repo_kind":"official","path":"parser/modules/biaffine.py","file_url":"https://github.com/yzhangcs/crfpar/blob/HEAD/parser/modules/biaffine.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aba5ec2610fcf76f"}},{"code_sha256_prefix":"392fc2ded9b35850","entry":"CRF","repo":"jiesutd/NCRFpp","repo_kind":"found_in_text","path":"model/crf.py","file_url":"https://github.com/jiesutd/NCRFpp/blob/HEAD/model/crf.py","link_basis":"first_harvest_node","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":"392fc2ded9b35850"}},{"code_sha256_prefix":"8e960fbb64668568","entry":"log_sum_exp","repo":"jiesutd/NCRFpp","repo_kind":"found_in_text","path":"model/crf.py","file_url":"https://github.com/jiesutd/NCRFpp/blob/HEAD/model/crf.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e960fbb64668568"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}