{"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/back-to-the-basics-a-quantitative-analysis-of","title":"Back to the Basics: A Quantitative Analysis of Statistical and Graph-Based Term Weighting Schemes for Keyword Extraction","arxiv_id":"2104.08028","date":"2021-04-16","proceeding":"EMNLP 2021 11","authors":["Asahi Ushio","Federico Liberatore","Jose Camacho-Collados"],"abstract":"Term weighting schemes are widely used in Natural Language Processing and Information Retrieval. In particular, term weighting is the basis for keyword extraction. However, there are relatively few evaluation studies that shed light about the strengths and shortcomings of each weighting scheme. In fact, in most cases researchers and practitioners resort to the well-known tf-idf as default, despite the existence of other suitable alternatives, including graph-based models. In this paper, we perform an exhaustive and large-scale empirical comparison of both statistical and graph-based term weighting methods in the context of keyword extraction. Our analysis reveals some interesting findings such as the advantages of the less-known lexical specificity with respect to tf-idf, or the qualitative differences between statistical and graph-based methods. Finally, based on our findings we discuss and devise some suggestions for practitioners. Source code to reproduce our experimental results, including a keyword extraction library, are available in the following repository: https://github.com/asahi417/kex","url_abs":"https://arxiv.org/abs/2104.08028v2","url_pdf":"https://arxiv.org/pdf/2104.08028v2.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":"back-to-the-basics-a-quantitative-analysis-of","repo_url":"https://github.com/asahi417/kex","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"information-retrieval","task_name":"Information Retrieval"},{"task_slug":"keyword-extraction","task_name":"Keyword Extraction"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":"specificity","task_name":"Specificity"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2104.08028","atlas_url":"https://app.syntology.ai/?focus=2104.08028","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.08028"}},"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/asahi417/kex","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"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":"e1f38a327c9e4190","entry":"average","repo":"asahi417/kex","repo_kind":"official","path":"kex/lexical_specificity.py","file_url":"https://github.com/asahi417/kex/blob/HEAD/kex/lexical_specificity.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":"e1f38a327c9e4190"}},{"code_sha256_prefix":"2a230daf58871d61","entry":"get_benchmark_dataset","repo":"asahi417/kex","repo_kind":"official","path":"kex/_get_dataset.py","file_url":"https://github.com/asahi417/kex/blob/HEAD/kex/_get_dataset.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":"2a230daf58871d61"}},{"code_sha256_prefix":"627cbe400032a3fe","entry":"get_stopwords_list","repo":"asahi417/kex","repo_kind":"official","path":"kex/_stopwords.py","file_url":"https://github.com/asahi417/kex/blob/HEAD/kex/_stopwords.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":"627cbe400032a3fe"}},{"code_sha256_prefix":"9e5455a93fe7e0d8","entry":"lexical_specificity","repo":"asahi417/kex","repo_kind":"official","path":"kex/lexical_specificity.py","file_url":"https://github.com/asahi417/kex/blob/HEAD/kex/lexical_specificity.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":"9e5455a93fe7e0d8"}},{"code_sha256_prefix":"c155efc7311f10e9","entry":"preprocess_source","repo":"asahi417/kex","repo_kind":"official","path":"kex/_get_dataset.py","file_url":"https://github.com/asahi417/kex/blob/HEAD/kex/_get_dataset.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":"c155efc7311f10e9"}},{"code_sha256_prefix":"a125eaf7f2809814","entry":"split_for_keywords","repo":"asahi417/kex","repo_kind":"official","path":"kex/_get_dataset.py","file_url":"https://github.com/asahi417/kex/blob/HEAD/kex/_get_dataset.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":"a125eaf7f2809814"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}