{"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/arxiv-2607-10825","title":"Large Language Models for Token-Efficient and Semantic-Preserving Opinion Summarization","arxiv_id":"2607.10825","date":"2026-07-12","proceeding":null,"authors":["Fabrizio Marozzo","Stefano Iannicelli"],"abstract":"Opinionated text - spanning product reviews, hotel feedback, and social posts - captures rich signals about user experiences, preferences, and concerns. However, the scale, redundancy, and imbalance of such corpora make it challenging to analyze opinions effectively, particularly when the goal is to generate summaries that remain faithful to the diversity of viewpoints expressed. This paper presents a framework that preserves semantics in LLM-based opinion summarization while minimizing token usage. We combine multidimensional classification (e.g., sentiment, topics) with a family of stratified sampling strategies to select compact yet representative subsets of opinions before prompting the LLM. Tailored prompts then produce balanced summaries that surface the salient aspects expressed in the opinions (e.g., strengths and weaknesses of products/hotels). Experiments on Amazon product reviews, Tripadvisor hotel reviews, and X/Twitter posts demonstrate that our method significantly reduces token usage and computational cost while consistently outperforming traditional AI-based and standard LLM summarization baselines in terms of content coverage, balance, and semantic preservation.","url_abs":"https://arxiv.org/abs/2607.10825","url_pdf":"https://arxiv.org/pdf/2607.10825","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2607.10825"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/SCAlabUnical/semantic-preserving-summarization","reach":null}],"summary":{"ran":1,"ran_fixture":1,"ran_draft_wrong":1,"ran_violates":1,"unverified":2},"by_repo_kind":{"found_in_text":{"samples":6,"ran":4,"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":6,"samples":[{"code_sha256_prefix":"a11dcf418bf64be1","entry":"StratifierKullbackLeibler","repo":"SCAlabUnical/semantic-preserving-summarization","repo_kind":"found_in_text","path":"stratifiers/StratifierKullbackLeibler.py","file_url":"https://github.com/SCAlabUnical/semantic-preserving-summarization/blob/HEAD/stratifiers/StratifierKullbackLeibler.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a11dcf418bf64be1"}},{"code_sha256_prefix":"441425d296f4d522","entry":"compute_distribution_by_sum_perc","repo":"SCAlabUnical/semantic-preserving-summarization","repo_kind":"found_in_text","path":"stratifiers/StratifierKullbackLeibler.py","file_url":"https://github.com/SCAlabUnical/semantic-preserving-summarization/blob/HEAD/stratifiers/StratifierKullbackLeibler.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"441425d296f4d522"}},{"code_sha256_prefix":"996a2c7edad428d2","entry":"compute_target_counts","repo":"SCAlabUnical/semantic-preserving-summarization","repo_kind":"found_in_text","path":"stratifiers/StratifierKullbackLeibler.py","file_url":"https://github.com/SCAlabUnical/semantic-preserving-summarization/blob/HEAD/stratifiers/StratifierKullbackLeibler.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"996a2c7edad428d2"}},{"code_sha256_prefix":"8c91bd640a67c01c","entry":"kl_divergence","repo":"SCAlabUnical/semantic-preserving-summarization","repo_kind":"found_in_text","path":"stratifiers/StratifierKullbackLeibler.py","file_url":"https://github.com/SCAlabUnical/semantic-preserving-summarization/blob/HEAD/stratifiers/StratifierKullbackLeibler.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8c91bd640a67c01c"}},{"code_sha256_prefix":"d3891d6342c15abe","entry":"log_progress","repo":"SCAlabUnical/semantic-preserving-summarization","repo_kind":"found_in_text","path":"stratifiers/StratifierKullbackLeibler.py","file_url":"https://github.com/SCAlabUnical/semantic-preserving-summarization/blob/HEAD/stratifiers/StratifierKullbackLeibler.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d3891d6342c15abe"}},{"code_sha256_prefix":"94138bdb36efbade","entry":"print_distribution","repo":"SCAlabUnical/semantic-preserving-summarization","repo_kind":"found_in_text","path":"stratifiers/StratifierKullbackLeibler.py","file_url":"https://github.com/SCAlabUnical/semantic-preserving-summarization/blob/HEAD/stratifiers/StratifierKullbackLeibler.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"94138bdb36efbade"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}